# AI_GUIDE — App 35 · Basiri v4

## Files
- **Source:** `src/` — `icons.jsx`, `kit.jsx` (store, device, stack, sheet, toast, tab bar), `home.jsx`, `path.jsx`, `tabs.jsx`, `page.jsx`. The CSS is in `src/app.css`.
- **Built bundle:** `dist/basiri4.js`, loaded with the production React from `../shared/vendor`.

## Rebuilding the bundle
Concatenate the files in the order above, wrap the result in an IIFE, then run:

`esbuild --loader:.jsx=jsx --jsx-factory=React.createElement --jsx-fragment=React.Fragment --minify`

The bundle is not rebuilt automatically: after editing any `.jsx` file you must rebuild it, or the change will not show in the app.

## Navigation
Each tab owns its own Stack. `useNav().push(<Page/>)` pushes a page and `pop()` goes back. Tapping the active tab again pops to its root.

## State
`useStore()` is persisted in localStorage (`basiri4`). It holds: `done`, `pts`, `streak`, `liked`, `saved`, `joined`, `plan`.
