@@ -40,28 +40,37 @@ Commits must follow [Conventional Commits](https://www.conventionalcommits.org/)
4040## Module Layout
4141
4242- ` src/index.ts ` β entry: waitForTerm then init overlay
43- - ` src/config.ts ` β config schema, defaults, defineConfig
43+ - ` src/config.ts ` β defaults, defineConfig, deepMerge
4444- ` src/types.ts ` β all shared types
4545- ` src/toolbar/ ` β toolbar DOM + button definitions
4646- ` src/drawer/drawer.ts ` β command drawer with flat grid
4747- ` src/drawer/commands.ts ` β re-exports defaultDrawerButtons from config
48- - ` src/gestures/ ` β swipe + pinch detection
49- - ` src/controls/ ` β font size, help overlay
48+ - ` src/gestures/ ` β swipe, pinch, scroll detection + gesture lock
49+ - ` src/controls/ ` β font size, help overlay, combo picker, floating buttons, scroll buttons
5050- ` src/theme/ ` β catppuccin-mocha + apply
5151- ` src/viewport/ ` β height management, landscape detection
5252- ` src/util/dom.ts ` β element creation helpers
5353- ` src/util/terminal.ts ` β sendData, resizeTerm, waitForTerm
5454- ` src/util/haptic.ts ` β vibration feedback
5555- ` src/util/keyboard.ts ` β isKeyboardOpen, conditionalFocus
5656- ` src/util/node-compat.ts ` β sleep, readStdin, spawnProcess, collectStream
57+ - ` src/actions/registry.ts ` β action dispatch + clipboard
58+ - ` src/hooks/registry.ts ` β lifecycle hook system
59+ - ` src/config-schema.ts ` β Valibot validation schemas
60+ - ` src/config-resolve.ts ` β button array resolution
61+ - ` src/config-validate.ts ` β config assertions
62+ - ` src/cli/args.ts ` β CLI argument parsing
63+ - ` src/pwa/ ` β PWA manifest, meta-tags, icons
64+ - ` src/reconnect.ts ` β connection loss overlay
65+ - ` src/overlay-entry.ts ` β IIFE entry point for browser bundle
5766- ` styles/base.css ` β all CSS
5867- ` cli.ts ` β CLI: build, inject, init, serve, --version
5968- ` build.ts ` β build pipeline: bundle β inject β output
6069
6170## Publishing
6271
6372- Transpiles to JS via tsdown: ` bin ` β ` dist/cli.mjs ` , ` exports ` β ` dist/*.mjs ` + ` dist/*.d.mts `
64- - ` files ` array controls what's published: ` dist/ ` , ` styles/ ` , ` src/pwa/icons/ ` , ` README.md ` , ` LICENSE `
73+ - ` files ` array controls what's published: ` dist/ ` , ` styles/ ` , ` src/pwa/icons/ ` , ` README.md ` , ` CHANGELOG.md ` , ` LICENSE `
6574- CI: ` .github/workflows/ci.yml ` β pnpm test + biome check
6675- Release: ` .github/workflows/release.yml ` β semantic-release on push to main
6776 - Versioning, changelog, npm publish, and GitHub Release are all automated
@@ -72,7 +81,7 @@ Commits must follow [Conventional Commits](https://www.conventionalcommits.org/)
7281
7382## Conventions
7483
75- - Button actions use discriminated unions (` type: 'send' | 'ctrl-modifier' | 'paste' | 'drawer-toggle' ` )
84+ - Button actions use discriminated unions (` type: 'send' | 'ctrl-modifier' | 'paste' | 'combo-picker' | ' drawer-toggle' ` )
7685- Unified control schema: use ` ControlButton ` for both toolbar and drawer items
7786- Config shape: ` drawer.buttons ` (not ` drawer.commands ` )
7887- Config via ` defineConfig() ` β typed, with sensible defaults
0 commit comments