@flighthq/menu 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2

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 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.1-next.815.cc08b93](https://github.com/flighthq/flight/tree/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/packages/menu)
17
- - [License](https://github.com/flighthq/flight/blob/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/LICENSE.md)
16
+ - [Source for @flighthq/menu@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/menu)
17
+ - [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
@@ -1,3 +1,4 @@
1
1
  export * from './menu';
2
2
  export * from './menu-templates';
3
+ export { initializeMenuHighlight, initializeMenuSelect } from './menu';
3
4
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC"}
package/dist/contract.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './menu';
2
2
  export * from './menu-templates';
3
+ export { initializeMenuHighlight, initializeMenuSelect } from './menu';
3
4
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC"}
package/dist/menu.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { HasMenuApplication, HasMenuHighlight, HasMenuPopup, HasMenuSelect, MenuHighlight, MenuItemTemplate, MenuSelect, MenuSignals, NonEntityCreateResult } from '@flighthq/types/contract';
1
+ import type { EntityConstruction, HasMenuApplication, HasMenuHighlight, HasMenuPopup, HasMenuSelect, MenuHighlight, MenuItemTemplate, MenuSelect, MenuSignals, NonEntityCreateResult } from '@flighthq/types/contract';
2
2
  export declare function attachMenuHighlight(host: HasMenuHighlight, highlight: MenuHighlight): void;
3
3
  export declare function attachMenuSelect(host: HasMenuSelect, select: MenuSelect): void;
4
4
  export declare function cloneMenuTemplate(template: Readonly<MenuItemTemplate>): MenuItemTemplate;
@@ -12,6 +12,8 @@ export declare function disposeMenuHighlight(highlight: MenuHighlight): void;
12
12
  export declare function disposeMenuSelect(select: MenuSelect): void;
13
13
  export declare function enableMenuSignals(): MenuSignals;
14
14
  export declare function getMenuSignals(): Readonly<MenuSignals> | null;
15
+ export declare function initializeMenuHighlight(out: EntityConstruction<MenuHighlight>): void;
16
+ export declare function initializeMenuSelect(out: EntityConstruction<MenuSelect>): void;
15
17
  export declare function setApplicationMenu(host: HasMenuApplication, items: readonly MenuItemTemplate[]): boolean;
16
18
  export declare function showContextMenu(host: HasMenuPopup, items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null>;
17
19
  export declare function validateMenuItemTemplate(template: Readonly<MenuItemTemplate>): string | null;
@@ -1 +1 @@
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,EACX,qBAAqB,EACtB,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,CACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAC7C,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAUvD;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"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EAEb,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,EACtB,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;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAInD;AAKD,wBAAgB,sBAAsB,CACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAC7C,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAUvD;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAI7C;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,CAQ/C;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAE7D;AAID,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,IAAI,CAEpF;AAGD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAE9E;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,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
3
3
  // Starts delivering highlight notifications from the host's provider into `highlight`. Re-attaching
4
4
  // detaches first, so one entity never holds two live subscriptions.
@@ -27,10 +27,10 @@ export function cloneMenuTemplate(template) {
27
27
  }
28
28
  return clone;
29
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
30
  export function createMenuHighlight() {
33
- return createEntity({ onMenuItemHighlight: createSignal() });
31
+ const out = allocateEntity();
32
+ initializeMenuHighlight(out);
33
+ return finishEntity(out);
34
34
  }
35
35
  // Builds a menu item template, filling defaults (type 'normal', enabled true). Recursively normalizes
36
36
  // any submenu children through the same default-fill, so every item in the tree has canonical defaults
@@ -46,9 +46,10 @@ export function createMenuItemTemplate(template) {
46
46
  }
47
47
  return item;
48
48
  }
49
- // Allocates a MenuSelect event entity with an inert signal; call attachMenuSelect to start delivery.
50
49
  export function createMenuSelect() {
51
- return createEntity({ onMenuItemSelect: createSignal() });
50
+ const out = allocateEntity();
51
+ initializeMenuSelect(out);
52
+ return finishEntity(out);
52
53
  }
53
54
  // Stops delivery without discarding the entity: runs this entity's own unsubscribe, if it has one.
54
55
  // Safe to call when never attached. Does NOT touch the provider — backend teardown is `destroy` on the
@@ -105,12 +106,26 @@ export function disposeMenuSelect(select) {
105
106
  // The module-level identity/enable state here is package state, not ambient capability resolution —
106
107
  // nothing about which provider serves a call is decided by it.
107
108
  export function enableMenuSignals() {
108
- _menuSignals ??= createEntity({ onContextMenuClose: createSignal(), onContextMenuOpen: createSignal() });
109
+ _menuSignals ??= (() => {
110
+ const out = allocateEntity();
111
+ out.onContextMenuClose = createSignal();
112
+ out.onContextMenuOpen = createSignal();
113
+ return finishEntity(out);
114
+ })();
109
115
  return _menuSignals;
110
116
  }
111
117
  export function getMenuSignals() {
112
118
  return _menuSignals;
113
119
  }
120
+ // Allocates a MenuHighlight event entity with an inert signal; call attachMenuHighlight to start
121
+ // delivery. Entity-composed, like every identity-bearing SDK object.
122
+ export function initializeMenuHighlight(out) {
123
+ out.onMenuItemHighlight = createSignal();
124
+ }
125
+ // Allocates a MenuSelect event entity with an inert signal; call attachMenuSelect to start delivery.
126
+ export function initializeMenuSelect(out) {
127
+ out.onMenuItemSelect = createSignal();
128
+ }
114
129
  // Installs the application menu bar through the host's provider. Returns false when the install did
115
130
  // not take effect. A host without a native menu bar omits the slot entirely, so this cannot be reached
116
131
  // with a stub that always answers false.
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.1-next.815.cc08b93",
3
+ "version": "0.5.1-next.903.f434bc2",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.815.cc08b93",
42
- "@flighthq/signals": "0.5.1-next.815.cc08b93",
43
- "@flighthq/types": "0.5.1-next.815.cc08b93"
41
+ "@flighthq/entity": "0.5.1-next.903.f434bc2",
42
+ "@flighthq/signals": "0.5.1-next.903.f434bc2",
43
+ "@flighthq/types": "0.5.1-next.903.f434bc2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.3.0"
package/src/menu.test.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { connectSignal } from '@flighthq/signals/contract';
3
3
  import type {
4
4
  EntityWithoutRuntime,
@@ -12,6 +12,7 @@ import type {
12
12
  MenuPopupBackend,
13
13
  MenuSelectBackend,
14
14
  } from '@flighthq/types/contract';
15
+ import { EntityRuntimeKey } from '@flighthq/types/contract';
15
16
 
16
17
  import {
17
18
  attachMenuHighlight,
@@ -38,12 +39,14 @@ function popupHost(result: string | null, calls: string[] = []): HasMenuPopup &
38
39
  return {
39
40
  calls,
40
41
  menu: {
41
- popup: createEntity<EntityWithoutRuntime<MenuPopupBackend>>({
42
- popup(_items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null> {
42
+ popup: (() => {
43
+ const out = allocateEntity<any>();
44
+ out.popup = (_items: readonly MenuItemTemplate[], x: number, y: number): Promise<string | null> => {
43
45
  calls.push(`popup@${x},${y}`);
44
46
  return Promise.resolve(result);
45
- },
46
- }),
47
+ };
48
+ return finishEntity(out);
49
+ })(),
47
50
  },
48
51
  };
49
52
  }
@@ -51,12 +54,14 @@ function popupHost(result: string | null, calls: string[] = []): HasMenuPopup &
51
54
  function applicationHost(accepted: boolean, seen: MenuItemTemplate[][] = []): HasMenuApplication {
52
55
  return {
53
56
  menu: {
54
- application: createEntity<EntityWithoutRuntime<MenuApplicationBackend>>({
55
- setApplicationMenu(items: readonly MenuItemTemplate[]): boolean {
57
+ application: (() => {
58
+ const out = allocateEntity<any>();
59
+ out.setApplicationMenu = (items: readonly MenuItemTemplate[]): boolean => {
56
60
  seen.push([...items]);
57
61
  return accepted;
58
- },
59
- }),
62
+ };
63
+ return finishEntity(out);
64
+ })(),
60
65
  },
61
66
  };
62
67
  }
@@ -68,14 +73,16 @@ function selectHost(): HasMenuSelect & { emit(id: string): void; subscriberCount
68
73
  for (const listener of listeners) listener(id);
69
74
  },
70
75
  menu: {
71
- select: createEntity<EntityWithoutRuntime<MenuSelectBackend>>({
72
- subscribe(listener: (id: string) => void): () => void {
76
+ select: (() => {
77
+ const out = allocateEntity<any>();
78
+ out.subscribe = (listener: (id: string) => void): (() => void) => {
73
79
  listeners.add(listener);
74
80
  return () => {
75
81
  listeners.delete(listener);
76
82
  };
77
- },
78
- }),
83
+ };
84
+ return finishEntity(out);
85
+ })(),
79
86
  },
80
87
  subscriberCount(): number {
81
88
  return listeners.size;
@@ -90,14 +97,16 @@ function highlightHost(): HasMenuHighlight & { emit(id: string): void } {
90
97
  for (const listener of listeners) listener(id);
91
98
  },
92
99
  menu: {
93
- highlight: createEntity<EntityWithoutRuntime<MenuHighlightBackend>>({
94
- subscribe(listener: (id: string) => void): () => void {
100
+ highlight: (() => {
101
+ const out = allocateEntity<any>();
102
+ out.subscribe = (listener: (id: string) => void): (() => void) => {
95
103
  listeners.add(listener);
96
104
  return () => {
97
105
  listeners.delete(listener);
98
106
  };
99
- },
100
- }),
107
+ };
108
+ return finishEntity(out);
109
+ })(),
101
110
  },
102
111
  };
103
112
  }
@@ -191,7 +200,8 @@ describe('createMenuSelect', () => {
191
200
 
192
201
  describe('destroyMenuApplication', () => {
193
202
  function applicationHostWith(provider: EntityWithoutRuntime<MenuApplicationBackend>): HasMenuApplication {
194
- return { menu: { application: createEntity(provider) } };
203
+ (provider as Record<symbol, unknown>)[EntityRuntimeKey] = undefined;
204
+ return { menu: { application: provider as MenuApplicationBackend } };
195
205
  }
196
206
 
197
207
  it('destroys each distinct provider exactly once, even when hosts alias one', () => {