foldkit 0.83.0 → 0.85.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.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/dist/devTools/overlay.d.ts.map +1 -1
  3. package/dist/devTools/overlay.js +66 -4
  4. package/dist/devTools/protocol.d.ts +19 -2
  5. package/dist/devTools/protocol.d.ts.map +1 -1
  6. package/dist/devTools/protocol.js +5 -2
  7. package/dist/devTools/serialize.d.ts.map +1 -1
  8. package/dist/devTools/serialize.js +2 -0
  9. package/dist/devTools/store.d.ts +5 -1
  10. package/dist/devTools/store.d.ts.map +1 -1
  11. package/dist/devTools/store.js +37 -1
  12. package/dist/devTools/webSocketBridge.js +1 -0
  13. package/dist/html/index.d.ts +11 -0
  14. package/dist/html/index.d.ts.map +1 -1
  15. package/dist/html/index.js +58 -39
  16. package/dist/mount/index.d.ts +14 -1
  17. package/dist/mount/index.d.ts.map +1 -1
  18. package/dist/mount/index.js +9 -1
  19. package/dist/mount/public.d.ts +1 -1
  20. package/dist/mount/public.d.ts.map +1 -1
  21. package/dist/mount/public.js +1 -1
  22. package/dist/runtime/runtime.d.ts.map +1 -1
  23. package/dist/runtime/runtime.js +50 -5
  24. package/dist/scene/public.d.ts +2 -0
  25. package/dist/scene/public.d.ts.map +1 -0
  26. package/dist/scene/public.js +1 -0
  27. package/dist/story/public.d.ts +2 -0
  28. package/dist/story/public.d.ts.map +1 -0
  29. package/dist/story/public.js +1 -0
  30. package/dist/task/dom.d.ts +11 -7
  31. package/dist/task/dom.d.ts.map +1 -1
  32. package/dist/task/dom.js +11 -7
  33. package/dist/test/apps/mountPanel.d.ts +42 -0
  34. package/dist/test/apps/mountPanel.d.ts.map +1 -0
  35. package/dist/test/apps/mountPanel.js +76 -0
  36. package/dist/test/internal.d.ts +43 -0
  37. package/dist/test/internal.d.ts.map +1 -1
  38. package/dist/test/internal.js +93 -0
  39. package/dist/test/scene.d.ts +40 -14
  40. package/dist/test/scene.d.ts.map +1 -1
  41. package/dist/test/scene.js +195 -8
  42. package/dist/test/story.d.ts +17 -13
  43. package/dist/test/story.d.ts.map +1 -1
  44. package/dist/test/story.js +19 -5
  45. package/dist/ui/combobox/multi.d.ts +10 -10
  46. package/dist/ui/combobox/public.d.ts +1 -1
  47. package/dist/ui/combobox/public.d.ts.map +1 -1
  48. package/dist/ui/combobox/public.js +1 -1
  49. package/dist/ui/combobox/shared.d.ts +41 -15
  50. package/dist/ui/combobox/shared.d.ts.map +1 -1
  51. package/dist/ui/combobox/shared.js +45 -32
  52. package/dist/ui/combobox/single.d.ts +10 -10
  53. package/dist/ui/datePicker/index.d.ts +1 -1
  54. package/dist/ui/listbox/multi.d.ts +4 -8
  55. package/dist/ui/listbox/multi.d.ts.map +1 -1
  56. package/dist/ui/listbox/public.d.ts +1 -1
  57. package/dist/ui/listbox/public.d.ts.map +1 -1
  58. package/dist/ui/listbox/public.js +1 -1
  59. package/dist/ui/listbox/shared.d.ts +20 -12
  60. package/dist/ui/listbox/shared.d.ts.map +1 -1
  61. package/dist/ui/listbox/shared.js +26 -35
  62. package/dist/ui/listbox/single.d.ts +4 -8
  63. package/dist/ui/listbox/single.d.ts.map +1 -1
  64. package/dist/ui/menu/index.d.ts +18 -8
  65. package/dist/ui/menu/index.d.ts.map +1 -1
  66. package/dist/ui/menu/index.js +30 -35
  67. package/dist/ui/menu/public.d.ts +1 -1
  68. package/dist/ui/menu/public.d.ts.map +1 -1
  69. package/dist/ui/menu/public.js +1 -1
  70. package/dist/ui/popover/index.d.ts +18 -5
  71. package/dist/ui/popover/index.d.ts.map +1 -1
  72. package/dist/ui/popover/index.js +25 -19
  73. package/dist/ui/popover/public.d.ts +1 -1
  74. package/dist/ui/popover/public.d.ts.map +1 -1
  75. package/dist/ui/popover/public.js +1 -1
  76. package/dist/ui/tooltip/index.d.ts +10 -3
  77. package/dist/ui/tooltip/index.d.ts.map +1 -1
  78. package/dist/ui/tooltip/index.js +13 -10
  79. package/dist/ui/tooltip/public.d.ts +1 -1
  80. package/dist/ui/tooltip/public.d.ts.map +1 -1
  81. package/dist/ui/tooltip/public.js +1 -1
  82. package/package.json +9 -1
