@flighthq/menu 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.638.d4dbd4e
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 +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/menu.d.ts +12 -12
- package/dist/menu.d.ts.map +1 -1
- package/dist/menu.js +113 -318
- package/dist/menu.js.map +1 -1
- package/package.json +4 -3
- package/src/menu.test.ts +284 -445
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/menu`. The `@flighth
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/menu@0.5.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/menu@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/menu)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { cloneMenuTemplate, createDefaultAppMenuTemplate, createDefaultEditMenuTemplate, createDefaultFileMenuTemplate, createDefaultHelpMenuTemplate, createDefaultViewMenuTemplate, createDefaultWindowMenuTemplate, createMenuItemTemplate,
|
|
1
|
+
export { cloneMenuTemplate, createDefaultAppMenuTemplate, createDefaultEditMenuTemplate, createDefaultFileMenuTemplate, createDefaultHelpMenuTemplate, createDefaultViewMenuTemplate, createDefaultWindowMenuTemplate, createMenuItemTemplate, attachMenuHighlight, attachMenuSelect, createMenuHighlight, createMenuSelect, destroyMenuApplication, detachMenuHighlight, detachMenuSelect, disposeMenuHighlight, disposeMenuSelect, enableMenuSignals, getMenuSignals, setApplicationMenu, showContextMenu, validateMenuItemTemplate, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { cloneMenuTemplate, createDefaultAppMenuTemplate, createDefaultEditMenuTemplate, createDefaultFileMenuTemplate, createDefaultHelpMenuTemplate, createDefaultViewMenuTemplate, createDefaultWindowMenuTemplate, createMenuItemTemplate,
|
|
1
|
+
export { cloneMenuTemplate, createDefaultAppMenuTemplate, createDefaultEditMenuTemplate, createDefaultFileMenuTemplate, createDefaultHelpMenuTemplate, createDefaultViewMenuTemplate, createDefaultWindowMenuTemplate, createMenuItemTemplate, attachMenuHighlight, attachMenuSelect, createMenuHighlight, createMenuSelect, destroyMenuApplication, detachMenuHighlight, detachMenuSelect, disposeMenuHighlight, disposeMenuSelect, enableMenuSignals, getMenuSignals, setApplicationMenu, showContextMenu, validateMenuItemTemplate, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
|
package/dist/menu.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { HasMenuApplication, HasMenuHighlight, HasMenuPopup, HasMenuSelect, MenuHighlight, MenuItemTemplate, MenuSelect, MenuSignals } from '@flighthq/types/contract';
|
|
2
|
+
export declare function attachMenuHighlight(host: HasMenuHighlight, highlight: MenuHighlight): void;
|
|
3
|
+
export declare function attachMenuSelect(host: HasMenuSelect, select: MenuSelect): void;
|
|
3
4
|
export declare function cloneMenuTemplate(template: Readonly<MenuItemTemplate>): MenuItemTemplate;
|
|
5
|
+
export declare function createMenuHighlight(): MenuHighlight;
|
|
4
6
|
export declare function createMenuItemTemplate(template?: Readonly<Partial<MenuItemTemplate>>): MenuItemTemplate;
|
|
7
|
+
export declare function createMenuSelect(): MenuSelect;
|
|
8
|
+
export declare function destroyMenuApplication(...hosts: readonly HasMenuApplication[]): void;
|
|
9
|
+
export declare function detachMenuHighlight(highlight: MenuHighlight): void;
|
|
10
|
+
export declare function detachMenuSelect(select: MenuSelect): void;
|
|
11
|
+
export declare function disposeMenuHighlight(highlight: MenuHighlight): void;
|
|
12
|
+
export declare function disposeMenuSelect(select: MenuSelect): void;
|
|
5
13
|
export declare function enableMenuSignals(): MenuSignals;
|
|
6
|
-
export declare function explainMenuBackend(): BackendExplanation;
|
|
7
|
-
export declare function getMenuBackend(): MenuBackend;
|
|
8
14
|
export declare function getMenuSignals(): Readonly<MenuSignals> | null;
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function onMenuSelect(listener: (id: string) => void): () => void;
|
|
12
|
-
export declare function resetMenuBackendForTest(): void;
|
|
13
|
-
export declare function setApplicationMenu(items: readonly MenuItemTemplate[]): boolean;
|
|
14
|
-
export declare function setMenuBackend(backend: MenuBackend | null): void;
|
|
15
|
-
export declare function showContextMenu(items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null>;
|
|
16
|
-
export declare function showWebContextMenu(items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null>;
|
|
15
|
+
export declare function setApplicationMenu(host: HasMenuApplication, items: readonly MenuItemTemplate[]): boolean;
|
|
16
|
+
export declare function showContextMenu(host: HasMenuPopup, items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null>;
|
|
17
17
|
export declare function validateMenuItemTemplate(template: Readonly<MenuItemTemplate>): string | null;
|
|
18
18
|
//# sourceMappingURL=menu.d.ts.map
|
package/dist/menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EAEb,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAI1F;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAI9E;AAID,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAMxF;AAID,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD;AAKD,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,gBAAgB,CAUvG;AAGD,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAYD,wBAAgB,sBAAsB,CAAC,GAAG,KAAK,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAiBpF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAGlE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGzD;AAID,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAGnE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAG1D;AAMD,wBAAgB,iBAAiB,IAAI,WAAW,CAG/C;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAE7D;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAExG;AAID,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAKD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,GAAG,IAAI,CAE5F"}
|
package/dist/menu.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
+
import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
|
|
3
|
+
// Starts delivering highlight notifications from the host's provider into `highlight`. Re-attaching
|
|
4
|
+
// detaches first, so one entity never holds two live subscriptions.
|
|
5
|
+
//
|
|
6
|
+
// The unsubscribe is ORIGIN-PINNED: it is stored beside the entity that opened it, so detach ends
|
|
7
|
+
// exactly the subscription this attach created. Under the old ambient model a rebind could leave an
|
|
8
|
+
// earlier subscription live against a replaced backend with nothing holding its unsubscribe.
|
|
9
|
+
export function attachMenuHighlight(host, highlight) {
|
|
10
|
+
detachMenuHighlight(highlight);
|
|
11
|
+
const unsubscribe = host.menu.highlight.subscribe((id) => emitSignal(highlight.onMenuItemHighlight, id));
|
|
12
|
+
_highlightUnsubscribe.set(highlight, unsubscribe);
|
|
13
|
+
}
|
|
14
|
+
// Starts delivering application menu-bar selections from the host's provider into `select`. Same
|
|
15
|
+
// origin-pinned unsubscribe contract as attachMenuHighlight.
|
|
16
|
+
export function attachMenuSelect(host, select) {
|
|
17
|
+
detachMenuSelect(select);
|
|
18
|
+
const unsubscribe = host.menu.select.subscribe((id) => emitSignal(select.onMenuItemSelect, id));
|
|
19
|
+
_selectUnsubscribe.set(select, unsubscribe);
|
|
20
|
+
}
|
|
2
21
|
// Deep-clones a MenuItemTemplate tree. The returned tree has the same shape and values. Safe to call
|
|
3
22
|
// with a template carrying a submenu — children are cloned recursively.
|
|
4
23
|
export function cloneMenuTemplate(template) {
|
|
@@ -8,6 +27,11 @@ export function cloneMenuTemplate(template) {
|
|
|
8
27
|
}
|
|
9
28
|
return clone;
|
|
10
29
|
}
|
|
30
|
+
// Allocates a MenuHighlight event entity with an inert signal; call attachMenuHighlight to start
|
|
31
|
+
// delivery. Entity-composed, like every identity-bearing SDK object.
|
|
32
|
+
export function createMenuHighlight() {
|
|
33
|
+
return createEntity({ onMenuItemHighlight: createSignal() });
|
|
34
|
+
}
|
|
11
35
|
// Builds a menu item template, filling defaults (type 'normal', enabled true). Recursively normalizes
|
|
12
36
|
// any submenu children through the same default-fill, so every item in the tree has canonical defaults
|
|
13
37
|
// regardless of nesting depth.
|
|
@@ -22,208 +46,94 @@ export function createMenuItemTemplate(template) {
|
|
|
22
46
|
}
|
|
23
47
|
return item;
|
|
24
48
|
}
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
// Allocates a MenuSelect event entity with an inert signal; call attachMenuSelect to start delivery.
|
|
50
|
+
export function createMenuSelect() {
|
|
51
|
+
return createEntity({ onMenuItemSelect: createSignal() });
|
|
52
|
+
}
|
|
53
|
+
// Stops delivery without discarding the entity: runs this entity's own unsubscribe, if it has one.
|
|
54
|
+
// Safe to call when never attached. Does NOT touch the provider — backend teardown is `destroy` on the
|
|
55
|
+
// slot, a separate host/provider lifecycle concern.
|
|
56
|
+
// FINAL RELEASE for the one menu slot that owns a whole-provider resource: the installed native menu.
|
|
57
|
+
// Destroys every DISTINCT application provider exactly once — alias-safe, because two hosts may share
|
|
58
|
+
// one provider object and destroying it twice would clear a successor's menu.
|
|
59
|
+
//
|
|
60
|
+
// Attempt-all: every obligation is tried even after one throws, and the first error is rethrown once the
|
|
61
|
+
// siblings have run. A provider whose destroy threw is RETAINED, so a later call retries only the
|
|
62
|
+
// failures; the ones that succeeded are forgotten and never destroyed twice.
|
|
63
|
+
export function destroyMenuApplication(...hosts) {
|
|
64
|
+
const pending = new Set();
|
|
65
|
+
for (const host of hosts) {
|
|
66
|
+
const provider = host.menu.application;
|
|
67
|
+
if (!_destroyedApplication.has(provider))
|
|
68
|
+
pending.add(provider);
|
|
36
69
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
|
|
49
|
-
};
|
|
70
|
+
let failure = null;
|
|
71
|
+
for (const provider of pending) {
|
|
72
|
+
try {
|
|
73
|
+
if (provider.destroy !== undefined)
|
|
74
|
+
assertSyncVoid(provider.destroy());
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
failure ??= error;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
_destroyedApplication.add(provider);
|
|
50
81
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
export function
|
|
55
|
-
|
|
82
|
+
if (failure !== null)
|
|
83
|
+
throw failure;
|
|
84
|
+
}
|
|
85
|
+
export function detachMenuHighlight(highlight) {
|
|
86
|
+
_highlightUnsubscribe.get(highlight)?.();
|
|
87
|
+
_highlightUnsubscribe.delete(highlight);
|
|
88
|
+
}
|
|
89
|
+
export function detachMenuSelect(select) {
|
|
90
|
+
_selectUnsubscribe.get(select)?.();
|
|
91
|
+
_selectUnsubscribe.delete(select);
|
|
92
|
+
}
|
|
93
|
+
// Detaches and then clears the entity's listeners, so the entity becomes GC-eligible. Teardown of the
|
|
94
|
+
// PROVIDER is not performed here; that is `destroy` on the host's slot.
|
|
95
|
+
export function disposeMenuHighlight(highlight) {
|
|
96
|
+
detachMenuHighlight(highlight);
|
|
97
|
+
clearSignal(highlight.onMenuItemHighlight);
|
|
98
|
+
}
|
|
99
|
+
export function disposeMenuSelect(select) {
|
|
100
|
+
detachMenuSelect(select);
|
|
101
|
+
clearSignal(select.onMenuItemSelect);
|
|
102
|
+
}
|
|
103
|
+
// Activates the core context-menu dispatcher signals and returns the group. These are NOT host
|
|
104
|
+
// capabilities: the dispatcher below emits them around the popup call, so no backend can deliver them.
|
|
105
|
+
// The module-level identity/enable state here is package state, not ambient capability resolution —
|
|
106
|
+
// nothing about which provider serves a call is decided by it.
|
|
107
|
+
export function enableMenuSignals() {
|
|
108
|
+
_menuSignals ??= { onContextMenuClose: createSignal(), onContextMenuOpen: createSignal() };
|
|
109
|
+
return _menuSignals;
|
|
56
110
|
}
|
|
57
|
-
// Returns the active MenuSignals group, or null if enableMenuSignals has not been called.
|
|
58
111
|
export function getMenuSignals() {
|
|
59
112
|
return _menuSignals;
|
|
60
113
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
export function
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// Subscribes to application menu item selections by item id. Returns an unsubscribe function. On web
|
|
76
|
-
// this never fires (no native app menu bar). Selections are also fanned out to onMenuItemSelect when
|
|
77
|
-
// the MenuSignals group is enabled.
|
|
78
|
-
export function onMenuSelect(listener) {
|
|
79
|
-
return getMenuBackend().subscribeSelect((id) => {
|
|
80
|
-
listener(id);
|
|
81
|
-
if (_menuSignals !== null)
|
|
82
|
-
emitSignal(_menuSignals.onMenuItemSelect, id);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
export function resetMenuBackendForTest() {
|
|
86
|
-
_custom = null;
|
|
87
|
-
_host = null;
|
|
88
|
-
_hostConflict = false;
|
|
89
|
-
_hostObservation = null;
|
|
90
|
-
}
|
|
91
|
-
// Installs the application menu bar. Returns true on success, or false when the host lacks a native
|
|
92
|
-
// menu bar (e.g. web).
|
|
93
|
-
export function setApplicationMenu(items) {
|
|
94
|
-
return getMenuBackend().setApplicationMenu(items);
|
|
95
|
-
}
|
|
96
|
-
// Sets a custom menu backend; pass null to clear and fall back to the host or sentinel.
|
|
97
|
-
export function setMenuBackend(backend) {
|
|
98
|
-
_custom = backend;
|
|
99
|
-
}
|
|
100
|
-
// Pops up a context menu at (x, y) and resolves the clicked item id, or null when dismissed. On web,
|
|
101
|
-
// renders a positioned DOM popup (separators, enabled/checked rendering, dismiss on outside-click /
|
|
102
|
-
// Escape). On a native host, delegates to the OS context menu.
|
|
103
|
-
export function showContextMenu(items, x, y) {
|
|
104
|
-
if (_menuSignals !== null)
|
|
105
|
-
emitSignal(_menuSignals.onContextMenuOpen);
|
|
106
|
-
const promise = getMenuBackend().popupContextMenu(items, x, y);
|
|
107
|
-
if (_menuSignals !== null) {
|
|
108
|
-
const signals = _menuSignals;
|
|
114
|
+
// Installs the application menu bar through the host's provider. Returns false when the install did
|
|
115
|
+
// not take effect. A host without a native menu bar omits the slot entirely, so this cannot be reached
|
|
116
|
+
// with a stub that always answers false.
|
|
117
|
+
export function setApplicationMenu(host, items) {
|
|
118
|
+
return host.menu.application.setApplicationMenu(items);
|
|
119
|
+
}
|
|
120
|
+
// Pops up a context menu through the host's provider and resolves the chosen item id, or null when
|
|
121
|
+
// dismissed. Emits the core open/close dispatcher signals around the call when they are enabled.
|
|
122
|
+
export function showContextMenu(host, items, x, y) {
|
|
123
|
+
const signals = _menuSignals;
|
|
124
|
+
if (signals !== null)
|
|
125
|
+
emitSignal(signals.onContextMenuOpen);
|
|
126
|
+
const promise = host.menu.popup.popup(items, x, y);
|
|
127
|
+
if (signals !== null)
|
|
109
128
|
void promise.then(() => emitSignal(signals.onContextMenuClose));
|
|
110
|
-
}
|
|
111
129
|
return promise;
|
|
112
130
|
}
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
// opening it. Both are recorded as open work in the package assessment rather than fixed here.
|
|
119
|
-
// Exported so the host-web enabler can delegate to this DOM rendering implementation.
|
|
120
|
-
export function showWebContextMenu(items, x, y) {
|
|
121
|
-
return new Promise((resolve) => {
|
|
122
|
-
if (typeof document === 'undefined') {
|
|
123
|
-
resolve(null);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const overlay = document.createElement('div');
|
|
127
|
-
overlay.style.cssText = 'position:fixed;inset:0;z-index:2147483646;';
|
|
128
|
-
const menu = buildWebMenuElement(items, (id) => close(id));
|
|
129
|
-
function clampMenu(el, anchorX, anchorY) {
|
|
130
|
-
el.style.left = `${anchorX}px`;
|
|
131
|
-
el.style.top = `${anchorY}px`;
|
|
132
|
-
const rect = el.getBoundingClientRect();
|
|
133
|
-
const vw = typeof window !== 'undefined' ? window.innerWidth : 0;
|
|
134
|
-
const vh = typeof window !== 'undefined' ? window.innerHeight : 0;
|
|
135
|
-
if (rect.right > vw)
|
|
136
|
-
el.style.left = `${Math.max(0, anchorX - rect.width)}px`;
|
|
137
|
-
if (rect.bottom > vh)
|
|
138
|
-
el.style.top = `${Math.max(0, anchorY - rect.height)}px`;
|
|
139
|
-
}
|
|
140
|
-
function close(selectedId) {
|
|
141
|
-
document.removeEventListener('keydown', onKeyDown);
|
|
142
|
-
overlay.remove();
|
|
143
|
-
menu.remove();
|
|
144
|
-
resolve(selectedId);
|
|
145
|
-
}
|
|
146
|
-
// Keyboard navigation. Scoped to this menu's own rows: a submenu is built as a nested <ul> inside
|
|
147
|
-
// its parent <li>, so an unscoped descendant query also matches the rows of every collapsed
|
|
148
|
-
// submenu. Those rows are display:none, which made arrow-key travel stop on invisible entries —
|
|
149
|
-
// the highlight vanished for a keypress — and let Enter resolve the popup with the id of an item
|
|
150
|
-
// the user could not see.
|
|
151
|
-
const focusableItems = menu.querySelectorAll(':scope > li[data-enabled="true"]');
|
|
152
|
-
let focusIndex = -1;
|
|
153
|
-
function moveFocus(delta) {
|
|
154
|
-
const items = Array.from(focusableItems);
|
|
155
|
-
if (items.length === 0)
|
|
156
|
-
return;
|
|
157
|
-
// From the initial no-selection state the wrap has to be spelled out: -1 is a sentinel, not a
|
|
158
|
-
// position, and running it through the modulo lands ArrowUp on the second-to-last row rather
|
|
159
|
-
// than the last one. Down enters at the top, up enters at the bottom.
|
|
160
|
-
focusIndex =
|
|
161
|
-
focusIndex === -1 ? (delta < 0 ? items.length - 1 : 0) : (focusIndex + delta + items.length) % items.length;
|
|
162
|
-
items.forEach((el, i) => {
|
|
163
|
-
if (i === focusIndex) {
|
|
164
|
-
el.setAttribute('data-focused', 'true');
|
|
165
|
-
el.style.background = '#0066cc';
|
|
166
|
-
el.style.color = '#fff';
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
el.removeAttribute('data-focused');
|
|
170
|
-
el.style.background = '';
|
|
171
|
-
el.style.color = '#111';
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
if (_menuSignals !== null) {
|
|
175
|
-
const focused = items[focusIndex];
|
|
176
|
-
const itemId = focused?.dataset['itemId'];
|
|
177
|
-
if (itemId !== undefined)
|
|
178
|
-
emitSignal(_menuSignals.onMenuItemHighlight, itemId);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
function onKeyDown(e) {
|
|
182
|
-
if (e.key === 'Escape') {
|
|
183
|
-
e.preventDefault();
|
|
184
|
-
close(null);
|
|
185
|
-
}
|
|
186
|
-
else if (e.key === 'ArrowDown') {
|
|
187
|
-
e.preventDefault();
|
|
188
|
-
moveFocus(1);
|
|
189
|
-
}
|
|
190
|
-
else if (e.key === 'ArrowUp') {
|
|
191
|
-
e.preventDefault();
|
|
192
|
-
moveFocus(-1);
|
|
193
|
-
}
|
|
194
|
-
else if (e.key === 'Enter' || e.key === ' ') {
|
|
195
|
-
e.preventDefault();
|
|
196
|
-
const focused = Array.from(focusableItems)[focusIndex];
|
|
197
|
-
if (focused !== undefined) {
|
|
198
|
-
const itemId = focused.dataset['itemId'];
|
|
199
|
-
if (itemId !== undefined)
|
|
200
|
-
close(itemId);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
overlay.addEventListener('click', () => close(null));
|
|
205
|
-
document.addEventListener('keydown', onKeyDown);
|
|
206
|
-
document.body.appendChild(overlay);
|
|
207
|
-
document.body.appendChild(menu);
|
|
208
|
-
clampMenu(menu, x, y);
|
|
209
|
-
});
|
|
131
|
+
// Validates a MenuItemTemplate tree for consistency. Returns null on success, or a string describing
|
|
132
|
+
// the first violation found. Does not throw — returns a sentinel for expected failures. Throws only
|
|
133
|
+
// for cyclic submenu references (programmer error).
|
|
134
|
+
export function validateMenuItemTemplate(template) {
|
|
135
|
+
return _validateItem(template, new Set());
|
|
210
136
|
}
|
|
211
|
-
let _custom = null;
|
|
212
|
-
let _host = null;
|
|
213
|
-
let _hostConflict = false;
|
|
214
|
-
let _hostObservation = null;
|
|
215
|
-
let _menuSignals = null;
|
|
216
|
-
const _sentinel = {
|
|
217
|
-
async popupContextMenu() {
|
|
218
|
-
return null;
|
|
219
|
-
},
|
|
220
|
-
setApplicationMenu() {
|
|
221
|
-
return false;
|
|
222
|
-
},
|
|
223
|
-
subscribeSelect() {
|
|
224
|
-
return () => { };
|
|
225
|
-
},
|
|
226
|
-
};
|
|
227
137
|
function _validateItem(item, seen) {
|
|
228
138
|
if (seen.has(item)) {
|
|
229
139
|
throw new Error('validateMenuItemTemplate: cyclic submenu reference detected');
|
|
@@ -284,130 +194,15 @@ function _validateRadioGroups(items) {
|
|
|
284
194
|
}
|
|
285
195
|
return null;
|
|
286
196
|
}
|
|
287
|
-
|
|
288
|
-
//
|
|
289
|
-
//
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
'z-index:2147483647',
|
|
298
|
-
'margin:0',
|
|
299
|
-
'padding:4px 0',
|
|
300
|
-
'list-style:none',
|
|
301
|
-
'background:#fff',
|
|
302
|
-
'border:1px solid #ccc',
|
|
303
|
-
'border-radius:4px',
|
|
304
|
-
'box-shadow:0 4px 12px rgba(0,0,0,.15)',
|
|
305
|
-
'min-width:160px',
|
|
306
|
-
'font:13px/1.4 system-ui,sans-serif',
|
|
307
|
-
'color:#111',
|
|
308
|
-
'user-select:none',
|
|
309
|
-
].join(';');
|
|
310
|
-
for (const item of items) {
|
|
311
|
-
// Hidden items are not rendered at all, rather than rendered and styled away: an item that is not
|
|
312
|
-
// in the DOM cannot be reached by arrow keys or hover, which is the difference between `visible`
|
|
313
|
-
// and `enabled`.
|
|
314
|
-
if (item.visible === false)
|
|
315
|
-
continue;
|
|
316
|
-
const li = document.createElement('li');
|
|
317
|
-
if (item.type === 'separator') {
|
|
318
|
-
li.style.cssText = 'height:1px;margin:4px 8px;background:#e0e0e0;';
|
|
319
|
-
menu.appendChild(li);
|
|
320
|
-
continue;
|
|
321
|
-
}
|
|
322
|
-
const enabled = item.enabled !== false;
|
|
323
|
-
const hasSubmenu = item.submenu !== undefined && item.submenu.length > 0;
|
|
324
|
-
li.setAttribute('data-enabled', enabled ? 'true' : 'false');
|
|
325
|
-
if (item.id !== undefined)
|
|
326
|
-
li.dataset['itemId'] = item.id;
|
|
327
|
-
li.style.cssText = [
|
|
328
|
-
'display:flex',
|
|
329
|
-
'align-items:center',
|
|
330
|
-
'padding:5px 12px 5px 28px',
|
|
331
|
-
'cursor:' + (enabled ? 'default' : 'not-allowed'),
|
|
332
|
-
'color:' + (enabled ? '#111' : '#999'),
|
|
333
|
-
'position:relative',
|
|
334
|
-
].join(';');
|
|
335
|
-
// Checkmark / radio dot
|
|
336
|
-
if (item.checked === true) {
|
|
337
|
-
const mark = document.createElement('span');
|
|
338
|
-
mark.textContent = item.type === 'radio' ? '●' : '✓';
|
|
339
|
-
mark.style.cssText = 'position:absolute;left:8px;font-size:11px;';
|
|
340
|
-
li.appendChild(mark);
|
|
341
|
-
}
|
|
342
|
-
const labelEl = document.createElement('span');
|
|
343
|
-
labelEl.textContent = item.label ?? '';
|
|
344
|
-
labelEl.style.cssText = 'flex:1;';
|
|
345
|
-
if (item.sublabel !== undefined) {
|
|
346
|
-
const sublabelEl = document.createElement('span');
|
|
347
|
-
sublabelEl.textContent = item.sublabel;
|
|
348
|
-
sublabelEl.style.cssText = 'display:block;font-size:11px;color:#888;';
|
|
349
|
-
labelEl.appendChild(sublabelEl);
|
|
350
|
-
}
|
|
351
|
-
li.appendChild(labelEl);
|
|
352
|
-
// The accelerator/submenu spans below are matched with span:last-child on hover, so the tooltip is
|
|
353
|
-
// set as an attribute rather than appended as another child.
|
|
354
|
-
if (item.toolTip !== undefined)
|
|
355
|
-
li.title = item.toolTip;
|
|
356
|
-
if (hasSubmenu) {
|
|
357
|
-
const arrow = document.createElement('span');
|
|
358
|
-
arrow.textContent = '▶';
|
|
359
|
-
arrow.style.cssText = 'margin-left:8px;font-size:9px;color:#888;';
|
|
360
|
-
li.appendChild(arrow);
|
|
361
|
-
}
|
|
362
|
-
else if (item.accelerator !== undefined) {
|
|
363
|
-
const accel = document.createElement('span');
|
|
364
|
-
accel.textContent = item.accelerator;
|
|
365
|
-
accel.style.cssText = 'margin-left:24px;color:#888;font-size:11px;';
|
|
366
|
-
li.appendChild(accel);
|
|
367
|
-
}
|
|
368
|
-
if (enabled) {
|
|
369
|
-
li.addEventListener('mouseenter', () => {
|
|
370
|
-
li.style.background = '#0066cc';
|
|
371
|
-
li.style.color = '#fff';
|
|
372
|
-
const accelEl = li.querySelector('span:last-child');
|
|
373
|
-
if (accelEl !== null && accelEl !== labelEl)
|
|
374
|
-
accelEl.style.color = 'rgba(255,255,255,.7)';
|
|
375
|
-
if (_menuSignals !== null && item.id !== undefined) {
|
|
376
|
-
emitSignal(_menuSignals.onMenuItemHighlight, item.id);
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
li.addEventListener('mouseleave', () => {
|
|
380
|
-
li.style.background = '';
|
|
381
|
-
li.style.color = '#111';
|
|
382
|
-
const accelEl = li.querySelector('span:last-child');
|
|
383
|
-
if (accelEl !== null && accelEl !== labelEl)
|
|
384
|
-
accelEl.style.color = '#888';
|
|
385
|
-
});
|
|
386
|
-
if (hasSubmenu) {
|
|
387
|
-
// Submenu: open on hover, select from child list.
|
|
388
|
-
const submenuEl = buildWebMenuElement(item.submenu, onSelect);
|
|
389
|
-
submenuEl.style.position = 'absolute';
|
|
390
|
-
submenuEl.style.top = '0';
|
|
391
|
-
submenuEl.style.left = '100%';
|
|
392
|
-
submenuEl.style.display = 'none';
|
|
393
|
-
li.appendChild(submenuEl);
|
|
394
|
-
li.addEventListener('mouseenter', () => {
|
|
395
|
-
submenuEl.style.display = 'block';
|
|
396
|
-
});
|
|
397
|
-
li.addEventListener('mouseleave', () => {
|
|
398
|
-
submenuEl.style.display = 'none';
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
else if (item.id !== undefined) {
|
|
402
|
-
const itemId = item.id;
|
|
403
|
-
li.addEventListener('click', (e) => {
|
|
404
|
-
e.stopPropagation();
|
|
405
|
-
onSelect(itemId);
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
menu.appendChild(li);
|
|
410
|
-
}
|
|
411
|
-
return menu;
|
|
197
|
+
let _menuSignals = null;
|
|
198
|
+
// Origin-pinned subscription bookkeeping: each entity's own unsubscribe, held beside the entity rather
|
|
199
|
+
// than in a shared slot, so detaching one never ends another's subscription.
|
|
200
|
+
const _highlightUnsubscribe = new WeakMap();
|
|
201
|
+
const _selectUnsubscribe = new WeakMap();
|
|
202
|
+
// Providers already finally-released. A destroy that THREW is deliberately absent, so the next call
|
|
203
|
+
// retries exactly the failed obligations and never re-destroys a successful one.
|
|
204
|
+
const _destroyedApplication = new WeakSet();
|
|
205
|
+
function assertSyncVoid(value) {
|
|
206
|
+
void value;
|
|
412
207
|
}
|
|
413
208
|
//# sourceMappingURL=menu.js.map
|
package/dist/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/menu",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1-edge.638.d4dbd4e",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/
|
|
42
|
-
"@flighthq/
|
|
41
|
+
"@flighthq/entity": "0.5.1-edge.638.d4dbd4e",
|
|
42
|
+
"@flighthq/signals": "0.5.1-edge.638.d4dbd4e",
|
|
43
|
+
"@flighthq/types": "0.5.1-edge.638.d4dbd4e"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"typescript": "^5.3.0"
|