@flyingrobots/bijou-tui 3.0.0 → 3.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/dist/app-frame-actions.d.ts +1 -5
- package/dist/app-frame-actions.d.ts.map +1 -1
- package/dist/app-frame-actions.js +19 -15
- package/dist/app-frame-actions.js.map +1 -1
- package/dist/app-frame-render.d.ts.map +1 -1
- package/dist/app-frame-render.js +6 -1
- package/dist/app-frame-render.js.map +1 -1
- package/dist/app-frame-types.d.ts +9 -0
- package/dist/app-frame-types.d.ts.map +1 -1
- package/dist/app-frame-types.js.map +1 -1
- package/dist/app-frame.d.ts +36 -1
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.js +136 -20
- package/dist/app-frame.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +11 -3
- package/dist/commands.js.map +1 -1
- package/dist/driver.d.ts +4 -5
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +15 -17
- package/dist/driver.js.map +1 -1
- package/dist/eventbus.d.ts +5 -0
- package/dist/eventbus.d.ts.map +1 -1
- package/dist/eventbus.js +44 -7
- package/dist/eventbus.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/notification.d.ts +73 -0
- package/dist/notification.d.ts.map +1 -0
- package/dist/notification.js +693 -0
- package/dist/notification.js.map +1 -0
- package/dist/overlay.d.ts +3 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +76 -59
- package/dist/runtime.js.map +1 -1
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/eventbus.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
* bus.emit({ type: 'key', key: 'a', ctrl: false, alt: false, shift: false });
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
+
import { defer, resolveClock, sleep } from '@flyingrobots/bijou';
|
|
27
28
|
import { QUIT } from './types.js';
|
|
28
29
|
import { parseKey, parseMouse } from './keys.js';
|
|
29
30
|
// ---------------------------------------------------------------------------
|
|
@@ -42,6 +43,7 @@ import { parseKey, parseMouse } from './keys.js';
|
|
|
42
43
|
* @returns A new event bus instance.
|
|
43
44
|
*/
|
|
44
45
|
export function createEventBus(busOptions) {
|
|
46
|
+
const clock = resolveClock(busOptions?.clock);
|
|
45
47
|
const subscribers = new Set();
|
|
46
48
|
const quitHandlers = new Set();
|
|
47
49
|
const pulseHandlers = new Set();
|
|
@@ -49,6 +51,8 @@ export function createEventBus(busOptions) {
|
|
|
49
51
|
const disposables = [];
|
|
50
52
|
let disposed = false;
|
|
51
53
|
let pulseTimer = null;
|
|
54
|
+
let pendingCommands = 0;
|
|
55
|
+
const idleResolvers = new Set();
|
|
52
56
|
/** Report an error without risking an unhandled rejection. */
|
|
53
57
|
function safeReport(message, error) {
|
|
54
58
|
try {
|
|
@@ -89,6 +93,14 @@ export function createEventBus(busOptions) {
|
|
|
89
93
|
};
|
|
90
94
|
dispatch(msg);
|
|
91
95
|
}
|
|
96
|
+
function resolveIdleIfNeeded() {
|
|
97
|
+
if (!disposed && pendingCommands !== 0)
|
|
98
|
+
return;
|
|
99
|
+
for (const resolve of idleResolvers) {
|
|
100
|
+
resolve();
|
|
101
|
+
}
|
|
102
|
+
idleResolvers.clear();
|
|
103
|
+
}
|
|
92
104
|
return {
|
|
93
105
|
on(handler) {
|
|
94
106
|
subscribers.add(handler);
|
|
@@ -144,10 +156,21 @@ export function createEventBus(busOptions) {
|
|
|
144
156
|
runCmd(cmd) {
|
|
145
157
|
if (disposed)
|
|
146
158
|
return;
|
|
159
|
+
pendingCommands++;
|
|
147
160
|
const caps = {
|
|
148
161
|
onPulse: (h) => this.onPulse(h),
|
|
162
|
+
sleep: (ms) => sleep(clock, ms),
|
|
163
|
+
defer: () => defer(clock),
|
|
164
|
+
now: () => clock.now(),
|
|
149
165
|
};
|
|
150
|
-
|
|
166
|
+
let commandPromise;
|
|
167
|
+
try {
|
|
168
|
+
commandPromise = Promise.resolve(cmd(emit, caps));
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
commandPromise = Promise.reject(err);
|
|
172
|
+
}
|
|
173
|
+
commandPromise.then((result) => {
|
|
151
174
|
if (disposed)
|
|
152
175
|
return;
|
|
153
176
|
if (result === QUIT) {
|
|
@@ -177,6 +200,11 @@ export function createEventBus(busOptions) {
|
|
|
177
200
|
: '[EventBus] onError handler threw while reporting a command rejection:', reportErr);
|
|
178
201
|
safeReport('[EventBus] Original command rejection:', err);
|
|
179
202
|
}
|
|
203
|
+
}).finally(() => {
|
|
204
|
+
pendingCommands = Math.max(0, pendingCommands - 1);
|
|
205
|
+
if (!disposed) {
|
|
206
|
+
resolveIdleIfNeeded();
|
|
207
|
+
}
|
|
180
208
|
});
|
|
181
209
|
},
|
|
182
210
|
onQuit(handler) {
|
|
@@ -191,14 +219,14 @@ export function createEventBus(busOptions) {
|
|
|
191
219
|
if (disposed || pulseTimer)
|
|
192
220
|
return;
|
|
193
221
|
const intervalMs = Math.round(1000 / fps);
|
|
194
|
-
let lastMs =
|
|
195
|
-
pulseTimer = setInterval(() => {
|
|
222
|
+
let lastMs = clock.now();
|
|
223
|
+
pulseTimer = clock.setInterval(() => {
|
|
196
224
|
if (disposed) {
|
|
197
|
-
|
|
225
|
+
pulseTimer?.dispose();
|
|
198
226
|
pulseTimer = null;
|
|
199
227
|
return;
|
|
200
228
|
}
|
|
201
|
-
const nowMs =
|
|
229
|
+
const nowMs = clock.now();
|
|
202
230
|
const dt = Math.max(0, (nowMs - lastMs) / 1000);
|
|
203
231
|
lastMs = nowMs;
|
|
204
232
|
// Notify pulse listeners first (for batching local state updates)
|
|
@@ -211,7 +239,7 @@ export function createEventBus(busOptions) {
|
|
|
211
239
|
},
|
|
212
240
|
stopPulse() {
|
|
213
241
|
if (pulseTimer) {
|
|
214
|
-
|
|
242
|
+
pulseTimer.dispose();
|
|
215
243
|
pulseTimer = null;
|
|
216
244
|
}
|
|
217
245
|
},
|
|
@@ -233,12 +261,21 @@ export function createEventBus(busOptions) {
|
|
|
233
261
|
},
|
|
234
262
|
};
|
|
235
263
|
},
|
|
264
|
+
drain() {
|
|
265
|
+
if (disposed || pendingCommands === 0) {
|
|
266
|
+
return Promise.resolve();
|
|
267
|
+
}
|
|
268
|
+
return new Promise((resolve) => {
|
|
269
|
+
idleResolvers.add(resolve);
|
|
270
|
+
});
|
|
271
|
+
},
|
|
236
272
|
dispose() {
|
|
237
273
|
disposed = true;
|
|
238
274
|
if (pulseTimer) {
|
|
239
|
-
|
|
275
|
+
pulseTimer.dispose();
|
|
240
276
|
pulseTimer = null;
|
|
241
277
|
}
|
|
278
|
+
resolveIdleIfNeeded();
|
|
242
279
|
for (const d of disposables) {
|
|
243
280
|
d.dispose();
|
|
244
281
|
}
|
package/dist/eventbus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventbus.js","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"eventbus.js","sourceRoot":"","sources":["../src/eventbus.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
-
export type { App, Cmd, KeyMsg, ResizeMsg, MouseMsg, MouseButton, MouseAction, QuitSignal, RunOptions } from './types.js';
|
|
9
|
+
export type { App, Cmd, KeyMsg, ResizeMsg, MouseMsg, MouseButton, MouseAction, QuitSignal, RunOptions, RuntimeIssue, RuntimeIssueLevel, RuntimeIssueSource, } from './types.js';
|
|
10
10
|
export { QUIT, isKeyMsg, isResizeMsg, isMouseMsg } from './types.js';
|
|
11
11
|
export { parseKey, parseMouse } from './keys.js';
|
|
12
12
|
export { enterScreen, exitScreen, clearAndHome, renderFrame, setCursorStyle, resetCursorStyle, type CursorShape, ENTER_ALT_SCREEN, EXIT_ALT_SCREEN, HIDE_CURSOR, SHOW_CURSOR, WRAP_DISABLE, WRAP_ENABLE, CLEAR_SCREEN, CLEAR_TO_END, CLEAR_LINE_TO_END, CLEAR_LINE, HOME, CURSOR_BLOCK, CURSOR_UNDERLINE, CURSOR_BAR, CURSOR_RESET, } from './screen.js';
|
|
@@ -28,7 +28,7 @@ export type { HAlign, VAlign, PlaceOptions } from './layout.js';
|
|
|
28
28
|
export type { LayoutRect } from './layout-rect.js';
|
|
29
29
|
export { type SplitPaneDirection, type SplitPaneFocus, type SplitPaneState, type SplitPaneLayout, type SplitPaneOptions, createSplitPaneState, splitPaneSetRatio, splitPaneResizeBy, splitPaneFocusNext, splitPaneFocusPrev, splitPaneLayout, splitPane, } from './split-pane.js';
|
|
30
30
|
export { type GridTrack, type GridOptions, type GridLayoutResult, gridLayout, grid, } from './grid.js';
|
|
31
|
-
export { type FrameCommandItem, type FramePage, type FrameLayoutNode, type FrameOverlayContext, type CreateFramedAppOptions, type PageTransition, type FramePaneScroll, type FrameModel, createFramedApp, } from './app-frame.js';
|
|
31
|
+
export { type FrameCommandItem, type FramePage, type FrameLayoutNode, type FrameOverlayContext, type FrameRuntimeNotificationOptions, type CreateFramedAppOptions, type PageTransition, type FramePaneScroll, type FrameModel, createFramedApp, } from './app-frame.js';
|
|
32
32
|
export { type PanelVisibilityState, type PanelMaximizeState, createPanelVisibilityState, createPanelMaximizeState, toggleMinimized, minimizePane, restorePane, isMinimized, toggleMaximize, } from './panel-state.js';
|
|
33
33
|
export { type DockDirection, type PanelDockState, createPanelDockState, movePaneInContainer, resolveChildOrder, findPaneContainer, getNodeId, } from './panel-dock.js';
|
|
34
34
|
export { type SerializedPageLayout, type SerializedLayoutState, type LayoutPreset, serializeLayoutState, restoreLayoutState, presetSideBySide, presetStacked, presetFocused, } from './layout-preset.js';
|
|
@@ -46,6 +46,7 @@ export { type InputHandler, type LayerOptions, type LayerInfo, type InputStack,
|
|
|
46
46
|
export { type PagerState, type PagerOptions, type PagerRenderOptions, createPagerState, pager, pagerScrollBy, pagerScrollTo, pagerScrollToTop, pagerScrollToBottom, pagerPageDown, pagerPageUp, pagerSetContent, pagerKeyMap, } from './pager.js';
|
|
47
47
|
export { type PanelDef, type PanelGroupOptions, type PanelGroup, createPanelGroup, } from './panels.js';
|
|
48
48
|
export { type Overlay, type CompositeOptions, type ModalOptions, type ToastVariant, type ToastAnchor, type ToastOptions, type DrawerAnchor, type DrawerOptions, type TooltipDirection, type TooltipOptions, composite, modal, toast, drawer, tooltip, } from './overlay.js';
|
|
49
|
+
export { type NotificationVariant, type NotificationTone, type NotificationPlacement, type NotificationAction, type NotificationSpec, type NotificationPhase, type NotificationRecord, type NotificationState, type RenderNotificationStackOptions, createNotificationState, pushNotification, dismissNotification, dismissFocusedNotification, relocateNotifications, cycleNotificationFocus, activateFocusedNotification, trimNotificationsToViewport, tickNotifications, hasNotifications, notificationsNeedTick, renderNotificationStack, } from './notification.js';
|
|
49
50
|
export { type AccordionState, type InteractiveAccordionOptions, createAccordionState, interactiveAccordion, focusNext, focusPrev, toggleFocused, expandAll, collapseAll, accordionKeyMap, } from './accordion.js';
|
|
50
51
|
export { type NavigableTableState, type NavigableTableOptions, type NavTableRenderOptions, createNavigableTableState, navigableTable, navTableFocusNext, navTableFocusPrev, navTablePageDown, navTablePageUp, navTableKeyMap, } from './navigable-table.js';
|
|
51
52
|
export { type BrowsableListItem, type BrowsableListState, type BrowsableListOptions, type BrowsableListRenderOptions, createBrowsableListState, browsableList, listFocusNext, listFocusPrev, listPageDown, listPageUp, browsableListKeyMap, } from './browsable-list.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -73,6 +73,8 @@ export { createPagerState, pager, pagerScrollBy, pagerScrollTo, pagerScrollToTop
|
|
|
73
73
|
export { createPanelGroup, } from './panels.js';
|
|
74
74
|
// Overlay compositing
|
|
75
75
|
export { composite, modal, toast, drawer, tooltip, } from './overlay.js';
|
|
76
|
+
// Notification stack overlays
|
|
77
|
+
export { createNotificationState, pushNotification, dismissNotification, dismissFocusedNotification, relocateNotifications, cycleNotificationFocus, activateFocusedNotification, trimNotificationsToViewport, tickNotifications, hasNotifications, notificationsNeedTick, renderNotificationStack, } from './notification.js';
|
|
76
78
|
// Interactive accordion
|
|
77
79
|
export { createAccordionState, interactiveAccordion, focusNext, focusPrev, toggleFocused, expandAll, collapseAll, accordionKeyMap, } from './accordion.js';
|
|
78
80
|
// Navigable table
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,WAAW;AACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAElD,UAAU;AACV,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,YAAY;AACZ,OAAO,EAGL,cAAc,GACf,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAIrE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE7E,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIpD,oBAAoB;AACpB,OAAO,EAML,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,yBAAyB;AACzB,OAAO,EAIL,UAAU,EACV,IAAI,GACL,MAAM,WAAW,CAAC;AAEnB,kBAAkB;AAClB,OAAO,EAUL,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,kCAAkC;AAClC,OAAO,EAGL,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,6BAA6B;AAC7B,OAAO,EAGL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,mCAAmC;AACnC,OAAO,EAIL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO;AAOL,4BAA4B;AAC5B,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc;AACd,uBAAuB;AACvB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,YAAY;AACZ,mCAAmC;AACnC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ;AACR,cAAc;AACd,OAAO,EACP,KAAK,EACL,OAAO;AACP,WAAW;AACX,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,sCAAsC;AACtC,OAAO,EAIL,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EAEnB,OAAO,EAGP,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,OAAO,EACP,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,qCAAqC;AACrC,OAAO,EAGL,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,EACd,QAAQ,EACR,MAAM,EACN,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,gDAAgD;AAChD,OAAO,EAQL,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,iBAAiB;AACjB,OAAO,EAGL,IAAI,GACL,MAAM,WAAW,CAAC;AAEnB,qBAAqB;AACrB,OAAO,EAKL,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EAGL,QAAQ,EACR,SAAS,EACT,OAAO,GACR,MAAM,WAAW,CAAC;AAEnB,cAAc;AACd,OAAO,EAKL,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,iCAAiC;AACjC,OAAO,EAIL,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,4CAA4C;AAC5C,OAAO,EAIL,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,OAAO,EAWL,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,GACR,MAAM,cAAc,CAAC;AAEtB,8BAA8B;AAC9B,OAAO,EAUL,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,wBAAwB;AACxB,OAAO,EAGL,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,kBAAkB;AAClB,OAAO,EAIL,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,OAAO,EAKL,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,cAAc;AACd,OAAO,EAKL,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,WAAW,EACX,OAAO,EACP,MAAM,EACN,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EAIL,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,uCAAuC;AACvC,OAAO,EAGL,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EAIL,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,mDAAmD;AACnD,OAAO,EAKL,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,oCAAoC;AACpC,OAAO,EAKL,kBAAkB,EAClB,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { BijouContext, OverflowBehavior, TokenValue } from '@flyingrobots/bijou';
|
|
2
|
+
import type { Overlay } from './overlay.js';
|
|
3
|
+
import type { LayoutRect } from './layout-rect.js';
|
|
4
|
+
export type NotificationVariant = 'ACTIONABLE' | 'INLINE' | 'TOAST';
|
|
5
|
+
export type NotificationTone = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR';
|
|
6
|
+
export type NotificationPlacement = 'UPPER_LEFT' | 'UPPER_RIGHT' | 'LOWER_LEFT' | 'LOWER_RIGHT' | 'TOP_CENTER' | 'BOTTOM_CENTER' | 'CENTER';
|
|
7
|
+
export interface NotificationAction<Msg> {
|
|
8
|
+
readonly label: string;
|
|
9
|
+
readonly payload: Msg;
|
|
10
|
+
}
|
|
11
|
+
export interface NotificationSpec<Msg> {
|
|
12
|
+
readonly title: string;
|
|
13
|
+
readonly message?: string;
|
|
14
|
+
readonly variant?: NotificationVariant;
|
|
15
|
+
readonly tone?: NotificationTone;
|
|
16
|
+
readonly durationMs?: number | null;
|
|
17
|
+
readonly placement?: NotificationPlacement;
|
|
18
|
+
readonly action?: NotificationAction<Msg>;
|
|
19
|
+
readonly bgToken?: TokenValue;
|
|
20
|
+
readonly accentToken?: TokenValue;
|
|
21
|
+
readonly overflow?: OverflowBehavior;
|
|
22
|
+
}
|
|
23
|
+
export type NotificationPhase = 'entering' | 'visible' | 'exiting';
|
|
24
|
+
export interface NotificationRecord<Msg> {
|
|
25
|
+
readonly id: number;
|
|
26
|
+
readonly title: string;
|
|
27
|
+
readonly message: string;
|
|
28
|
+
readonly variant: NotificationVariant;
|
|
29
|
+
readonly tone: NotificationTone;
|
|
30
|
+
readonly durationMs: number | null;
|
|
31
|
+
readonly placement: NotificationPlacement;
|
|
32
|
+
readonly action?: NotificationAction<Msg>;
|
|
33
|
+
readonly bgToken?: TokenValue;
|
|
34
|
+
readonly accentToken?: TokenValue;
|
|
35
|
+
readonly overflow: OverflowBehavior;
|
|
36
|
+
readonly createdAtMs: number;
|
|
37
|
+
readonly updatedAtMs: number;
|
|
38
|
+
readonly enteredAtMs?: number;
|
|
39
|
+
readonly exitStartedAtMs?: number;
|
|
40
|
+
readonly phase: NotificationPhase;
|
|
41
|
+
readonly progress: number;
|
|
42
|
+
}
|
|
43
|
+
export interface NotificationState<Msg> {
|
|
44
|
+
readonly items: readonly NotificationRecord<Msg>[];
|
|
45
|
+
readonly overflowExits: readonly NotificationRecord<Msg>[];
|
|
46
|
+
readonly history: readonly NotificationRecord<Msg>[];
|
|
47
|
+
readonly nextId: number;
|
|
48
|
+
readonly focusedId?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface RenderNotificationStackOptions {
|
|
51
|
+
readonly screenWidth: number;
|
|
52
|
+
readonly screenHeight: number;
|
|
53
|
+
readonly region?: LayoutRect;
|
|
54
|
+
readonly ctx?: BijouContext;
|
|
55
|
+
readonly margin?: number;
|
|
56
|
+
readonly gap?: number;
|
|
57
|
+
}
|
|
58
|
+
export declare function createNotificationState<Msg>(): NotificationState<Msg>;
|
|
59
|
+
export declare function pushNotification<Msg>(state: NotificationState<Msg>, spec: NotificationSpec<Msg>, nowMs: number): NotificationState<Msg>;
|
|
60
|
+
export declare function dismissNotification<Msg>(state: NotificationState<Msg>, id: number, nowMs: number): NotificationState<Msg>;
|
|
61
|
+
export declare function dismissFocusedNotification<Msg>(state: NotificationState<Msg>, nowMs: number): NotificationState<Msg>;
|
|
62
|
+
export declare function relocateNotifications<Msg>(state: NotificationState<Msg>, placement: NotificationPlacement, nowMs?: number): NotificationState<Msg>;
|
|
63
|
+
export declare function cycleNotificationFocus<Msg>(state: NotificationState<Msg>, delta: number): NotificationState<Msg>;
|
|
64
|
+
export declare function activateFocusedNotification<Msg>(state: NotificationState<Msg>, nowMs: number): {
|
|
65
|
+
readonly state: NotificationState<Msg>;
|
|
66
|
+
readonly payload?: Msg;
|
|
67
|
+
};
|
|
68
|
+
export declare function tickNotifications<Msg>(state: NotificationState<Msg>, nowMs: number): NotificationState<Msg>;
|
|
69
|
+
export declare function hasNotifications<Msg>(state: NotificationState<Msg>): boolean;
|
|
70
|
+
export declare function notificationsNeedTick<Msg>(state: NotificationState<Msg>): boolean;
|
|
71
|
+
export declare function trimNotificationsToViewport<Msg>(state: NotificationState<Msg>, options: RenderNotificationStackOptions, nowMs?: number): NotificationState<Msg>;
|
|
72
|
+
export declare function renderNotificationStack<Msg>(state: NotificationState<Msg>, options: RenderNotificationStackOptions): readonly Overlay[];
|
|
73
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"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"}
|