@flighthq/tray 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee

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
@@ -1,6 +1,6 @@
1
1
  # @flighthq/tray
2
2
 
3
- Capability-refined tray icon Entities over explicitly injected host facets
3
+ Tray icon Entities over explicitly injected operation providers
4
4
 
5
5
  ## Install
6
6
 
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/tray`. 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/tray@0.5.1-next.1069.554a2ac](https://github.com/flighthq/flight/tree/554a2acc3fecf189b89b0729308ff890a15c21cc/packages/tray)
17
- - [License](https://github.com/flighthq/flight/blob/554a2acc3fecf189b89b0729308ff890a15c21cc/LICENSE.md)
16
+ - [Source for @flighthq/tray@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/tray)
17
+ - [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
package/dist/tray.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { Entity, EntityConstruction, HasTrayLifecycle, MenuItemTemplate, TrayAnimationStartResult, TrayAnimationStopResult, TrayBalloonDisplayResult, TrayBalloonEvent, TrayBalloonOptions, TrayBalloonRemoveResult, TrayBoundsResult, TrayCreateResult, TrayCreateProviderResult, TrayDestroyResult, TrayDoubleClickPolicyUpdateResult, TrayDropEvent, TrayEventAttachResult, TrayIcon, TrayIconForHost, TrayIconOptions, TrayIconSource, TrayImageUpdateResult, TrayInteractionEvent, TrayMenuSelectionEvent, TrayMenuUpdateResult, TrayPopupMenuResult, TrayPressedImageUpdateResult, TrayTemplateImageUpdateResult, TrayTitleReadResult, TrayTitleUpdateResult, TrayTooltipReadResult, TrayTooltipUpdateResult, TrayWithBalloon, TrayWithBalloonEvents, TrayWithBounds, TrayWithDoubleClickPolicy, TrayWithDropEvents, TrayWithImage, TrayWithInteractionEvents, TrayWithMenu, TrayWithMenuSelectionEvents, TrayWithPopupMenu, TrayWithPressedImage, TrayWithTemplateImage, TrayWithTitle, TrayWithTooltip, Vector2Like } from '@flighthq/types/contract';
2
- export declare function createTrayIcon<HostType extends HasTrayLifecycle>(host: HostType, options?: Readonly<TrayIconOptions>): Promise<TrayCreateResult<TrayIconForHost<HostType>>>;
1
+ import type { Entity, EntityConstruction, HostTrayBalloonEventsProvider, HostTrayBalloonProvider, HostTrayBoundsProvider, HostTrayDoubleClickPolicyProvider, HostTrayDropEventsProvider, HostTrayImageProvider, HostTrayInteractionEventsProvider, HostTrayLifecycleProvider, HostTrayMenuProvider, HostTrayMenuSelectionEventsProvider, HostTrayPopupMenuProvider, HostTrayPressedImageProvider, HostTrayTemplateImageProvider, HostTrayTitleProvider, HostTrayTooltipProvider, MenuItemTemplate, TrayAnimationStartResult, TrayAnimationStopResult, TrayBalloonDisplayResult, TrayBalloonEvent, TrayBalloonOptions, TrayBalloonRemoveResult, TrayBoundsResult, TrayCreateResult, TrayCreateProviderResult, TrayDestroyResult, TrayDoubleClickPolicyUpdateResult, TrayDropEvent, TrayEventAttachResult, TrayIcon, TrayIconOptions, TrayIconSource, TrayImageUpdateResult, TrayInteractionEvent, TrayMenuSelectionEvent, TrayMenuUpdateResult, TrayPopupMenuResult, TrayPressedImageUpdateResult, TrayTemplateImageUpdateResult, TrayTitleReadResult, TrayTitleUpdateResult, TrayTooltipReadResult, TrayTooltipUpdateResult, Vector2Like } from '@flighthq/types/contract';
2
+ export declare function createTrayIcon(hostTrayLifecycle: Readonly<HostTrayLifecycleProvider>, options?: Readonly<TrayIconOptions>): Promise<TrayCreateResult>;
3
3
  export declare function destroyTrayIcon(tray: TrayIcon): Promise<TrayDestroyResult>;
4
- export declare function displayTrayBalloon(tray: TrayWithBalloon, options: Readonly<TrayBalloonOptions>): Promise<TrayBalloonDisplayResult>;
5
- export declare function getTrayIconBounds(tray: TrayWithBounds): Promise<TrayBoundsResult>;
6
- export declare function getTrayIcons(host: HasTrayLifecycle): readonly TrayIcon[];
7
- export declare function getTrayIconTitle(tray: TrayWithTitle): Promise<TrayTitleReadResult>;
8
- export declare function getTrayIconTooltip(tray: TrayWithTooltip): Promise<TrayTooltipReadResult>;
4
+ export declare function displayTrayBalloon(hostTrayBalloon: Readonly<HostTrayBalloonProvider>, tray: TrayIcon, options: Readonly<TrayBalloonOptions>): Promise<TrayBalloonDisplayResult>;
5
+ export declare function getTrayIconBounds(hostTrayBounds: Readonly<HostTrayBoundsProvider>, tray: TrayIcon): Promise<TrayBoundsResult>;
6
+ export declare function getTrayIcons(hostTrayLifecycle: Readonly<HostTrayLifecycleProvider>): readonly TrayIcon[];
7
+ export declare function getTrayIconTitle(hostTrayTitle: Readonly<HostTrayTitleProvider>, tray: TrayIcon): Promise<TrayTitleReadResult>;
8
+ export declare function getTrayIconTooltip(hostTrayTooltip: Readonly<HostTrayTooltipProvider>, tray: TrayIcon): Promise<TrayTooltipReadResult>;
9
9
  export declare function initializeTrayCreateFailedResult(out: EntityConstruction<Entity & {
10
10
  error?: unknown;
11
11
  outcome: 'tray-create-failed';
@@ -22,20 +22,20 @@ export declare function initializeTrayCreateSuccessResult<Tray extends TrayIcon>
22
22
  }>, outcome: 'created', tray: Tray): void;
23
23
  export declare function isTrayDestroyed(tray: Readonly<TrayIcon>): boolean;
24
24
  export declare function isTrayIconAnimating(tray: Readonly<TrayIcon>): boolean;
25
- export declare function onTrayBalloonEvent(tray: TrayWithBalloonEvents, listener: (event: Readonly<TrayBalloonEvent>) => void): TrayEventAttachResult;
26
- export declare function onTrayDrop(tray: TrayWithDropEvents, listener: (event: Readonly<TrayDropEvent>) => void): TrayEventAttachResult;
27
- export declare function onTrayInteraction(tray: TrayWithInteractionEvents, listener: (event: Readonly<TrayInteractionEvent>) => void): TrayEventAttachResult;
28
- export declare function onTrayMenuSelection(tray: TrayWithMenuSelectionEvents, listener: (event: Readonly<TrayMenuSelectionEvent>) => void): TrayEventAttachResult;
29
- export declare function popupTrayContextMenu(tray: TrayWithPopupMenu, position?: Readonly<Vector2Like>): Promise<TrayPopupMenuResult>;
30
- export declare function removeTrayBalloon(tray: TrayWithBalloon): Promise<TrayBalloonRemoveResult>;
25
+ export declare function onTrayBalloonEvent(hostTrayBalloonEvents: Readonly<HostTrayBalloonEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayBalloonEvent>) => void): TrayEventAttachResult;
26
+ export declare function onTrayDrop(hostTrayDropEvents: Readonly<HostTrayDropEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayDropEvent>) => void): TrayEventAttachResult;
27
+ export declare function onTrayInteraction(hostTrayInteractionEvents: Readonly<HostTrayInteractionEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayInteractionEvent>) => void): TrayEventAttachResult;
28
+ export declare function onTrayMenuSelection(hostTrayMenuSelectionEvents: Readonly<HostTrayMenuSelectionEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayMenuSelectionEvent>) => void): TrayEventAttachResult;
29
+ export declare function popupTrayContextMenu(hostTrayPopupMenu: Readonly<HostTrayPopupMenuProvider>, tray: TrayIcon, position?: Readonly<Vector2Like>): Promise<TrayPopupMenuResult>;
30
+ export declare function removeTrayBalloon(hostTrayBalloon: Readonly<HostTrayBalloonProvider>, tray: TrayIcon): Promise<TrayBalloonRemoveResult>;
31
31
  export declare function setTrayAnimationGuard(guard: ((tray: TrayIcon, frameCount: number, intervalMs: number) => void) | null): void;
32
- export declare function setTrayIcon(tray: TrayWithImage, icon: TrayIconSource): Promise<TrayImageUpdateResult>;
33
- export declare function setTrayIconContextMenu(tray: TrayWithMenu, items: readonly MenuItemTemplate[]): Promise<TrayMenuUpdateResult>;
34
- export declare function setTrayIconTemplate(tray: TrayWithTemplateImage, isTemplate: boolean): Promise<TrayTemplateImageUpdateResult>;
35
- export declare function setTrayIconTitle(tray: TrayWithTitle, title: string): Promise<TrayTitleUpdateResult>;
36
- export declare function setTrayIconTooltip(tray: TrayWithTooltip, tooltip: string): Promise<TrayTooltipUpdateResult>;
37
- export declare function setTrayIgnoreDoubleClickEvents(tray: TrayWithDoubleClickPolicy, ignore: boolean): Promise<TrayDoubleClickPolicyUpdateResult>;
38
- export declare function setTrayPressedIcon(tray: TrayWithPressedImage, icon: TrayIconSource): Promise<TrayPressedImageUpdateResult>;
39
- export declare function startTrayIconAnimation(tray: TrayWithImage, frames: readonly TrayIconSource[], intervalMs: number): Promise<TrayAnimationStartResult>;
32
+ export declare function setTrayIcon(hostTrayImage: Readonly<HostTrayImageProvider>, tray: TrayIcon, icon: TrayIconSource): Promise<TrayImageUpdateResult>;
33
+ export declare function setTrayIconContextMenu(hostTrayMenu: Readonly<HostTrayMenuProvider>, tray: TrayIcon, items: readonly MenuItemTemplate[]): Promise<TrayMenuUpdateResult>;
34
+ export declare function setTrayIconTemplate(hostTrayTemplateImage: Readonly<HostTrayTemplateImageProvider>, tray: TrayIcon, isTemplate: boolean): Promise<TrayTemplateImageUpdateResult>;
35
+ export declare function setTrayIconTitle(hostTrayTitle: Readonly<HostTrayTitleProvider>, tray: TrayIcon, title: string): Promise<TrayTitleUpdateResult>;
36
+ export declare function setTrayIconTooltip(hostTrayTooltip: Readonly<HostTrayTooltipProvider>, tray: TrayIcon, tooltip: string): Promise<TrayTooltipUpdateResult>;
37
+ export declare function setTrayIgnoreDoubleClickEvents(hostTrayDoubleClickPolicy: Readonly<HostTrayDoubleClickPolicyProvider>, tray: TrayIcon, ignore: boolean): Promise<TrayDoubleClickPolicyUpdateResult>;
38
+ export declare function setTrayPressedIcon(hostTrayPressedImage: Readonly<HostTrayPressedImageProvider>, tray: TrayIcon, icon: TrayIconSource): Promise<TrayPressedImageUpdateResult>;
39
+ export declare function startTrayIconAnimation(hostTrayImage: Readonly<HostTrayImageProvider>, tray: TrayIcon, frames: readonly TrayIconSource[], intervalMs: number): Promise<TrayAnimationStartResult>;
40
40
  export declare function stopTrayIconAnimation(tray: TrayIcon): TrayAnimationStopResult;
41
41
  //# sourceMappingURL=tray.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
package/dist/tray.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { allocateEntity, createEntityRuntime, finishEntity } from '@flighthq/entity/contract';
2
2
  import { connectSignal, disconnectSignal } from '@flighthq/signals/contract';
3
3
  import { EntityRuntimeKey } from '@flighthq/types/contract';
4
- export async function createTrayIcon(host, options = {}) {
4
+ export async function createTrayIcon(hostTrayLifecycle, options = {}) {
5
5
  const tray = finishEntity(allocateEntity());
6
6
  let result;
7
7
  try {
8
- result = await host.tray.lifecycle.create(tray, options);
8
+ result = await hostTrayLifecycle.create(tray, options);
9
9
  }
10
10
  catch (error) {
11
11
  const out = allocateEntity();
@@ -21,9 +21,8 @@ export async function createTrayIcon(host, options = {}) {
21
21
  runtime.animationGeneration = 0;
22
22
  runtime.animationTimer = null;
23
23
  runtime.animationWriteTail = Promise.resolve();
24
- runtime.capabilities = { ...host.tray };
25
24
  runtime.destroyPromise = null;
26
- runtime.lifecycle = host.tray.lifecycle;
25
+ runtime.lifecycle = hostTrayLifecycle;
27
26
  runtime.releases = new Set();
28
27
  runtime.state = 'active';
29
28
  tray[EntityRuntimeKey] = runtime;
@@ -42,11 +41,11 @@ export function destroyTrayIcon(tray) {
42
41
  });
43
42
  return runtime.destroyPromise;
44
43
  }
45
- export function displayTrayBalloon(tray, options) {
46
- return invokeUpdate(tray, 'balloon', 'balloon-display-failed', (backend) => backend.display(tray, options));
44
+ export function displayTrayBalloon(hostTrayBalloon, tray, options) {
45
+ return invokeUpdate(hostTrayBalloon, tray, 'balloon-display-failed', (provider) => provider.display(tray, options));
47
46
  }
48
- export function getTrayIconBounds(tray) {
49
- return invokeRead(tray, 'bounds', 'bounds-read-failed', (backend) => backend.get(tray));
47
+ export function getTrayIconBounds(hostTrayBounds, tray) {
48
+ return invokeRead(hostTrayBounds, tray, 'bounds-read-failed', (provider) => provider.get(tray));
50
49
  }
51
50
  async function destroyTrayRuntime(tray, runtime) {
52
51
  runtime.state = 'destroying';
@@ -67,14 +66,14 @@ async function destroyTrayRuntime(tray, runtime) {
67
66
  runtime.state = 'partially-destroyed';
68
67
  return result;
69
68
  }
70
- export function getTrayIcons(host) {
71
- return host.tray.lifecycle.list();
69
+ export function getTrayIcons(hostTrayLifecycle) {
70
+ return hostTrayLifecycle.list();
72
71
  }
73
- export function getTrayIconTitle(tray) {
74
- return invokeRead(tray, 'title', 'title-read-failed', (backend) => backend.get(tray));
72
+ export function getTrayIconTitle(hostTrayTitle, tray) {
73
+ return invokeRead(hostTrayTitle, tray, 'title-read-failed', (provider) => provider.get(tray));
75
74
  }
76
- export function getTrayIconTooltip(tray) {
77
- return invokeRead(tray, 'tooltip', 'tooltip-read-failed', (backend) => backend.get(tray));
75
+ export function getTrayIconTooltip(hostTrayTooltip, tray) {
76
+ return invokeRead(hostTrayTooltip, tray, 'tooltip-read-failed', (provider) => provider.get(tray));
78
77
  }
79
78
  export function initializeTrayCreateFailedResult(out, error, outcome) {
80
79
  out.error = error;
@@ -95,49 +94,48 @@ export function isTrayDestroyed(tray) {
95
94
  export function isTrayIconAnimating(tray) {
96
95
  return getTrayRuntime(tray)?.animationTimer !== null;
97
96
  }
98
- export function onTrayBalloonEvent(tray, listener) {
99
- return attachTrayEvent(tray, 'balloonEvents', listener);
97
+ export function onTrayBalloonEvent(hostTrayBalloonEvents, tray, listener) {
98
+ return attachTrayEvent(hostTrayBalloonEvents, tray, listener);
100
99
  }
101
- export function onTrayDrop(tray, listener) {
102
- return attachTrayEvent(tray, 'dropEvents', listener);
100
+ export function onTrayDrop(hostTrayDropEvents, tray, listener) {
101
+ return attachTrayEvent(hostTrayDropEvents, tray, listener);
103
102
  }
104
- export function onTrayInteraction(tray, listener) {
105
- return attachTrayEvent(tray, 'interactionEvents', listener);
103
+ export function onTrayInteraction(hostTrayInteractionEvents, tray, listener) {
104
+ return attachTrayEvent(hostTrayInteractionEvents, tray, listener);
106
105
  }
107
- export function onTrayMenuSelection(tray, listener) {
108
- return attachTrayEvent(tray, 'menuSelectionEvents', listener);
106
+ export function onTrayMenuSelection(hostTrayMenuSelectionEvents, tray, listener) {
107
+ return attachTrayEvent(hostTrayMenuSelectionEvents, tray, listener);
109
108
  }
110
- export function popupTrayContextMenu(tray, position) {
111
- return invokeUpdate(tray, 'popupMenu', 'popup-failed', (backend) => backend.popup(tray, position));
109
+ export function popupTrayContextMenu(hostTrayPopupMenu, tray, position) {
110
+ return invokeUpdate(hostTrayPopupMenu, tray, 'popup-failed', (provider) => provider.popup(tray, position));
112
111
  }
113
- export function removeTrayBalloon(tray) {
114
- return invokeUpdate(tray, 'balloon', 'balloon-remove-failed', (backend) => backend.remove(tray));
112
+ export function removeTrayBalloon(hostTrayBalloon, tray) {
113
+ return invokeUpdate(hostTrayBalloon, tray, 'balloon-remove-failed', (provider) => provider.remove(tray));
115
114
  }
116
115
  export function setTrayAnimationGuard(guard) {
117
116
  _animationGuard = guard;
118
117
  }
119
- export function setTrayIcon(tray, icon) {
120
- return invokeUpdate(tray, 'image', 'image-update-failed', (backend) => backend.set(tray, icon));
118
+ export function setTrayIcon(hostTrayImage, tray, icon) {
119
+ return invokeUpdate(hostTrayImage, tray, 'image-update-failed', (provider) => provider.set(tray, icon));
121
120
  }
122
- export function setTrayIconContextMenu(tray, items) {
123
- return invokeUpdate(tray, 'menu', 'menu-install-failed', (backend) => backend.set(tray, items));
121
+ export function setTrayIconContextMenu(hostTrayMenu, tray, items) {
122
+ return invokeUpdate(hostTrayMenu, tray, 'menu-install-failed', (provider) => provider.set(tray, items));
124
123
  }
125
- export function setTrayIconTemplate(tray, isTemplate) {
126
- return invokeUpdate(tray, 'templateImage', 'template-image-update-failed', (backend) => backend.set(tray, isTemplate));
124
+ export function setTrayIconTemplate(hostTrayTemplateImage, tray, isTemplate) {
125
+ return invokeUpdate(hostTrayTemplateImage, tray, 'template-image-update-failed', (provider) => provider.set(tray, isTemplate));
127
126
  }
128
- export function setTrayIconTitle(tray, title) {
129
- return invokeUpdate(tray, 'title', 'title-update-failed', (backend) => backend.set(tray, title));
127
+ export function setTrayIconTitle(hostTrayTitle, tray, title) {
128
+ return invokeUpdate(hostTrayTitle, tray, 'title-update-failed', (provider) => provider.set(tray, title));
130
129
  }
131
- export function setTrayIconTooltip(tray, tooltip) {
132
- return invokeUpdate(tray, 'tooltip', 'tooltip-update-failed', (backend) => backend.set(tray, tooltip));
130
+ export function setTrayIconTooltip(hostTrayTooltip, tray, tooltip) {
131
+ return invokeUpdate(hostTrayTooltip, tray, 'tooltip-update-failed', (provider) => provider.set(tray, tooltip));
133
132
  }
134
- function attachTrayEvent(tray, slot, listener) {
133
+ function attachTrayEvent(provider, tray, listener) {
135
134
  const runtime = getActiveTrayRuntime(tray);
136
135
  if (runtime === null)
137
136
  return { outcome: 'tray-destroyed' };
138
137
  try {
139
- const backend = runtime.capabilities[slot];
140
- const signal = backend?.getSignal(tray) ?? null;
138
+ const signal = provider.getSignal(tray);
141
139
  if (signal === null)
142
140
  return { outcome: 'tray-destroyed' };
143
141
  connectSignal(signal, listener);
@@ -164,13 +162,13 @@ function attachTrayEvent(tray, slot, listener) {
164
162
  return { error, outcome: 'subscription-failed' };
165
163
  }
166
164
  }
167
- export function setTrayIgnoreDoubleClickEvents(tray, ignore) {
168
- return invokeUpdate(tray, 'doubleClickPolicy', 'double-click-policy-update-failed', (backend) => backend.setIgnore(tray, ignore));
165
+ export function setTrayIgnoreDoubleClickEvents(hostTrayDoubleClickPolicy, tray, ignore) {
166
+ return invokeUpdate(hostTrayDoubleClickPolicy, tray, 'double-click-policy-update-failed', (provider) => provider.setIgnore(tray, ignore));
169
167
  }
170
- export function setTrayPressedIcon(tray, icon) {
171
- return invokeUpdate(tray, 'pressedImage', 'pressed-image-update-failed', (backend) => backend.set(tray, icon));
168
+ export function setTrayPressedIcon(hostTrayPressedImage, tray, icon) {
169
+ return invokeUpdate(hostTrayPressedImage, tray, 'pressed-image-update-failed', (provider) => provider.set(tray, icon));
172
170
  }
173
- export async function startTrayIconAnimation(tray, frames, intervalMs) {
171
+ export async function startTrayIconAnimation(hostTrayImage, tray, frames, intervalMs) {
174
172
  if (frames.length === 0)
175
173
  return { outcome: 'empty' };
176
174
  const runtime = getActiveTrayRuntime(tray);
@@ -179,7 +177,7 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
179
177
  _animationGuard?.(tray, frames.length, intervalMs);
180
178
  stopTrayAnimationRuntime(runtime);
181
179
  const generation = runtime.animationGeneration;
182
- const first = await queueAnimationWrite(tray, runtime, generation, frames[0]);
180
+ const first = await queueAnimationWrite(hostTrayImage, tray, runtime, generation, frames[0]);
183
181
  if (first.outcome !== 'updated')
184
182
  return first;
185
183
  if (runtime.state !== 'active' || runtime.animationGeneration !== generation)
@@ -187,7 +185,7 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
187
185
  let index = 0;
188
186
  runtime.animationTimer = setInterval(() => {
189
187
  index = (index + 1) % frames.length;
190
- void queueAnimationWrite(tray, runtime, generation, frames[index]);
188
+ void queueAnimationWrite(hostTrayImage, tray, runtime, generation, frames[index]);
191
189
  }, intervalMs);
192
190
  const release = {
193
191
  released: false,
@@ -202,12 +200,12 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
202
200
  };
203
201
  return { outcome: 'started', release };
204
202
  }
205
- async function queueAnimationWrite(tray, runtime, generation, frame) {
203
+ async function queueAnimationWrite(hostTrayImage, tray, runtime, generation, frame) {
206
204
  let result = { outcome: 'tray-destroyed' };
207
205
  runtime.animationWriteTail = runtime.animationWriteTail.then(async () => {
208
206
  if (runtime.state !== 'active' || runtime.animationGeneration !== generation)
209
207
  return;
210
- result = await setTrayIcon(tray, frame);
208
+ result = await setTrayIcon(hostTrayImage, tray, frame);
211
209
  });
212
210
  await runtime.animationWriteTail;
213
211
  return result;
@@ -233,18 +231,18 @@ function getActiveTrayRuntime(tray) {
233
231
  const runtime = getTrayRuntime(tray);
234
232
  return runtime?.state === 'active' ? runtime : null;
235
233
  }
236
- async function invokeUpdate(tray, slot, failure, operation) {
234
+ async function invokeUpdate(provider, tray, failure, operation) {
237
235
  const runtime = getActiveTrayRuntime(tray);
238
236
  if (runtime === null)
239
237
  return { outcome: 'tray-destroyed' };
240
238
  try {
241
- return await operation(runtime.capabilities[slot]);
239
+ return await operation(provider);
242
240
  }
243
241
  catch (error) {
244
242
  return { error, outcome: failure };
245
243
  }
246
244
  }
247
- function invokeRead(tray, slot, failure, operation) {
248
- return invokeUpdate(tray, slot, failure, operation);
245
+ function invokeRead(provider, tray, failure, operation) {
246
+ return invokeUpdate(provider, tray, failure, operation);
249
247
  }
250
248
  //# sourceMappingURL=tray.js.map
package/dist/tray.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/tray",
3
- "version": "0.5.1-next.1069.554a2ac",
3
+ "version": "0.5.1-next.1201.9b49dee",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,14 +38,14 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.1069.554a2ac",
42
- "@flighthq/log": "0.5.1-next.1069.554a2ac",
43
- "@flighthq/signals": "0.5.1-next.1069.554a2ac",
44
- "@flighthq/types": "0.5.1-next.1069.554a2ac"
41
+ "@flighthq/entity": "0.5.1-next.1201.9b49dee",
42
+ "@flighthq/log": "0.5.1-next.1201.9b49dee",
43
+ "@flighthq/signals": "0.5.1-next.1201.9b49dee",
44
+ "@flighthq/types": "0.5.1-next.1201.9b49dee"
45
45
  },
46
46
  "devDependencies": {
47
47
  "typescript": "^5.3.0"
48
48
  },
49
- "description": "Capability-refined tray icon Entities over explicitly injected host facets",
49
+ "description": "Tray icon Entities over explicitly injected operation providers",
50
50
  "sideEffects": false
51
51
  }
@@ -51,9 +51,10 @@ function host() {
51
51
  }
52
52
 
53
53
  async function tray() {
54
- const result = await createTrayIcon(host());
54
+ const providers = host();
55
+ const result = await createTrayIcon(providers.tray.lifecycle);
55
56
  if (result.outcome !== 'created') throw new Error(result.outcome);
56
- return result.tray;
57
+ return { icon: result.tray, image: providers.tray.image };
57
58
  }
58
59
 
59
60
  function messages(): string {
@@ -64,8 +65,8 @@ describe('disableTrayGuards', () => {
64
65
  it('stops inspecting later animations', async () => {
65
66
  enableTrayGuards();
66
67
  disableTrayGuards();
67
- const icon = await tray();
68
- const started = await startTrayIconAnimation(icon, ['a'], 0);
68
+ const { icon, image } = await tray();
69
+ const started = await startTrayIconAnimation(image, icon, ['a'], 0);
69
70
  if (started.outcome === 'started') await started.release.release();
70
71
  await destroyTrayIcon(icon);
71
72
  expect(messages()).toBe('');
@@ -75,8 +76,8 @@ describe('disableTrayGuards', () => {
75
76
  describe('enableTrayGuards', () => {
76
77
  it('warns without refusing a non-positive interval', async () => {
77
78
  enableTrayGuards();
78
- const icon = await tray();
79
- const started = await startTrayIconAnimation(icon, ['a'], 0);
79
+ const { icon, image } = await tray();
80
+ const started = await startTrayIconAnimation(image, icon, ['a'], 0);
80
81
  expect(started.outcome).toBe('started');
81
82
  expect(messages()).toContain('intervalMs is 0');
82
83
  if (started.outcome === 'started') await started.release.release();
package/src/tray.test.ts CHANGED
@@ -1,27 +1,26 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { createSignal } from '@flighthq/signals/contract';
3
3
  import type {
4
- HasTrayBalloon,
5
- HasTrayBalloonEvents,
6
- HasTrayBounds,
7
- HasTrayDoubleClickPolicy,
8
- HasTrayDropEvents,
9
- HasTrayImage,
10
- HasTrayInteractionEvents,
11
- HasTrayLifecycle,
12
- HasTrayMenu,
13
- HasTrayMenuSelectionEvents,
14
- HasTrayPopupMenu,
15
- HasTrayPressedImage,
16
- HasTrayTemplateImage,
17
- HasTrayTitle,
18
- HasTrayTooltip,
4
+ HostTrayBalloonProvider,
5
+ HostTrayBalloonEventsProvider,
6
+ HostTrayBoundsProvider,
7
+ HostTrayDoubleClickPolicyProvider,
8
+ HostTrayDropEventsProvider,
9
+ HostTrayImageProvider,
10
+ HostTrayInteractionEventsProvider,
11
+ HostTrayLifecycleProvider,
12
+ HostTrayMenuProvider,
13
+ HostTrayMenuSelectionEventsProvider,
14
+ HostTrayPopupMenuProvider,
15
+ HostTrayPressedImageProvider,
16
+ HostTrayTemplateImageProvider,
17
+ HostTrayTitleProvider,
18
+ HostTrayTooltipProvider,
19
19
  RectangleLike,
20
20
  Signal,
21
21
  TrayBalloonEvent,
22
22
  TrayDropEvent,
23
23
  TrayIcon,
24
- TrayIconForHost,
25
24
  TrayInteractionEvent,
26
25
  TrayMenuSelectionEvent,
27
26
  } from '@flighthq/types/contract';
@@ -58,21 +57,25 @@ import {
58
57
  stopTrayIconAnimation,
59
58
  } from './tray';
60
59
 
61
- type TestHost = HasTrayLifecycle &
62
- HasTrayImage &
63
- HasTrayTitle &
64
- HasTrayTooltip &
65
- HasTrayMenu &
66
- HasTrayTemplateImage &
67
- HasTrayBounds &
68
- HasTrayPopupMenu &
69
- HasTrayDoubleClickPolicy &
70
- HasTrayPressedImage &
71
- HasTrayBalloon &
72
- HasTrayInteractionEvents &
73
- HasTrayMenuSelectionEvents &
74
- HasTrayBalloonEvents &
75
- HasTrayDropEvents;
60
+ type TestHost = { readonly tray: { readonly lifecycle: HostTrayLifecycleProvider } } & {
61
+ readonly tray: { readonly image: HostTrayImageProvider };
62
+ } & { readonly tray: { readonly title: HostTrayTitleProvider } } & {
63
+ readonly tray: { readonly tooltip: HostTrayTooltipProvider };
64
+ } & { readonly tray: { readonly menu: HostTrayMenuProvider } } & {
65
+ readonly tray: { readonly templateImage: HostTrayTemplateImageProvider };
66
+ } & { readonly tray: { readonly bounds: HostTrayBoundsProvider } } & {
67
+ readonly tray: { readonly popupMenu: HostTrayPopupMenuProvider };
68
+ } & { readonly tray: { readonly doubleClickPolicy: HostTrayDoubleClickPolicyProvider } } & {
69
+ readonly tray: { readonly pressedImage: HostTrayPressedImageProvider };
70
+ } & { readonly tray: { readonly balloon: HostTrayBalloonProvider } } & {
71
+ readonly tray: { readonly interactionEvents: HostTrayInteractionEventsProvider };
72
+ } & {
73
+ readonly tray: {
74
+ readonly menuSelectionEvents: HostTrayMenuSelectionEventsProvider;
75
+ };
76
+ } & { readonly tray: { readonly balloonEvents: HostTrayBalloonEventsProvider } } & {
77
+ readonly tray: { readonly dropEvents: HostTrayDropEventsProvider };
78
+ };
76
79
 
77
80
  interface TestState {
78
81
  balloonEvents: WeakMap<TrayIcon, Signal<(event: Readonly<TrayBalloonEvent>) => void>>;
@@ -235,8 +238,8 @@ function testHost(): { host: TestHost; state: TestState } {
235
238
  return { host: host as TestHost, state };
236
239
  }
237
240
 
238
- async function acquire(host: TestHost): Promise<TrayIconForHost<TestHost>> {
239
- const result = await createTrayIcon(host);
241
+ async function acquire(host: TestHost): Promise<TrayIcon> {
242
+ const result = await createTrayIcon(host.tray.lifecycle);
240
243
  if (result.outcome !== 'created') throw new Error(result.outcome);
241
244
  return result.tray;
242
245
  }
@@ -244,7 +247,7 @@ async function acquire(host: TestHost): Promise<TrayIconForHost<TestHost>> {
244
247
  describe('createTrayIcon', () => {
245
248
  it('publishes only after provider acquisition and exposes no public id', async () => {
246
249
  const { host, state } = testHost();
247
- const pending = createTrayIcon(host);
250
+ const pending = createTrayIcon(host.tray.lifecycle);
248
251
  expect(state.live).toHaveLength(1);
249
252
  const result = await pending;
250
253
  expect(result.outcome).toBe('created');
@@ -267,14 +270,19 @@ describe('displayTrayBalloon', () => {
267
270
  it('owns balloon display on the Tray entity', async () => {
268
271
  const { host } = testHost();
269
272
  const tray = await acquire(host);
270
- expect((await displayTrayBalloon(tray, { text: 'Done', title: 'Flight' })).outcome).toBe('displayed');
273
+ expect((await displayTrayBalloon(host.tray.balloon, tray, { text: 'Done', title: 'Flight' })).outcome).toBe(
274
+ 'displayed',
275
+ );
271
276
  });
272
277
  });
273
278
 
274
279
  describe('getTrayIconBounds', () => {
275
280
  it('returns provider bounds', async () => {
276
281
  const { host } = testHost();
277
- expect(await getTrayIconBounds(await acquire(host))).toMatchObject({ outcome: 'available', bounds: { width: 1 } });
282
+ expect(await getTrayIconBounds(host.tray.bounds, await acquire(host))).toMatchObject({
283
+ outcome: 'available',
284
+ bounds: { width: 1 },
285
+ });
278
286
  });
279
287
  });
280
288
 
@@ -283,7 +291,7 @@ describe('getTrayIcons', () => {
283
291
  const { host } = testHost();
284
292
  const first = await acquire(host);
285
293
  const second = await acquire(host);
286
- expect(getTrayIcons(host)).toEqual([first, second]);
294
+ expect(getTrayIcons(host.tray.lifecycle)).toEqual([first, second]);
287
295
  });
288
296
  });
289
297
 
@@ -291,8 +299,8 @@ describe('getTrayIconTitle', () => {
291
299
  it('reads the title', async () => {
292
300
  const { host } = testHost();
293
301
  const tray = await acquire(host);
294
- await setTrayIconTitle(tray, 'Flight');
295
- expect(await getTrayIconTitle(tray)).toEqual({ outcome: 'available', title: 'Flight' });
302
+ await setTrayIconTitle(host.tray.title, tray, 'Flight');
303
+ expect(await getTrayIconTitle(host.tray.title, tray)).toEqual({ outcome: 'available', title: 'Flight' });
296
304
  });
297
305
  });
298
306
 
@@ -300,8 +308,8 @@ describe('getTrayIconTooltip', () => {
300
308
  it('reads the tooltip', async () => {
301
309
  const { host } = testHost();
302
310
  const tray = await acquire(host);
303
- await setTrayIconTooltip(tray, 'Ready');
304
- expect(await getTrayIconTooltip(tray)).toEqual({ outcome: 'available', tooltip: 'Ready' });
311
+ await setTrayIconTooltip(host.tray.tooltip, tray, 'Ready');
312
+ expect(await getTrayIconTooltip(host.tray.tooltip, tray)).toEqual({ outcome: 'available', tooltip: 'Ready' });
305
313
  });
306
314
  });
307
315
 
@@ -343,7 +351,7 @@ describe('isTrayIconAnimating', () => {
343
351
  vi.useFakeTimers();
344
352
  const { host } = testHost();
345
353
  const tray = await acquire(host);
346
- await startTrayIconAnimation(tray, ['a'], 10);
354
+ await startTrayIconAnimation(host.tray.image, tray, ['a'], 10);
347
355
  expect(isTrayIconAnimating(tray)).toBe(true);
348
356
  stopTrayIconAnimation(tray);
349
357
  expect(isTrayIconAnimating(tray)).toBe(false);
@@ -356,7 +364,7 @@ describe('onTrayBalloonEvent', () => {
356
364
  const { host, state } = testHost();
357
365
  const tray = await acquire(host);
358
366
  const listener = vi.fn();
359
- expect(onTrayBalloonEvent(tray, listener).outcome).toBe('attached');
367
+ expect(onTrayBalloonEvent(host.tray.balloonEvents, tray, listener).outcome).toBe('attached');
360
368
  state.balloonEvents.get(tray)!.emit({ type: 'show' });
361
369
  expect(listener).toHaveBeenCalledWith({ type: 'show' });
362
370
  });
@@ -367,7 +375,7 @@ describe('onTrayDrop', () => {
367
375
  const { host, state } = testHost();
368
376
  const tray = await acquire(host);
369
377
  const listener = vi.fn();
370
- expect(onTrayDrop(tray, listener).outcome).toBe('attached');
378
+ expect(onTrayDrop(host.tray.dropEvents, tray, listener).outcome).toBe('attached');
371
379
  state.dropEvents.get(tray)!.emit({ files: ['a'], type: 'files' });
372
380
  expect(listener).toHaveBeenCalledWith({ files: ['a'], type: 'files' });
373
381
  });
@@ -378,7 +386,7 @@ describe('onTrayInteraction', () => {
378
386
  const { host, state } = testHost();
379
387
  const tray = await acquire(host);
380
388
  const listener = vi.fn();
381
- const attached = onTrayInteraction(tray, listener);
389
+ const attached = onTrayInteraction(host.tray.interactionEvents, tray, listener);
382
390
  expect(attached.outcome).toBe('attached');
383
391
  state.interactionEvents.get(tray)!.emit({
384
392
  altKey: false,
@@ -395,7 +403,7 @@ describe('onTrayInteraction', () => {
395
403
  expect((await attached.release.release()).outcome).toBe('already-released');
396
404
  }
397
405
  const destroyReleased = vi.fn();
398
- onTrayInteraction(tray, destroyReleased);
406
+ onTrayInteraction(host.tray.interactionEvents, tray, destroyReleased);
399
407
  await destroyTrayIcon(tray);
400
408
  state.interactionEvents.get(tray)!.emit({
401
409
  altKey: false,
@@ -415,7 +423,7 @@ describe('onTrayMenuSelection', () => {
415
423
  const { host, state } = testHost();
416
424
  const tray = await acquire(host);
417
425
  const listener = vi.fn();
418
- expect(onTrayMenuSelection(tray, listener).outcome).toBe('attached');
426
+ expect(onTrayMenuSelection(host.tray.menuSelectionEvents, tray, listener).outcome).toBe('attached');
419
427
  state.menuSelectionEvents.get(tray)!.emit({ id: 'open' });
420
428
  expect(listener).toHaveBeenCalledWith({ id: 'open' });
421
429
  });
@@ -424,7 +432,9 @@ describe('onTrayMenuSelection', () => {
424
432
  describe('popupTrayContextMenu', () => {
425
433
  it('shows the installed menu', async () => {
426
434
  const { host } = testHost();
427
- expect((await popupTrayContextMenu(await acquire(host), { x: 1, y: 2 })).outcome).toBe('shown');
435
+ expect((await popupTrayContextMenu(host.tray.popupMenu, await acquire(host), { x: 1, y: 2 })).outcome).toBe(
436
+ 'shown',
437
+ );
428
438
  });
429
439
  });
430
440
 
@@ -432,8 +442,8 @@ describe('removeTrayBalloon', () => {
432
442
  it('owns balloon removal on the Tray entity', async () => {
433
443
  const { host } = testHost();
434
444
  const tray = await acquire(host);
435
- await displayTrayBalloon(tray, { text: 'Done', title: 'Flight' });
436
- expect((await removeTrayBalloon(tray)).outcome).toBe('removed');
445
+ await displayTrayBalloon(host.tray.balloon, tray, { text: 'Done', title: 'Flight' });
446
+ expect((await removeTrayBalloon(host.tray.balloon, tray)).outcome).toBe('removed');
437
447
  });
438
448
  });
439
449
 
@@ -444,7 +454,7 @@ describe('setTrayAnimationGuard', () => {
444
454
  setTrayAnimationGuard(guard);
445
455
  const { host } = testHost();
446
456
  const tray = await acquire(host);
447
- const started = await startTrayIconAnimation(tray, ['a'], 12);
457
+ const started = await startTrayIconAnimation(host.tray.image, tray, ['a'], 12);
448
458
  expect(guard).toHaveBeenCalledWith(tray, 1, 12);
449
459
  if (started.outcome === 'started') await started.release.release();
450
460
  setTrayAnimationGuard(null);
@@ -453,9 +463,9 @@ describe('setTrayAnimationGuard', () => {
453
463
  });
454
464
 
455
465
  describe('setTrayIcon', () => {
456
- it('uses the acquired provider facet', async () => {
466
+ it('uses the direct image provider', async () => {
457
467
  const { host, state } = testHost();
458
- expect((await setTrayIcon(await acquire(host), 'icon')).outcome).toBe('updated');
468
+ expect((await setTrayIcon(host.tray.image, await acquire(host), 'icon')).outcome).toBe('updated');
459
469
  expect(state.images).toEqual(['icon']);
460
470
  });
461
471
  });
@@ -463,16 +473,16 @@ describe('setTrayIcon', () => {
463
473
  describe('setTrayIconContextMenu', () => {
464
474
  it('installs a plain descriptor', async () => {
465
475
  const { host } = testHost();
466
- expect((await setTrayIconContextMenu(await acquire(host), [{ id: 'quit', label: 'Quit' }])).outcome).toBe(
467
- 'updated',
468
- );
476
+ expect(
477
+ (await setTrayIconContextMenu(host.tray.menu, await acquire(host), [{ id: 'quit', label: 'Quit' }])).outcome,
478
+ ).toBe('updated');
469
479
  });
470
480
  });
471
481
 
472
482
  describe('setTrayIconTemplate', () => {
473
483
  it('updates template treatment', async () => {
474
484
  const { host } = testHost();
475
- expect((await setTrayIconTemplate(await acquire(host), true)).outcome).toBe('updated');
485
+ expect((await setTrayIconTemplate(host.tray.templateImage, await acquire(host), true)).outcome).toBe('updated');
476
486
  });
477
487
  });
478
488
 
@@ -480,7 +490,7 @@ describe('setTrayIconTitle', () => {
480
490
  it('updates the title', async () => {
481
491
  const { host } = testHost();
482
492
  const tray = await acquire(host);
483
- expect((await setTrayIconTitle(tray, 'Flight')).outcome).toBe('updated');
493
+ expect((await setTrayIconTitle(host.tray.title, tray, 'Flight')).outcome).toBe('updated');
484
494
  });
485
495
  });
486
496
 
@@ -488,29 +498,31 @@ describe('setTrayIconTooltip', () => {
488
498
  it('updates the tooltip', async () => {
489
499
  const { host } = testHost();
490
500
  const tray = await acquire(host);
491
- expect((await setTrayIconTooltip(tray, 'Ready')).outcome).toBe('updated');
501
+ expect((await setTrayIconTooltip(host.tray.tooltip, tray, 'Ready')).outcome).toBe('updated');
492
502
  });
493
503
  });
494
504
 
495
505
  describe('setTrayIgnoreDoubleClickEvents', () => {
496
506
  it('updates the policy', async () => {
497
507
  const { host } = testHost();
498
- expect((await setTrayIgnoreDoubleClickEvents(await acquire(host), true)).outcome).toBe('updated');
508
+ expect((await setTrayIgnoreDoubleClickEvents(host.tray.doubleClickPolicy, await acquire(host), true)).outcome).toBe(
509
+ 'updated',
510
+ );
499
511
  });
500
512
  });
501
513
  describe('setTrayPressedIcon', () => {
502
514
  it('updates the pressed icon', async () => {
503
515
  const { host } = testHost();
504
- expect((await setTrayPressedIcon(await acquire(host), 'pressed')).outcome).toBe('updated');
516
+ expect((await setTrayPressedIcon(host.tray.pressedImage, await acquire(host), 'pressed')).outcome).toBe('updated');
505
517
  });
506
518
  });
507
519
 
508
520
  describe('startTrayIconAnimation', () => {
509
- it('writes through the origin-pinned image facet', async () => {
521
+ it('writes through the direct image provider', async () => {
510
522
  vi.useFakeTimers();
511
523
  const { host, state } = testHost();
512
524
  const tray = await acquire(host);
513
- const result = await startTrayIconAnimation(tray, ['a', 'b'], 10);
525
+ const result = await startTrayIconAnimation(host.tray.image, tray, ['a', 'b'], 10);
514
526
  expect(result.outcome).toBe('started');
515
527
  await vi.advanceTimersByTimeAsync(10);
516
528
  expect(state.images).toEqual(['a', 'b']);
@@ -524,7 +536,7 @@ describe('stopTrayIconAnimation', () => {
524
536
  vi.useFakeTimers();
525
537
  const { host } = testHost();
526
538
  const tray = await acquire(host);
527
- await startTrayIconAnimation(tray, ['a'], 10);
539
+ await startTrayIconAnimation(host.tray.image, tray, ['a'], 10);
528
540
  expect(stopTrayIconAnimation(tray).outcome).toBe('stopped');
529
541
  expect(stopTrayIconAnimation(tray).outcome).toBe('already-stopped');
530
542
  vi.useRealTimers();