@flyingrobots/bijou-tui 0.10.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/accordion.d.ts +46 -5
  2. package/dist/accordion.d.ts.map +1 -1
  3. package/dist/accordion.js +41 -5
  4. package/dist/accordion.js.map +1 -1
  5. package/dist/animate.d.ts +30 -0
  6. package/dist/animate.d.ts.map +1 -1
  7. package/dist/animate.js +33 -0
  8. package/dist/animate.js.map +1 -1
  9. package/dist/browsable-list.d.ts +67 -4
  10. package/dist/browsable-list.d.ts.map +1 -1
  11. package/dist/browsable-list.js +49 -4
  12. package/dist/browsable-list.js.map +1 -1
  13. package/dist/canvas.d.ts +13 -4
  14. package/dist/canvas.d.ts.map +1 -1
  15. package/dist/canvas.js +9 -3
  16. package/dist/canvas.js.map +1 -1
  17. package/dist/command-palette.d.ts +67 -6
  18. package/dist/command-palette.d.ts.map +1 -1
  19. package/dist/command-palette.js +67 -6
  20. package/dist/command-palette.js.map +1 -1
  21. package/dist/commands.d.ts +32 -3
  22. package/dist/commands.d.ts.map +1 -1
  23. package/dist/commands.js +32 -3
  24. package/dist/commands.js.map +1 -1
  25. package/dist/driver.d.ts +14 -0
  26. package/dist/driver.d.ts.map +1 -1
  27. package/dist/driver.js +7 -0
  28. package/dist/driver.js.map +1 -1
  29. package/dist/eventbus.d.ts +43 -6
  30. package/dist/eventbus.d.ts.map +1 -1
  31. package/dist/eventbus.js +9 -0
  32. package/dist/eventbus.js.map +1 -1
  33. package/dist/file-picker.d.ts +56 -4
  34. package/dist/file-picker.d.ts.map +1 -1
  35. package/dist/file-picker.js +52 -4
  36. package/dist/file-picker.js.map +1 -1
  37. package/dist/flex.d.ts +17 -0
  38. package/dist/flex.d.ts.map +1 -1
  39. package/dist/flex.js +106 -12
  40. package/dist/flex.js.map +1 -1
  41. package/dist/help.d.ts +16 -1
  42. package/dist/help.d.ts.map +1 -1
  43. package/dist/help.js +13 -0
  44. package/dist/help.js.map +1 -1
  45. package/dist/index.d.ts +8 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +8 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/inputstack.d.ts +32 -4
  50. package/dist/inputstack.d.ts.map +1 -1
  51. package/dist/inputstack.js +11 -0
  52. package/dist/inputstack.js.map +1 -1
  53. package/dist/keybindings.d.ts +106 -14
  54. package/dist/keybindings.d.ts.map +1 -1
  55. package/dist/keybindings.js +28 -2
  56. package/dist/keybindings.js.map +1 -1
  57. package/dist/keys.d.ts +24 -8
  58. package/dist/keys.d.ts.map +1 -1
  59. package/dist/keys.js +34 -9
  60. package/dist/keys.js.map +1 -1
  61. package/dist/layout.d.ts +26 -0
  62. package/dist/layout.d.ts.map +1 -1
  63. package/dist/layout.js +25 -1
  64. package/dist/layout.js.map +1 -1
  65. package/dist/navigable-table.d.ts +48 -4
  66. package/dist/navigable-table.d.ts.map +1 -1
  67. package/dist/navigable-table.js +44 -4
  68. package/dist/navigable-table.js.map +1 -1
  69. package/dist/overlay.d.ts +110 -3
  70. package/dist/overlay.d.ts.map +1 -1
  71. package/dist/overlay.js +87 -7
  72. package/dist/overlay.js.map +1 -1
  73. package/dist/pager.d.ts +66 -7
  74. package/dist/pager.d.ts.map +1 -1
  75. package/dist/pager.js +56 -7
  76. package/dist/pager.js.map +1 -1
  77. package/dist/panels.d.ts +55 -0
  78. package/dist/panels.d.ts.map +1 -1
  79. package/dist/panels.js +11 -0
  80. package/dist/panels.js.map +1 -1
  81. package/dist/runtime.d.ts +6 -0
  82. package/dist/runtime.d.ts.map +1 -1
  83. package/dist/runtime.js +6 -0
  84. package/dist/runtime.js.map +1 -1
  85. package/dist/screen.d.ts +37 -3
  86. package/dist/screen.d.ts.map +1 -1
  87. package/dist/screen.js +37 -3
  88. package/dist/screen.js.map +1 -1
  89. package/dist/spring.d.ts +56 -7
  90. package/dist/spring.d.ts.map +1 -1
  91. package/dist/spring.js +44 -7
  92. package/dist/spring.js.map +1 -1
  93. package/dist/status-bar.d.ts +15 -2
  94. package/dist/status-bar.d.ts.map +1 -1
  95. package/dist/status-bar.js +9 -0
  96. package/dist/status-bar.js.map +1 -1
  97. package/dist/timeline.d.ts +68 -5
  98. package/dist/timeline.d.ts.map +1 -1
  99. package/dist/timeline.js +33 -0
  100. package/dist/timeline.js.map +1 -1
  101. package/dist/types.d.ts +86 -5
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/types.js +27 -3
  104. package/dist/types.js.map +1 -1
  105. package/dist/viewport.d.ts +71 -11
  106. package/dist/viewport.d.ts.map +1 -1
  107. package/dist/viewport.js +79 -11
  108. package/dist/viewport.js.map +1 -1
  109. package/package.json +2 -2
