@flyingrobots/bijou-tui 7.0.0 → 7.2.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.
- package/README.md +27 -4
- package/dist/accordion.d.ts +3 -108
- package/dist/accordion.d.ts.map +1 -1
- package/dist/accordion.js +2 -161
- package/dist/accordion.js.map +1 -1
- package/dist/accordion.part01.d.ts +25 -0
- package/dist/accordion.part01.d.ts.map +1 -0
- package/dist/accordion.part01.js +61 -0
- package/dist/accordion.part01.js.map +1 -0
- package/dist/accordion.part02.d.ts +8 -0
- package/dist/accordion.part02.d.ts.map +1 -0
- package/dist/accordion.part02.js +15 -0
- package/dist/accordion.part02.js.map +1 -0
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +5 -6
- package/dist/animate.js.map +1 -1
- package/dist/app-frame-actions.d.ts +1 -18
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +47 -43
- package/dist/app-frame-actions.js.map +1 -1
- package/dist/app-frame-i18n.d.ts.map +1 -1
- package/dist/app-frame-i18n.js +20 -3
- package/dist/app-frame-i18n.js.map +1 -1
- package/dist/app-frame-overlays.d.ts +9 -1
- package/dist/app-frame-overlays.d.ts.map +1 -1
- package/dist/app-frame-overlays.js +117 -25
- package/dist/app-frame-overlays.js.map +1 -1
- package/dist/app-frame-palette.d.ts +1 -11
- package/dist/app-frame-palette.d.ts.map +1 -1
- package/dist/app-frame-palette.js +19 -18
- package/dist/app-frame-palette.js.map +1 -1
- package/dist/app-frame-render.d.ts +0 -7
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +17 -26
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +8 -4
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js +5 -5
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame-utils.d.ts +2 -1
- package/dist/app-frame-utils.d.ts.map +1 -1
- package/dist/app-frame-utils.js +8 -1
- package/dist/app-frame-utils.js.map +1 -1
- package/dist/app-frame.d.ts +75 -4
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +346 -272
- package/dist/app-frame.js.map +1 -1
- package/dist/app-frame.test-support.part01.d.ts +149 -0
- package/dist/app-frame.test-support.part01.d.ts.map +1 -0
- package/dist/app-frame.test-support.part01.js +106 -0
- package/dist/app-frame.test-support.part01.js.map +1 -0
- package/dist/app-frame.test-support.part02.d.ts +15 -0
- package/dist/app-frame.test-support.part02.d.ts.map +1 -0
- package/dist/app-frame.test-support.part02.js +89 -0
- package/dist/app-frame.test-support.part02.js.map +1 -0
- package/dist/browsable-list.d.ts +5 -5
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js.map +1 -1
- package/dist/canvas.d.ts +2 -34
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +43 -47
- package/dist/canvas.js.map +1 -1
- package/dist/cell-glyph-fit.js +1 -1
- package/dist/cell-glyph-fit.js.map +1 -1
- package/dist/collection-surface-types.d.ts +12 -0
- package/dist/collection-surface-types.d.ts.map +1 -0
- package/dist/collection-surface-types.js +2 -0
- package/dist/collection-surface-types.js.map +1 -0
- package/dist/collection-surface.d.ts +2 -7
- package/dist/collection-surface.d.ts.map +1 -1
- package/dist/collection-surface.js +8 -18
- package/dist/collection-surface.js.map +1 -1
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +2 -1
- package/dist/command-palette.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/css/install.js.map +1 -1
- package/dist/css/parser.js +9 -3
- package/dist/css/parser.js.map +1 -1
- package/dist/css/resolver-types.d.ts +13 -0
- package/dist/css/resolver-types.d.ts.map +1 -0
- package/dist/css/resolver-types.js +2 -0
- package/dist/css/resolver-types.js.map +1 -0
- package/dist/css/resolver.d.ts +2 -12
- package/dist/css/resolver.d.ts.map +1 -1
- package/dist/css/resolver.js +13 -20
- package/dist/css/resolver.js.map +1 -1
- package/dist/css/text-style.d.ts +4 -8
- package/dist/css/text-style.d.ts.map +1 -1
- package/dist/css/text-style.js +13 -18
- package/dist/css/text-style.js.map +1 -1
- package/dist/dag-pane.d.ts +4 -224
- package/dist/dag-pane.d.ts.map +1 -1
- package/dist/dag-pane.js +3 -516
- package/dist/dag-pane.js.map +1 -1
- package/dist/dag-pane.part01.d.ts +58 -0
- package/dist/dag-pane.part01.d.ts.map +1 -0
- package/dist/dag-pane.part01.js +2 -0
- package/dist/dag-pane.part01.js.map +1 -0
- package/dist/dag-pane.part02.d.ts +4 -0
- package/dist/dag-pane.part02.d.ts.map +1 -0
- package/dist/dag-pane.part02.js +56 -0
- package/dist/dag-pane.part02.js.map +1 -0
- package/dist/dag-pane.part03.d.ts +6 -0
- package/dist/dag-pane.part03.d.ts.map +1 -0
- package/dist/dag-pane.part03.js +76 -0
- package/dist/dag-pane.part03.js.map +1 -0
- package/dist/dag-pane.part04.d.ts +7 -0
- package/dist/dag-pane.part04.d.ts.map +1 -0
- package/dist/dag-pane.part04.js +66 -0
- package/dist/dag-pane.part04.js.map +1 -0
- package/dist/dag-pane.part05.d.ts +7 -0
- package/dist/dag-pane.part05.d.ts.map +1 -0
- package/dist/dag-pane.part05.js +78 -0
- package/dist/dag-pane.part05.js.map +1 -0
- package/dist/dag-pane.part06.d.ts +14 -0
- package/dist/dag-pane.part06.d.ts.map +1 -0
- package/dist/dag-pane.part06.js +65 -0
- package/dist/dag-pane.part06.js.map +1 -0
- package/dist/dag-pane.part07.d.ts +18 -0
- package/dist/dag-pane.part07.d.ts.map +1 -0
- package/dist/dag-pane.part07.js +22 -0
- package/dist/dag-pane.part07.js.map +1 -0
- package/dist/driver.d.ts +35 -21
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +69 -39
- package/dist/driver.js.map +1 -1
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +13 -23
- package/dist/eventbus.js.map +1 -1
- package/dist/file-picker.d.ts +4 -160
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +3 -284
- package/dist/file-picker.js.map +1 -1
- package/dist/file-picker.part01.d.ts +54 -0
- package/dist/file-picker.part01.d.ts.map +1 -0
- package/dist/file-picker.part01.js +47 -0
- package/dist/file-picker.part01.js.map +1 -0
- package/dist/file-picker.part02.d.ts +9 -0
- package/dist/file-picker.part02.d.ts.map +1 -0
- package/dist/file-picker.part02.js +77 -0
- package/dist/file-picker.part02.js.map +1 -0
- package/dist/file-picker.part03.d.ts +12 -0
- package/dist/file-picker.part03.d.ts.map +1 -0
- package/dist/file-picker.part03.js +35 -0
- package/dist/file-picker.part03.js.map +1 -0
- package/dist/flex.d.ts +0 -61
- package/dist/flex.d.ts.map +1 -1
- package/dist/flex.js +11 -161
- package/dist/flex.js.map +1 -1
- package/dist/focus-area.d.ts +6 -210
- package/dist/focus-area.d.ts.map +1 -1
- package/dist/focus-area.js +5 -425
- package/dist/focus-area.js.map +1 -1
- package/dist/focus-area.part01.d.ts +57 -0
- package/dist/focus-area.part01.d.ts.map +1 -0
- package/dist/focus-area.part01.js +23 -0
- package/dist/focus-area.part01.js.map +1 -0
- package/dist/focus-area.part02.d.ts +13 -0
- package/dist/focus-area.part02.d.ts.map +1 -0
- package/dist/focus-area.part02.js +65 -0
- package/dist/focus-area.part02.js.map +1 -0
- package/dist/focus-area.part03.d.ts +5 -0
- package/dist/focus-area.part03.d.ts.map +1 -0
- package/dist/focus-area.part03.js +42 -0
- package/dist/focus-area.part03.js.map +1 -0
- package/dist/focus-area.part04.d.ts +5 -0
- package/dist/focus-area.part04.d.ts.map +1 -0
- package/dist/focus-area.part04.js +49 -0
- package/dist/focus-area.part04.js.map +1 -0
- package/dist/focus-area.part05.d.ts +10 -0
- package/dist/focus-area.part05.d.ts.map +1 -0
- package/dist/focus-area.part05.js +66 -0
- package/dist/focus-area.part05.js.map +1 -0
- package/dist/focus-area.part06.d.ts +17 -0
- package/dist/focus-area.part06.d.ts.map +1 -0
- package/dist/focus-area.part06.js +48 -0
- package/dist/focus-area.part06.js.map +1 -0
- package/dist/focus-map.d.ts.map +1 -1
- package/dist/focus-map.js +8 -10
- package/dist/focus-map.js.map +1 -1
- package/dist/index.d.ts +8 -79
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -105
- package/dist/index.js.map +1 -1
- package/dist/index.part01.d.ts +15 -0
- package/dist/index.part01.d.ts.map +1 -0
- package/dist/index.part01.js +11 -0
- package/dist/index.part01.js.map +1 -0
- package/dist/index.part02.d.ts +26 -0
- package/dist/index.part02.d.ts.map +1 -0
- package/dist/index.part02.js +24 -0
- package/dist/index.part02.js.map +1 -0
- package/dist/index.part03.d.ts +17 -0
- package/dist/index.part03.d.ts.map +1 -0
- package/dist/index.part03.js +11 -0
- package/dist/index.part03.js.map +1 -0
- package/dist/index.part04.d.ts +6 -0
- package/dist/index.part04.d.ts.map +1 -0
- package/dist/index.part04.js +11 -0
- package/dist/index.part04.js.map +1 -0
- package/dist/index.part05.d.ts +10 -0
- package/dist/index.part05.d.ts.map +1 -0
- package/dist/index.part05.js +26 -0
- package/dist/index.part05.js.map +1 -0
- package/dist/index.part06.d.ts +9 -0
- package/dist/index.part06.d.ts.map +1 -0
- package/dist/index.part06.js +16 -0
- package/dist/index.part06.js.map +1 -0
- package/dist/index.part07.d.ts +8 -0
- package/dist/index.part07.d.ts.map +1 -0
- package/dist/index.part07.js +15 -0
- package/dist/index.part07.js.map +1 -0
- package/dist/index.part08.d.ts +5 -0
- package/dist/index.part08.d.ts.map +1 -0
- package/dist/index.part08.js +9 -0
- package/dist/index.part08.js.map +1 -0
- package/dist/input-map.d.ts.map +1 -1
- package/dist/input-map.js +1 -2
- package/dist/input-map.js.map +1 -1
- package/dist/input-parser.d.ts +3 -0
- package/dist/input-parser.d.ts.map +1 -0
- package/dist/input-parser.js +95 -0
- package/dist/input-parser.js.map +1 -0
- package/dist/input-routing-inspector.js +3 -3
- package/dist/input-routing-inspector.js.map +1 -1
- package/dist/inputstack.d.ts.map +1 -1
- package/dist/inputstack.js +2 -0
- package/dist/inputstack.js.map +1 -1
- package/dist/keybindings.d.ts.map +1 -1
- package/dist/keybindings.js +5 -2
- package/dist/keybindings.js.map +1 -1
- package/dist/keys.d.ts +0 -36
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +11 -66
- package/dist/keys.js.map +1 -1
- package/dist/layout-inspector.d.ts +2 -30
- package/dist/layout-inspector.d.ts.map +1 -1
- package/dist/layout-inspector.js +1 -132
- package/dist/layout-inspector.js.map +1 -1
- package/dist/layout-inspector.part01.d.ts +52 -0
- package/dist/layout-inspector.part01.d.ts.map +1 -0
- package/dist/layout-inspector.part01.js +48 -0
- package/dist/layout-inspector.part01.js.map +1 -0
- package/dist/layout-inspector.part02.d.ts +11 -0
- package/dist/layout-inspector.part02.d.ts.map +1 -0
- package/dist/layout-inspector.part02.js +80 -0
- package/dist/layout-inspector.part02.js.map +1 -0
- package/dist/layout-inspector.part03.d.ts +5 -0
- package/dist/layout-inspector.part03.d.ts.map +1 -0
- package/dist/layout-inspector.part03.js +11 -0
- package/dist/layout-inspector.part03.js.map +1 -0
- package/dist/layout-preset.js +4 -4
- package/dist/layout-preset.js.map +1 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +5 -3
- package/dist/layout.js.map +1 -1
- package/dist/motion/motion.js +8 -4
- package/dist/motion/motion.js.map +1 -1
- package/dist/motion/reconciler.d.ts.map +1 -1
- package/dist/motion/reconciler.js +9 -7
- package/dist/motion/reconciler.js.map +1 -1
- package/dist/mouse-mode.d.ts +5 -0
- package/dist/mouse-mode.d.ts.map +1 -0
- package/dist/mouse-mode.js +17 -0
- package/dist/mouse-mode.js.map +1 -0
- package/dist/navigable-table.d.ts +3 -136
- package/dist/navigable-table.d.ts.map +1 -1
- package/dist/navigable-table.js +2 -234
- package/dist/navigable-table.js.map +1 -1
- package/dist/navigable-table.part01.d.ts +42 -0
- package/dist/navigable-table.part01.d.ts.map +1 -0
- package/dist/navigable-table.part01.js +42 -0
- package/dist/navigable-table.part01.js.map +1 -0
- package/dist/navigable-table.part02.d.ts +16 -0
- package/dist/navigable-table.part02.d.ts.map +1 -0
- package/dist/navigable-table.part02.js +83 -0
- package/dist/navigable-table.part02.js.map +1 -0
- package/dist/notification-card.d.ts +11 -0
- package/dist/notification-card.d.ts.map +1 -0
- package/dist/notification-card.js +157 -0
- package/dist/notification-card.js.map +1 -0
- package/dist/notification-stack.d.ts +6 -0
- package/dist/notification-stack.d.ts.map +1 -0
- package/dist/notification-stack.js +257 -0
- package/dist/notification-stack.js.map +1 -0
- package/dist/notification.d.ts +14 -112
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +12 -1087
- package/dist/notification.js.map +1 -1
- package/dist/notification.part01.d.ts +77 -0
- package/dist/notification.part01.d.ts.map +1 -0
- package/dist/notification.part01.js +19 -0
- package/dist/notification.part01.js.map +1 -0
- package/dist/notification.part02.d.ts +42 -0
- package/dist/notification.part02.d.ts.map +1 -0
- package/dist/notification.part02.js +44 -0
- package/dist/notification.part02.js.map +1 -0
- package/dist/notification.part03.d.ts +6 -0
- package/dist/notification.part03.d.ts.map +1 -0
- package/dist/notification.part03.js +81 -0
- package/dist/notification.part03.js.map +1 -0
- package/dist/notification.part04.d.ts +4 -0
- package/dist/notification.part04.d.ts.map +1 -0
- package/dist/notification.part04.js +32 -0
- package/dist/notification.part04.js.map +1 -0
- package/dist/notification.part05.d.ts +6 -0
- package/dist/notification.part05.d.ts.map +1 -0
- package/dist/notification.part05.js +95 -0
- package/dist/notification.part05.js.map +1 -0
- package/dist/notification.part06.d.ts +9 -0
- package/dist/notification.part06.d.ts.map +1 -0
- package/dist/notification.part06.js +65 -0
- package/dist/notification.part06.js.map +1 -0
- package/dist/notification.part07.d.ts +10 -0
- package/dist/notification.part07.d.ts.map +1 -0
- package/dist/notification.part07.js +70 -0
- package/dist/notification.part07.js.map +1 -0
- package/dist/notification.part08.d.ts +5 -0
- package/dist/notification.part08.d.ts.map +1 -0
- package/dist/notification.part08.js +79 -0
- package/dist/notification.part08.js.map +1 -0
- package/dist/notification.part09.d.ts +14 -0
- package/dist/notification.part09.d.ts.map +1 -0
- package/dist/notification.part09.js +96 -0
- package/dist/notification.part09.js.map +1 -0
- package/dist/notification.part10.d.ts +13 -0
- package/dist/notification.part10.d.ts.map +1 -0
- package/dist/notification.part10.js +94 -0
- package/dist/notification.part10.js.map +1 -0
- package/dist/notification.part11.d.ts +6 -0
- package/dist/notification.part11.d.ts.map +1 -0
- package/dist/notification.part11.js +42 -0
- package/dist/notification.part11.js.map +1 -0
- package/dist/overlay.d.ts +8 -232
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +5 -629
- package/dist/overlay.js.map +1 -1
- package/dist/overlay.part01.d.ts +71 -0
- package/dist/overlay.part01.d.ts.map +1 -0
- package/dist/overlay.part01.js +34 -0
- package/dist/overlay.part01.js.map +1 -0
- package/dist/overlay.part02.d.ts +8 -0
- package/dist/overlay.part02.d.ts.map +1 -0
- package/dist/overlay.part02.js +81 -0
- package/dist/overlay.part02.js.map +1 -0
- package/dist/overlay.part03.d.ts +27 -0
- package/dist/overlay.part03.d.ts.map +1 -0
- package/dist/overlay.part03.js +83 -0
- package/dist/overlay.part03.js.map +1 -0
- package/dist/overlay.part04.d.ts +8 -0
- package/dist/overlay.part04.d.ts.map +1 -0
- package/dist/overlay.part04.js +103 -0
- package/dist/overlay.part04.js.map +1 -0
- package/dist/overlay.part05.d.ts +8 -0
- package/dist/overlay.part05.d.ts.map +1 -0
- package/dist/overlay.part05.js +66 -0
- package/dist/overlay.part05.js.map +1 -0
- package/dist/overlay.part06.d.ts +46 -0
- package/dist/overlay.part06.d.ts.map +1 -0
- package/dist/overlay.part06.js +35 -0
- package/dist/overlay.part06.js.map +1 -0
- package/dist/overlay.part07.d.ts +4 -0
- package/dist/overlay.part07.d.ts.map +1 -0
- package/dist/overlay.part07.js +64 -0
- package/dist/overlay.part07.js.map +1 -0
- package/dist/overlay.part08.d.ts +34 -0
- package/dist/overlay.part08.d.ts.map +1 -0
- package/dist/overlay.part08.js +54 -0
- package/dist/overlay.part08.js.map +1 -0
- package/dist/overlay.part09.d.ts +6 -0
- package/dist/overlay.part09.d.ts.map +1 -0
- package/dist/overlay.part09.js +42 -0
- package/dist/overlay.part09.js.map +1 -0
- package/dist/pager.d.ts.map +1 -1
- package/dist/pager.js +2 -4
- package/dist/pager.js.map +1 -1
- package/dist/panel-dock.d.ts.map +1 -1
- package/dist/panel-dock.js +9 -11
- package/dist/panel-dock.js.map +1 -1
- package/dist/panels.d.ts.map +1 -1
- package/dist/panels.js +2 -0
- package/dist/panels.js.map +1 -1
- package/dist/pipeline/middleware/css.d.ts +3 -5
- package/dist/pipeline/middleware/css.d.ts.map +1 -1
- package/dist/pipeline/middleware/css.js +12 -6
- package/dist/pipeline/middleware/css.js.map +1 -1
- package/dist/pipeline/middleware/grayscale.js +15 -10
- package/dist/pipeline/middleware/grayscale.js.map +1 -1
- package/dist/pipeline/middleware/motion.js +9 -1
- package/dist/pipeline/middleware/motion.js.map +1 -1
- package/dist/pipeline/middleware/paint.js +9 -1
- package/dist/pipeline/middleware/paint.js.map +1 -1
- package/dist/pipeline/middleware/surface-shaders.js +13 -11
- package/dist/pipeline/middleware/surface-shaders.js.map +1 -1
- package/dist/pipeline/pipeline.d.ts +7 -52
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/pipeline/pipeline.js +37 -27
- package/dist/pipeline/pipeline.js.map +1 -1
- package/dist/raster-glyph.d.ts +3 -0
- package/dist/raster-glyph.d.ts.map +1 -0
- package/dist/raster-glyph.js +2 -0
- package/dist/raster-glyph.js.map +1 -0
- package/dist/raster-glyph.part01.d.ts +75 -0
- package/dist/raster-glyph.part01.d.ts.map +1 -0
- package/dist/raster-glyph.part01.js +25 -0
- package/dist/raster-glyph.part01.js.map +1 -0
- package/dist/raster-glyph.part02.d.ts +12 -0
- package/dist/raster-glyph.part02.d.ts.map +1 -0
- package/dist/raster-glyph.part02.js +81 -0
- package/dist/raster-glyph.part02.js.map +1 -0
- package/dist/raster-glyph.part03.d.ts +6 -0
- package/dist/raster-glyph.part03.d.ts.map +1 -0
- package/dist/raster-glyph.part03.js +60 -0
- package/dist/raster-glyph.part03.js.map +1 -0
- package/dist/raster-glyph.part04.d.ts +7 -0
- package/dist/raster-glyph.part04.d.ts.map +1 -0
- package/dist/raster-glyph.part04.js +59 -0
- package/dist/raster-glyph.part04.js.map +1 -0
- package/dist/raster-glyph.part05.d.ts +6 -0
- package/dist/raster-glyph.part05.d.ts.map +1 -0
- package/dist/raster-glyph.part05.js +71 -0
- package/dist/raster-glyph.part05.js.map +1 -0
- package/dist/raster-glyph.part06.d.ts +18 -0
- package/dist/raster-glyph.part06.d.ts.map +1 -0
- package/dist/raster-glyph.part06.js +78 -0
- package/dist/raster-glyph.part06.js.map +1 -0
- package/dist/raster-glyph.part07.d.ts +11 -0
- package/dist/raster-glyph.part07.d.ts.map +1 -0
- package/dist/raster-glyph.part07.js +55 -0
- package/dist/raster-glyph.part07.js.map +1 -0
- package/dist/raytrace.d.ts +3 -58
- package/dist/raytrace.d.ts.map +1 -1
- package/dist/raytrace.js +2 -120
- package/dist/raytrace.js.map +1 -1
- package/dist/raytrace.part01.d.ts +47 -0
- package/dist/raytrace.part01.d.ts.map +1 -0
- package/dist/raytrace.part01.js +45 -0
- package/dist/raytrace.part01.js.map +1 -0
- package/dist/raytrace.part02.d.ts +12 -0
- package/dist/raytrace.part02.d.ts.map +1 -0
- package/dist/raytrace.part02.js +73 -0
- package/dist/raytrace.part02.js.map +1 -0
- package/dist/runtime-binding.d.ts +2 -3
- package/dist/runtime-binding.d.ts.map +1 -1
- package/dist/runtime-binding.js +49 -38
- package/dist/runtime-binding.js.map +1 -1
- package/dist/runtime-engine.d.ts +2 -2
- package/dist/runtime-engine.d.ts.map +1 -1
- package/dist/runtime-engine.js +15 -4
- package/dist/runtime-engine.js.map +1 -1
- package/dist/runtime.d.ts +2 -18
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +43 -62
- package/dist/runtime.js.map +1 -1
- package/dist/screen.js +1 -1
- package/dist/screen.js.map +1 -1
- package/dist/shell-quit.d.ts.map +1 -1
- package/dist/shell-quit.js +49 -6
- package/dist/shell-quit.js.map +1 -1
- package/dist/split-pane.d.ts +3 -104
- package/dist/split-pane.d.ts.map +1 -1
- package/dist/split-pane.js +2 -190
- package/dist/split-pane.js.map +1 -1
- package/dist/split-pane.part01.d.ts +60 -0
- package/dist/split-pane.part01.d.ts.map +1 -0
- package/dist/split-pane.part01.js +45 -0
- package/dist/split-pane.part01.js.map +1 -0
- package/dist/split-pane.part02.d.ts +8 -0
- package/dist/split-pane.part02.d.ts.map +1 -0
- package/dist/split-pane.part02.js +73 -0
- package/dist/split-pane.part02.js.map +1 -0
- package/dist/split-pane.part03.d.ts +4 -0
- package/dist/split-pane.part03.d.ts.map +1 -0
- package/dist/split-pane.part03.js +40 -0
- package/dist/split-pane.part03.js.map +1 -0
- package/dist/spring.d.ts +4 -187
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +2 -142
- package/dist/spring.js.map +1 -1
- package/dist/spring.part01.d.ts +90 -0
- package/dist/spring.part01.d.ts.map +1 -0
- package/dist/spring.part01.js +58 -0
- package/dist/spring.part01.js.map +1 -0
- package/dist/spring.part02.d.ts +25 -0
- package/dist/spring.part02.d.ts.map +1 -0
- package/dist/spring.part02.js +21 -0
- package/dist/spring.part02.js.map +1 -0
- package/dist/status-bar.js +1 -1
- package/dist/status-bar.js.map +1 -1
- package/dist/subapp/mount.d.ts +6 -6
- package/dist/subapp/mount.d.ts.map +1 -1
- package/dist/subapp/mount.js +19 -14
- package/dist/subapp/mount.js.map +1 -1
- package/dist/surface-budget-types.d.ts +26 -0
- package/dist/surface-budget-types.d.ts.map +1 -0
- package/dist/surface-budget-types.js +2 -0
- package/dist/surface-budget-types.js.map +1 -0
- package/dist/surface-budget.d.ts +2 -25
- package/dist/surface-budget.d.ts.map +1 -1
- package/dist/surface-budget.js.map +1 -1
- package/dist/surface-diff.js +26 -28
- package/dist/surface-diff.js.map +1 -1
- package/dist/surface-layout.d.ts.map +1 -1
- package/dist/surface-layout.js +1 -2
- package/dist/surface-layout.js.map +1 -1
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +17 -15
- package/dist/timeline.js.map +1 -1
- package/dist/transition-shaders.d.ts +5 -142
- package/dist/transition-shaders.d.ts.map +1 -1
- package/dist/transition-shaders.js +4 -391
- package/dist/transition-shaders.js.map +1 -1
- package/dist/transition-shaders.part01.d.ts +41 -0
- package/dist/transition-shaders.part01.d.ts.map +1 -0
- package/dist/transition-shaders.part01.js +38 -0
- package/dist/transition-shaders.part01.js.map +1 -0
- package/dist/transition-shaders.part02.d.ts +12 -0
- package/dist/transition-shaders.part02.d.ts.map +1 -0
- package/dist/transition-shaders.part02.js +88 -0
- package/dist/transition-shaders.part02.js.map +1 -0
- package/dist/transition-shaders.part03.d.ts +6 -0
- package/dist/transition-shaders.part03.d.ts.map +1 -0
- package/dist/transition-shaders.part03.js +82 -0
- package/dist/transition-shaders.part03.js.map +1 -0
- package/dist/transition-shaders.part04.d.ts +16 -0
- package/dist/transition-shaders.part04.d.ts.map +1 -0
- package/dist/transition-shaders.part04.js +98 -0
- package/dist/transition-shaders.part04.js.map +1 -0
- package/dist/types.d.ts +10 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -36
- package/dist/types.js.map +1 -1
- package/dist/view-output.d.ts +1 -1
- package/dist/view-output.d.ts.map +1 -1
- package/dist/view-output.js +3 -2
- package/dist/view-output.js.map +1 -1
- package/dist/viewport.d.ts +7 -213
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +6 -470
- package/dist/viewport.js.map +1 -1
- package/dist/viewport.part01.d.ts +51 -0
- package/dist/viewport.part01.d.ts.map +1 -0
- package/dist/viewport.part01.js +10 -0
- package/dist/viewport.part01.js.map +1 -0
- package/dist/viewport.part02.d.ts +2 -0
- package/dist/viewport.part02.d.ts.map +1 -0
- package/dist/viewport.part02.js +69 -0
- package/dist/viewport.part02.js.map +1 -0
- package/dist/viewport.part03.d.ts +10 -0
- package/dist/viewport.part03.d.ts.map +1 -0
- package/dist/viewport.part03.js +78 -0
- package/dist/viewport.part03.js.map +1 -0
- package/dist/viewport.part04.d.ts +4 -0
- package/dist/viewport.part04.d.ts.map +1 -0
- package/dist/viewport.part04.js +50 -0
- package/dist/viewport.part04.js.map +1 -0
- package/dist/viewport.part05.d.ts +5 -0
- package/dist/viewport.part05.d.ts.map +1 -0
- package/dist/viewport.part05.js +59 -0
- package/dist/viewport.part05.js.map +1 -0
- package/dist/viewport.part06.d.ts +14 -0
- package/dist/viewport.part06.d.ts.map +1 -0
- package/dist/viewport.part06.js +58 -0
- package/dist/viewport.part06.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -224,6 +224,29 @@ Keep `runScript()` for fixture-style interaction playback and GIF/demo
|
|
|
224
224
|
capture, and use `testRuntime()` when you need direct assertions on
|
|
225
225
|
snapshots, emitted messages, command outcomes, or cleanup disposal.
|
|
226
226
|
|
|
227
|
+
Mouse playback can use helper steps instead of hand-authored `MouseMsg`
|
|
228
|
+
objects. `sgrMouse()` parses raw SGR mouse sequences when a regression should
|
|
229
|
+
match terminal input bytes directly.
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
import { mouseMove, mousePress, mouseRelease, mouseWheel, runScript, sgrMouse } from '@flyingrobots/bijou-tui';
|
|
233
|
+
|
|
234
|
+
await runScript(app, [
|
|
235
|
+
mouseMove(12, 4),
|
|
236
|
+
mousePress('left', 12, 4),
|
|
237
|
+
mouseRelease('left', 12, 4),
|
|
238
|
+
mouseWheel('down', 12, 8),
|
|
239
|
+
sgrMouse('\x1b[<35;10;20M'),
|
|
240
|
+
]);
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
For framed-app integrations that need to wrap or route page-level commands,
|
|
244
|
+
import the page-scoped frame helpers from the package root:
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
import { PAGE_MSG_TOKEN, emitMsgForPage, isPageScopedMsg, wrapCmdForPage, wrapPageMsg } from '@flyingrobots/bijou-tui';
|
|
248
|
+
```
|
|
249
|
+
|
|
227
250
|
Use `surfaceDiffText()` or `surfaceDiffSurface()` when a frame assertion fails
|
|
228
251
|
and you need cell-level truth instead of a raw string dump:
|
|
229
252
|
|
|
@@ -303,10 +326,10 @@ import {
|
|
|
303
326
|
} from '@flyingrobots/bijou-tui';
|
|
304
327
|
|
|
305
328
|
const recognizer = createInputGestureRecognizer({ doubleTapMs: 300 });
|
|
306
|
-
const actions = createInputActionMap<{ type: '
|
|
307
|
-
.bind('
|
|
308
|
-
{ deviceId: 'keyboard', featureId: 'key.
|
|
309
|
-
], { type: '
|
|
329
|
+
const actions = createInputActionMap<{ type: 'open-jump-list' }>()
|
|
330
|
+
.bind('nav.doubleG', 'Open jump list', [
|
|
331
|
+
{ deviceId: 'keyboard', featureId: 'key.g', type: 'double-tap' },
|
|
332
|
+
], { type: 'open-jump-list' });
|
|
310
333
|
|
|
311
334
|
const action = actions.handle(recognizer.observeKey(keyMsg, ctx.runtime.clock.now()));
|
|
312
335
|
```
|
package/dist/accordion.d.ts
CHANGED
|
@@ -1,110 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interactive accordion building block.
|
|
3
|
-
*
|
|
4
|
-
* Wraps the static `accordion()` from bijou core with focus management
|
|
5
|
-
* and expand/collapse state transformers.
|
|
6
|
-
*
|
|
7
|
-
* ```ts
|
|
8
|
-
* // In TEA init:
|
|
9
|
-
* const accState = createAccordionState(sections);
|
|
10
|
-
*
|
|
11
|
-
* // In TEA view:
|
|
12
|
-
* const output = interactiveAccordion(model.accordion);
|
|
13
|
-
*
|
|
14
|
-
* // In TEA update:
|
|
15
|
-
* case 'focus-next':
|
|
16
|
-
* return [{ ...model, accordion: focusNext(model.accordion) }, []];
|
|
17
|
-
* case 'toggle':
|
|
18
|
-
* return [{ ...model, accordion: toggleFocused(model.accordion) }, []];
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import { type AccordionSection, type AccordionOptions, type BijouContext } from '@flyingrobots/bijou';
|
|
22
|
-
import { type KeyMap } from './keybindings.js';
|
|
23
1
|
export type { AccordionSection } from '@flyingrobots/bijou';
|
|
24
|
-
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
readonly sections: readonly AccordionSection[];
|
|
28
|
-
/** Index of the currently focused section. */
|
|
29
|
-
readonly focusIndex: number;
|
|
30
|
-
}
|
|
31
|
-
/** Options for rendering the interactive accordion view. */
|
|
32
|
-
export interface InteractiveAccordionOptions {
|
|
33
|
-
/** Token for the expand/collapse indicator. */
|
|
34
|
-
readonly indicatorToken?: AccordionOptions['indicatorToken'];
|
|
35
|
-
/** Token for section titles. */
|
|
36
|
-
readonly titleToken?: AccordionOptions['titleToken'];
|
|
37
|
-
/** Character for the focus indicator. Default: '>' */
|
|
38
|
-
readonly focusChar?: string;
|
|
39
|
-
/** Bijou context for theming and styling. */
|
|
40
|
-
readonly ctx?: BijouContext;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Create initial accordion state from sections.
|
|
44
|
-
* Preserves existing `expanded` flags; focus starts at index 0.
|
|
45
|
-
*
|
|
46
|
-
* @param sections - Accordion sections to populate the widget.
|
|
47
|
-
* @returns Fresh accordion state with focus on the first section.
|
|
48
|
-
*/
|
|
49
|
-
export declare function createAccordionState(sections: AccordionSection[]): AccordionState;
|
|
50
|
-
/**
|
|
51
|
-
* Move focus to the next section (wraps around).
|
|
52
|
-
*
|
|
53
|
-
* @param state - Current accordion state.
|
|
54
|
-
* @returns Updated accordion state with focus on the next section.
|
|
55
|
-
*/
|
|
56
|
-
export declare function focusNext(state: AccordionState): AccordionState;
|
|
57
|
-
/**
|
|
58
|
-
* Move focus to the previous section (wraps around).
|
|
59
|
-
*
|
|
60
|
-
* @param state - Current accordion state.
|
|
61
|
-
* @returns Updated accordion state with focus on the previous section.
|
|
62
|
-
*/
|
|
63
|
-
export declare function focusPrev(state: AccordionState): AccordionState;
|
|
64
|
-
/**
|
|
65
|
-
* Toggle the expanded state of the focused section.
|
|
66
|
-
*
|
|
67
|
-
* @param state - Current accordion state.
|
|
68
|
-
* @returns Updated accordion state with the focused section toggled.
|
|
69
|
-
*/
|
|
70
|
-
export declare function toggleFocused(state: AccordionState): AccordionState;
|
|
71
|
-
/**
|
|
72
|
-
* Expand all sections.
|
|
73
|
-
*
|
|
74
|
-
* @param state - Current accordion state.
|
|
75
|
-
* @returns Updated accordion state with all sections expanded.
|
|
76
|
-
*/
|
|
77
|
-
export declare function expandAll(state: AccordionState): AccordionState;
|
|
78
|
-
/**
|
|
79
|
-
* Collapse all sections.
|
|
80
|
-
*
|
|
81
|
-
* @param state - Current accordion state.
|
|
82
|
-
* @returns Updated accordion state with all sections collapsed.
|
|
83
|
-
*/
|
|
84
|
-
export declare function collapseAll(state: AccordionState): AccordionState;
|
|
85
|
-
/**
|
|
86
|
-
* Render the interactive accordion with a focus indicator on the
|
|
87
|
-
* currently focused section.
|
|
88
|
-
*
|
|
89
|
-
* Delegates to the static `accordion()` for the actual rendering,
|
|
90
|
-
* then prepends a focus indicator to the focused section's line.
|
|
91
|
-
*
|
|
92
|
-
* @param state - Current accordion state.
|
|
93
|
-
* @param options - Rendering options (indicators, focus char, context).
|
|
94
|
-
* @returns Rendered accordion string with focus indicator on the active section.
|
|
95
|
-
*/
|
|
96
|
-
export declare function interactiveAccordion(state: AccordionState, options?: InteractiveAccordionOptions): string;
|
|
97
|
-
/**
|
|
98
|
-
* Create a preconfigured KeyMap for accordion navigation.
|
|
99
|
-
*
|
|
100
|
-
* @template Msg - Application message type dispatched by key bindings.
|
|
101
|
-
* @param actions - Map of navigation and toggle actions to message values.
|
|
102
|
-
* @returns Preconfigured key map with vim-style accordion bindings.
|
|
103
|
-
*/
|
|
104
|
-
export declare function accordionKeyMap<Msg>(actions: {
|
|
105
|
-
focusNext: Msg;
|
|
106
|
-
focusPrev: Msg;
|
|
107
|
-
toggle: Msg;
|
|
108
|
-
quit: Msg;
|
|
109
|
-
}): KeyMap<Msg>;
|
|
2
|
+
export { collapseAll, createAccordionState, expandAll, focusNext, focusPrev, interactiveAccordion, toggleFocused } from './accordion.part01.js';
|
|
3
|
+
export type { AccordionState, InteractiveAccordionOptions } from './accordion.part01.js';
|
|
4
|
+
export { accordionKeyMap } from './accordion.part02.js';
|
|
110
5
|
//# sourceMappingURL=accordion.d.ts.map
|
package/dist/accordion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChJ,YAAY,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/accordion.js
CHANGED
|
@@ -1,162 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Wraps the static `accordion()` from bijou core with focus management
|
|
5
|
-
* and expand/collapse state transformers.
|
|
6
|
-
*
|
|
7
|
-
* ```ts
|
|
8
|
-
* // In TEA init:
|
|
9
|
-
* const accState = createAccordionState(sections);
|
|
10
|
-
*
|
|
11
|
-
* // In TEA view:
|
|
12
|
-
* const output = interactiveAccordion(model.accordion);
|
|
13
|
-
*
|
|
14
|
-
* // In TEA update:
|
|
15
|
-
* case 'focus-next':
|
|
16
|
-
* return [{ ...model, accordion: focusNext(model.accordion) }, []];
|
|
17
|
-
* case 'toggle':
|
|
18
|
-
* return [{ ...model, accordion: toggleFocused(model.accordion) }, []];
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import { accordion, } from '@flyingrobots/bijou';
|
|
22
|
-
import { createKeyMap } from './keybindings.js';
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
// State creation
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
/**
|
|
27
|
-
* Create initial accordion state from sections.
|
|
28
|
-
* Preserves existing `expanded` flags; focus starts at index 0.
|
|
29
|
-
*
|
|
30
|
-
* @param sections - Accordion sections to populate the widget.
|
|
31
|
-
* @returns Fresh accordion state with focus on the first section.
|
|
32
|
-
*/
|
|
33
|
-
export function createAccordionState(sections) {
|
|
34
|
-
return {
|
|
35
|
-
sections: sections.map((s) => ({ ...s })),
|
|
36
|
-
focusIndex: 0,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// ---------------------------------------------------------------------------
|
|
40
|
-
// State transformers
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
/**
|
|
43
|
-
* Move focus to the next section (wraps around).
|
|
44
|
-
*
|
|
45
|
-
* @param state - Current accordion state.
|
|
46
|
-
* @returns Updated accordion state with focus on the next section.
|
|
47
|
-
*/
|
|
48
|
-
export function focusNext(state) {
|
|
49
|
-
if (state.sections.length === 0)
|
|
50
|
-
return state;
|
|
51
|
-
return {
|
|
52
|
-
...state,
|
|
53
|
-
focusIndex: (state.focusIndex + 1) % state.sections.length,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Move focus to the previous section (wraps around).
|
|
58
|
-
*
|
|
59
|
-
* @param state - Current accordion state.
|
|
60
|
-
* @returns Updated accordion state with focus on the previous section.
|
|
61
|
-
*/
|
|
62
|
-
export function focusPrev(state) {
|
|
63
|
-
if (state.sections.length === 0)
|
|
64
|
-
return state;
|
|
65
|
-
return {
|
|
66
|
-
...state,
|
|
67
|
-
focusIndex: (state.focusIndex - 1 + state.sections.length) % state.sections.length,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Toggle the expanded state of the focused section.
|
|
72
|
-
*
|
|
73
|
-
* @param state - Current accordion state.
|
|
74
|
-
* @returns Updated accordion state with the focused section toggled.
|
|
75
|
-
*/
|
|
76
|
-
export function toggleFocused(state) {
|
|
77
|
-
if (state.sections.length === 0)
|
|
78
|
-
return state;
|
|
79
|
-
const sections = state.sections.map((s, i) => i === state.focusIndex ? { ...s, expanded: !s.expanded } : s);
|
|
80
|
-
return { ...state, sections };
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Expand all sections.
|
|
84
|
-
*
|
|
85
|
-
* @param state - Current accordion state.
|
|
86
|
-
* @returns Updated accordion state with all sections expanded.
|
|
87
|
-
*/
|
|
88
|
-
export function expandAll(state) {
|
|
89
|
-
return { ...state, sections: state.sections.map((s) => ({ ...s, expanded: true })) };
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Collapse all sections.
|
|
93
|
-
*
|
|
94
|
-
* @param state - Current accordion state.
|
|
95
|
-
* @returns Updated accordion state with all sections collapsed.
|
|
96
|
-
*/
|
|
97
|
-
export function collapseAll(state) {
|
|
98
|
-
return { ...state, sections: state.sections.map((s) => ({ ...s, expanded: false })) };
|
|
99
|
-
}
|
|
100
|
-
// ---------------------------------------------------------------------------
|
|
101
|
-
// Render
|
|
102
|
-
// ---------------------------------------------------------------------------
|
|
103
|
-
/**
|
|
104
|
-
* Render the interactive accordion with a focus indicator on the
|
|
105
|
-
* currently focused section.
|
|
106
|
-
*
|
|
107
|
-
* Delegates to the static `accordion()` for the actual rendering,
|
|
108
|
-
* then prepends a focus indicator to the focused section's line.
|
|
109
|
-
*
|
|
110
|
-
* @param state - Current accordion state.
|
|
111
|
-
* @param options - Rendering options (indicators, focus char, context).
|
|
112
|
-
* @returns Rendered accordion string with focus indicator on the active section.
|
|
113
|
-
*/
|
|
114
|
-
export function interactiveAccordion(state, options) {
|
|
115
|
-
if (state.sections.length === 0)
|
|
116
|
-
return '';
|
|
117
|
-
const focusChar = options?.focusChar ?? '>';
|
|
118
|
-
// Normalize focusIndex to avoid stale/out-of-range values
|
|
119
|
-
const focusIndex = ((state.focusIndex % state.sections.length) + state.sections.length) % state.sections.length;
|
|
120
|
-
// Continuation-line padding must match the focus prefix width
|
|
121
|
-
const padWidth = focusChar.length + 1; // focusChar + space
|
|
122
|
-
const continuationPad = ' '.repeat(padWidth);
|
|
123
|
-
// Render each section individually so we can prepend the focus indicator
|
|
124
|
-
const renderedSections = state.sections.map((section, i) => {
|
|
125
|
-
const rendered = accordion([section], {
|
|
126
|
-
indicatorToken: options?.indicatorToken,
|
|
127
|
-
titleToken: options?.titleToken,
|
|
128
|
-
ctx: options?.ctx,
|
|
129
|
-
});
|
|
130
|
-
const prefix = i === focusIndex ? `${focusChar} ` : continuationPad;
|
|
131
|
-
// Prepend the focus indicator to each line of the rendered section
|
|
132
|
-
return rendered
|
|
133
|
-
.split('\n')
|
|
134
|
-
.map((line, lineIdx) => (lineIdx === 0 ? prefix + line : continuationPad + line))
|
|
135
|
-
.join('\n');
|
|
136
|
-
});
|
|
137
|
-
return renderedSections.join('\n\n');
|
|
138
|
-
}
|
|
139
|
-
// ---------------------------------------------------------------------------
|
|
140
|
-
// Convenience keymap
|
|
141
|
-
// ---------------------------------------------------------------------------
|
|
142
|
-
/**
|
|
143
|
-
* Create a preconfigured KeyMap for accordion navigation.
|
|
144
|
-
*
|
|
145
|
-
* @template Msg - Application message type dispatched by key bindings.
|
|
146
|
-
* @param actions - Map of navigation and toggle actions to message values.
|
|
147
|
-
* @returns Preconfigured key map with vim-style accordion bindings.
|
|
148
|
-
*/
|
|
149
|
-
export function accordionKeyMap(actions) {
|
|
150
|
-
return createKeyMap()
|
|
151
|
-
.group('Navigation', (g) => g
|
|
152
|
-
.bind('j', 'Next section', actions.focusNext)
|
|
153
|
-
.bind('down', 'Next section', actions.focusNext)
|
|
154
|
-
.bind('k', 'Previous section', actions.focusPrev)
|
|
155
|
-
.bind('up', 'Previous section', actions.focusPrev))
|
|
156
|
-
.group('Actions', (g) => g
|
|
157
|
-
.bind('enter', 'Toggle section', actions.toggle)
|
|
158
|
-
.bind('space', 'Toggle section', actions.toggle))
|
|
159
|
-
.bind('q', 'Quit', actions.quit)
|
|
160
|
-
.bind('ctrl+c', 'Quit', actions.quit);
|
|
161
|
-
}
|
|
1
|
+
export { collapseAll, createAccordionState, expandAll, focusNext, focusPrev, interactiveAccordion, toggleFocused } from './accordion.part01.js';
|
|
2
|
+
export { accordionKeyMap } from './accordion.part02.js';
|
|
162
3
|
//# sourceMappingURL=accordion.js.map
|
package/dist/accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEhJ,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AccordionOptions, AccordionSection, BijouContext } from '@flyingrobots/bijou';
|
|
2
|
+
export interface AccordionState {
|
|
3
|
+
/** All accordion sections with their expand/collapse state. */
|
|
4
|
+
readonly sections: readonly AccordionSection[];
|
|
5
|
+
/** Index of the currently focused section. */
|
|
6
|
+
readonly focusIndex: number;
|
|
7
|
+
}
|
|
8
|
+
export interface InteractiveAccordionOptions {
|
|
9
|
+
/** Token for the expand/collapse indicator. */
|
|
10
|
+
readonly indicatorToken?: AccordionOptions['indicatorToken'];
|
|
11
|
+
/** Token for section titles. */
|
|
12
|
+
readonly titleToken?: AccordionOptions['titleToken'];
|
|
13
|
+
/** Character for the focus indicator. Default: '>' */
|
|
14
|
+
readonly focusChar?: string;
|
|
15
|
+
/** Bijou context for theming and styling. */
|
|
16
|
+
readonly ctx?: BijouContext;
|
|
17
|
+
}
|
|
18
|
+
export declare function createAccordionState(sections: AccordionSection[]): AccordionState;
|
|
19
|
+
export declare function focusNext(state: AccordionState): AccordionState;
|
|
20
|
+
export declare function focusPrev(state: AccordionState): AccordionState;
|
|
21
|
+
export declare function toggleFocused(state: AccordionState): AccordionState;
|
|
22
|
+
export declare function expandAll(state: AccordionState): AccordionState;
|
|
23
|
+
export declare function collapseAll(state: AccordionState): AccordionState;
|
|
24
|
+
export declare function interactiveAccordion(state: AccordionState, options?: InteractiveAccordionOptions): string;
|
|
25
|
+
//# sourceMappingURL=accordion.part01.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.part01.d.ts","sourceRoot":"","sources":["../src/accordion.part01.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5F,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,2BAA2B;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,gCAAgC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACrD,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AACD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAKjF;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAM/D;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAM/D;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAMnE;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAE/D;AACD,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAEjE;AACD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,2BAA2B,GACpC,MAAM,CA4BR"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { accordion } from '@flyingrobots/bijou';
|
|
2
|
+
export function createAccordionState(sections) {
|
|
3
|
+
return {
|
|
4
|
+
sections: sections.map((s) => ({ ...s })),
|
|
5
|
+
focusIndex: 0,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function focusNext(state) {
|
|
9
|
+
if (state.sections.length === 0)
|
|
10
|
+
return state;
|
|
11
|
+
return {
|
|
12
|
+
...state,
|
|
13
|
+
focusIndex: (state.focusIndex + 1) % state.sections.length,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function focusPrev(state) {
|
|
17
|
+
if (state.sections.length === 0)
|
|
18
|
+
return state;
|
|
19
|
+
return {
|
|
20
|
+
...state,
|
|
21
|
+
focusIndex: (state.focusIndex - 1 + state.sections.length) % state.sections.length,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function toggleFocused(state) {
|
|
25
|
+
if (state.sections.length === 0)
|
|
26
|
+
return state;
|
|
27
|
+
const sections = state.sections.map((s, i) => i === state.focusIndex ? { ...s, expanded: !s.expanded } : s);
|
|
28
|
+
return { ...state, sections };
|
|
29
|
+
}
|
|
30
|
+
export function expandAll(state) {
|
|
31
|
+
return { ...state, sections: state.sections.map((s) => ({ ...s, expanded: true })) };
|
|
32
|
+
}
|
|
33
|
+
export function collapseAll(state) {
|
|
34
|
+
return { ...state, sections: state.sections.map((s) => ({ ...s, expanded: false })) };
|
|
35
|
+
}
|
|
36
|
+
export function interactiveAccordion(state, options) {
|
|
37
|
+
if (state.sections.length === 0)
|
|
38
|
+
return '';
|
|
39
|
+
const focusChar = options?.focusChar ?? '>';
|
|
40
|
+
// Normalize focusIndex to avoid stale/out-of-range values
|
|
41
|
+
const focusIndex = ((state.focusIndex % state.sections.length) + state.sections.length) % state.sections.length;
|
|
42
|
+
// Continuation-line padding must match the focus prefix width
|
|
43
|
+
const padWidth = focusChar.length + 1; // focusChar + space
|
|
44
|
+
const continuationPad = ' '.repeat(padWidth);
|
|
45
|
+
// Render each section individually so we can prepend the focus indicator
|
|
46
|
+
const renderedSections = state.sections.map((section, i) => {
|
|
47
|
+
const rendered = accordion([section], {
|
|
48
|
+
indicatorToken: options?.indicatorToken,
|
|
49
|
+
titleToken: options?.titleToken,
|
|
50
|
+
ctx: options?.ctx,
|
|
51
|
+
});
|
|
52
|
+
const prefix = i === focusIndex ? `${focusChar} ` : continuationPad;
|
|
53
|
+
// Prepend the focus indicator to each line of the rendered section
|
|
54
|
+
return rendered
|
|
55
|
+
.split('\n')
|
|
56
|
+
.map((line, lineIdx) => (lineIdx === 0 ? prefix + line : continuationPad + line))
|
|
57
|
+
.join('\n');
|
|
58
|
+
});
|
|
59
|
+
return renderedSections.join('\n\n');
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=accordion.part01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.part01.js","sourceRoot":"","sources":["../src/accordion.part01.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.part02.d.ts","sourceRoot":"","sources":["../src/accordion.part02.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE;IAC5C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAcd"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createKeyMap } from './keybindings.js';
|
|
2
|
+
export function accordionKeyMap(actions) {
|
|
3
|
+
return createKeyMap()
|
|
4
|
+
.group('Navigation', (g) => g
|
|
5
|
+
.bind('j', 'Next section', actions.focusNext)
|
|
6
|
+
.bind('down', 'Next section', actions.focusNext)
|
|
7
|
+
.bind('k', 'Previous section', actions.focusPrev)
|
|
8
|
+
.bind('up', 'Previous section', actions.focusPrev))
|
|
9
|
+
.group('Actions', (g) => g
|
|
10
|
+
.bind('enter', 'Toggle section', actions.toggle)
|
|
11
|
+
.bind('space', 'Toggle section', actions.toggle))
|
|
12
|
+
.bind('q', 'Quit', actions.quit)
|
|
13
|
+
.bind('ctrl+c', 'Quit', actions.quit);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=accordion.part02.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.part02.js","sourceRoot":"","sources":["../src/accordion.part02.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,UAAU,eAAe,CAAM,OAKpC;IACC,OAAO,YAAY,EAAO;SACvB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC1B,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC;SAC5C,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC;SAC/C,IAAI,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC;SAChD,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,CACnD;SACA,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACvB,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC;SAC/C,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CACjD;SACA,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;SAC/B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/animate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate.d.ts","sourceRoot":"","sources":["../src/animate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAQd,MAAM,aAAa,CAAC;AASrB;;;;GAIG;AACH,UAAU,WAAW,CAAC,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC7D,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IACvD,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC5D,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAMjF;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"animate.d.ts","sourceRoot":"","sources":["../src/animate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAQd,MAAM,aAAa,CAAC;AASrB;;;;GAIG;AACH,UAAU,WAAW,CAAC,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC7D,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IACvD,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC5D,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAMjF;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CA4B7D;AAqID;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAOrD"}
|
package/dist/animate.js
CHANGED
|
@@ -36,10 +36,11 @@ export function animate(options) {
|
|
|
36
36
|
const { from, to, immediate = false, onFrame, onComplete } = options;
|
|
37
37
|
// Immediate mode — single frame, no physics
|
|
38
38
|
if (immediate) {
|
|
39
|
-
return
|
|
39
|
+
return (emit) => {
|
|
40
40
|
emit(onFrame(to));
|
|
41
41
|
if (onComplete)
|
|
42
42
|
emit(onComplete());
|
|
43
|
+
return undefined;
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
if (options.type === 'tween') {
|
|
@@ -88,7 +89,7 @@ function createSpringCmd(from, to, config, integration, onFrame, onComplete) {
|
|
|
88
89
|
handle.dispose();
|
|
89
90
|
if (onComplete)
|
|
90
91
|
emit(onComplete());
|
|
91
|
-
resolve();
|
|
92
|
+
resolve(undefined);
|
|
92
93
|
}
|
|
93
94
|
});
|
|
94
95
|
});
|
|
@@ -135,14 +136,11 @@ function createTweenCmd(from, to, duration, ease, onFrame, onComplete) {
|
|
|
135
136
|
handle.dispose();
|
|
136
137
|
if (onComplete)
|
|
137
138
|
emit(onComplete());
|
|
138
|
-
resolve();
|
|
139
|
+
resolve(undefined);
|
|
139
140
|
}
|
|
140
141
|
});
|
|
141
142
|
});
|
|
142
143
|
}
|
|
143
|
-
// ---------------------------------------------------------------------------
|
|
144
|
-
// sequence() — chain animations like a GSAP timeline
|
|
145
|
-
// ---------------------------------------------------------------------------
|
|
146
144
|
/**
|
|
147
145
|
* Run animations in sequence. Each animation completes before the next starts.
|
|
148
146
|
*
|
|
@@ -155,6 +153,7 @@ export function sequence(...cmds) {
|
|
|
155
153
|
for (const cmd of cmds) {
|
|
156
154
|
await cmd(emit, caps);
|
|
157
155
|
}
|
|
156
|
+
return undefined;
|
|
158
157
|
};
|
|
159
158
|
}
|
|
160
159
|
//# sourceMappingURL=animate.js.map
|
package/dist/animate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate.js","sourceRoot":"","sources":["../src/animate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAIL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,MAAM,iCAAiC,GAAG,CAAC,GAAG,GAAG,CAAC;AAClD,MAAM,gCAAgC,GAAG,CAAC,GAAG,EAAE,CAAC;AA6DhD,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAAI,OAA0B;IACnD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAErE,4CAA4C;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,
|
|
1
|
+
{"version":3,"file":"animate.js","sourceRoot":"","sources":["../src/animate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State reducers for `app-frame.ts`.
|
|
3
|
-
*
|
|
4
|
-
* Tab switching, pane cycling, scroll actions, minimize/maximize/dock,
|
|
5
|
-
* page frame state sync, and transition tick command.
|
|
6
|
-
*/
|
|
7
1
|
import type { FramePage, CreateFramedAppOptions } from './app-frame.js';
|
|
8
2
|
import type { InternalFrameModel, FrameAction, FramedAppMsg } from './app-frame-types.js';
|
|
9
3
|
import type { Cmd } from './types.js';
|
|
10
4
|
import type { DockDirection } from './panel-dock.js';
|
|
11
|
-
/** Dispatch a frame-level action (tab switch, pane cycle, scroll, palette, help toggle, transitions). */
|
|
12
5
|
export declare function applyFrameAction<PageModel, Msg>(action: FrameAction, model: InternalFrameModel<PageModel, Msg>, options: CreateFramedAppOptions<PageModel, Msg>, pagesById: Map<string, FramePage<PageModel, Msg>>): [InternalFrameModel<PageModel, Msg>, Cmd<FramedAppMsg<Msg>>[]];
|
|
13
|
-
/** Cycle the active tab by `delta` positions, optionally starting a transition. */
|
|
14
6
|
export declare function switchTab<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, delta: number, pagesById: Map<string, FramePage<PageModel, Msg>>, options: CreateFramedAppOptions<PageModel, Msg>): [InternalFrameModel<PageModel, Msg>, Cmd<FramedAppMsg<Msg>>[]];
|
|
15
|
-
/** Move focus to the next or previous pane in the active page's layout. */
|
|
16
7
|
export declare function cyclePane<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, delta: number, pagesById: Map<string, FramePage<PageModel, Msg>>): InternalFrameModel<PageModel, Msg>;
|
|
17
|
-
/** Apply a scroll action to the currently focused pane. */
|
|
18
8
|
export declare function scrollFocusedPane<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, action: Extract<FrameAction, {
|
|
19
9
|
type: 'scroll-up' | 'scroll-down' | 'page-up' | 'page-down' | 'top' | 'bottom' | 'scroll-left' | 'scroll-right';
|
|
20
10
|
}>, pagesById: Map<string, FramePage<PageModel, Msg>>, options: CreateFramedAppOptions<PageModel, Msg>): InternalFrameModel<PageModel, Msg>;
|
|
21
|
-
/** Toggle minimize on the focused pane of the active page. */
|
|
22
11
|
export declare function applyToggleMinimize<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, pagesById: Map<string, FramePage<PageModel, Msg>>): InternalFrameModel<PageModel, Msg>;
|
|
23
|
-
|
|
24
|
-
export declare function applyToggleMaximize<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, _pagesById: Map<string, FramePage<PageModel, Msg>>): InternalFrameModel<PageModel, Msg>;
|
|
25
|
-
/** Move the focused pane within its container in the given direction. */
|
|
12
|
+
export declare function applyToggleMaximize<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>): InternalFrameModel<PageModel, Msg>;
|
|
26
13
|
export declare function applyDockMove<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, direction: DockDirection, pagesById: Map<string, FramePage<PageModel, Msg>>): InternalFrameModel<PageModel, Msg>;
|
|
27
|
-
/** Reconcile pane IDs, scroll offsets, and focus for a page after init, tab switches, or window resizes. */
|
|
28
14
|
export declare function syncPageFrameState<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, pageId: string, pagesById: Map<string, FramePage<PageModel, Msg>>): InternalFrameModel<PageModel, Msg>;
|
|
29
|
-
/**
|
|
30
|
-
* Create a TEA command that drives transition re-renders from the shared pulse.
|
|
31
|
-
*/
|
|
32
15
|
export declare function createTransitionTickCmd<Msg>(durationMs: number, generation: number): Cmd<FramedAppMsg<Msg>>;
|
|
33
16
|
//# sourceMappingURL=app-frame-actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame-actions.d.ts","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-frame-actions.d.ts","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"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"}
|