@@ -1,8 +1,8 @@
1
1
  import { Array, Effect, Function, Option, Predicate, String as String_, pipe, } from 'effect';
2
2
  import { dual } from 'effect/Function';
3
- import { FileHandlerSymbol } from '../html/index.js';
3
+ import { FOLDKIT_MOUNT_KEY, FileHandlerSymbol } from '../html/index.js';
4
4
  import { Dispatch } from '../runtime/index.js';
5
- import { assertAllCommandsResolved, assertExactCommands, assertHasCommands, assertNoUnresolvedCommands, assertZeroCommands, resolveAllInternal, resolveByName, } from './internal.js';
5
+ import { assertAllCommandsResolved, assertAllMountsResolved, assertAllUnmountsAcknowledged, assertExactCommands, assertExactMounts, assertHasCommands, assertHasMounts, assertNoUnacknowledgedUnmounts, assertNoUnresolvedCommands, assertNoUnresolvedMounts, assertZeroCommands, assertZeroMounts, resolveAllInternal, resolveByName, resolveMountByName, } from './internal.js';
6
6
  import { accessibleDescription, accessibleName, ancestorsOf, attr, resolveTarget, selector, textContent, within, } from './query.js';
7
7
  import { allAltText, allDisplayValue, allLabel, allPlaceholder, allRole, allSelector, allTestId, allText, allTitle, } from './query.js';
8
8
  export { find, findAll, textContent, attr, getByRole, getAllByRole, getByText, getByPlaceholder, getByLabel, getByAltText, getByTitle, getByTestId, getByDisplayValue, role, placeholder, label, altText, title, testId, displayValue, selector, text, within, getAllByText, getAllByLabel, getAllByPlaceholder, getAllByAltText, getAllByTitle, getAllByTestId, getAllByDisplayValue, first, last, nth, filter, } from './query.js';
@@ -21,6 +21,56 @@ export const all = {
21
21
  selector: allSelector,
22
22
  };
23
23
  export { sceneMatchers } from './matchers.js';
24
+ const PENDING = { _tag: 'Pending' };
25
+ const RESOLVED = { _tag: 'Resolved' };
26
+ const ENDED_ACKNOWLEDGED = { _tag: 'Ended', acknowledged: true };
27
+ const ENDED_UNACKNOWLEDGED = { _tag: 'Ended', acknowledged: false };
28
+ const slotKey = ({ name, occurrence }) => `${name}#${occurrence}`;
29
+ const collectRenderedSlots = (vnode) => {
30
+ const counts = new Map();
31
+ const slots = [];
32
+ const walk = (node) => {
33
+ /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
34
+ const marker = node.data?.[FOLDKIT_MOUNT_KEY];
35
+ if (marker !== undefined) {
36
+ const occurrence = counts.get(marker.name) ?? 0;
37
+ counts.set(marker.name, occurrence + 1);
38
+ slots.push({ name: marker.name, occurrence });
39
+ }
40
+ for (const child of node.children ?? []) {
41
+ if (typeof child !== 'string') {
42
+ walk(child);
43
+ }
44
+ }
45
+ };
46
+ walk(vnode);
47
+ return slots;
48
+ };
49
+ const reconcileMountSlots = (previous, rendered) => {
50
+ const previousByKey = new Map(Array.map(previous, state => [slotKey(state.slot), state]));
51
+ const renderedSlots = collectRenderedSlots(rendered);
52
+ const renderedKeys = new Set(Array.map(renderedSlots, slotKey));
53
+ const fromRendered = Array.map(renderedSlots, slot => {
54
+ const existing = previousByKey.get(slotKey(slot));
55
+ if (existing !== undefined && existing.status._tag !== 'Ended') {
56
+ return existing;
57
+ }
58
+ return { slot, status: PENDING };
59
+ });
60
+ const fromVanished = pipe(previous, Array.filter(state => !renderedKeys.has(slotKey(state.slot))), Array.map(state => endStatus(state)));
61
+ const unacknowledgedRevived = pipe(previous, Array.filter(state => renderedKeys.has(slotKey(state.slot)) &&
62
+ state.status._tag === 'Ended' &&
63
+ !state.status.acknowledged));
64
+ return Array.appendAll(fromRendered, Array.appendAll(fromVanished, unacknowledgedRevived));
65
+ };
66
+ const endStatus = (state) => {
67
+ if (state.status._tag === 'Ended') {
68
+ return state;
69
+ }
70
+ return { slot: state.slot, status: ENDED_UNACKNOWLEDGED };
71
+ };
72
+ const pendingMountsOf = (mountSlots) => pipe(mountSlots, Array.filter(({ status }) => status._tag === 'Pending'), Array.map(({ slot }) => slot));
73
+ const unacknowledgedEndedMountsOf = (mountSlots) => pipe(mountSlots, Array.filter(({ status }) => status._tag === 'Ended' && !status.acknowledged), Array.map(({ slot }) => slot));
24
74
  const UNINITIALIZED = Symbol('uninitialized');
