@flyingrobots/bijou-tui 4.4.1 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +244 -21
- package/dist/animate.d.ts +4 -0
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +47 -20
- package/dist/animate.js.map +1 -1
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +55 -0
- 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 +51 -0
- package/dist/app-frame-i18n.js.map +1 -1
- package/dist/app-frame-layers.d.ts +11 -1
- package/dist/app-frame-layers.d.ts.map +1 -1
- package/dist/app-frame-layers.js +19 -0
- package/dist/app-frame-layers.js.map +1 -1
- package/dist/app-frame-overlays.d.ts +82 -0
- package/dist/app-frame-overlays.d.ts.map +1 -0
- package/dist/app-frame-overlays.js +480 -0
- package/dist/app-frame-overlays.js.map +1 -0
- package/dist/app-frame-palette.d.ts.map +1 -1
- package/dist/app-frame-palette.js +36 -16
- package/dist/app-frame-palette.js.map +1 -1
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +16 -7
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +141 -5
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js +17 -1
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame-utils.d.ts +3 -1
- package/dist/app-frame-utils.d.ts.map +1 -1
- package/dist/app-frame-utils.js +11 -5
- package/dist/app-frame-utils.js.map +1 -1
- package/dist/app-frame.d.ts +22 -86
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +475 -629
- package/dist/app-frame.js.map +1 -1
- package/dist/browsable-list.d.ts +12 -0
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js +17 -6
- package/dist/browsable-list.js.map +1 -1
- package/dist/canvas.d.ts +11 -3
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +146 -13
- package/dist/canvas.js.map +1 -1
- package/dist/cell-glyph-fit.d.ts +20 -0
- package/dist/cell-glyph-fit.d.ts.map +1 -0
- package/dist/cell-glyph-fit.js +82 -0
- package/dist/cell-glyph-fit.js.map +1 -0
- package/dist/collection-surface.d.ts +8 -0
- package/dist/collection-surface.d.ts.map +1 -1
- package/dist/collection-surface.js +72 -8
- package/dist/collection-surface.js.map +1 -1
- package/dist/command-palette.d.ts +2 -0
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +36 -19
- package/dist/command-palette.js.map +1 -1
- package/dist/css/text-style.d.ts +2 -0
- package/dist/css/text-style.d.ts.map +1 -1
- package/dist/css/text-style.js +18 -8
- package/dist/css/text-style.js.map +1 -1
- package/dist/debug-overlay.d.ts +19 -0
- package/dist/debug-overlay.d.ts.map +1 -0
- package/dist/debug-overlay.js +25 -0
- package/dist/debug-overlay.js.map +1 -0
- package/dist/design-language.d.ts.map +1 -1
- package/dist/design-language.js +4 -5
- package/dist/design-language.js.map +1 -1
- package/dist/driver.d.ts +102 -0
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +259 -19
- package/dist/driver.js.map +1 -1
- package/dist/eventbus.d.ts +20 -0
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +47 -0
- package/dist/eventbus.js.map +1 -1
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +2 -2
- package/dist/file-picker.js.map +1 -1
- package/dist/flex.d.ts.map +1 -1
- package/dist/flex.js +6 -6
- package/dist/flex.js.map +1 -1
- package/dist/focus-area.d.ts +13 -4
- package/dist/focus-area.d.ts.map +1 -1
- package/dist/focus-area.js +56 -14
- package/dist/focus-area.js.map +1 -1
- package/dist/focus-map.d.ts +40 -0
- package/dist/focus-map.d.ts.map +1 -0
- package/dist/focus-map.js +133 -0
- package/dist/focus-map.js.map +1 -0
- package/dist/grid.d.ts +2 -2
- package/dist/grid.d.ts.map +1 -1
- package/dist/grid.js +11 -148
- package/dist/grid.js.map +1 -1
- package/dist/help.d.ts +2 -0
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +6 -4
- package/dist/help.js.map +1 -1
- package/dist/icon-presentation.d.ts +10 -0
- package/dist/icon-presentation.d.ts.map +1 -0
- package/dist/icon-presentation.js +12 -0
- package/dist/icon-presentation.js.map +1 -0
- package/dist/index.d.ts +32 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -5
- package/dist/index.js.map +1 -1
- package/dist/input-map.d.ts +68 -0
- package/dist/input-map.d.ts.map +1 -0
- package/dist/input-map.js +162 -0
- package/dist/input-map.js.map +1 -0
- package/dist/input-routing-inspector.d.ts +24 -0
- package/dist/input-routing-inspector.d.ts.map +1 -0
- package/dist/input-routing-inspector.js +76 -0
- package/dist/input-routing-inspector.js.map +1 -0
- package/dist/keybindings.d.ts.map +1 -1
- package/dist/keybindings.js +3 -0
- package/dist/keybindings.js.map +1 -1
- package/dist/layout-inspector.d.ts +31 -0
- package/dist/layout-inspector.d.ts.map +1 -0
- package/dist/layout-inspector.js +133 -0
- package/dist/layout-inspector.js.map +1 -0
- package/dist/layout-preset.d.ts +1 -1
- package/dist/layout-preset.d.ts.map +1 -1
- package/dist/motion/reconciler.d.ts +6 -2
- package/dist/motion/reconciler.d.ts.map +1 -1
- package/dist/motion/reconciler.js +40 -10
- package/dist/motion/reconciler.js.map +1 -1
- package/dist/motion/types.d.ts +3 -1
- package/dist/motion/types.d.ts.map +1 -1
- package/dist/navigable-table.d.ts +9 -10
- package/dist/navigable-table.d.ts.map +1 -1
- package/dist/navigable-table.js +33 -14
- package/dist/navigable-table.js.map +1 -1
- package/dist/notification.d.ts +15 -0
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +136 -34
- package/dist/notification.js.map +1 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +40 -14
- package/dist/overlay.js.map +1 -1
- package/dist/pager.d.ts +3 -1
- package/dist/pager.d.ts.map +1 -1
- package/dist/pager.js +4 -0
- package/dist/pager.js.map +1 -1
- package/dist/pipeline/middleware/grayscale.d.ts.map +1 -1
- package/dist/pipeline/middleware/grayscale.js +5 -5
- package/dist/pipeline/middleware/grayscale.js.map +1 -1
- package/dist/pipeline/middleware/motion.d.ts.map +1 -1
- package/dist/pipeline/middleware/motion.js +4 -3
- package/dist/pipeline/middleware/motion.js.map +1 -1
- package/dist/pipeline/middleware/paint.d.ts.map +1 -1
- package/dist/pipeline/middleware/paint.js +2 -1
- package/dist/pipeline/middleware/paint.js.map +1 -1
- package/dist/pipeline/middleware/surface-shaders.d.ts +37 -0
- package/dist/pipeline/middleware/surface-shaders.d.ts.map +1 -0
- package/dist/pipeline/middleware/surface-shaders.js +164 -0
- package/dist/pipeline/middleware/surface-shaders.js.map +1 -0
- package/dist/pipeline/pipeline.d.ts +37 -2
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/pipeline/pipeline.js +121 -22
- package/dist/pipeline/pipeline.js.map +1 -1
- package/dist/raytrace.d.ts +59 -0
- package/dist/raytrace.d.ts.map +1 -0
- package/dist/raytrace.js +121 -0
- package/dist/raytrace.js.map +1 -0
- package/dist/runtime-binding.d.ts +59 -0
- package/dist/runtime-binding.d.ts.map +1 -0
- package/dist/runtime-binding.js +271 -0
- package/dist/runtime-binding.js.map +1 -0
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +222 -31
- package/dist/runtime.js.map +1 -1
- package/dist/split-pane.d.ts +2 -2
- package/dist/split-pane.d.ts.map +1 -1
- package/dist/split-pane.js +28 -49
- package/dist/split-pane.js.map +1 -1
- package/dist/subapp/mount.d.ts +17 -0
- package/dist/subapp/mount.d.ts.map +1 -1
- package/dist/subapp/mount.js +13 -0
- package/dist/subapp/mount.js.map +1 -1
- package/dist/surface-budget.d.ts +27 -0
- package/dist/surface-budget.d.ts.map +1 -0
- package/dist/surface-budget.js +61 -0
- package/dist/surface-budget.js.map +1 -0
- package/dist/surface-diff.d.ts +36 -0
- package/dist/surface-diff.d.ts.map +1 -0
- package/dist/surface-diff.js +202 -0
- package/dist/surface-diff.js.map +1 -0
- package/dist/surface-layout.d.ts +19 -3
- package/dist/surface-layout.d.ts.map +1 -1
- package/dist/surface-layout.js +42 -12
- package/dist/surface-layout.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/view-output.js +2 -2
- package/dist/view-output.js.map +1 -1
- package/dist/viewport.d.ts +13 -1
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +33 -11
- package/dist/viewport.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/motion/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/motion/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAY7E;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,iBAAiB,CAAqB;IAE9C;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAI;IAQjF,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IA+DnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,IAAI;CAIb"}
|
|
@@ -4,38 +4,48 @@ import { resolveSpringConfig, resolveTweenConfig, springStep, tweenStep, } from
|
|
|
4
4
|
*/
|
|
5
5
|
export class MotionReconciler {
|
|
6
6
|
tracked = new Map();
|
|
7
|
+
warnedTransitions = new Set();
|
|
7
8
|
/**
|
|
8
9
|
* Reconcile the target layout tree with the last known positions.
|
|
9
10
|
* If a node with a known key has moved, it initiates/continues a transition.
|
|
10
11
|
*/
|
|
11
|
-
reconcile(node, dt) {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
reconcile(node, dt, io) {
|
|
13
|
+
const previousKeys = new Set(this.tracked.keys());
|
|
14
|
+
const seenKeys = new Set();
|
|
15
|
+
this.reconcileNode(node, dt, seenKeys);
|
|
16
|
+
this.warnOnLikelyUnstableKeys(previousKeys, seenKeys, io);
|
|
17
|
+
this.pruneMissingKeys(seenKeys);
|
|
18
|
+
}
|
|
19
|
+
reconcileNode(node, dt, seenKeys) {
|
|
20
|
+
const motionNode = node;
|
|
21
|
+
if (motionNode.motion != null) {
|
|
22
|
+
seenKeys.add(motionNode.motion.key);
|
|
23
|
+
this.processNode(motionNode, dt);
|
|
14
24
|
}
|
|
15
25
|
for (const child of node.children) {
|
|
16
|
-
this.
|
|
26
|
+
this.reconcileNode(child, dt, seenKeys);
|
|
17
27
|
}
|
|
18
28
|
}
|
|
19
29
|
processNode(node, dt) {
|
|
20
|
-
const key = node.id;
|
|
21
30
|
const motion = node.motion;
|
|
31
|
+
const key = motion.key;
|
|
22
32
|
const targetRect = { ...node.rect };
|
|
23
33
|
let state = this.tracked.get(key);
|
|
24
34
|
if (!state) {
|
|
25
|
-
const initialRect = resolveInitialRect(targetRect, motion
|
|
35
|
+
const initialRect = resolveInitialRect(targetRect, motion.initial);
|
|
26
36
|
state = {
|
|
27
37
|
key,
|
|
28
38
|
targetRect,
|
|
29
39
|
currentRect: initialRect,
|
|
30
40
|
velocity: { x: 0, y: 0, w: 0, h: 0 },
|
|
31
|
-
mode: motion
|
|
41
|
+
mode: motion.transition?.type ?? 'spring',
|
|
32
42
|
tweenElapsedMs: 0,
|
|
33
43
|
tweenFromRect: initialRect,
|
|
34
44
|
done: isSameRect(initialRect, targetRect),
|
|
35
45
|
};
|
|
36
46
|
this.tracked.set(key, state);
|
|
37
47
|
}
|
|
38
|
-
const nextMode = motion
|
|
48
|
+
const nextMode = motion.transition?.type ?? state.mode ?? 'spring';
|
|
39
49
|
const targetChanged = !isSameRect(state.targetRect, targetRect) || state.mode !== nextMode;
|
|
40
50
|
if (targetChanged) {
|
|
41
51
|
state.targetRect = targetRect;
|
|
@@ -50,13 +60,13 @@ export class MotionReconciler {
|
|
|
50
60
|
const needsUpdate = !isSameRect(state.currentRect, state.targetRect) || !state.done;
|
|
51
61
|
if (needsUpdate && dt > 0) {
|
|
52
62
|
if (state.mode === 'tween') {
|
|
53
|
-
const tween = tweenStep({ value: state.tweenElapsedMs <= 0 ? 0 : state.tweenElapsedMs, elapsed: state.tweenElapsedMs, done: false }, resolveTweenConfig({ duration: Math.max(1, motion
|
|
63
|
+
const tween = tweenStep({ value: state.tweenElapsedMs <= 0 ? 0 : state.tweenElapsedMs, elapsed: state.tweenElapsedMs, done: false }, resolveTweenConfig({ duration: Math.max(1, motion.transition?.duration ?? 300) }), dt * 1000);
|
|
54
64
|
state.tweenElapsedMs = tween.elapsed;
|
|
55
65
|
state.currentRect = lerpRect(state.tweenFromRect, state.targetRect, tween.value);
|
|
56
66
|
state.done = tween.done;
|
|
57
67
|
}
|
|
58
68
|
else {
|
|
59
|
-
const config = resolveSpringConfig(motion
|
|
69
|
+
const config = resolveSpringConfig(motion.transition?.spring ?? 'gentle');
|
|
60
70
|
const nextX = this.step(state.currentRect.x, state.targetRect.x, state.velocity.x, config, dt);
|
|
61
71
|
const nextY = this.step(state.currentRect.y, state.targetRect.y, state.velocity.y, config, dt);
|
|
62
72
|
const nextW = this.step(state.currentRect.width, state.targetRect.width, state.velocity.w, config, dt);
|
|
@@ -69,6 +79,26 @@ export class MotionReconciler {
|
|
|
69
79
|
// Apply interpolated rect to the layout node for the paint pass
|
|
70
80
|
node.rect = roundRect(state.currentRect);
|
|
71
81
|
}
|
|
82
|
+
warnOnLikelyUnstableKeys(previousKeys, seenKeys, io) {
|
|
83
|
+
const appeared = [...seenKeys].filter((key) => !previousKeys.has(key)).sort();
|
|
84
|
+
const disappeared = [...previousKeys].filter((key) => !seenKeys.has(key)).sort();
|
|
85
|
+
if (appeared.length === 0 || disappeared.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
const signature = `${appeared.join(',')}|${disappeared.join(',')}`;
|
|
88
|
+
if (this.warnedTransitions.has(signature))
|
|
89
|
+
return;
|
|
90
|
+
this.warnedTransitions.add(signature);
|
|
91
|
+
io?.writeError(`[bijou-tui] motion(): keys [${appeared.join(', ')}] appeared on the same frame that `
|
|
92
|
+
+ `[${disappeared.join(', ')}] disappeared. This often means motion keys are unstable `
|
|
93
|
+
+ `across renders; use a stable key instead of a shifting index.\n`);
|
|
94
|
+
}
|
|
95
|
+
pruneMissingKeys(seenKeys) {
|
|
96
|
+
for (const key of this.tracked.keys()) {
|
|
97
|
+
if (!seenKeys.has(key)) {
|
|
98
|
+
this.tracked.delete(key);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
72
102
|
step(curr, target, vel, config, dt) {
|
|
73
103
|
const s = springStep({ value: curr, velocity: vel, done: false }, target, config, dt);
|
|
74
104
|
return { val: s.value, vel: s.velocity, done: s.done };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/motion/reconciler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,SAAS,GAEV,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/motion/reconciler.ts"],"names":[],"mappings":"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"}
|
package/dist/motion/types.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ import type { SpringConfig, SpringPreset } from '../spring.js';
|
|
|
6
6
|
export interface MotionOptions {
|
|
7
7
|
/**
|
|
8
8
|
* A unique key to track this component across frames.
|
|
9
|
-
*
|
|
9
|
+
* This must stay stable across renders. Index-like keys that appear
|
|
10
|
+
* and disappear together will trigger a runtime warning because they
|
|
11
|
+
* usually prevent interpolation from ever reusing prior motion state.
|
|
10
12
|
*/
|
|
11
13
|
key: string;
|
|
12
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/motion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/motion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;QAC1B,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,UAAU,EAAE,UAAU,CAAC;IACvB,oDAAoD;IACpD,WAAW,EAAE,UAAU,CAAC;IACxB,mCAAmC;IACnC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,uDAAuD;IACvD,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,aAAa,EAAE,UAAU,CAAC;IAC1B,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -40,6 +40,12 @@ export interface NavigableTableOptions {
|
|
|
40
40
|
/** Maximum number of visible data rows (default: 10). */
|
|
41
41
|
readonly height?: number;
|
|
42
42
|
}
|
|
43
|
+
export interface NavigableTableInput extends NavigableTableOptions {
|
|
44
|
+
/** Optional focused row index for snapshot-style rendering. */
|
|
45
|
+
readonly focusRow?: number;
|
|
46
|
+
/** Optional scroll offset for snapshot-style rendering. */
|
|
47
|
+
readonly scrollY?: number;
|
|
48
|
+
}
|
|
43
49
|
/** Options for rendering the navigable table view. */
|
|
44
50
|
export interface NavTableRenderOptions {
|
|
45
51
|
/** Character(s) prepended to the focused row's first cell (default: `"\u25b8"`). */
|
|
@@ -49,15 +55,8 @@ export interface NavTableRenderOptions {
|
|
|
49
55
|
}
|
|
50
56
|
/** Options for rendering the navigable table into a `Surface`. */
|
|
51
57
|
export type NavTableSurfaceOptions = NavTableRenderOptions;
|
|
52
|
-
/**
|
|
53
|
-
* Create initial navigable table state.
|
|
54
|
-
*
|
|
55
|
-
* `height` defaults to 10 rows when not provided.
|
|
56
|
-
*
|
|
57
|
-
* @param options - Columns, rows, and optional viewport height.
|
|
58
|
-
* @returns Fresh table state with focus on the first row.
|
|
59
|
-
*/
|
|
60
58
|
export declare function createNavigableTableState(options: NavigableTableOptions): NavigableTableState;
|
|
59
|
+
export declare function createNavigableTableState(columns: readonly TableColumn[], rows: readonly (readonly string[])[], height?: number): NavigableTableState;
|
|
61
60
|
/**
|
|
62
61
|
* Move focus to the next row (wraps around).
|
|
63
62
|
*
|
|
@@ -96,7 +95,7 @@ export declare function navTablePageUp(state: NavigableTableState): NavigableTab
|
|
|
96
95
|
* @param options - Rendering options (focus indicator, context).
|
|
97
96
|
* @returns Rendered table string with focus indicator on the active row.
|
|
98
97
|
*/
|
|
99
|
-
export declare function navigableTable(
|
|
98
|
+
export declare function navigableTable(input: NavigableTableInput, options?: NavTableRenderOptions): string;
|
|
100
99
|
/**
|
|
101
100
|
* Render the navigable table directly into a `Surface`.
|
|
102
101
|
*
|
|
@@ -109,7 +108,7 @@ export declare function navigableTable(state: NavigableTableState, options?: Nav
|
|
|
109
108
|
* @param options - Rendering options (focus indicator, context).
|
|
110
109
|
* @returns Rendered table surface with focus indicator on the active row.
|
|
111
110
|
*/
|
|
112
|
-
export declare function navigableTableSurface(state:
|
|
111
|
+
export declare function navigableTableSurface(state: NavigableTableInput, options?: NavTableSurfaceOptions): Surface;
|
|
113
112
|
/**
|
|
114
113
|
* Create a preconfigured KeyMap for navigable table navigation.
|
|
115
114
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigable-table.d.ts","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"navigable-table.d.ts","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,kEAAkE;AAClE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AA8C3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,mBAAmB,CAAC;AAavB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAI9E;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAyBlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAsBT;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;IAC3C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAcd"}
|
package/dist/navigable-table.js
CHANGED
|
@@ -16,8 +16,11 @@
|
|
|
16
16
|
* return [{ ...model, tableState: navTableFocusNext(model.tableState) }, []];
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import { table, tableSurface, } from '@flyingrobots/bijou';
|
|
19
|
+
import { sanitizeNonNegativeInt, sanitizePositiveInt, table, tableSurface, } from '@flyingrobots/bijou';
|
|
20
20
|
import { createKeyMap } from './keybindings.js';
|
|
21
|
+
function isNavigableTableOptions(value) {
|
|
22
|
+
return !Array.isArray(value);
|
|
23
|
+
}
|
|
21
24
|
// ---------------------------------------------------------------------------
|
|
22
25
|
// State creation
|
|
23
26
|
// ---------------------------------------------------------------------------
|
|
@@ -29,16 +32,30 @@ import { createKeyMap } from './keybindings.js';
|
|
|
29
32
|
* @param options - Columns, rows, and optional viewport height.
|
|
30
33
|
* @returns Fresh table state with focus on the first row.
|
|
31
34
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
function resolveNavigableTableOptions(optionsOrColumns, rows, height) {
|
|
36
|
+
if (isNavigableTableOptions(optionsOrColumns)) {
|
|
37
|
+
return optionsOrColumns;
|
|
38
|
+
}
|
|
39
|
+
return { columns: [...optionsOrColumns], rows: rows ?? [], height };
|
|
40
|
+
}
|
|
41
|
+
function resolveNavigableTableState(input) {
|
|
42
|
+
const height = sanitizePositiveInt(input.height, 10);
|
|
43
|
+
const rows = input.rows.map((row) => [...row]);
|
|
44
|
+
const focusRow = rows.length === 0
|
|
45
|
+
? 0
|
|
46
|
+
: Math.min(sanitizeNonNegativeInt(input.focusRow, 0), rows.length - 1);
|
|
47
|
+
const scrollY = adjustScroll(focusRow, sanitizeNonNegativeInt(input.scrollY, 0), height, rows.length);
|
|
34
48
|
return {
|
|
35
|
-
columns: [...
|
|
36
|
-
rows
|
|
37
|
-
focusRow
|
|
38
|
-
scrollY
|
|
49
|
+
columns: [...input.columns],
|
|
50
|
+
rows,
|
|
51
|
+
focusRow,
|
|
52
|
+
scrollY,
|
|
39
53
|
height,
|
|
40
54
|
};
|
|
41
55
|
}
|
|
56
|
+
export function createNavigableTableState(optionsOrColumns, rows, height) {
|
|
57
|
+
return resolveNavigableTableState(resolveNavigableTableOptions(optionsOrColumns, rows, height));
|
|
58
|
+
}
|
|
42
59
|
// ---------------------------------------------------------------------------
|
|
43
60
|
// State transformers
|
|
44
61
|
// ---------------------------------------------------------------------------
|
|
@@ -126,7 +143,8 @@ function adjustScroll(focusRow, scrollY, height, totalRows) {
|
|
|
126
143
|
* @param options - Rendering options (focus indicator, context).
|
|
127
144
|
* @returns Rendered table string with focus indicator on the active row.
|
|
128
145
|
*/
|
|
129
|
-
export function navigableTable(
|
|
146
|
+
export function navigableTable(input, options) {
|
|
147
|
+
const state = resolveNavigableTableState(input);
|
|
130
148
|
if (state.rows.length === 0) {
|
|
131
149
|
return table({ columns: state.columns, rows: [], ctx: options?.ctx });
|
|
132
150
|
}
|
|
@@ -160,20 +178,21 @@ export function navigableTable(state, options) {
|
|
|
160
178
|
* @returns Rendered table surface with focus indicator on the active row.
|
|
161
179
|
*/
|
|
162
180
|
export function navigableTableSurface(state, options) {
|
|
163
|
-
|
|
164
|
-
|
|
181
|
+
const resolvedState = resolveNavigableTableState(state);
|
|
182
|
+
if (resolvedState.rows.length === 0) {
|
|
183
|
+
return tableSurface({ columns: resolvedState.columns, rows: [], ctx: options?.ctx });
|
|
165
184
|
}
|
|
166
185
|
const indicator = options?.focusIndicator ?? '\u25b8';
|
|
167
186
|
const pad = ' '.repeat(indicator.length);
|
|
168
|
-
const visibleRows =
|
|
187
|
+
const visibleRows = resolvedState.rows.slice(resolvedState.scrollY, resolvedState.scrollY + resolvedState.height);
|
|
169
188
|
const decoratedRows = visibleRows.map((row, i) => {
|
|
170
|
-
const globalIndex =
|
|
171
|
-
const prefix = globalIndex ===
|
|
189
|
+
const globalIndex = resolvedState.scrollY + i;
|
|
190
|
+
const prefix = globalIndex === resolvedState.focusRow ? indicator : pad;
|
|
172
191
|
const firstCol = `${prefix} ${row[0] ?? ''}`;
|
|
173
192
|
return [firstCol, ...row.slice(1)];
|
|
174
193
|
});
|
|
175
194
|
return tableSurface({
|
|
176
|
-
columns:
|
|
195
|
+
columns: resolvedState.columns,
|
|
177
196
|
rows: decoratedRows,
|
|
178
197
|
ctx: options?.ctx,
|
|
179
198
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigable-table.js","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,EACL,YAAY,GAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAe,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"navigable-table.js","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"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"}
|
package/dist/notification.d.ts
CHANGED
|
@@ -64,11 +64,26 @@ export interface RenderNotificationHistoryOptions {
|
|
|
64
64
|
readonly scroll?: number;
|
|
65
65
|
readonly filter?: NotificationHistoryFilter;
|
|
66
66
|
readonly ctx?: BijouContext;
|
|
67
|
+
readonly labels?: NotificationHistoryLabels;
|
|
67
68
|
}
|
|
68
69
|
export interface RenderNotificationReviewEntrySurfaceOptions {
|
|
69
70
|
readonly width: number;
|
|
70
71
|
readonly ctx?: BijouContext;
|
|
71
72
|
readonly metaLabel?: string;
|
|
73
|
+
readonly actionLabel?: (label: string) => string;
|
|
74
|
+
}
|
|
75
|
+
export interface NotificationHistoryLabels {
|
|
76
|
+
readonly filterLabel?: (filter: NotificationHistoryFilter) => string;
|
|
77
|
+
readonly headerLabel?: (args: {
|
|
78
|
+
readonly filterLabel: string;
|
|
79
|
+
readonly start: number;
|
|
80
|
+
readonly end: number;
|
|
81
|
+
readonly total: number;
|
|
82
|
+
}) => string;
|
|
83
|
+
readonly emptyLabel?: (args: {
|
|
84
|
+
readonly filterLabel: string;
|
|
85
|
+
}) => string;
|
|
86
|
+
readonly actionLabel?: (label: string) => string;
|
|
72
87
|
}
|
|
73
88
|
export type NotificationMouseTargetKind = 'dismiss' | 'action' | 'body';
|
|
74
89
|
export interface NotificationMouseTarget<Msg> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,OAAO,EAEP,UAAU,EACX,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
|