@@ -26,21 +26,42 @@
26
26
  */
27
27
  import type { IOPort } from '@flyingrobots/bijou';
28
28
  import type { Cmd, KeyMsg, MouseMsg, ResizeMsg } from './types.js';
29
- /** Any message the bus can carry — built-in or app-defined. */
29
+ /**
30
+ * Union of all message types the bus can carry — built-in key, resize,
31
+ * mouse messages plus any app-defined custom message type.
32
+ *
33
+ * @template M - Application-defined custom message type.
34
+ */
30
35
  export type BusMsg<M> = KeyMsg | ResizeMsg | MouseMsg | M;
36
+ /**
37
+ * Centralized event bus that unifies all input sources into a single
38
+ * typed event stream for TEA applications.
39
+ *
40
+ * @template M - Application-defined custom message type.
41
+ */
31
42
  export interface EventBus<M> {
32
43
  /**
33
44
  * Subscribe to all events. Returns a dispose function.
34
45
  * Multiple subscribers are supported — all receive every event.
46
+ *
47
+ * @param handler - Callback invoked for every emitted message.
48
+ * @returns A disposable that removes this subscription.
35
49
  */
36
50
  on(handler: (msg: BusMsg<M>) => void): Disposable;
37
- /** Emit a message to all subscribers. */
51
+ /**
52
+ * Emit a message to all subscribers.
53
+ *
54
+ * @param msg - The message to broadcast.
55
+ */
38
56
  emit(msg: BusMsg<M>): void;
39
57
  /**
40
58
  * Connect keyboard and resize sources from an IOPort.
41
59
  * Raw stdin bytes are parsed into KeyMsg automatically.
42
60
  * When `options.mouse` is true, SGR mouse sequences are parsed into MouseMsg.
43
- * Returns a dispose function that disconnects both.
61
+ *
62
+ * @param io - IO port providing raw input and resize events.
63
+ * @param options - Optional flags (e.g. `{ mouse: true }` to enable mouse input).
64
+ * @returns A disposable that disconnects both input and resize listeners.
44
65
  */
45
66
  connectIO(io: IOPort, options?: {
46
67
  mouse?: boolean;
@@ -48,25 +69,41 @@ export interface EventBus<M> {
48
69
  /**
49
70
  * Run a command. The command receives the bus's `emit` function to
50
71
  * dispatch intermediate messages during execution. When it resolves:
51
- * - QUIT signal fires onQuit handlers
52
- * - Message emitted to all subscribers
53
- * - void/undefined ignored
72
+ * - QUIT signal fires onQuit handlers
73
+ * - Message emitted to all subscribers
74
+ * - void/undefined ignored
54
75
  *
55
76
  * Rejected commands are logged to stderr via `console.error`.
77
+ *
78
+ * @param cmd - The command to execute.
56
79
  */
57
80
  runCmd(cmd: Cmd<M>): void;
58
81
  /**
59
82
  * Register a quit handler. Called when a command resolves to QUIT.
60
83
  * Separate from `on()` so the runtime can handle shutdown without
61
84
  * the app needing to filter for it.
85
+ *
86
+ * @param handler - Callback invoked on quit signal.
87
+ * @returns A disposable that removes this quit handler.
62
88
  */
63
89
  onQuit(handler: () => void): Disposable;
64
90
  /** Disconnect all sources and remove all subscribers. */
65
91
  dispose(): void;
66
92
  }
93
+ /** Handle for unsubscribing or disconnecting a resource. */
67
94
  interface Disposable {
95
+ /** Remove the subscription or disconnect the resource. */
68
96
  dispose(): void;
69
97
  }
98
+ /**
99
+ * Create a new event bus.
100
+ *
101
+ * Returns an {@link EventBus} that manages subscribers, I/O connections,
102
+ * command execution, and quit signaling for a TEA runtime.
103
+ *
104
+ * @template M - Application-defined custom message type.
105
+ * @returns A new event bus instance.
106
+ */
70
107
  export declare function createEventBus<M>(): EventBus<M>;
71
108
  export {};
72
109
  //# sourceMappingURL=eventbus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventbus.d.ts","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQnE,+DAA+D;AAC/D,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB;;;OAGG;IACH,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC;IAElD,yCAAyC;IACzC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,UAAU,CAAC;IAEjE;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;IAExC,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,wBAAgB,cAAc,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAsG/C"}
1
+ {"version":3,"file":"eventbus.d.ts","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQnE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB;;;;;;OAMG;IACH,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,UAAU,CAAC;IAElD;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE3B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,UAAU,CAAC;IAEjE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1B;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;IAExC,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,4DAA4D;AAC5D,UAAU,UAAU;IAClB,0DAA0D;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAsG/C"}
package/dist/eventbus.js CHANGED
@@ -29,6 +29,15 @@ import { parseKey, parseMouse } from './keys.js';
29
29
  // ---------------------------------------------------------------------------
30
30
  // Implementation
31
31
  // ---------------------------------------------------------------------------
32
+ /**
33
+ * Create a new event bus.
34
+ *
35
+ * Returns an {@link EventBus} that manages subscribers, I/O connections,
36
+ * command execution, and quit signaling for a TEA runtime.
37
+ *
38
+ * @template M - Application-defined custom message type.
39
+ * @returns A new event bus instance.
40
+ */
32
41
  export function createEventBus() {
33
42
  const subscribers = new Set();
34
43
  const quitHandlers = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"eventbus.js","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventbus.js","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"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"}
@@ -21,27 +21,46 @@
21
21
  */
22
22
  import type { IOPort } from '@flyingrobots/bijou';
23
23
  import { type KeyMap } from './keybindings.js';
24
+ /** A single entry (file or directory) in the file picker listing. */
24
25
  export interface FileEntry {
26
+ /** Name of the file or directory (without trailing `/`). */
25
27
  name: string;
28
+ /** Whether this entry is a directory. */
26
29
  isDirectory: boolean;
27
30
  }
31
+ /** Immutable state for the file picker widget. */
28
32
  export interface FilePickerState {
33
+ /** Current working directory being browsed. */
29
34
  readonly cwd: string;
35
+ /** Sorted entries in the current directory. */
30
36
  readonly entries: readonly FileEntry[];
37
+ /** Index of the currently focused entry. */
31
38
  readonly focusIndex: number;
39
+ /** Vertical scroll offset (first visible entry index). */
32
40
  readonly scrollY: number;
41
+ /** Maximum number of visible entries. */
33
42
  readonly height: number;
43
+ /** Optional file extension filter (e.g. `".ts"`). */
34
44
  readonly filter?: string;
35
45
  }
46
+ /** Options for creating a new file picker state. */
36
47
  export interface FilePickerOptions {
48
+ /** Starting directory path. */
37
49
  readonly cwd: string;
50
+ /** IO port used for directory listing and path joining. */
38
51
  readonly io: IOPort;
52
+ /** Maximum number of visible entries (default: 10). */
39
53
  readonly height?: number;
54
+ /** Optional file extension filter (e.g. `".ts"`). */
40
55
  readonly filter?: string;
41
56
  }
57
+ /** Options for rendering the file picker view. */
42
58
  export interface FilePickerRenderOptions {
59
+ /** Character(s) shown next to the focused entry (default: `"\u25b8"`). */
43
60
  readonly focusIndicator?: string;
61
+ /** Character(s) shown before directory names (default: `"d"`). */
44
62
  readonly dirIndicator?: string;
63
+ /** Character(s) shown before file names (default: `"-"`). */
45
64
  readonly fileIndicator?: string;
46
65
  }
47
66
  /**
@@ -50,21 +69,50 @@ export interface FilePickerRenderOptions {
50
69
  * Reads directory contents via `io.readDir()` and parses entries into
51
70
  * directories (trailing `/`) and files. Directories are sorted first,
52
71
  * then files, both alphabetically.
72
+ *
73
+ * @param options - Starting directory, IO port, height, and optional filter.
74
+ * @returns Fresh file picker state with focus on the first entry.
53
75
  */
54
76
  export declare function createFilePickerState(options: FilePickerOptions): FilePickerState;
55
- /** Move focus to the next entry (wraps around). */
77
+ /**
78
+ * Move focus to the next entry (wraps around).
79
+ *
80
+ * @param state - Current file picker state.
81
+ * @returns Updated state with focus on the next entry.
82
+ */
56
83
  export declare function fpFocusNext(state: FilePickerState): FilePickerState;
57
- /** Move focus to the previous entry (wraps around). */
84
+ /**
85
+ * Move focus to the previous entry (wraps around).
86
+ *
87
+ * @param state - Current file picker state.
88
+ * @returns Updated state with focus on the previous entry.
89
+ */
58
90
  export declare function fpFocusPrev(state: FilePickerState): FilePickerState;
59
- /** Enter the focused directory, refreshing the entry list. No-op on files. */
91
+ /**
92
+ * Enter the focused directory, refreshing the entry list. No-op on files.
93
+ *
94
+ * @param state - Current file picker state.
95
+ * @param io - IO port for filesystem access.
96
+ * @returns Updated state browsing the focused directory, or unchanged if focused on a file.
97
+ */
60
98
  export declare function fpEnter(state: FilePickerState, io: IOPort): FilePickerState;
61
- /** Navigate to the parent directory. No-op at filesystem root. */
99
+ /**
100
+ * Navigate to the parent directory. No-op at filesystem root.
101
+ *
102
+ * @param state - Current file picker state.
103
+ * @param io - IO port for filesystem access.
104
+ * @returns Updated state browsing the parent directory, or unchanged at root.
105
+ */
62
106
  export declare function fpBack(state: FilePickerState, io: IOPort): FilePickerState;
63
107
  /**
64
108
  * Render the file picker — cwd header followed by the visible entry list.
65
109
  *
66
110
  * Each entry is prefixed with a focus indicator and a type indicator
67
111
  * (directory or file). Directories are suffixed with `/`.
112
+ *
113
+ * @param state - Current file picker state.
114
+ * @param options - Rendering options (focus, dir, and file indicators).
115
+ * @returns Rendered file picker string with cwd header and entry list.
68
116
  */
69
117
  export declare function filePicker(state: FilePickerState, options?: FilePickerRenderOptions): string;
70
118
  /**
@@ -80,6 +128,10 @@ export declare function filePicker(state: FilePickerState, options?: FilePickerR
80
128
  * quit: { type: 'quit' },
81
129
  * });
82
130
  * ```
131
+ *
132
+ * @template Msg - Application message type dispatched by key bindings.
133
+ * @param actions - Map of navigation and action messages.
134
+ * @returns Preconfigured key map with vim-style file picker bindings.
83
135
  */
84
136
  export declare function filePickerKeyMap<Msg>(actions: {
85
137
  focusNext: Msg;
@@ -1 +1 @@
1
- {"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../src/file-picker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAkDD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAYjF;AAMD,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAInE;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAInE;AAED,8EAA8E;AAC9E,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAe3E;AAED,kEAAkE;AAClE,wBAAgB,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAa1E;AAqBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CA0B5F;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE;IAC7C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAed"}
1
+ {"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../src/file-picker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,oDAAoD;AACpD,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAwDD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAYjF;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAInE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAInE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAe3E;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAa1E;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CA0B5F;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE;IAC7C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAed"}
@@ -26,6 +26,11 @@ import { createKeyMap } from './keybindings.js';
26
26
  /**
27
27
  * Safely read and parse directory entries. Returns `[]` if the directory
28
28
  * is unreadable (permissions, missing, etc.) instead of throwing.
29
+ *
30
+ * @param io - IO port for filesystem access.
31
+ * @param cwd - Directory path to read.
32
+ * @param filter - Optional file extension filter.
33
+ * @returns Sorted array of file entries, or empty array on error.
29
34
  */
30
35
  function safeReadEntries(io, cwd, filter) {
31
36
  try {
@@ -42,6 +47,7 @@ function safeReadEntries(io, cwd, filter) {
42
47
  * @param filter - Optional extension suffix (e.g. `".ts"`) — only files whose
43
48
  * name ends with this suffix are included. Directories are
44
49
  * always included regardless of the filter.
50
+ * @returns Sorted array of file entries (directories first, then files).
45
51
  */
46
52
  function parseEntries(names, filter) {
47
53
  const dirs = [];
@@ -70,6 +76,9 @@ function parseEntries(names, filter) {
70
76
  * Reads directory contents via `io.readDir()` and parses entries into
71
77
  * directories (trailing `/`) and files. Directories are sorted first,
72
78
  * then files, both alphabetically.
79
+ *
80
+ * @param options - Starting directory, IO port, height, and optional filter.
81
+ * @returns Fresh file picker state with focus on the first entry.
73
82
  */
74
83
  export function createFilePickerState(options) {
75
84
  const height = Math.max(1, options.height ?? 10);
@@ -86,21 +95,37 @@ export function createFilePickerState(options) {
86
95
  // ---------------------------------------------------------------------------
87
96
  // State transformers
88
97
  // ---------------------------------------------------------------------------
89
- /** Move focus to the next entry (wraps around). */
98
+ /**
99
+ * Move focus to the next entry (wraps around).
100
+ *
101
+ * @param state - Current file picker state.
102
+ * @returns Updated state with focus on the next entry.
103
+ */
90
104
  export function fpFocusNext(state) {
91
105
  if (state.entries.length === 0)
92
106
  return state;
93
107
  const focusIndex = (state.focusIndex + 1) % state.entries.length;
94
108
  return { ...state, focusIndex, scrollY: adjustScroll(focusIndex, state.scrollY, state.height, state.entries.length) };
95
109
  }
96
- /** Move focus to the previous entry (wraps around). */
110
+ /**
111
+ * Move focus to the previous entry (wraps around).
112
+ *
113
+ * @param state - Current file picker state.
114
+ * @returns Updated state with focus on the previous entry.
115
+ */
97
116
  export function fpFocusPrev(state) {
98
117
  if (state.entries.length === 0)
99
118
  return state;
100
119
  const focusIndex = (state.focusIndex - 1 + state.entries.length) % state.entries.length;
101
120
  return { ...state, focusIndex, scrollY: adjustScroll(focusIndex, state.scrollY, state.height, state.entries.length) };
102
121
  }
103
- /** Enter the focused directory, refreshing the entry list. No-op on files. */
122
+ /**
123
+ * Enter the focused directory, refreshing the entry list. No-op on files.
124
+ *
125
+ * @param state - Current file picker state.
126
+ * @param io - IO port for filesystem access.
127
+ * @returns Updated state browsing the focused directory, or unchanged if focused on a file.
128
+ */
104
129
  export function fpEnter(state, io) {
105
130
  if (state.entries.length === 0)
106
131
  return state;
@@ -117,7 +142,13 @@ export function fpEnter(state, io) {
117
142
  scrollY: 0,
118
143
  };
119
144
  }
120
- /** Navigate to the parent directory. No-op at filesystem root. */
145
+ /**
146
+ * Navigate to the parent directory. No-op at filesystem root.
147
+ *
148
+ * @param state - Current file picker state.
149
+ * @param io - IO port for filesystem access.
150
+ * @returns Updated state browsing the parent directory, or unchanged at root.
151
+ */
121
152
  export function fpBack(state, io) {
122
153
  const newCwd = io.joinPath(state.cwd, '..');
123
154
  if (newCwd === state.cwd)
@@ -134,6 +165,15 @@ export function fpBack(state, io) {
134
165
  // ---------------------------------------------------------------------------
135
166
  // Scroll helper
136
167
  // ---------------------------------------------------------------------------
168
+ /**
169
+ * Clamp scroll position so the focused entry stays within the visible window.
170
+ *
171
+ * @param focusIndex - Index of the focused entry.
172
+ * @param scrollY - Current scroll offset.
173
+ * @param height - Viewport height in entries.
174
+ * @param totalItems - Total number of entries.
175
+ * @returns Adjusted scroll offset.
176
+ */
137
177
  function adjustScroll(focusIndex, scrollY, height, totalItems) {
138
178
  let newScrollY = scrollY;
139
179
  if (focusIndex < newScrollY) {
@@ -153,6 +193,10 @@ function adjustScroll(focusIndex, scrollY, height, totalItems) {
153
193
  *
154
194
  * Each entry is prefixed with a focus indicator and a type indicator
155
195
  * (directory or file). Directories are suffixed with `/`.
196
+ *
197
+ * @param state - Current file picker state.
198
+ * @param options - Rendering options (focus, dir, and file indicators).
199
+ * @returns Rendered file picker string with cwd header and entry list.
156
200
  */
157
201
  export function filePicker(state, options) {
158
202
  const indicator = options?.focusIndicator ?? '\u25b8';
@@ -192,6 +236,10 @@ export function filePicker(state, options) {
192
236
  * quit: { type: 'quit' },
193
237
  * });
194
238
  * ```
239
+ *
240
+ * @template Msg - Application message type dispatched by key bindings.
241
+ * @param actions - Map of navigation and action messages.
242
+ * @returns Preconfigured key map with vim-style file picker bindings.
195
243
  */
196
244
  export function filePickerKeyMap(actions) {
197
245
  return createKeyMap()
@@ -1 +1 @@
1
- {"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../src/file-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../src/file-picker.ts"],"names":[],"mappings":"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"}
package/dist/flex.d.ts CHANGED
@@ -12,6 +12,10 @@
12
12
  * )
13
13
  * ```
14
14
  */
15
+ import type { BijouContext, TokenValue } from '@flyingrobots/bijou';
16
+ /**
17
+ * Configuration for the flex layout container.
18
+ */
15
19
  export interface FlexOptions {
16
20
  /** Layout direction. Default: 'row'. */
17
21
  readonly direction?: 'row' | 'column';
@@ -21,7 +25,14 @@ export interface FlexOptions {
21
25
  readonly height: number;
22
26
  /** Gap between children (in the main axis). Default: 0. */
23
27
  readonly gap?: number;
28
+ /** Background token applied to the entire flex container (gap + padding areas). Requires `bg` field on the token. */
29
+ readonly bgToken?: TokenValue;
30
+ /** Bijou context for styled output (required for bgToken to take effect). */
31
+ readonly ctx?: BijouContext;
24
32
  }
33
+ /**
34
+ * Descriptor for a single child within a flex layout.
35
+ */
25
36
  export interface FlexChild {
26
37
  /**
27
38
  * Content to render. Either a static string, or a function that
@@ -38,6 +49,8 @@ export interface FlexChild {
38
49
  readonly maxSize?: number;
39
50
  /** Cross-axis alignment. Default: 'start'. */
40
51
  readonly align?: 'start' | 'center' | 'end';
52
+ /** Background token for this child's allocated region. Requires `bg` field on the token and `ctx` on `FlexOptions`. */
53
+ readonly bgToken?: TokenValue;
41
54
  }
42
55
  /**
43
56
  * Lay out children using flexbox-style rules.
@@ -59,6 +72,10 @@ export interface FlexChild {
59
72
  * { basis: 1, content: statusLine },
60
73
  * )
61
74
  * ```
75
+ *
76
+ * @param options - Layout container configuration (direction, dimensions, gap).
77
+ * @param children - Child descriptors with content, flex factors, and constraints.
78
+ * @returns Composed layout string with lines joined by newlines. Empty string if no children.
62
79
  */
63
80
  export declare function flex(options: FlexOptions, ...children: FlexChild[]): string;
64
81
  //# sourceMappingURL=flex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flex.d.ts","sourceRoot":"","sources":["../src/flex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACtC,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACvE,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CAC7C;AAoLD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAkB3E"}
1
+ {"version":3,"file":"flex.d.ts","sourceRoot":"","sources":["../src/flex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGpE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACtC,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,qHAAqH;IACrH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACvE,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,uHAAuH;IACvH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B;AAoPD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAmB3E"}