25
75
  const toInternal = (simulation) =>
26
76
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
@@ -106,6 +156,8 @@ const captureFromElement = (simulation, element, description, eventName, invokeH
106
156
  return simulation;
107
157
  }
108
158
  assertNoUnresolvedCommands(internal.commands, 'when an interaction dispatched a new Message');
159
+ assertNoUnresolvedMounts(internal.mounts, 'when an interaction dispatched a new Message');
160
+ assertNoUnacknowledgedUnmounts(unacknowledgedEndedMountsOf(internal.mountSlots), 'when an interaction dispatched a new Message');
109
161
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
110
162
  const capturedMessage = captured;
111
163
  const result = internal.updateFn(internal.model, capturedMessage);
@@ -207,7 +259,7 @@ const with_ = (model) => {
207
259
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
208
260
  };
209
261
  /** Resolves a specific pending Command with the given result Message. */
210
- export const resolve = (definition, resultMessage, toParentMessage) => (simulation) => {
262
+ const resolveCommand = (definition, resultMessage, toParentMessage) => (simulation) => {
211
263
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
212
264
  const internal = toInternal(simulation);
213
265
  const messageForUpdate = (Predicate.isUndefined(toParentMessage)
@@ -226,24 +278,153 @@ export const resolve = (definition, resultMessage, toParentMessage) => (simulati
226
278
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
227
279
  };
228
280
  /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
229
- export const resolveAll = (...resolvers) => (simulation) =>
281
+ const resolveAllCommands = (...resolvers) => (simulation) =>
230
282
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
231
283
  resolveAllInternal(toInternal(simulation), resolvers);
232
284
  /** Asserts that every given Command is among the pending Commands. */
233
- export const expectHasCommands = (...definitions) => (simulation) => {
285
+ const expectHasCommandsStep = (...definitions) => (simulation) => {
234
286
  assertHasCommands(toInternal(simulation).commands, definitions);
235
287
  return simulation;
236
288
  };
237
289
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
238
- export const expectExactCommands = (...definitions) => (simulation) => {
290
+ const expectExactCommandsStep = (...definitions) => (simulation) => {
239
291
  assertExactCommands(toInternal(simulation).commands, definitions);
240
292
  return simulation;
241
293
  };
242
294
  /** Asserts that there are no pending Commands. */
243
- export const expectNoCommands = () => (simulation) => {
295
+ const expectNoCommandsStep = () => (simulation) => {
244
296
  assertZeroCommands(toInternal(simulation).commands);
245
297
  return simulation;
246
298
  };
299
+ /** Resolves a specific pending Mount with the given result Message. The first
300
+ * pending mount with the matching name is resolved. Mirrors `resolve` for
301
+ * Commands; the optional `toParentMessage` lifter matches `Mount.mapMessage`
302
+ * when a child Submodel mount is observed in a parent's view. */
303
+ const resolveMount = (definition, resultMessage, toParentMessage) => (simulation) => {
304
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
305
+ const internal = toInternal(simulation);
306
+ const messageForUpdate = (Predicate.isUndefined(toParentMessage)
307
+ ? resultMessage
308
+ : toParentMessage(resultMessage));
309
+ const next = resolveMountByName(internal, internal.mounts, definition.name, messageForUpdate);
310
+ if (Predicate.isUndefined(next)) {
311
+ throw new Error(`I tried to resolve Mount "${definition.name}" but it wasn't in the pending Mounts.\n\n` +
312
+ `Pending Mounts:\n${Array.isReadonlyArrayNonEmpty(internal.mounts)
313
+ ? pipe(internal.mounts, Array.map(({ name }) => ` ${name}`), Array.join('\n'))
314
+ : ' (none)'}\n\n` +
315
+ 'Make sure the rendered view contains an OnMount with this name.');
316
+ }
317
+ const resolvedKeys = new Set(Array.map(next.pendingMounts, slot => slotKey(slot)));
318
+ const updatedSlots = Array.map(internal.mountSlots, (state) => {
319
+ if (state.status._tag !== 'Pending') {
320
+ return state;
321
+ }
322
+ const key = slotKey(state.slot);
323
+ return resolvedKeys.has(key)
324
+ ? state
325
+ : state.slot.name === definition.name
326
+ ? { slot: state.slot, status: RESOLVED }
327
+ : state;
328
+ });
329
+ return {
330
+ ...next.internal,
331
+ mountSlots: updatedSlots,
332
+ mounts: next.pendingMounts,
333
+ };
334
+ /* eslint-enable @typescript-eslint/consistent-type-assertions */
335
+ };
336
+ /** Resolves all listed Mounts with their result Messages. Mounts are resolved
337
+ * in the order listed; each resolution feeds its Message through update
338
+ * before the next is resolved. */
339
+ const resolveAllMounts = (...resolvers) => (simulation) => Array.reduce(resolvers, simulation, (current, resolver) => {
340
+ const [definition, resultMessage] = resolver;
341
+ const lift = resolver.length === 3
342
+ ? /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
343
+ resolver[2]
344
+ : undefined;
345
+ return Predicate.isUndefined(lift)
346
+ ? resolveMount(definition, resultMessage)(current)
347
+ : resolveMount(definition, resultMessage, lift)(current);
348
+ });
349
+ /** Asserts that every given Mount is among the pending Mounts. */
350
+ const expectHasMountsStep = (...definitions) => (simulation) => {
351
+ assertHasMounts(toInternal(simulation).mounts, definitions);
352
+ return simulation;
353
+ };
354
+ /** Asserts that the pending Mounts match the given definitions exactly
355
+ * (order-independent, by name). */
356
+ const expectExactMountsStep = (...definitions) => (simulation) => {
357
+ assertExactMounts(toInternal(simulation).mounts, definitions);
358
+ return simulation;
359
+ };
360
+ /** Asserts that there are no pending Mounts. */
361
+ const expectNoMountsStep = () => (simulation) => {
362
+ assertZeroMounts(toInternal(simulation).mounts);
363
+ return simulation;
364
+ };
365
+ /** Acknowledges that the given Mounts disappeared from the rendered tree.
366
+ * Required for every Mount that fires and then unmounts during a scene,
367
+ * whether or not it was resolved first. Without this, the scene throws at
368
+ * the end of the test for any unacknowledged unmount. */
369
+ const expectEndedMountsStep = (...definitions) => (simulation) => {
370
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
371
+ const internal = toInternal(simulation);
372
+ const remainingNames = Array.map(definitions, ({ name }) => name);
373
+ const updatedSlots = [];
374
+ for (const state of internal.mountSlots) {
375
+ if (state.status._tag === 'Ended' &&
376
+ !state.status.acknowledged &&
377
+ remainingNames.includes(state.slot.name)) {
378
+ const index = remainingNames.indexOf(state.slot.name);
379
+ remainingNames.splice(index, 1);
380
+ updatedSlots.push({ slot: state.slot, status: ENDED_ACKNOWLEDGED });
381
+ }
382
+ else {
383
+ updatedSlots.push(state);
384
+ }
385
+ }
386
+ if (Array.isReadonlyArrayNonEmpty(remainingNames)) {
387
+ throw new Error(`I tried to acknowledge ended Mounts but some haven't unmounted:\n\n` +
388
+ pipe(remainingNames, Array.map(name => ` ${name}`), Array.join('\n')) +
389
+ '\n\nUse Scene.Mount.expectEnded only after the Mount has disappeared from the rendered tree.');
390
+ }
391
+ return {
392
+ ...internal,
393
+ mountSlots: updatedSlots,
394
+ };
395
+ /* eslint-enable @typescript-eslint/consistent-type-assertions */
396
+ };
397
+ /** Steps that operate on the pending Commands of a scene simulation.
398
+ * Destructure as `const { Command } = Scene` for concise call sites. */
399
+ export const Command = {
400
+ /** Resolves a specific pending Command with the given result Message. */
401
+ resolve: resolveCommand,
402
+ /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
403
+ resolveAll: resolveAllCommands,
404
+ /** Asserts that every given Command is among the pending Commands. */
405
+ expectHas: expectHasCommandsStep,
406
+ /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
407
+ expectExact: expectExactCommandsStep,
408
+ /** Asserts that there are no pending Commands. */
409
+ expectNone: expectNoCommandsStep,
410
+ };
411
+ /** Steps that operate on the pending Mounts of a scene simulation.
412
+ * Destructure as `const { Mount } = Scene` for concise call sites. */
413
+ export const Mount = {
414
+ /** Resolves a specific pending Mount with the given result Message. */
415
+ resolve: resolveMount,
416
+ /** Resolves all listed Mounts with their result Messages. */
417
+ resolveAll: resolveAllMounts,
418
+ /** Asserts that every given Mount is among the pending Mounts. */
419
+ expectHas: expectHasMountsStep,
420
+ /** Asserts that the pending Mounts match the given definitions exactly (order-independent, by name). */
421
+ expectExact: expectExactMountsStep,
422
+ /** Asserts that there are no pending Mounts. */
423
+ expectNone: expectNoMountsStep,
424
+ /** Acknowledges Mounts that disappeared from the rendered tree. Required for
425
+ * every Mount that fires and then unmounts during a scene. */
426
+ expectEnded: expectEndedMountsStep,
427
+ };
247
428
  /** Runs a function for side effects (e.g. assertions) without breaking the step chain. */
248
429
  export const tap = (f) => (simulation) => {
249
430
  f(simulation);
@@ -256,7 +437,9 @@ Array.reduce(steps, seed, (current, step) => {
256
437
  const internal = toInternal(next);
257
438
  if (internal.model !== UNINITIALIZED) {
258
439
  const html = renderView(internal.viewFn, internal.model, internal.capturingDispatch.dispatch);
259
- return { ...internal, html };
440
+ const mountSlots = reconcileMountSlots(internal.mountSlots, html);
441
+ const mounts = pendingMountsOf(mountSlots);
442
+ return { ...internal, html, mountSlots, mounts };
260
443
  }
261
444
  return next;
262
445
  });
@@ -761,6 +944,8 @@ export const scene = (config, ...steps) => {
761
944
  model: UNINITIALIZED,
762
945
  message: undefined,
763
946
  commands: [],
947
+ mounts: [],
948
+ mountSlots: [],
764
949
  outMessage: undefined,
765
950
  updateFn: config.update,
766
951
  resolvers: {},
@@ -773,4 +958,6 @@ export const scene = (config, ...steps) => {
773
958
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
774
959
  const internal = toInternal(result);
775
960
  assertAllCommandsResolved(internal.commands);
961
+ assertAllMountsResolved(internal.mounts);
962
+ assertAllUnmountsAcknowledged(unacknowledgedEndedMountsOf(internal.mountSlots));
776
963
  };
@@ -21,21 +21,25 @@ export { with_ as with };
21
21
  declare const with_: <Model>(model: Model) => WithStep<Model>;
22
22
  /** Sends a Message through update. Commands stay pending until resolve or resolveAll. */
23
23
  export declare const message: <Message>(message_: NoInfer<Message>) => <Model, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
24
- /** Resolves a specific pending Command with the given result Message. */
25
- export declare const resolve: {
26
- <Name extends string, ResultMessage>(definition: CommandDefinition<Name, ResultMessage>, resultMessage: ResultMessage): <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
27
- <Name extends string, ResultMessage, ParentMessage>(definition: CommandDefinition<Name, ResultMessage>, resultMessage: ResultMessage, toParentMessage: (message: ResultMessage) => ParentMessage): <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
28
- };
29
- /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
30
- export declare const resolveAll: <R extends ReadonlyArray<unknown>>(...resolvers: { [K in keyof R]: Resolver<R[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
31
24
  /** Runs an assertion function against the current Model. */
32
25
  export declare const model: <Model, Message, OutMessage = undefined>(f: (model: Model) => void) => (simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
33
- /** Asserts that every given Command is among the pending Commands. */
34
- export declare const expectHasCommands: (...definitions: ReadonlyArray<CommandDefinition<string, unknown>>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
35
- /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
36
- export declare const expectExactCommands: (...definitions: ReadonlyArray<CommandDefinition<string, unknown>>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
37
- /** Asserts that there are no pending Commands. */
38
- export declare const expectNoCommands: () => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
26
+ /** Steps that operate on the pending Commands of a story simulation.
27
+ * Destructure as `const { Command } = Story` for concise call sites. */
28
+ export declare const Command: {
29
+ /** Resolves a specific pending Command with the given result Message. */
30
+ readonly resolve: {
31
+ <Name extends string, ResultMessage>(definition: CommandDefinition<Name, ResultMessage>, resultMessage: ResultMessage): <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
32
+ <Name extends string, ResultMessage, ParentMessage>(definition: CommandDefinition<Name, ResultMessage>, resultMessage: ResultMessage, toParentMessage: (message: ResultMessage) => ParentMessage): <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
33
+ };
34
+ /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
35
+ readonly resolveAll: <R extends ReadonlyArray<unknown>>(...resolvers: { [K in keyof R]: Resolver<R[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
36
+ /** Asserts that every given Command is among the pending Commands. */
37
+ readonly expectHas: (...definitions: ReadonlyArray<CommandDefinition<string, unknown>>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
38
+ /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
39
+ readonly expectExact: (...definitions: ReadonlyArray<CommandDefinition<string, unknown>>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
40
+ /** Asserts that there are no pending Commands. */
41
+ readonly expectNone: () => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
42
+ };
39
43
  /** Asserts that the OutMessage is Some with the expected value. */
40
44
  export declare const expectOutMessage: <OutMessage>(expected: OutMessage) => <Model, Message>(simulation: StorySimulation<Model, Message, Option.Option<OutMessage>>) => StorySimulation<Model, Message, Option.Option<OutMessage>>;
41
45
  /** Asserts that the OutMessage is None. */
@@ -1 +1 @@
1
- {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/test/story.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/test/story.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export const message = (message_) => (simulation) => {
36
36
  };
37
37
  };
38
38
  /** Resolves a specific pending Command with the given result Message. */
39
- export const resolve = (definition, resultMessage, toParentMessage) => (simulation) => {
39
+ const resolveCommand = (definition, resultMessage, toParentMessage) => (simulation) => {
40
40
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
41
41
  const internal = toInternal(simulation);
42
42
  const messageForUpdate = (Predicate.isUndefined(toParentMessage)
@@ -55,7 +55,7 @@ export const resolve = (definition, resultMessage, toParentMessage) => (simulati
55
55
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
56
56
  };
57
57
  /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
58
- export const resolveAll = (...resolvers) => (simulation) =>
58
+ const resolveAllCommands = (...resolvers) => (simulation) =>
59
59
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
60
60
  resolveAllInternal(toInternal(simulation), resolvers);
61
61
  /** Runs an assertion function against the current Model. */
@@ -64,20 +64,34 @@ export const model = (f) => (simulation) => {
64
64
  return simulation;
65
65
  };
66
66
  /** Asserts that every given Command is among the pending Commands. */
67
- export const expectHasCommands = (...definitions) => (simulation) => {
67
+ const expectHasCommandsStep = (...definitions) => (simulation) => {
68
68
  assertHasCommands(toInternal(simulation).commands, definitions);
69
69
  return simulation;
70
70
  };
71
71
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
72
- export const expectExactCommands = (...definitions) => (simulation) => {
72
+ const expectExactCommandsStep = (...definitions) => (simulation) => {
73
73
  assertExactCommands(toInternal(simulation).commands, definitions);
74
74
  return simulation;
75
75
  };
76
76
  /** Asserts that there are no pending Commands. */
77
- export const expectNoCommands = () => (simulation) => {
77
+ const expectNoCommandsStep = () => (simulation) => {
78
78
  assertZeroCommands(toInternal(simulation).commands);
79
79
  return simulation;
80
80
  };
81
+ /** Steps that operate on the pending Commands of a story simulation.
82
+ * Destructure as `const { Command } = Story` for concise call sites. */
83
+ export const Command = {
84
+ /** Resolves a specific pending Command with the given result Message. */
85
+ resolve: resolveCommand,
86
+ /** Resolves all listed Commands with their result Messages. Handles cascading resolution. */
87
+ resolveAll: resolveAllCommands,
88
+ /** Asserts that every given Command is among the pending Commands. */
89
+ expectHas: expectHasCommandsStep,
90
+ /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
91
+ expectExact: expectExactCommandsStep,
92
+ /** Asserts that there are no pending Commands. */
93
+ expectNone: expectNoCommandsStep,
94
+ };
81
95
  /** Asserts that the OutMessage is Some with the expected value. */
82
96
  export const expectOutMessage = (expected) => (simulation) => {
83
97
  const internal = toInternal(simulation);
@@ -93,10 +93,6 @@ export declare const update: (model: {
93
93
  readonly _tag: "CompletedScrollIntoView";
94
94
  } | {
95
95
  readonly _tag: "CompletedClickItem";
96
- } | {
97
- readonly _tag: "CompletedAnchorMount";
98
- } | {
99
- readonly _tag: "CompletedBackdropPortal";
100
96
  } | {
101
97
  readonly _tag: "Opened";
102
98
  readonly maybeActiveItemIndex: Option.Option<number>;
@@ -125,9 +121,13 @@ export declare const update: (model: {
125
121
  } | {
126
122
  readonly _tag: "CompletedFocusInput";
127
123
  } | {
128
- readonly _tag: "CompletedAttachPreventBlur";
124
+ readonly _tag: "CompletedAnchorCombobox";
125
+ } | {
126
+ readonly _tag: "CompletedAttachComboboxPreventBlur";
127
+ } | {
128
+ readonly _tag: "CompletedAttachComboboxSelectOnFocus";
129
129
  } | {
130
- readonly _tag: "CompletedAttachSelectOnFocus";
130
+ readonly _tag: "CompletedPortalComboboxBackdrop";
131
131
  } | {
132
132
  readonly _tag: "GotAnimationMessage";
133
133
  readonly message: {
@@ -181,13 +181,13 @@ export declare const view: <ParentMessage, Item extends string>(config: Readonly
181
181
  readonly inputValue: string;
182
182
  };
183
183
  toParentMessage: (message: Opened | Closed | import("./shared.js").BlurredInput | import("./shared.js").ActivatedItem | import("./shared.js").DeactivatedItem | SelectedItem | import("./shared.js").MovedPointerOverItem | import("./shared.js").RequestedItemClick | import("./shared.js").UpdatedInputValue | import("./shared.js").PressedToggleButton | {
184
- readonly _tag: "CompletedAnchorMount";
184
+ readonly _tag: "CompletedAnchorCombobox";
185
185
  } | {
186
- readonly _tag: "CompletedAttachPreventBlur";
186
+ readonly _tag: "CompletedAttachComboboxPreventBlur";
187
187
  } | {
188
- readonly _tag: "CompletedAttachSelectOnFocus";
188
+ readonly _tag: "CompletedAttachComboboxSelectOnFocus";
189
189
  } | {
190
- readonly _tag: "CompletedBackdropPortal";
190
+ readonly _tag: "CompletedPortalComboboxBackdrop";
191
191
  }) => ParentMessage;
192
192
  onSelectedItem?: (value: string) => ParentMessage;
193
193
  items: readonly Item[];
@@ -1,5 +1,5 @@
1
1
  export { init, update, open, close, selectItem, view, lazy, Model, } from './single.js';
2
- export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedAttachPreventBlur, CompletedAttachSelectOnFocus, CompletedBackdropPortal, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, DetectMovementOrAnimationEnd, } from './shared.js';
2
+ export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorCombobox, CompletedAttachComboboxPreventBlur, CompletedAttachComboboxSelectOnFocus, CompletedPortalComboboxBackdrop, AnchorCombobox, AttachComboboxPreventBlur, AttachComboboxSelectOnFocus, PortalComboboxBackdrop, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, DetectMovementOrAnimationEnd, } from './shared.js';
3
3
  export type { ActivationTrigger, Opened, Closed, BlurredInput, ActivatedItem, DeactivatedItem, MovedPointerOverItem, RequestedItemClick, UpdatedInputValue, PressedToggleButton, ItemConfig, GroupHeading, } from './shared.js';
4
4
  export type { InitConfig, ViewConfig } from './single.js';
5
5
  export type { AnchorConfig } from '../anchor.js';
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,GACN,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEzD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,GACN,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,kCAAkC,EAClC,oCAAoC,EACpC,+BAA+B,EAC/B,cAAc,EACd,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEzD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { init, update, open, close, selectItem, view, lazy, Model, } from './single.js';
2
- export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedAttachPreventBlur, CompletedAttachSelectOnFocus, CompletedBackdropPortal, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, DetectMovementOrAnimationEnd, } from './shared.js';
2
+ export { Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorCombobox, CompletedAttachComboboxPreventBlur, CompletedAttachComboboxSelectOnFocus, CompletedPortalComboboxBackdrop, AnchorCombobox, AttachComboboxPreventBlur, AttachComboboxSelectOnFocus, PortalComboboxBackdrop, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusInput, ScrollIntoView, ClickItem, DetectMovementOrAnimationEnd, } from './shared.js';
3
3
  export * as Multi from './multiPublic.js';
@@ -1,6 +1,7 @@
1
1
  import { Effect, Option, Schema as S } from 'effect';
2
2
  import * as Command from '../../command/index.js';
3
3
  import { type Attribute, type Html } from '../../html/index.js';
4
+ import * as Mount from '../../mount/index.js';
4
5
  import type { AnchorConfig } from '../anchor.js';
5
6
  import { groupContiguous } from '../group.js';
6
7
  export { groupContiguous };
@@ -90,13 +91,13 @@ export declare const CompletedScrollIntoView: import("../../schema/index.js").Ca
90
91
  /** Sent when the programmatic item click command completes. */
91
92
  export declare const CompletedClickItem: import("../../schema/index.js").CallableTaggedStruct<"CompletedClickItem", {}>;
92
93
  /** Sent when the items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
93
- export declare const CompletedAnchorMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorMount", {}>;
94
+ export declare const CompletedAnchorCombobox: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorCombobox", {}>;
94
95
  /** Sent when the items panel mounts and the capture-phase pointerdown listener is attached (with or without anchor). Update no-ops; surfaces the listener-attach side effect for DevTools. */
95
- export declare const CompletedAttachPreventBlur: import("../../schema/index.js").CallableTaggedStruct<"CompletedAttachPreventBlur", {}>;
96
+ export declare const CompletedAttachComboboxPreventBlur: import("../../schema/index.js").CallableTaggedStruct<"CompletedAttachComboboxPreventBlur", {}>;
96
97
  /** Sent when the input mounts and the focus listener that auto-selects on focus is attached. Update no-ops; surfaces the listener-attach side effect for DevTools. */
97
- export declare const CompletedAttachSelectOnFocus: import("../../schema/index.js").CallableTaggedStruct<"CompletedAttachSelectOnFocus", {}>;
98
+ export declare const CompletedAttachComboboxSelectOnFocus: import("../../schema/index.js").CallableTaggedStruct<"CompletedAttachComboboxSelectOnFocus", {}>;
98
99
  /** Sent when the combobox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
99
- export declare const CompletedBackdropPortal: import("../../schema/index.js").CallableTaggedStruct<"CompletedBackdropPortal", {}>;
100
+ export declare const CompletedPortalComboboxBackdrop: import("../../schema/index.js").CallableTaggedStruct<"CompletedPortalComboboxBackdrop", {}>;
100
101
  /** Wraps an Animation submodel message for delegation. */
101
102
  export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
102
103
  message: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"Showed", {}>, import("../../schema/index.js").CallableTaggedStruct<"Hid", {}>, import("../../schema/index.js").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("../../schema/index.js").CallableTaggedStruct<"EndedAnimation", {}>]>;
@@ -124,10 +125,10 @@ export declare const Message: S.Union<[
124
125
  typeof CompletedFocusInput,
125
126
  typeof CompletedScrollIntoView,
126
127
  typeof CompletedClickItem,
127
- typeof CompletedAnchorMount,
128
- typeof CompletedAttachPreventBlur,
129
- typeof CompletedAttachSelectOnFocus,
130
- typeof CompletedBackdropPortal,
128
+ typeof CompletedAnchorCombobox,
129
+ typeof CompletedAttachComboboxPreventBlur,
130
+ typeof CompletedAttachComboboxSelectOnFocus,
131
+ typeof CompletedPortalComboboxBackdrop,
131
132
  typeof GotAnimationMessage,
132
133
  typeof UpdatedInputValue,
133
134
  typeof PressedToggleButton
@@ -227,10 +228,6 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
227
228
  readonly _tag: "CompletedScrollIntoView";
228
229
  } | {
229
230
  readonly _tag: "CompletedClickItem";
230
- } | {
231
- readonly _tag: "CompletedAnchorMount";
232
- } | {
233
- readonly _tag: "CompletedBackdropPortal";
234
231
  } | {
235
232
  readonly _tag: "Opened";
236
233
  readonly maybeActiveItemIndex: Option.Option<number>;
@@ -259,9 +256,13 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
259
256
  } | {
260
257
  readonly _tag: "CompletedFocusInput";
261
258
  } | {
262
- readonly _tag: "CompletedAttachPreventBlur";
259
+ readonly _tag: "CompletedAnchorCombobox";
260
+ } | {
261
+ readonly _tag: "CompletedAttachComboboxPreventBlur";
262
+ } | {
263
+ readonly _tag: "CompletedAttachComboboxSelectOnFocus";
263
264
  } | {
264
- readonly _tag: "CompletedAttachSelectOnFocus";
265
+ readonly _tag: "CompletedPortalComboboxBackdrop";
265
266
  } | {
266
267
  readonly _tag: "GotAnimationMessage";
267
268
  readonly message: {
@@ -280,6 +281,31 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
280
281
  readonly _tag: "PressedToggleButton";
281
282
  }, never, never>;
282
283
  }>[]];
284
+ /** The anchor-positioning Mount this Combobox renders when an anchor is
285
+ * configured. Exposed so Scene tests can call
286
+ * `Scene.Mount.resolve(AnchorCombobox, CompletedAnchorCombobox())`. */
287
+ export declare const AnchorCombobox: Mount.MountDefinition<"AnchorCombobox", {
288
+ readonly _tag: "CompletedAnchorCombobox";
289
+ }>;
290
+ /** The Mount this Combobox renders to install a `pointerdown`-cancelling
291
+ * capture listener that prevents blur on item presses. Exposed so Scene
292
+ * tests can call
293
+ * `Scene.Mount.resolve(AttachComboboxPreventBlur, CompletedAttachComboboxPreventBlur())`. */
294
+ export declare const AttachComboboxPreventBlur: Mount.MountDefinition<"AttachComboboxPreventBlur", {
295
+ readonly _tag: "CompletedAttachComboboxPreventBlur";
296
+ }>;
297
+ /** The Mount this Combobox renders to install the input's select-on-focus
298
+ * behavior. Exposed so Scene tests can call
299
+ * `Scene.Mount.resolve(AttachComboboxSelectOnFocus, CompletedAttachComboboxSelectOnFocus())`. */
300
+ export declare const AttachComboboxSelectOnFocus: Mount.MountDefinition<"AttachComboboxSelectOnFocus", {
301
+ readonly _tag: "CompletedAttachComboboxSelectOnFocus";
302
+ }>;
303
+ /** The backdrop-portaling Mount this Combobox renders. Exposed so Scene tests can
304
+ * call `Scene.Mount.resolve(PortalComboboxBackdrop, CompletedPortalComboboxBackdrop())` to
305
+ * acknowledge the mount produced by the rendered backdrop. */
306
+ export declare const PortalComboboxBackdrop: Mount.MountDefinition<"PortalComboboxBackdrop", {
307
+ readonly _tag: "CompletedPortalComboboxBackdrop";
308
+ }>;
283
309
  /** Configuration for an individual combobox item's appearance. */
284
310
  export type ItemConfig = Readonly<{
285
311
  className?: string;
@@ -293,7 +319,7 @@ export type GroupHeading = Readonly<{
293
319
  /** Configuration for rendering a combobox with `view`. */
294
320
  export type BaseViewConfig<ParentMessage, Item extends string, Model extends BaseModel> = Readonly<{
295
321
  model: Model;
296
- toParentMessage: (message: Opened | Closed | BlurredInput | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | typeof CompletedAnchorMount.Type | typeof CompletedAttachPreventBlur.Type | typeof CompletedAttachSelectOnFocus.Type | typeof CompletedBackdropPortal.Type) => ParentMessage;
322
+ toParentMessage: (message: Opened | Closed | BlurredInput | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | typeof CompletedAnchorCombobox.Type | typeof CompletedAttachComboboxPreventBlur.Type | typeof CompletedAttachComboboxSelectOnFocus.Type | typeof CompletedPortalComboboxBackdrop.Type) => ParentMessage;
297
323
  onSelectedItem?: (value: string) => ParentMessage;
298
324
  items: ReadonlyArray<Item>;
299
325
  itemToConfig: (item: Item, context: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}