@flyingrobots/bijou-tui 3.1.0 → 4.1.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/LICENSE +159 -21
- package/README.md +205 -39
- package/dist/app-frame-actions.d.ts +5 -5
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +74 -9
- package/dist/app-frame-actions.js.map +1 -1
- package/dist/app-frame-i18n.d.ts +12 -0
- package/dist/app-frame-i18n.d.ts.map +1 -0
- package/dist/app-frame-i18n.js +92 -0
- package/dist/app-frame-i18n.js.map +1 -0
- package/dist/app-frame-layers.d.ts +29 -0
- package/dist/app-frame-layers.d.ts.map +1 -0
- package/dist/app-frame-layers.js +104 -0
- package/dist/app-frame-layers.js.map +1 -0
- package/dist/app-frame-palette.d.ts +6 -2
- package/dist/app-frame-palette.d.ts.map +1 -1
- package/dist/app-frame-palette.js +42 -10
- package/dist/app-frame-palette.js.map +1 -1
- package/dist/app-frame-render.d.ts +28 -14
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +285 -138
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +41 -21
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js +8 -6
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame-utils.d.ts +8 -3
- package/dist/app-frame-utils.d.ts.map +1 -1
- package/dist/app-frame-utils.js +42 -27
- package/dist/app-frame-utils.js.map +1 -1
- package/dist/app-frame.d.ts +128 -12
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +1212 -91
- package/dist/app-frame.js.map +1 -1
- package/dist/browsable-list.d.ts +20 -1
- package/dist/browsable-list.d.ts.map +1 -1
- package/dist/browsable-list.js +48 -10
- package/dist/browsable-list.js.map +1 -1
- package/dist/collection-surface.d.ts +8 -0
- package/dist/collection-surface.d.ts.map +1 -0
- package/dist/collection-surface.js +41 -0
- package/dist/collection-surface.js.map +1 -0
- package/dist/command-palette.d.ts +17 -1
- package/dist/command-palette.d.ts.map +1 -1
- package/dist/command-palette.js +50 -20
- package/dist/command-palette.js.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/css/text-style.d.ts +2 -1
- package/dist/css/text-style.d.ts.map +1 -1
- package/dist/css/text-style.js +33 -0
- package/dist/css/text-style.js.map +1 -1
- package/dist/design-language.d.ts +49 -0
- package/dist/design-language.d.ts.map +1 -0
- package/dist/design-language.js +70 -0
- package/dist/design-language.js.map +1 -0
- package/dist/driver.d.ts +6 -1
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +3 -0
- package/dist/driver.js.map +1 -1
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +21 -1
- package/dist/eventbus.js.map +1 -1
- package/dist/file-picker.d.ts +19 -1
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +47 -20
- package/dist/file-picker.js.map +1 -1
- package/dist/flex.d.ts +35 -1
- package/dist/flex.d.ts.map +1 -1
- package/dist/flex.js +127 -1
- package/dist/flex.js.map +1 -1
- package/dist/focus-area.d.ts +20 -1
- package/dist/focus-area.d.ts.map +1 -1
- package/dist/focus-area.js +107 -12
- package/dist/focus-area.js.map +1 -1
- package/dist/grid.d.ts +10 -0
- package/dist/grid.d.ts.map +1 -1
- package/dist/grid.js +25 -0
- package/dist/grid.js.map +1 -1
- package/dist/help.d.ts +41 -0
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +50 -0
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +23 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -16
- package/dist/index.js.map +1 -1
- package/dist/inspector-drawer.d.ts +36 -0
- package/dist/inspector-drawer.d.ts.map +1 -0
- package/dist/inspector-drawer.js +68 -0
- package/dist/inspector-drawer.js.map +1 -0
- package/dist/layout-node-surface.d.ts +17 -0
- package/dist/layout-node-surface.d.ts.map +1 -0
- package/dist/layout-node-surface.js +61 -0
- package/dist/layout-node-surface.js.map +1 -0
- package/dist/navigable-table.d.ts +16 -1
- package/dist/navigable-table.d.ts.map +1 -1
- package/dist/navigable-table.js +32 -1
- package/dist/navigable-table.js.map +1 -1
- package/dist/notification.d.ts +26 -1
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +294 -41
- package/dist/notification.js.map +1 -1
- package/dist/overlay.d.ts +29 -8
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +248 -137
- package/dist/overlay.js.map +1 -1
- package/dist/pager.d.ts +16 -0
- package/dist/pager.d.ts.map +1 -1
- package/dist/pager.js +61 -1
- package/dist/pager.js.map +1 -1
- package/dist/runtime-engine.d.ts +223 -0
- package/dist/runtime-engine.d.ts.map +1 -0
- package/dist/runtime-engine.js +457 -0
- package/dist/runtime-engine.js.map +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +33 -19
- package/dist/runtime.js.map +1 -1
- package/dist/shell-quit.d.ts +12 -0
- package/dist/shell-quit.d.ts.map +1 -0
- package/dist/shell-quit.js +36 -0
- package/dist/shell-quit.js.map +1 -0
- package/dist/split-pane.d.ts +12 -1
- package/dist/split-pane.d.ts.map +1 -1
- package/dist/split-pane.js +31 -1
- package/dist/split-pane.js.map +1 -1
- package/dist/status-bar.d.ts +12 -0
- package/dist/status-bar.d.ts.map +1 -1
- package/dist/status-bar.js +45 -16
- package/dist/status-bar.js.map +1 -1
- package/dist/subapp/mount.d.ts.map +1 -1
- package/dist/subapp/mount.js +3 -0
- package/dist/subapp/mount.js.map +1 -1
- package/dist/surface-layout.d.ts +19 -0
- package/dist/surface-layout.d.ts.map +1 -0
- package/dist/surface-layout.js +87 -0
- package/dist/surface-layout.js.map +1 -0
- package/dist/transition-shaders.d.ts +10 -8
- package/dist/transition-shaders.d.ts.map +1 -1
- package/dist/transition-shaders.js +65 -19
- package/dist/transition-shaders.js.map +1 -1
- package/dist/types.d.ts +21 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -1
- package/dist/view-output.d.ts +5 -4
- package/dist/view-output.d.ts.map +1 -1
- package/dist/view-output.js +37 -29
- package/dist/view-output.js.map +1 -1
- package/dist/viewport.d.ts +30 -1
- package/dist/viewport.d.ts.map +1 -1
- package/dist/viewport.js +77 -1
- package/dist/viewport.js.map +1 -1
- package/package.json +6 -3
- package/dist/layout-v3.d.ts +0 -10
- package/dist/layout-v3.d.ts.map +0 -1
- package/dist/layout-v3.js +0 -35
- package/dist/layout-v3.js.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { createSurface, } from '@flyingrobots/bijou';
|
|
2
|
+
export function localizeLayoutNode(node) {
|
|
3
|
+
const localization = localizeLayout(node);
|
|
4
|
+
return {
|
|
5
|
+
node: localization.dx === 0 && localization.dy === 0
|
|
6
|
+
? node
|
|
7
|
+
: translateLayoutNode(node, localization.dx, localization.dy),
|
|
8
|
+
width: localization.width,
|
|
9
|
+
height: localization.height,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function layoutNodeToSurface(node) {
|
|
13
|
+
const localization = localizeLayout(node);
|
|
14
|
+
const surface = createSurface(localization.width, localization.height);
|
|
15
|
+
paintLayoutNodeWithOffset(surface, node, localization.dx, localization.dy);
|
|
16
|
+
return surface;
|
|
17
|
+
}
|
|
18
|
+
export function localizeLayout(node) {
|
|
19
|
+
const bounds = measureLayoutBounds(node);
|
|
20
|
+
return {
|
|
21
|
+
width: Math.max(0, bounds.maxX - bounds.minX),
|
|
22
|
+
height: Math.max(0, bounds.maxY - bounds.minY),
|
|
23
|
+
dx: -bounds.minX,
|
|
24
|
+
dy: -bounds.minY,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function paintLayoutNodeWithOffset(target, node, dx, dy) {
|
|
28
|
+
if (node.surface) {
|
|
29
|
+
target.blit(node.surface, node.rect.x + dx, node.rect.y + dy);
|
|
30
|
+
}
|
|
31
|
+
for (const child of node.children) {
|
|
32
|
+
paintLayoutNodeWithOffset(target, child, dx, dy);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function measureLayoutBounds(node) {
|
|
36
|
+
let minX = node.rect.x;
|
|
37
|
+
let minY = node.rect.y;
|
|
38
|
+
let maxX = node.rect.x + node.rect.width;
|
|
39
|
+
let maxY = node.rect.y + node.rect.height;
|
|
40
|
+
for (const child of node.children) {
|
|
41
|
+
const childBounds = measureLayoutBounds(child);
|
|
42
|
+
minX = Math.min(minX, childBounds.minX);
|
|
43
|
+
minY = Math.min(minY, childBounds.minY);
|
|
44
|
+
maxX = Math.max(maxX, childBounds.maxX);
|
|
45
|
+
maxY = Math.max(maxY, childBounds.maxY);
|
|
46
|
+
}
|
|
47
|
+
return { minX, minY, maxX, maxY };
|
|
48
|
+
}
|
|
49
|
+
function translateLayoutNode(node, dx, dy) {
|
|
50
|
+
return {
|
|
51
|
+
...node,
|
|
52
|
+
rect: {
|
|
53
|
+
x: node.rect.x + dx,
|
|
54
|
+
y: node.rect.y + dy,
|
|
55
|
+
width: node.rect.width,
|
|
56
|
+
height: node.rect.height,
|
|
57
|
+
},
|
|
58
|
+
children: node.children.map((child) => translateLayoutNode(child, dx, dy)),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=layout-node-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-node-surface.js","sourceRoot":"","sources":["../src/layout-node-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* return [{ ...model, tableState: navTableFocusNext(model.tableState) }, []];
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import { type TableColumn, type BijouContext } from '@flyingrobots/bijou';
|
|
19
|
+
import { type TableColumn, type BijouContext, type Surface } from '@flyingrobots/bijou';
|
|
20
20
|
import { type KeyMap } from './keybindings.js';
|
|
21
21
|
/** Immutable state for the navigable table widget. */
|
|
22
22
|
export interface NavigableTableState {
|
|
@@ -47,6 +47,8 @@ export interface NavTableRenderOptions {
|
|
|
47
47
|
/** Bijou context for theming and styling. */
|
|
48
48
|
readonly ctx?: BijouContext;
|
|
49
49
|
}
|
|
50
|
+
/** Options for rendering the navigable table into a `Surface`. */
|
|
51
|
+
export type NavTableSurfaceOptions = NavTableRenderOptions;
|
|
50
52
|
/**
|
|
51
53
|
* Create initial navigable table state.
|
|
52
54
|
*
|
|
@@ -95,6 +97,19 @@ export declare function navTablePageUp(state: NavigableTableState): NavigableTab
|
|
|
95
97
|
* @returns Rendered table string with focus indicator on the active row.
|
|
96
98
|
*/
|
|
97
99
|
export declare function navigableTable(state: NavigableTableState, options?: NavTableRenderOptions): string;
|
|
100
|
+
/**
|
|
101
|
+
* Render the navigable table directly into a `Surface`.
|
|
102
|
+
*
|
|
103
|
+
* This keeps the table on the structured render path while preserving the
|
|
104
|
+
* existing row-aware scroll model. Unlike generic `viewportSurface()` masking,
|
|
105
|
+
* the scroll window is still defined in rows, not rendered lines, so wrapped
|
|
106
|
+
* rows stay honest to the table-inspection job.
|
|
107
|
+
*
|
|
108
|
+
* @param state - Current table state.
|
|
109
|
+
* @param options - Rendering options (focus indicator, context).
|
|
110
|
+
* @returns Rendered table surface with focus indicator on the active row.
|
|
111
|
+
*/
|
|
112
|
+
export declare function navigableTableSurface(state: NavigableTableState, options?: NavTableSurfaceOptions): Surface;
|
|
98
113
|
/**
|
|
99
114
|
* Create a preconfigured KeyMap for navigable table navigation.
|
|
100
115
|
*
|
|
@@ -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,EAGL,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,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;AAM3D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAS7F;AAMD;;;;;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,CAwBlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAqBT;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,7 +16,7 @@
|
|
|
16
16
|
* return [{ ...model, tableState: navTableFocusNext(model.tableState) }, []];
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import { table, } from '@flyingrobots/bijou';
|
|
19
|
+
import { table, tableSurface, } from '@flyingrobots/bijou';
|
|
20
20
|
import { createKeyMap } from './keybindings.js';
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
22
22
|
// State creation
|
|
@@ -147,6 +147,37 @@ export function navigableTable(state, options) {
|
|
|
147
147
|
ctx: options?.ctx,
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Render the navigable table directly into a `Surface`.
|
|
152
|
+
*
|
|
153
|
+
* This keeps the table on the structured render path while preserving the
|
|
154
|
+
* existing row-aware scroll model. Unlike generic `viewportSurface()` masking,
|
|
155
|
+
* the scroll window is still defined in rows, not rendered lines, so wrapped
|
|
156
|
+
* rows stay honest to the table-inspection job.
|
|
157
|
+
*
|
|
158
|
+
* @param state - Current table state.
|
|
159
|
+
* @param options - Rendering options (focus indicator, context).
|
|
160
|
+
* @returns Rendered table surface with focus indicator on the active row.
|
|
161
|
+
*/
|
|
162
|
+
export function navigableTableSurface(state, options) {
|
|
163
|
+
if (state.rows.length === 0) {
|
|
164
|
+
return tableSurface({ columns: state.columns, rows: [], ctx: options?.ctx });
|
|
165
|
+
}
|
|
166
|
+
const indicator = options?.focusIndicator ?? '\u25b8';
|
|
167
|
+
const pad = ' '.repeat(indicator.length);
|
|
168
|
+
const visibleRows = state.rows.slice(state.scrollY, state.scrollY + state.height);
|
|
169
|
+
const decoratedRows = visibleRows.map((row, i) => {
|
|
170
|
+
const globalIndex = state.scrollY + i;
|
|
171
|
+
const prefix = globalIndex === state.focusRow ? indicator : pad;
|
|
172
|
+
const firstCol = `${prefix} ${row[0] ?? ''}`;
|
|
173
|
+
return [firstCol, ...row.slice(1)];
|
|
174
|
+
});
|
|
175
|
+
return tableSurface({
|
|
176
|
+
columns: state.columns,
|
|
177
|
+
rows: decoratedRows,
|
|
178
|
+
ctx: options?.ctx,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
150
181
|
// ---------------------------------------------------------------------------
|
|
151
182
|
// Convenience keymap
|
|
152
183
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigable-table.js","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,
|
|
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
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { BijouContext, OverflowBehavior, TokenValue } from '@flyingrobots/bijou';
|
|
1
|
+
import type { BijouContext, OverflowBehavior, Surface, TokenValue } from '@flyingrobots/bijou';
|
|
2
2
|
import type { Overlay } from './overlay.js';
|
|
3
3
|
import type { LayoutRect } from './layout-rect.js';
|
|
4
4
|
export type NotificationVariant = 'ACTIONABLE' | 'INLINE' | 'TOAST';
|
|
5
5
|
export type NotificationTone = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR';
|
|
6
6
|
export type NotificationPlacement = 'UPPER_LEFT' | 'UPPER_RIGHT' | 'LOWER_LEFT' | 'LOWER_RIGHT' | 'TOP_CENTER' | 'BOTTOM_CENTER' | 'CENTER';
|
|
7
|
+
export type NotificationHistoryFilter = 'ALL' | 'ACTIONABLE' | NotificationTone;
|
|
7
8
|
export interface NotificationAction<Msg> {
|
|
8
9
|
readonly label: string;
|
|
9
10
|
readonly payload: Msg;
|
|
@@ -13,6 +14,7 @@ export interface NotificationSpec<Msg> {
|
|
|
13
14
|
readonly message?: string;
|
|
14
15
|
readonly variant?: NotificationVariant;
|
|
15
16
|
readonly tone?: NotificationTone;
|
|
17
|
+
readonly width?: number;
|
|
16
18
|
readonly durationMs?: number | null;
|
|
17
19
|
readonly placement?: NotificationPlacement;
|
|
18
20
|
readonly action?: NotificationAction<Msg>;
|
|
@@ -27,6 +29,7 @@ export interface NotificationRecord<Msg> {
|
|
|
27
29
|
readonly message: string;
|
|
28
30
|
readonly variant: NotificationVariant;
|
|
29
31
|
readonly tone: NotificationTone;
|
|
32
|
+
readonly width?: number;
|
|
30
33
|
readonly durationMs: number | null;
|
|
31
34
|
readonly placement: NotificationPlacement;
|
|
32
35
|
readonly action?: NotificationAction<Msg>;
|
|
@@ -55,7 +58,28 @@ export interface RenderNotificationStackOptions {
|
|
|
55
58
|
readonly margin?: number;
|
|
56
59
|
readonly gap?: number;
|
|
57
60
|
}
|
|
61
|
+
export interface RenderNotificationHistoryOptions {
|
|
62
|
+
readonly width: number;
|
|
63
|
+
readonly height: number;
|
|
64
|
+
readonly scroll?: number;
|
|
65
|
+
readonly filter?: NotificationHistoryFilter;
|
|
66
|
+
readonly ctx?: BijouContext;
|
|
67
|
+
}
|
|
68
|
+
export interface RenderNotificationReviewEntrySurfaceOptions {
|
|
69
|
+
readonly width: number;
|
|
70
|
+
readonly ctx?: BijouContext;
|
|
71
|
+
readonly metaLabel?: string;
|
|
72
|
+
}
|
|
73
|
+
export type NotificationMouseTargetKind = 'dismiss' | 'action' | 'body';
|
|
74
|
+
export interface NotificationMouseTarget<Msg> {
|
|
75
|
+
readonly item: NotificationRecord<Msg>;
|
|
76
|
+
readonly kind: NotificationMouseTargetKind;
|
|
77
|
+
}
|
|
58
78
|
export declare function createNotificationState<Msg>(): NotificationState<Msg>;
|
|
79
|
+
export declare function countNotificationHistory<Msg>(state: NotificationState<Msg>, filter?: NotificationHistoryFilter): number;
|
|
80
|
+
export declare function renderNotificationHistory<Msg>(state: NotificationState<Msg>, options: RenderNotificationHistoryOptions): string;
|
|
81
|
+
export declare function renderNotificationReviewEntrySurface<Msg>(item: NotificationRecord<Msg>, options: RenderNotificationReviewEntrySurfaceOptions): Surface;
|
|
82
|
+
export declare function renderNotificationHistorySurface<Msg>(state: NotificationState<Msg>, options: RenderNotificationHistoryOptions): Surface;
|
|
59
83
|
export declare function pushNotification<Msg>(state: NotificationState<Msg>, spec: NotificationSpec<Msg>, nowMs: number): NotificationState<Msg>;
|
|
60
84
|
export declare function dismissNotification<Msg>(state: NotificationState<Msg>, id: number, nowMs: number): NotificationState<Msg>;
|
|
61
85
|
export declare function dismissFocusedNotification<Msg>(state: NotificationState<Msg>, nowMs: number): NotificationState<Msg>;
|
|
@@ -69,5 +93,6 @@ export declare function tickNotifications<Msg>(state: NotificationState<Msg>, no
|
|
|
69
93
|
export declare function hasNotifications<Msg>(state: NotificationState<Msg>): boolean;
|
|
70
94
|
export declare function notificationsNeedTick<Msg>(state: NotificationState<Msg>): boolean;
|
|
71
95
|
export declare function trimNotificationsToViewport<Msg>(state: NotificationState<Msg>, options: RenderNotificationStackOptions, nowMs?: number): NotificationState<Msg>;
|
|
96
|
+
export declare function hitTestNotificationStack<Msg>(state: NotificationState<Msg>, options: RenderNotificationStackOptions, col: number, row: number): NotificationMouseTarget<Msg> | undefined;
|
|
72
97
|
export declare function renderNotificationStack<Msg>(state: NotificationState<Msg>, options: RenderNotificationStackOptions): readonly Overlay[];
|
|
73
98
|
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
|