@flyingrobots/bijou-tui 7.1.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 +44 -42
- 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 +19 -2
- package/dist/app-frame-i18n.js.map +1 -1
- package/dist/app-frame-overlays.d.ts +1 -8
- package/dist/app-frame-overlays.d.ts.map +1 -1
- package/dist/app-frame-overlays.js +54 -24
- 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 +14 -3
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +295 -231
- 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 -164
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +3 -292
- 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 -80
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -107
- 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 +2 -44
- package/dist/raster-glyph.d.ts.map +1 -1
- package/dist/raster-glyph.js +1 -404
- package/dist/raster-glyph.js.map +1 -1
- 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 +33 -59
- 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 +48 -5
- 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/dist/dag-pane.js
CHANGED
|
@@ -1,517 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Composes `dagLayout()` with `focusArea()` to provide a scrollable,
|
|
5
|
-
* keyboard-navigable DAG viewer with arrow-key node selection,
|
|
6
|
-
* auto-scroll-to-selection, and auto-highlight-path.
|
|
7
|
-
*
|
|
8
|
-
* Follows the building block pattern: immutable state + pure transformers +
|
|
9
|
-
* pure render + convenience keymap factory.
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* // In TEA init:
|
|
13
|
-
* const pane = createDagPaneState({ source: nodes, width: 80, height: 24, ctx });
|
|
14
|
-
*
|
|
15
|
-
* // In TEA view:
|
|
16
|
-
* const output = dagPane(pane, { focused: true, ctx });
|
|
17
|
-
*
|
|
18
|
-
* // In TEA update:
|
|
19
|
-
* case 'select-child':
|
|
20
|
-
* return [{ ...model, pane: dagPaneSelectChild(model.pane, ctx) }, []];
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
import { dagLayout, isSlicedDagSource } from '@flyingrobots/bijou';
|
|
24
|
-
import { createFocusAreaState, focusArea, focusAreaScrollBy, focusAreaScrollToTop, focusAreaScrollToBottom, focusAreaPageDown, focusAreaPageUp, focusAreaScrollByX, focusAreaSetContent, } from './focus-area.js';
|
|
25
|
-
import { scrollTo, scrollToX } from './viewport.js';
|
|
26
|
-
import { createKeyMap } from './keybindings.js';
|
|
27
|
-
/** Build parent/child adjacency maps from either a DagNode array or SlicedDagSource. */
|
|
28
|
-
function buildAdjacency(source) {
|
|
29
|
-
const childMap = new Map();
|
|
30
|
-
const parentMap = new Map();
|
|
31
|
-
if (isSlicedDagSource(source)) {
|
|
32
|
-
const ids = source.ids();
|
|
33
|
-
const idSet = new Set(ids);
|
|
34
|
-
for (const id of ids) {
|
|
35
|
-
const children = source.children(id).filter((c) => idSet.has(c));
|
|
36
|
-
childMap.set(id, [...children]);
|
|
37
|
-
if (!parentMap.has(id))
|
|
38
|
-
parentMap.set(id, []);
|
|
39
|
-
for (const child of children) {
|
|
40
|
-
let parents = parentMap.get(child);
|
|
41
|
-
if (!parents) {
|
|
42
|
-
parents = [];
|
|
43
|
-
parentMap.set(child, parents);
|
|
44
|
-
}
|
|
45
|
-
parents.push(id);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const idSet = new Set(source.map((n) => n.id));
|
|
51
|
-
for (const node of source) {
|
|
52
|
-
const children = (node.edges ?? []).filter((e) => idSet.has(e));
|
|
53
|
-
childMap.set(node.id, children);
|
|
54
|
-
if (!parentMap.has(node.id))
|
|
55
|
-
parentMap.set(node.id, []);
|
|
56
|
-
for (const child of children) {
|
|
57
|
-
let parents = parentMap.get(child);
|
|
58
|
-
if (!parents) {
|
|
59
|
-
parents = [];
|
|
60
|
-
parentMap.set(child, parents);
|
|
61
|
-
}
|
|
62
|
-
parents.push(node.id);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const roots = [];
|
|
67
|
-
for (const [id, parents] of parentMap) {
|
|
68
|
-
if (parents.length === 0)
|
|
69
|
-
roots.push(id);
|
|
70
|
-
}
|
|
71
|
-
// Also add any nodes that are in childMap but not parentMap (shouldn't happen, but safe)
|
|
72
|
-
for (const id of childMap.keys()) {
|
|
73
|
-
if (!parentMap.has(id))
|
|
74
|
-
roots.push(id);
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
children: childMap,
|
|
78
|
-
parents: parentMap,
|
|
79
|
-
roots,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Internal: Highlight path computation
|
|
84
|
-
// ---------------------------------------------------------------------------
|
|
85
|
-
/** BFS upward from the selected node to a root, returning the path for highlighting. */
|
|
86
|
-
function computeHighlightPath(selectedId, adjacency) {
|
|
87
|
-
if (!selectedId)
|
|
88
|
-
return [];
|
|
89
|
-
// BFS upward from selected to find a root, then reverse
|
|
90
|
-
const visited = new Set();
|
|
91
|
-
const cameFrom = new Map();
|
|
92
|
-
const queue = [selectedId];
|
|
93
|
-
visited.add(selectedId);
|
|
94
|
-
let rootFound;
|
|
95
|
-
while (queue.length > 0) {
|
|
96
|
-
const current = queue.shift();
|
|
97
|
-
const parents = adjacency.parents.get(current) ?? [];
|
|
98
|
-
if (parents.length === 0) {
|
|
99
|
-
rootFound = current;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
for (const parent of parents) {
|
|
103
|
-
if (!visited.has(parent)) {
|
|
104
|
-
visited.add(parent);
|
|
105
|
-
cameFrom.set(parent, current);
|
|
106
|
-
queue.push(parent);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (rootFound === undefined) {
|
|
111
|
-
// Selected node is itself a root (or disconnected)
|
|
112
|
-
return [selectedId];
|
|
113
|
-
}
|
|
114
|
-
// Reconstruct path from root to selected
|
|
115
|
-
const path = [];
|
|
116
|
-
let cursor = rootFound;
|
|
117
|
-
while (cursor !== undefined) {
|
|
118
|
-
path.push(cursor);
|
|
119
|
-
if (cursor === selectedId)
|
|
120
|
-
break;
|
|
121
|
-
cursor = cameFrom.get(cursor);
|
|
122
|
-
}
|
|
123
|
-
// If we couldn't reach selectedId from the root, just return selected
|
|
124
|
-
if (path[path.length - 1] !== selectedId) {
|
|
125
|
-
return [selectedId];
|
|
126
|
-
}
|
|
127
|
-
return path;
|
|
128
|
-
}
|
|
129
|
-
// ---------------------------------------------------------------------------
|
|
130
|
-
// Internal: Spatial navigation helpers
|
|
131
|
-
// ---------------------------------------------------------------------------
|
|
132
|
-
/** Pick the candidate node whose horizontal center is closest to the given column. */
|
|
133
|
-
function closestByCol(candidates, currentCenter, positions) {
|
|
134
|
-
let best;
|
|
135
|
-
let bestDist = Infinity;
|
|
136
|
-
for (const id of candidates) {
|
|
137
|
-
const pos = positions.get(id);
|
|
138
|
-
if (!pos)
|
|
139
|
-
continue;
|
|
140
|
-
const center = pos.col + pos.width / 2;
|
|
141
|
-
const dist = Math.abs(center - currentCenter);
|
|
142
|
-
if (dist < bestDist) {
|
|
143
|
-
bestDist = dist;
|
|
144
|
-
best = id;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return best;
|
|
148
|
-
}
|
|
149
|
-
/** Return all node IDs positioned on the given grid row, sorted by column. */
|
|
150
|
-
function nodesOnSameRow(row, positions) {
|
|
151
|
-
const result = [];
|
|
152
|
-
for (const [id, pos] of positions) {
|
|
153
|
-
if (pos.row === row)
|
|
154
|
-
result.push(id);
|
|
155
|
-
}
|
|
156
|
-
return result.sort((a, b) => {
|
|
157
|
-
const pa = positions.get(a);
|
|
158
|
-
const pb = positions.get(b);
|
|
159
|
-
return pa.col - pb.col;
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
// ---------------------------------------------------------------------------
|
|
163
|
-
// Internal: Auto-scroll to node
|
|
164
|
-
// ---------------------------------------------------------------------------
|
|
165
|
-
/** Adjust scroll offsets so the given node is visible within the focus area viewport. */
|
|
166
|
-
function scrollToNode(faState, nodePos) {
|
|
167
|
-
let scroll = faState.scroll;
|
|
168
|
-
// Vertical: ensure node box (row .. row+height) is within viewport
|
|
169
|
-
const nodeTop = nodePos.row;
|
|
170
|
-
const nodeBottom = nodePos.row + nodePos.height - 1;
|
|
171
|
-
const viewTop = scroll.y;
|
|
172
|
-
const viewBottom = scroll.y + faState.height - 1;
|
|
173
|
-
if (nodeTop < viewTop) {
|
|
174
|
-
scroll = scrollTo(scroll, nodeTop);
|
|
175
|
-
}
|
|
176
|
-
else if (nodeBottom > viewBottom) {
|
|
177
|
-
scroll = scrollTo(scroll, nodeBottom - faState.height + 1);
|
|
178
|
-
}
|
|
179
|
-
// Horizontal: ensure node box (col .. col+width) is within viewport
|
|
180
|
-
if (faState.overflowX === 'scroll') {
|
|
181
|
-
const contentWidth = Math.max(1, faState.width - 1); // minus gutter
|
|
182
|
-
const nodeLeft = nodePos.col;
|
|
183
|
-
const nodeRight = nodePos.col + nodePos.width - 1;
|
|
184
|
-
const viewLeft = scroll.x;
|
|
185
|
-
const viewRight = scroll.x + contentWidth - 1;
|
|
186
|
-
if (nodeLeft < viewLeft) {
|
|
187
|
-
scroll = scrollToX(scroll, nodeLeft);
|
|
188
|
-
}
|
|
189
|
-
else if (nodeRight > viewRight) {
|
|
190
|
-
scroll = scrollToX(scroll, nodeRight - contentWidth + 1);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return { ...faState, scroll };
|
|
194
|
-
}
|
|
195
|
-
// ---------------------------------------------------------------------------
|
|
196
|
-
// Internal: Selection update
|
|
197
|
-
// ---------------------------------------------------------------------------
|
|
198
|
-
/** Re-render the DAG layout with the current selection and highlight path. */
|
|
199
|
-
function renderLayout(source, selectedId, highlightPath, dagOptions, ctx) {
|
|
200
|
-
const opts = {
|
|
201
|
-
...dagOptions,
|
|
202
|
-
selectedId,
|
|
203
|
-
highlightPath: highlightPath.length > 0 ? [...highlightPath] : undefined,
|
|
204
|
-
ctx,
|
|
205
|
-
};
|
|
206
|
-
// Type narrowing required — dagLayout has separate overloads for
|
|
207
|
-
// DagNode[] and SlicedDagSource; a union won't resolve either overload.
|
|
208
|
-
return isSlicedDagSource(source)
|
|
209
|
-
? dagLayout(source, opts)
|
|
210
|
-
: dagLayout(source, opts);
|
|
211
|
-
}
|
|
212
|
-
/** Update the selected node, recompute highlights and layout, and auto-scroll. */
|
|
213
|
-
function updateSelection(state, newId, adjacency, ctx) {
|
|
214
|
-
const highlightPath = computeHighlightPath(newId, adjacency);
|
|
215
|
-
const layout = renderLayout(state.source, newId, highlightPath, state.dagOptions, ctx);
|
|
216
|
-
let fa = focusAreaSetContent(state.focusArea, layout.output);
|
|
217
|
-
// Auto-scroll to selected node
|
|
218
|
-
if (newId) {
|
|
219
|
-
const nodePos = layout.nodes.get(newId);
|
|
220
|
-
if (nodePos) {
|
|
221
|
-
fa = scrollToNode(fa, nodePos);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return {
|
|
225
|
-
...state,
|
|
226
|
-
selectedId: newId,
|
|
227
|
-
highlightPath,
|
|
228
|
-
layout,
|
|
229
|
-
focusArea: fa,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
// ---------------------------------------------------------------------------
|
|
233
|
-
// State creation
|
|
234
|
-
// ---------------------------------------------------------------------------
|
|
235
|
-
/**
|
|
236
|
-
* Create initial DAG pane state for the given source and dimensions.
|
|
237
|
-
*
|
|
238
|
-
* @param options - Source, dimensions, and rendering options.
|
|
239
|
-
* @returns Fresh DAG pane state.
|
|
240
|
-
*/
|
|
241
|
-
export function createDagPaneState(options) {
|
|
242
|
-
const { source, width, height, selectedId, overflowX = 'scroll', dagOptions = {}, ctx, } = options;
|
|
243
|
-
const adjacency = buildAdjacency(source);
|
|
244
|
-
// Validate selectedId — fall back to no selection if not in the source
|
|
245
|
-
const validatedId = selectedId !== undefined && adjacency.children.has(selectedId) ? selectedId : undefined;
|
|
246
|
-
const highlightPath = computeHighlightPath(validatedId, adjacency);
|
|
247
|
-
const layout = renderLayout(source, validatedId, highlightPath, dagOptions, ctx);
|
|
248
|
-
const fa = createFocusAreaState({
|
|
249
|
-
content: layout.output,
|
|
250
|
-
width,
|
|
251
|
-
height,
|
|
252
|
-
overflowX,
|
|
253
|
-
});
|
|
254
|
-
// Auto-scroll to initial selection
|
|
255
|
-
let finalFa = fa;
|
|
256
|
-
if (validatedId) {
|
|
257
|
-
const nodePos = layout.nodes.get(validatedId);
|
|
258
|
-
if (nodePos) {
|
|
259
|
-
finalFa = scrollToNode(fa, nodePos);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
source,
|
|
264
|
-
selectedId: validatedId,
|
|
265
|
-
layout,
|
|
266
|
-
highlightPath,
|
|
267
|
-
focusArea: finalFa,
|
|
268
|
-
dagOptions,
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
// ---------------------------------------------------------------------------
|
|
272
|
-
// Navigation transformers
|
|
273
|
-
// ---------------------------------------------------------------------------
|
|
274
|
-
/**
|
|
275
|
-
* Select a child node (arrow down).
|
|
276
|
-
* If nothing is selected, auto-selects the first root node.
|
|
277
|
-
*
|
|
278
|
-
* @param state - Current DAG pane state.
|
|
279
|
-
* @param ctx - Bijou context for re-rendering.
|
|
280
|
-
* @returns Updated state with new selection.
|
|
281
|
-
*/
|
|
282
|
-
export function dagPaneSelectChild(state, ctx) {
|
|
283
|
-
const adjacency = buildAdjacency(state.source);
|
|
284
|
-
if (!state.selectedId) {
|
|
285
|
-
const firstRoot = adjacency.roots[0];
|
|
286
|
-
return firstRoot ? updateSelection(state, firstRoot, adjacency, ctx) : state;
|
|
287
|
-
}
|
|
288
|
-
const children = adjacency.children.get(state.selectedId) ?? [];
|
|
289
|
-
if (children.length === 0)
|
|
290
|
-
return state;
|
|
291
|
-
const currentPos = state.layout.nodes.get(state.selectedId);
|
|
292
|
-
const currentCenter = currentPos ? currentPos.col + currentPos.width / 2 : 0;
|
|
293
|
-
const target = closestByCol(children, currentCenter, state.layout.nodes);
|
|
294
|
-
return target ? updateSelection(state, target, adjacency, ctx) : state;
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Select a parent node (arrow up).
|
|
298
|
-
* If nothing is selected, auto-selects the first root node.
|
|
299
|
-
*
|
|
300
|
-
* @param state - Current DAG pane state.
|
|
301
|
-
* @param ctx - Bijou context for re-rendering.
|
|
302
|
-
* @returns Updated state with new selection.
|
|
303
|
-
*/
|
|
304
|
-
export function dagPaneSelectParent(state, ctx) {
|
|
305
|
-
const adjacency = buildAdjacency(state.source);
|
|
306
|
-
if (!state.selectedId) {
|
|
307
|
-
const firstRoot = adjacency.roots[0];
|
|
308
|
-
return firstRoot ? updateSelection(state, firstRoot, adjacency, ctx) : state;
|
|
309
|
-
}
|
|
310
|
-
const parents = adjacency.parents.get(state.selectedId) ?? [];
|
|
311
|
-
if (parents.length === 0)
|
|
312
|
-
return state;
|
|
313
|
-
const currentPos = state.layout.nodes.get(state.selectedId);
|
|
314
|
-
const currentCenter = currentPos ? currentPos.col + currentPos.width / 2 : 0;
|
|
315
|
-
const target = closestByCol(parents, currentCenter, state.layout.nodes);
|
|
316
|
-
return target ? updateSelection(state, target, adjacency, ctx) : state;
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Select the sibling node to the left in the same layer.
|
|
320
|
-
* If nothing is selected, auto-selects the first root node.
|
|
321
|
-
*
|
|
322
|
-
* @param state - Current DAG pane state.
|
|
323
|
-
* @param ctx - Bijou context for re-rendering.
|
|
324
|
-
* @returns Updated state with new selection.
|
|
325
|
-
*/
|
|
326
|
-
export function dagPaneSelectLeft(state, ctx) {
|
|
327
|
-
const adjacency = buildAdjacency(state.source);
|
|
328
|
-
if (!state.selectedId) {
|
|
329
|
-
const firstRoot = adjacency.roots[0];
|
|
330
|
-
return firstRoot ? updateSelection(state, firstRoot, adjacency, ctx) : state;
|
|
331
|
-
}
|
|
332
|
-
const currentPos = state.layout.nodes.get(state.selectedId);
|
|
333
|
-
if (!currentPos)
|
|
334
|
-
return state;
|
|
335
|
-
const siblings = nodesOnSameRow(currentPos.row, state.layout.nodes);
|
|
336
|
-
const idx = siblings.indexOf(state.selectedId);
|
|
337
|
-
if (idx <= 0)
|
|
338
|
-
return state; // already leftmost
|
|
339
|
-
return updateSelection(state, siblings[idx - 1], adjacency, ctx);
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Select the sibling node to the right in the same layer.
|
|
343
|
-
* If nothing is selected, auto-selects the first root node.
|
|
344
|
-
*
|
|
345
|
-
* @param state - Current DAG pane state.
|
|
346
|
-
* @param ctx - Bijou context for re-rendering.
|
|
347
|
-
* @returns Updated state with new selection.
|
|
348
|
-
*/
|
|
349
|
-
export function dagPaneSelectRight(state, ctx) {
|
|
350
|
-
const adjacency = buildAdjacency(state.source);
|
|
351
|
-
if (!state.selectedId) {
|
|
352
|
-
const firstRoot = adjacency.roots[0];
|
|
353
|
-
return firstRoot ? updateSelection(state, firstRoot, adjacency, ctx) : state;
|
|
354
|
-
}
|
|
355
|
-
const currentPos = state.layout.nodes.get(state.selectedId);
|
|
356
|
-
if (!currentPos)
|
|
357
|
-
return state;
|
|
358
|
-
const siblings = nodesOnSameRow(currentPos.row, state.layout.nodes);
|
|
359
|
-
const idx = siblings.indexOf(state.selectedId);
|
|
360
|
-
if (idx < 0 || idx >= siblings.length - 1)
|
|
361
|
-
return state; // already rightmost
|
|
362
|
-
return updateSelection(state, siblings[idx + 1], adjacency, ctx);
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Select a specific node by ID.
|
|
366
|
-
* If the ID is not found in the layout, returns state unchanged (no selection).
|
|
367
|
-
*
|
|
368
|
-
* @param state - Current DAG pane state.
|
|
369
|
-
* @param nodeId - ID of the node to select.
|
|
370
|
-
* @param ctx - Bijou context for re-rendering.
|
|
371
|
-
* @returns Updated state with new selection.
|
|
372
|
-
*/
|
|
373
|
-
export function dagPaneSelectNode(state, nodeId, ctx) {
|
|
374
|
-
if (!state.layout.nodes.has(nodeId)) {
|
|
375
|
-
return state;
|
|
376
|
-
}
|
|
377
|
-
const adjacency = buildAdjacency(state.source);
|
|
378
|
-
return updateSelection(state, nodeId, adjacency, ctx);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Clear the current selection.
|
|
382
|
-
*
|
|
383
|
-
* @param state - Current DAG pane state.
|
|
384
|
-
* @param ctx - Bijou context for re-rendering.
|
|
385
|
-
* @returns Updated state with no selection.
|
|
386
|
-
*/
|
|
387
|
-
export function dagPaneClearSelection(state, ctx) {
|
|
388
|
-
const adjacency = buildAdjacency(state.source);
|
|
389
|
-
return updateSelection(state, undefined, adjacency, ctx);
|
|
390
|
-
}
|
|
391
|
-
// ---------------------------------------------------------------------------
|
|
392
|
-
// Scroll transformers
|
|
393
|
-
// ---------------------------------------------------------------------------
|
|
394
|
-
/**
|
|
395
|
-
* Scroll vertically by a relative amount.
|
|
396
|
-
*
|
|
397
|
-
* @param state - Current DAG pane state.
|
|
398
|
-
* @param dy - Relative vertical offset (positive = down).
|
|
399
|
-
* @returns Updated state.
|
|
400
|
-
*/
|
|
401
|
-
export function dagPaneScrollBy(state, dy) {
|
|
402
|
-
return { ...state, focusArea: focusAreaScrollBy(state.focusArea, dy) };
|
|
403
|
-
}
|
|
404
|
-
/**
|
|
405
|
-
* Scroll to the top.
|
|
406
|
-
*
|
|
407
|
-
* @param state - Current DAG pane state.
|
|
408
|
-
* @returns Updated state.
|
|
409
|
-
*/
|
|
410
|
-
export function dagPaneScrollToTop(state) {
|
|
411
|
-
return { ...state, focusArea: focusAreaScrollToTop(state.focusArea) };
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Scroll to the bottom.
|
|
415
|
-
*
|
|
416
|
-
* @param state - Current DAG pane state.
|
|
417
|
-
* @returns Updated state.
|
|
418
|
-
*/
|
|
419
|
-
export function dagPaneScrollToBottom(state) {
|
|
420
|
-
return { ...state, focusArea: focusAreaScrollToBottom(state.focusArea) };
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Page down.
|
|
424
|
-
*
|
|
425
|
-
* @param state - Current DAG pane state.
|
|
426
|
-
* @returns Updated state.
|
|
427
|
-
*/
|
|
428
|
-
export function dagPanePageDown(state) {
|
|
429
|
-
return { ...state, focusArea: focusAreaPageDown(state.focusArea) };
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* Page up.
|
|
433
|
-
*
|
|
434
|
-
* @param state - Current DAG pane state.
|
|
435
|
-
* @returns Updated state.
|
|
436
|
-
*/
|
|
437
|
-
export function dagPanePageUp(state) {
|
|
438
|
-
return { ...state, focusArea: focusAreaPageUp(state.focusArea) };
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Scroll horizontally by a relative amount.
|
|
442
|
-
*
|
|
443
|
-
* @param state - Current DAG pane state.
|
|
444
|
-
* @param dx - Relative horizontal offset (positive = right).
|
|
445
|
-
* @returns Updated state.
|
|
446
|
-
*/
|
|
447
|
-
export function dagPaneScrollByX(state, dx) {
|
|
448
|
-
return { ...state, focusArea: focusAreaScrollByX(state.focusArea, dx) };
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Replace the graph source and re-render. Clears selection.
|
|
452
|
-
*
|
|
453
|
-
* @param state - Current DAG pane state.
|
|
454
|
-
* @param source - New graph data source.
|
|
455
|
-
* @param ctx - Bijou context for re-rendering.
|
|
456
|
-
* @returns Updated state with new source and cleared selection.
|
|
457
|
-
*/
|
|
458
|
-
export function dagPaneSetSource(state, source, ctx) {
|
|
459
|
-
const highlightPath = [];
|
|
460
|
-
const layout = renderLayout(source, undefined, highlightPath, state.dagOptions, ctx);
|
|
461
|
-
const fa = focusAreaSetContent(state.focusArea, layout.output);
|
|
462
|
-
return {
|
|
463
|
-
...state,
|
|
464
|
-
source,
|
|
465
|
-
selectedId: undefined,
|
|
466
|
-
highlightPath,
|
|
467
|
-
layout,
|
|
468
|
-
focusArea: fa,
|
|
469
|
-
};
|
|
470
|
-
}
|
|
471
|
-
// ---------------------------------------------------------------------------
|
|
472
|
-
// Render
|
|
473
|
-
// ---------------------------------------------------------------------------
|
|
474
|
-
/**
|
|
475
|
-
* Render the DAG pane — focus area wrapping the DAG layout output.
|
|
476
|
-
*
|
|
477
|
-
* @param state - Current DAG pane state.
|
|
478
|
-
* @param options - Rendering options (focus, tokens, scrollbar, ctx).
|
|
479
|
-
* @returns Rendered DAG pane string.
|
|
480
|
-
*/
|
|
481
|
-
export function dagPane(state, options) {
|
|
482
|
-
return focusArea(state.focusArea, options);
|
|
483
|
-
}
|
|
484
|
-
// ---------------------------------------------------------------------------
|
|
485
|
-
// Convenience keymap
|
|
486
|
-
// ---------------------------------------------------------------------------
|
|
487
|
-
/**
|
|
488
|
-
* Create a preconfigured KeyMap for DAG pane interaction.
|
|
489
|
-
*
|
|
490
|
-
* Arrow keys are bound to node selection. Vim keys (j/k/h/l) are bound
|
|
491
|
-
* to scroll. `Enter` confirms, `q`/`Ctrl+C` quits.
|
|
492
|
-
*
|
|
493
|
-
* @template Msg - Application message type dispatched by key bindings.
|
|
494
|
-
* @param actions - Map of actions to message values.
|
|
495
|
-
* @returns Preconfigured key map with DAG pane bindings.
|
|
496
|
-
*/
|
|
497
|
-
export function dagPaneKeyMap(actions) {
|
|
498
|
-
return createKeyMap()
|
|
499
|
-
.group('Selection', (g) => g
|
|
500
|
-
.bind('up', 'Select parent', actions.selectParent)
|
|
501
|
-
.bind('down', 'Select child', actions.selectChild)
|
|
502
|
-
.bind('left', 'Select left', actions.selectLeft)
|
|
503
|
-
.bind('right', 'Select right', actions.selectRight))
|
|
504
|
-
.group('Scroll', (g) => g
|
|
505
|
-
.bind('j', 'Down', actions.scrollDown)
|
|
506
|
-
.bind('k', 'Up', actions.scrollUp)
|
|
507
|
-
.bind('h', 'Scroll left', actions.scrollLeft)
|
|
508
|
-
.bind('l', 'Scroll right', actions.scrollRight)
|
|
509
|
-
.bind('d', 'Page down', actions.pageDown)
|
|
510
|
-
.bind('u', 'Page up', actions.pageUp)
|
|
511
|
-
.bind('g', 'Top', actions.top)
|
|
512
|
-
.bind('shift+g', 'Bottom', actions.bottom))
|
|
513
|
-
.bind('enter', 'Confirm', actions.confirm)
|
|
514
|
-
.bind('q', 'Quit', actions.quit)
|
|
515
|
-
.bind('ctrl+c', 'Quit', actions.quit);
|
|
516
|
-
}
|
|
1
|
+
export { createDagPaneState, dagPaneSelectChild, dagPaneSelectLeft, dagPaneSelectParent } from './dag-pane.part05.js';
|
|
2
|
+
export { dagPane, dagPaneClearSelection, dagPanePageDown, dagPanePageUp, dagPaneScrollBy, dagPaneScrollByX, dagPaneScrollToBottom, dagPaneScrollToTop, dagPaneSelectNode, dagPaneSelectRight, dagPaneSetSource } from './dag-pane.part06.js';
|
|
3
|
+
export { dagPaneKeyMap } from './dag-pane.part07.js';
|
|
517
4
|
//# sourceMappingURL=dag-pane.js.map
|
package/dist/dag-pane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag-pane.js","sourceRoot":"","sources":["../src/dag-pane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dag-pane.js","sourceRoot":"","sources":["../src/dag-pane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7O,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { BijouContext, DagLayout, DagNode, SlicedDagSource, TokenValue } from '@flyingrobots/bijou';
|
|
2
|
+
import type { FocusAreaRenderOptions, FocusAreaState, OverflowX } from './focus-area.js';
|
|
3
|
+
export interface DagPaneDagOptions {
|
|
4
|
+
/** Default color/style token for node box borders. */
|
|
5
|
+
readonly nodeToken?: TokenValue;
|
|
6
|
+
/** Color/style token for edge lines and arrowheads. */
|
|
7
|
+
readonly edgeToken?: TokenValue;
|
|
8
|
+
/** Color/style token for highlighted path nodes/edges. */
|
|
9
|
+
readonly highlightToken?: TokenValue;
|
|
10
|
+
/** Color/style token for the selected node box. */
|
|
11
|
+
readonly selectedToken?: TokenValue;
|
|
12
|
+
/** Fixed character width per node box. */
|
|
13
|
+
readonly nodeWidth?: number;
|
|
14
|
+
/** Maximum total character width. */
|
|
15
|
+
readonly maxWidth?: number;
|
|
16
|
+
/** Layout direction. */
|
|
17
|
+
readonly direction?: 'down' | 'right';
|
|
18
|
+
}
|
|
19
|
+
export interface DagPaneState {
|
|
20
|
+
/** Graph data source. */
|
|
21
|
+
readonly source: DagNode[] | SlicedDagSource;
|
|
22
|
+
/** Currently selected node ID, or undefined. */
|
|
23
|
+
readonly selectedId: string | undefined;
|
|
24
|
+
/** Cached `dagLayout()` result. */
|
|
25
|
+
readonly layout: DagLayout;
|
|
26
|
+
/** Ordered path from root to selected node (for highlighting). */
|
|
27
|
+
readonly highlightPath: readonly string[];
|
|
28
|
+
/** Underlying focus area (scroll/viewport) state. */
|
|
29
|
+
readonly focusArea: FocusAreaState;
|
|
30
|
+
/** DAG rendering options forwarded to `dagLayout()`. */
|
|
31
|
+
readonly dagOptions: DagPaneDagOptions;
|
|
32
|
+
}
|
|
33
|
+
export interface DagPaneOptions {
|
|
34
|
+
/** Graph data source (array of nodes or sliced source). */
|
|
35
|
+
readonly source: DagNode[] | SlicedDagSource;
|
|
36
|
+
/** Total width in columns (including gutter). */
|
|
37
|
+
readonly width: number;
|
|
38
|
+
/** Total height in rows. */
|
|
39
|
+
readonly height: number;
|
|
40
|
+
/** Initially selected node ID. */
|
|
41
|
+
readonly selectedId?: string;
|
|
42
|
+
/** Horizontal overflow. Default: `'scroll'` (DAGs are wide). */
|
|
43
|
+
readonly overflowX?: OverflowX;
|
|
44
|
+
/** DAG rendering options. */
|
|
45
|
+
readonly dagOptions?: DagPaneDagOptions;
|
|
46
|
+
/** Bijou context for rendering. */
|
|
47
|
+
readonly ctx?: BijouContext;
|
|
48
|
+
}
|
|
49
|
+
export type DagPaneRenderOptions = FocusAreaRenderOptions;
|
|
50
|
+
export interface Adjacency {
|
|
51
|
+
/** Map from node ID to its child IDs. */
|
|
52
|
+
children: ReadonlyMap<string, readonly string[]>;
|
|
53
|
+
/** Map from node ID to its parent IDs. */
|
|
54
|
+
parents: ReadonlyMap<string, readonly string[]>;
|
|
55
|
+
/** Root nodes (no parents). */
|
|
56
|
+
roots: readonly string[];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=dag-pane.part01.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-pane.part01.d.ts","sourceRoot":"","sources":["../src/dag-pane.part01.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzG,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzF,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACrC,mDAAmD;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC;AACD,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;IAC7C,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;CACxC;AACD,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;IAC7C,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC,mCAAmC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AACD,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC1D,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACjD,0CAA0C;IAC1C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAChD,+BAA+B;IAC/B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-pane.part01.js","sourceRoot":"","sources":["../src/dag-pane.part01.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-pane.part02.d.ts","sourceRoot":"","sources":["../src/dag-pane.part02.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,GAAG,SAAS,CAmD7E"}
|