foldkit 0.138.0 → 0.140.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 (39) hide show
  1. package/README.md +4 -3
  2. package/dist/calendar/calendarDate.d.ts.map +1 -1
  3. package/dist/calendar/calendarDate.js +3 -3
  4. package/dist/command/index.js +2 -2
  5. package/dist/devTools/host.d.ts +2 -0
  6. package/dist/devTools/host.d.ts.map +1 -1
  7. package/dist/devTools/host.js +1 -0
  8. package/dist/dom/inert.d.ts +2 -1
  9. package/dist/dom/inert.d.ts.map +1 -1
  10. package/dist/dom/inert.js +15 -2
  11. package/dist/port/port.js +1 -1
  12. package/dist/runtime/browserListeners.js +1 -1
  13. package/dist/runtime/public.d.ts +1 -1
  14. package/dist/runtime/public.d.ts.map +1 -1
  15. package/dist/runtime/runtime.d.ts +4 -3
  16. package/dist/runtime/runtime.d.ts.map +1 -1
  17. package/dist/runtime/runtime.js +6 -1
  18. package/dist/test/apps/contextMenu.d.ts +26 -0
  19. package/dist/test/apps/contextMenu.d.ts.map +1 -0
  20. package/dist/test/apps/contextMenu.js +62 -0
  21. package/dist/test/apps/formChild.d.ts +5 -5
  22. package/dist/test/apps/formChild.d.ts.map +1 -1
  23. package/dist/test/apps/formChild.js +5 -5
  24. package/dist/test/internal.d.ts +23 -6
  25. package/dist/test/internal.d.ts.map +1 -1
  26. package/dist/test/internal.js +33 -2
  27. package/dist/test/matchers.d.ts.map +1 -1
  28. package/dist/test/matchers.js +2 -12
  29. package/dist/test/query.d.ts +3 -1
  30. package/dist/test/query.d.ts.map +1 -1
  31. package/dist/test/query.js +45 -6
  32. package/dist/test/scene.d.ts +12 -20
  33. package/dist/test/scene.d.ts.map +1 -1
  34. package/dist/test/scene.js +50 -29
  35. package/dist/test/story.d.ts +7 -19
  36. package/dist/test/story.d.ts.map +1 -1
  37. package/dist/test/story.js +10 -3
  38. package/dist/url/index.js +2 -2
  39. package/package.json +6 -6
@@ -73,6 +73,10 @@ const MAX_CASCADE_DEPTH = 100;
73
73
  const matcherFingerprint = (matcher) => isCommandDefinitionMatcher(matcher)
74
74
  ? `def:${matcher.name}`
75
75
  : `inst:${matcher.name}:${JSON.stringify(matcher.args ?? null)}`;
76
+ const findNextMatch = (commands, resolvers) => {
77
+ const toMatchedResolver = (command) => pipe(resolvers, Array.findFirstWithIndex(({ matcher }) => commandMatches(matcher, command)), Option.map(([entry, resolverIndex]) => ({ entry, resolverIndex })));
78
+ return Array.findFirst(commands, toMatchedResolver);
79
+ };
76
80
  /** Resolves all listed Commands, cascading through any Commands produced by
77
81
  * the result. Each entry is consumed by exactly one matching dispatch in
78
82
  * declaration order; for N identical responses, compose with
@@ -87,9 +91,8 @@ export const resolveAllInternal = (internal, resolvers) => {
87
91
  ...internal,
88
92
  resolvers: [...survivingExisting, ...newEntries],
89
93
  };
90
- const findNextMatch = (state) => Array.findFirst(state.commands, command => pipe(state.resolvers, Array.findFirstIndex(({ matcher }) => commandMatches(matcher, command)), Option.flatMap(resolverIndex => pipe(state.resolvers, Array.get(resolverIndex), Option.map(entry => ({ entry, resolverIndex }))))));
91
94
  for (let depth = 0; depth < MAX_CASCADE_DEPTH; depth++) {
92
- const matched = findNextMatch(current);
95
+ const matched = findNextMatch(current.commands, current.resolvers);
93
96
  if (Option.isNone(matched)) {
94
97
  break;
95
98
  }
@@ -109,6 +112,34 @@ export const resolveAllInternal = (internal, resolvers) => {
109
112
  return current;
110
113
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
111
114
  };
115
+ /** Resolves only the listed Command resolvers, cascading through result
116
+ * Messages, and throws unless every resolver matches one dispatched Command.
117
+ * Unlike `resolveAllInternal`, unmatched entries never carry forward. */
118
+ export const resolveAllExactInternal = (internal, resolvers) => {
119
+ let remainingResolvers = Array.map(resolvers, ([matcher, resultMessage]) => ({ matcher, resultMessage }));
120
+ let current = internal;
121
+ for (let depth = 0; depth < MAX_CASCADE_DEPTH; depth++) {
122
+ const matched = findNextMatch(current.commands, remainingResolvers);
123
+ if (Option.isNone(matched)) {
124
+ break;
125
+ }
126
+ const next = resolveByMatcher(current, matched.value.entry.matcher, matched.value.entry.resultMessage);
127
+ if (Predicate.isUndefined(next)) {
128
+ break;
129
+ }
130
+ current = next;
131
+ remainingResolvers = Array.remove(remainingResolvers, matched.value.resolverIndex);
132
+ if (depth === MAX_CASCADE_DEPTH - 1) {
133
+ throw new Error('resolveAllExact hit the maximum cascade depth (100). ' +
134
+ 'This usually means Commands are producing Commands in an infinite cycle.');
135
+ }
136
+ }
137
+ if (Array.isReadonlyArrayNonEmpty(remainingResolvers)) {
138
+ throw new Error(`resolveAllExact expected Commands that were not dispatched:\n\n${formatMatcherList(Array.map(remainingResolvers, ({ matcher }) => matcher))}\n\nPending Commands after resolving matches:\n\n${formatCommandList(current.commands)}`);
139
+ }
140
+ assertAllCommandsResolved(current.commands);
141
+ return current;
142
+ };
112
143
  const formatCommandList = (commands) => Array.match(commands, {
113
144
  onEmpty: () => ' (none)',
114
145
  onNonEmpty: nonEmpty => pipe(nonEmpty, Array.map(command => ` ${formatCommand(command)}`), Array.join('\n')),
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/test/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,QAAQ,CAAA;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAcvC,oGAAoG;AACpG,eAAO,MAAM,aAAa;yBACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,GAAG,MAAM;;;;;;;4BAqB5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,GAAG,MAAM;;;;;;;0BAqBjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;yBAmBhD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QACxB,MAAM,kBACI,MAAM;;;;;;;sBA2CN,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;yBAWjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;0BAY7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QACxB,MAAM,kBACI,MAAM;;;;;;;yBA8CH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM;;;;;;;4BAsB/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM;;;;;;;0BAkBpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;;;;2BA4BrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;0BAyBrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;wBAyBtB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;uBAgBnB,MAAM;;0BAUL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;uBAiCvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;;;;0BA4BnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;CAwB3C,CAAA"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/test/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,QAAQ,CAAA;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAcvC,oGAAoG;AACpG,eAAO,MAAM,aAAa;yBACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,GAAG,MAAM;;;;;;;4BAqB5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,GAAG,MAAM;;;;;;;0BAqBjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;yBAmBhD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QACxB,MAAM,kBACI,MAAM;;;;;;;sBA2CN,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;yBAWjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;0BAY7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QACxB,MAAM,kBACI,MAAM;;;;;;;yBA8CH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM;;;;;;;4BAsB/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM;;;;;;;0BAkBpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;;;;2BA4BrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;0BAyBrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;wBAyBtB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;uBAgBnB,MAAM;;0BAUL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;uBAoBvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM;;;;;;;;;;0BA4BnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;CAwB3C,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Option, String as String_ } from 'effect';
2
- import { attr, textContent } from './query.js';
2
+ import { attr, isHidden, textContent } from './query.js';
3
3
  const describeExpected = (expected) => expected instanceof RegExp ? `${expected}` : `"${expected}"`;
4
4
  const textMatches = (value, expected) => expected instanceof RegExp ? expected.test(value) : value === expected;
5
5
  const textIncludes = (value, expected) => expected instanceof RegExp ? expected.test(value) : value.includes(expected);
@@ -292,18 +292,8 @@ export const sceneMatchers = {
292
292
  message: () => 'Expected element to be visible but the element does not exist.',
293
293
  }),
294
294
  onSome: vnode => {
295
- const hiddenAttr = attr(vnode, 'hidden');
296
- const hiddenByAttr = Option.isSome(hiddenAttr) && hiddenAttr.value !== 'false';
297
- const ariaHidden = attr(vnode, 'aria-hidden');
298
- const hiddenByAria = Option.isSome(ariaHidden) && ariaHidden.value === 'true';
299
- const display = vnode.data?.style?.['display'];
300
- const visibility = vnode.data?.style?.['visibility'];
301
- const isHidden = hiddenByAttr ||
302
- hiddenByAria ||
303
- display === 'none' ||
304
- visibility === 'hidden';
305
295
  return {
306
- pass: !isHidden,
296
+ pass: !isHidden(vnode),
307
297
  message: () =>
308
298
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
309
299
  this.isNot
@@ -14,6 +14,8 @@ type SimpleSelector = Readonly<{
14
14
  }>;
15
15
  type Selector = ReadonlyArray<SimpleSelector>;
16
16
  export declare const parseSelector: (input: string) => Selector;
17
+ /** Returns whether an element is hidden from the accessibility tree. */
18
+ export declare const isHidden: (vnode: VNode) => boolean;
17
19
  /** Returns the ancestor chain of `target` within `root`, ordered from root to
18
20
  * the immediate parent of `target` (exclusive). Returns an empty array when
19
21
  * `target` is `root` itself or is not present in the subtree. */
@@ -21,7 +23,7 @@ export declare const ancestorsOf: (target: VNode) => (root: VNode) => ReadonlyAr
21
23
  /** Computes the accessible name of an element. Resolves via
22
24
  * `aria-labelledby`, `aria-label`, `<label for>`, native host language
23
25
  * attributes and child elements (img/area alt, input value/alt,
24
- * fieldset legend, figure figcaption, table caption), text content,
26
+ * fieldset legend, figure figcaption, table caption), accessible text content,
25
27
  * then `title`. */
26
28
  export declare const accessibleName: (root: VNode) => (vnode: VNode) => string;
27
29
  /** Computes the accessible description of an element. Resolves via
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/test/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/test/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EAOP,MAAM,QAAQ,CAAA;AAIf,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,KAAK,SAAS,GAAG,OAAO,GAAG,YAAY,CAAA;AAEvC,KAAK,gBAAgB,GAAG,QAAQ,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5B,IAAI,EAAE,SAAS,CAAA;CAChB,CAAC,CAAA;AAEF,KAAK,cAAc,GAAG,QAAQ,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC9B,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAC5C,CAAC,CAAA;AAEF,KAAK,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;AAmI7C,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAc7C,CAAA;AAkBD,wEAAwE;AACxE,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,OA+BvC,CAAA;AAqBD;;kEAEkE;AAClE,eAAO,MAAM,WAAW,GACrB,QAAQ,KAAK,MACb,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CAiBjC,CAAA;AA0YH;;;;oBAIoB;AACpB,eAAO,MAAM,cAAc,GACxB,MAAM,KAAK,MACX,OAAO,KAAK,KAAG,MAUb,CAAA;AAEL;sEACsE;AACtE,eAAO,MAAM,qBAAqB,GAC/B,MAAM,KAAK,MACX,OAAO,KAAK,KAAG,MAmBb,CAAA;AA6BL,uDAAuD;AACvD,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3D,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;CAKhE,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC3D,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,CAAA;CAGhE,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,KAAG,MAU1C,CAAA;AA6BD,qDAAqD;AACrD,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CACpC,CAAA;AA0ErB,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAwDF;;uEAEuE;AACvE,eAAO,MAAM,SAAS,GACnB,MAAM,MAAM,EAAE,UAAU,WAAW,MACnC,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CASjC,CAAA;AAEH,iFAAiF;AACjF,eAAO,MAAM,YAAY,GACtB,MAAM,MAAM,EAAE,UAAU,WAAW,MACnC,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CASjC,CAAA;AAEH;4EAC4E;AAC5E,eAAO,MAAM,SAAS,GACnB,QAAQ,MAAM,EAAE,UAAU,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,MACvD,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAqBjC,CAAA;AAEH,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,GAC1B,kBAAkB,MAAM,MACxB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAI/B,CAAA;AAEL;;6CAE6C;AAC7C,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAqCjC,CAAA;AAEH;;8EAE8E;AAC9E,eAAO,MAAM,aAAa,GACvB,YAAY,MAAM,MAClB,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CAoCjC,CAAA;AAEH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,GACtB,UAAU,MAAM,MAChB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACmC,CAAA;AAEvE,gEAAgE;AAChE,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACuC,CAAA;AAE3E,sEAAsE;AACtE,eAAO,MAAM,WAAW,GACrB,aAAa,MAAM,MACnB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAI/B,CAAA;AAEL;uFACuF;AACvF,eAAO,MAAM,YAAY,GACtB,QAAQ,MAAM,EAAE,UAAU,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,MACvD,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CASjC,CAAA;AAEH,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,GAC7B,kBAAkB,MAAM,MACxB,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CAI/B,CAAA;AAEL,yDAAyD;AACzD,eAAO,MAAM,eAAe,GACzB,UAAU,MAAM,MAChB,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CACgC,CAAA;AAEpE,2DAA2D;AAC3D,eAAO,MAAM,aAAa,GACvB,YAAY,MAAM,MAClB,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CACoC,CAAA;AAExE,iEAAiE;AACjE,eAAO,MAAM,cAAc,GACxB,aAAa,MAAM,MACnB,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CAC2C,CAAA;AAE/E,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,GAC9B,oBAAoB,MAAM,MAC1B,MAAM,KAAK,KAAG,aAAa,CAAC,KAAK,CAM/B,CAAA;AAEL;mDACmD;AACnD,eAAO,MAAM,iBAAiB,GAC3B,cAAc,MAAM,MACpB,MAAM,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAK/B,CAAA;AAIL;;;yEAGyE;AACzE,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAC3D,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEnC;;+DAE+D;AAC/D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,GAC9D,QAAQ,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AA4BnC;qFACqF;AACrF,eAAO,MAAM,IAAI,GAAI,WAAW,MAAM,EAAE,UAAU,WAAW,KAAG,OAM/D,CAAA;AAED,wEAAwE;AACxE,eAAO,MAAM,WAAW,GAAI,kBAAkB,MAAM,KAAG,OAIpD,CAAA;AAEH,6DAA6D;AAC7D,eAAO,MAAM,KAAK,GAAI,YAAY,MAAM,KAAG,OACmB,CAAA;AAE9D,sEAAsE;AACtE,eAAO,MAAM,OAAO,GAAI,UAAU,MAAM,KAAG,OACoB,CAAA;AAE/D,wEAAwE;AACxE,eAAO,MAAM,KAAK,GAAI,YAAY,MAAM,KAAG,OACmB,CAAA;AAE9D,8EAA8E;AAC9E,eAAO,MAAM,MAAM,GAAI,aAAa,MAAM,KAAG,OACqB,CAAA;AAElE,0EAA0E;AAC1E,eAAO,MAAM,YAAY,GAAI,aAAa,MAAM,KAAG,OAC4B,CAAA;AAE/E,8FAA8F;AAC9F,eAAO,MAAM,IAAI,GACf,QAAQ,MAAM,EACd,UAAU,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,KACtC,OAAsE,CAAA;AAEzE;kDACkD;AAClD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,OACsB,CAAA;AAE7D;;yDAEyD;AACzD,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC1C,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;CAQ/C,CAAA;AAID,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAClB,WAAW,MAAM,EACjB,UAAU,WAAW,KACpB,UAMF,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAClB,QAAQ,MAAM,EACd,UAAU,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,KACtC,UACoE,CAAA;AAEvE,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,GAAI,YAAY,MAAM,KAAG,UAC0B,CAAA;AAExE,gFAAgF;AAChF,eAAO,MAAM,cAAc,GAAI,kBAAkB,MAAM,KAAG,UAIvD,CAAA;AAEH,6EAA6E;AAC7E,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,KAAG,UAC2B,CAAA;AAEzE,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,GAAI,YAAY,MAAM,KAAG,UAC0B,CAAA;AAExE,gFAAgF;AAChF,eAAO,MAAM,SAAS,GAAI,aAAa,MAAM,KAAG,UAC4B,CAAA;AAE5E,+EAA+E;AAC/E,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,UAInD,CAAA;AAEH,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,UACQ,CAAA;AAIlD,iFAAiF;AACjF,eAAO,MAAM,KAAK,GAAI,YAAY,UAAU,KAAG,OAI5C,CAAA;AAEH,gFAAgF;AAChF,eAAO,MAAM,IAAI,GAAI,YAAY,UAAU,KAAG,OACkC,CAAA;AAEhF,8EAA8E;AAC9E,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAChD,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAA;CAQrD,CAAA;AAED,KAAK,aAAa,GAAG,QAAQ,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAC,CAAA;AAaF;;2EAE2E;AAC3E,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAAA;IAC5D,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,CAAA;CAyBjE,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,aAAa,GACxB,MAAM,KAAK,EACX,QAAQ,MAAM,GAAG,OAAO,KACvB,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAQtE,CAAA"}
@@ -56,6 +56,33 @@ export const parseSelector = (input) => {
56
56
  // NODE UTILITIES
57
57
  const lookupAttribute = (name) => (vnode) => pipe(vnode.data?.attrs?.[name], Option.fromNullishOr, Option.orElse(() => Option.fromNullishOr(vnode.data?.props?.[name])));
58
58
  const lookupStringAttribute = (name) => (vnode) => pipe(vnode, lookupAttribute(name), Option.map(String));
59
+ /** Returns whether an element is hidden from the accessibility tree. */
60
+ export const isHidden = (vnode) => {
61
+ const maybeHiddenProperty = Option.fromNullishOr(vnode.data?.props?.['hidden']);
62
+ if (Option.exists(maybeHiddenProperty, Boolean)) {
63
+ return true;
64
+ }
65
+ if (Option.isNone(maybeHiddenProperty)) {
66
+ const maybeHiddenAttribute = Option.fromNullishOr(vnode.data?.attrs?.['hidden']);
67
+ if (Option.isSome(maybeHiddenAttribute) &&
68
+ maybeHiddenAttribute.value !== false) {
69
+ return true;
70
+ }
71
+ }
72
+ const maybeAriaHidden = lookupStringAttribute('aria-hidden')(vnode);
73
+ if (Option.isSome(maybeAriaHidden) && maybeAriaHidden.value === 'true') {
74
+ return true;
75
+ }
76
+ const display = vnode.data?.style?.['display'];
77
+ if (display === 'none') {
78
+ return true;
79
+ }
80
+ const visibility = vnode.data?.style?.['visibility'];
81
+ if (visibility === 'hidden') {
82
+ return true;
83
+ }
84
+ return false;
85
+ };
59
86
  const isElement = (node) => !Predicate.isUndefined(node.sel);
60
87
  const isVNode = (child) => !Predicate.isString(child);
61
88
  const vnodeChildren = (vnode) => Array.filter(vnode.children ?? [], isVNode);
@@ -190,14 +217,26 @@ const implicitRole = (root) => (vnode) => pipe(vnode.sel, Option.fromNullishOr,
190
217
  const resolveRoles = (root) => (vnode) => pipe(vnode, lookupStringAttribute('role'), Option.map(flow(String_.split(WHITESPACE_PATTERN), Array.filter(String_.isNonEmpty))), Option.getOrElse(() => Option.toArray(implicitRole(root)(vnode))));
191
218
  // ACCESSIBLE NAME
192
219
  const nonEmptyString = (value) => Option.filter(Option.some(String(value)), String_.isNonEmpty);
193
- const nameFromLabelledBy = (root) => (vnode) => pipe(vnode, lookupAttribute('aria-labelledby'), Option.flatMap(nonEmptyString), Option.map(labelledBy => pipe(labelledBy, String_.split(WHITESPACE_PATTERN), Array.filterMap(flow(findById(root), Option.map(textContent), Result.fromOption(() => undefined))), Array.join(' '))), Option.filter(String_.isNonEmpty));
220
+ const accessibleTextContent = (vnode) => {
221
+ if (Predicate.isString(vnode.text)) {
222
+ return vnode.text;
223
+ }
224
+ return pipe(vnode.children ?? [], Array.map(child => {
225
+ if (Predicate.isString(child)) {
226
+ return child;
227
+ }
228
+ return isHidden(child) ? '' : accessibleTextContent(child);
229
+ }), Array.join(''));
230
+ };
231
+ const referencedTextContent = (vnode) => isHidden(vnode) ? textContent(vnode) : accessibleTextContent(vnode);
232
+ const nameFromLabelledBy = (root) => (vnode) => pipe(vnode, lookupAttribute('aria-labelledby'), Option.flatMap(nonEmptyString), Option.map(labelledBy => pipe(labelledBy, String_.split(WHITESPACE_PATTERN), Array.filterMap(flow(findById(root), Option.map(referencedTextContent), Result.fromOption(() => undefined))), Array.join(' '))), Option.filter(String_.isNonEmpty));
194
233
  const nameFromAriaLabel = (vnode) => pipe(vnode, lookupAttribute('aria-label'), Option.flatMap(nonEmptyString));
195
234
  const nameFromLabelFor = (root) => (vnode) => pipe(vnode, lookupStringAttribute('id'), Option.flatMap(idString => pipe(allNodesIn(root), Array.findFirst(node => node.sel === 'label' &&
196
- pipe(node, lookupStringAttribute('htmlFor'), Option.exists(Equal.equals(idString)))), Option.map(textContent))));
197
- const nameFromTextContent = (vnode) => Option.filter(Option.some(textContent(vnode)), String_.isNonEmpty);
235
+ pipe(node, lookupStringAttribute('htmlFor'), Option.exists(Equal.equals(idString)))), Option.map(referencedTextContent))));
236
+ const nameFromTextContent = (vnode) => Option.filter(Option.some(accessibleTextContent(vnode)), String_.isNonEmpty);
198
237
  const nameFromTitle = (vnode) => pipe(vnode, lookupAttribute('title'), Option.flatMap(nonEmptyString));
199
238
  const findFirstDirectChildWithTag = (tag) => (vnode) => Array.findFirst(vnodeChildren(vnode), ({ sel }) => sel === tag);
200
- const nameFromChildTag = (childTag) => (vnode) => pipe(vnode, findFirstDirectChildWithTag(childTag), Option.map(textContent), Option.flatMap(nonEmptyString));
239
+ const nameFromChildTag = (childTag) => (vnode) => pipe(vnode, findFirstDirectChildWithTag(childTag), Option.filter(child => !isHidden(child)), Option.map(accessibleTextContent), Option.flatMap(nonEmptyString));
201
240
  const INPUT_BUTTON_TYPES = ['button', 'reset', 'submit'];
202
241
  const nameFromInput = (vnode) => {
203
242
  const type = pipe(vnode, lookupStringAttribute('type'), Option.getOrElse(() => 'text'));
@@ -213,14 +252,14 @@ const nameFromNativeHost = (vnode) => Match.value(vnode.sel).pipe(Match.whenOr('
213
252
  /** Computes the accessible name of an element. Resolves via
214
253
  * `aria-labelledby`, `aria-label`, `<label for>`, native host language
215
254
  * attributes and child elements (img/area alt, input value/alt,
216
- * fieldset legend, figure figcaption, table caption), text content,
255
+ * fieldset legend, figure figcaption, table caption), accessible text content,
217
256
  * then `title`. */
218
257
  export const accessibleName = (root) => (vnode) => pipe(vnode, nameFromLabelledBy(root), Option.orElse(() => nameFromAriaLabel(vnode)), Option.orElse(() => nameFromLabelFor(root)(vnode)), Option.orElse(() => nameFromNativeHost(vnode)), Option.orElse(() => nameFromTextContent(vnode)), Option.orElse(() => nameFromTitle(vnode)), Option.getOrElse(() => ''));
219
258
  /** Computes the accessible description of an element. Resolves via
220
259
  * `aria-describedby` (joining referenced elements' text content). */
221
260
  export const accessibleDescription = (root) => (vnode) => pipe(vnode, lookupAttribute('aria-describedby'), Option.flatMap(nonEmptyString), Option.match({
222
261
  onNone: () => '',
223
- onSome: flow(String_.split(WHITESPACE_PATTERN), Array.filterMap(flow(findById(root), Option.map(textContent), Result.fromOption(() => undefined))), Array.join(' ')),
262
+ onSome: flow(String_.split(WHITESPACE_PATTERN), Array.filterMap(flow(findById(root), Option.map(referencedTextContent), Result.fromOption(() => undefined))), Array.join(' ')),
224
263
  }));
225
264
  // PUBLIC API
226
265
  const findAllImpl = (selectorString) => (html) => {
@@ -1,13 +1,11 @@
1
- import { Effect, Option, type Schema } from 'effect';
2
- import type { CommandDefinition } from '../command/index.js';
3
- import type * as Interruptible from '../command/interruptible/index.js';
1
+ import { Option, type Schema } from 'effect';
4
2
  import type { CustomElementSpec } from '../customElement/index.js';
5
3
  import type { File } from '../file/index.js';
6
4
  import type { Document, Html, HtmlBuilder, KeyboardModifiers } from '../html/index.js';
7
5
  import type { Entry as ManagedResourceEntry } from '../managedResource/index.js';
8
6
  import type { MountDefinition } from '../mount/index.js';
9
7
  import type { VNode } from '../vdom.js';
10
- import type { AnyCommand, AnyMount, CommandMatcher, MountMatcher, MountResolver, PendingMount, Resolver } from './internal.js';
8
+ import type { AnyCommand, AnyCommandInstance, AnyMount, CommandMatcher, MountMatcher, MountResolver, PendingMount, ResolvableCommandDefinition, ResolvableCommandMatcher, Resolver } from './internal.js';
11
9
  import type { Locator, LocatorAll } from './query.js';
12
10
  export type { AnyCommand, AnyMount, MountMatcher, MountResolver, PendingMount, Resolver, };
13
11
  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';
@@ -54,20 +52,6 @@ type GivenStep<Model> = Readonly<{
54
52
  }> & (<M, Message, OutMessage = undefined>(simulation: SceneSimulation<M, Message, OutMessage>) => SceneSimulation<M, Message, OutMessage>);
55
53
  /** A single step in a scene: either a `given` step or a scene simulation transform. */
56
54
  export type SceneStep<Model, Message, OutMessage> = GivenStep<NoInfer<Model>> | ((simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>);
57
- /** A typed Command instance carrying the result Message type via its
58
- * `effect` field, so passing `FetchWeather({ zipCode })` to `Scene.Command.resolve`
59
- * preserves the link between the Command and its declared result Message. */
60
- type SceneCommandInstance<ResultMessage = unknown> = Readonly<{
61
- name: string;
62
- args?: Record<string, unknown>;
63
- effect: Effect.Effect<ResultMessage, any, any>;
64
- }>;
65
- /** A Command Definition accepted by `Scene.Command.resolve` as a name matcher:
66
- * a plain `Command.define` Definition or an interruptible
67
- * interruptible `Command.define` Definition. Both carry the
68
- * `CommandDefinitionTypeId` brand and match by name at runtime, so `resolve`
69
- * accepts either, the way `expectHas`/`expectExact` already do. */
70
- type ResolvableCommandDefinition<Name extends string, ResultMessage> = CommandDefinition<Name, ResultMessage> | Interruptible.DefinitionNoArgs<Name, Effect.Effect<ResultMessage, any, any>> | Interruptible.DefinitionWithArgs<Name, any, any, Effect.Effect<ResultMessage, any, any>> | Interruptible.DefinitionWithArgsNameKeyed<Name, any, Effect.Effect<ResultMessage, any, any>>;
71
55
  /** Sets the initial Model for a scene test. */
72
56
  export declare const given: <Model>(model: Model) => GivenStep<Model>;
73
57
  /** A ManagedResource entry a scene can drive: the Option-shaped requirements
@@ -80,14 +64,18 @@ export declare const Command: {
80
64
  /** Resolves a specific pending Command with the given result Message. */
81
65
  readonly resolve: {
82
66
  <Name extends string, ResultMessage>(definition: ResolvableCommandDefinition<Name, ResultMessage>, resultMessage: ResultMessage): <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
83
- <ResultMessage>(instance: SceneCommandInstance<ResultMessage>, resultMessage: ResultMessage): <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
67
+ <ResultMessage>(instance: AnyCommandInstance<ResultMessage>, resultMessage: ResultMessage): <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
84
68
  };
85
69
  /** Resolves listed Commands with their result Messages, cascading through any
86
70
  * Commands the result produces. Each entry resolves exactly one matching
87
71
  * dispatch in declaration order; compose with `Array.makeBy` for N
88
72
  * identical responses. Resolvers carry across calls; a new entry replaces
89
73
  * any leftovers sharing its Definition or Instance shape (latest wins). */
90
- readonly resolveAll: <R extends ReadonlyArray<unknown>>(...resolvers: { [K in keyof R]: Resolver<R[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
74
+ readonly resolveAll: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
75
+ /** Resolves listed Commands and throws unless every resolver matches one
76
+ * dispatch and no actual Commands remain unresolved. Entries apply only to
77
+ * this call and never carry forward. */
78
+ readonly resolveAllExact: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
91
79
  /** Asserts that every given Command is among the pending Commands. */
92
80
  readonly expectHas: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
93
81
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
@@ -182,6 +170,10 @@ export declare const click: (target: string | Locator) => <Model, Message, OutMe
182
170
  * When the element has no dblclick handler, the event bubbles up to the
183
171
  * nearest ancestor with one, mirroring browser event propagation. */
184
172
  export declare const doubleClick: (target: string | Locator) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
173
+ /** Simulates a contextmenu event on the element matching the target.
174
+ * When the element has no contextmenu handler, the event bubbles up to the
175
+ * nearest ancestor with one, mirroring browser event propagation. */
176
+ export declare const contextMenu: (target: string | Locator) => <Model, Message, OutMessage = undefined>(simulation: SceneSimulation<Model, Message, OutMessage>) => SceneSimulation<Model, Message, OutMessage>;
185
177
  type PointerDownOptions = Readonly<{
186
178
  pointerType?: string;
187
179
  button?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/test/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/test/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,MAAM,EAEN,KAAK,MAAM,EAGZ,MAAM,QAAQ,CAAA;AAIf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAS5C,OAAO,KAAK,EACV,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,QAAQ,EAER,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,wBAAwB,EACxB,QAAQ,EAET,MAAM,eAAe,CAAA;AAyBtB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAwBrD,YAAY,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,CAAA;AAED,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,GACP,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAErD;;mDAEmD;AACnD,eAAO,MAAM,GAAG;;;;;;;;;;;aAm8BJ,CAAC;;;;;;;;;CAz7BH,CAAA;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C;;6EAE6E;AAC7E,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,IAAI,QAAQ,CAAC;IAC7E,wFAAwF;IACxF,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1B,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACnC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAC,CAAA;AAEF,qGAAqG;AACrG,KAAK,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC,GACxD,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,KAChD,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE/C,uFAAuF;AACvF,MAAM,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,IAC5C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACzB,CAAC,CACC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AA+arD,+CAA+C;AAC/C,eAAO,MAAM,KAAK,GAAI,KAAK,EAAE,OAAO,KAAK,KAAG,SAAS,CAAC,KAAK,CAiB1D,CAAA;AA0UD;;2DAE2D;AAC3D,KAAK,yBAAyB,CAC5B,UAAU,EACV,YAAY,EACZ,KAAK,EACL,UAAU,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,GAAG,CAClD,KAAK,EAAE,KAAK,KACT,YAAY,IACf,oBAAoB,CACtB,UAAU,EACV,YAAY,EACZ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAClB,KAAK,EACL,GAAG,EACH,UAAU,CACX,CAAA;AAkLD;yEACyE;AACzE,eAAO,MAAM,OAAO;IAClB,yEAAyE;;SA1gBxE,IAAI,SAAS,MAAM,EAAE,aAAa,cACrB,2BAA2B,CAAC,IAAI,EAAE,aAAa,CAAC,iBAC7C,aAAa,GAC3B,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;SAC/C,aAAa,YACF,kBAAkB,CAAC,aAAa,CAAC,iBAC5B,aAAa,GAC3B,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;;IAigBhD;;;;gFAI4E;0BA7d3E,QAAQ,SAAS,aAAa,CAAC,wBAAwB,CAAC,gBACzC,GAAG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAE,MAE/D,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IA0d9C;;6CAEyC;+BAhdxC,QAAQ,SAAS,aAAa,CAAC,wBAAwB,CAAC,gBACzC,GAAG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAE,MAE/D,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IA6c9C,sEAAsE;sCApcxD,aAAa,CAAC,cAAc,CAAC,MAC1C,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAmc9C,iGAAiG;wCA1bnF,aAAa,CAAC,cAAc,CAAC,MAC1C,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAyb9C,kDAAkD;gCAjbjD,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CAibtC,CAAA;AAEV;uEACuE;AACvE,eAAO,MAAM,KAAK;IAChB,uEAAuE;uBAzatE,IAAI,SAAS,MAAM,EAAE,aAAa,WACxB,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,QAAQ,iBACzC,aAAa,KAC3B,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAsahD,6DAA6D;0BA9W5D,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,gBACjB,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,MAEtD,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IA2W9C,kEAAkE;sCAnWpD,aAAa,CAAC,YAAY,CAAC,MACxC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAkW9C,wGAAwG;wCAzV1F,aAAa,CAAC,YAAY,CAAC,MACxC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAwV9C,gDAAgD;gCAhV/C,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IAgV9C;mEAC+D;wCAtUjD,aAAa,CAAC,YAAY,CAAC,MACxC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CAqUtC,CAAA;AAEV;8EAC8E;AAC9E,eAAO,MAAM,YAAY;IACvB;;iEAE6D;oBA9P5D,YAAY,WAAW,YAAY,MACnC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CA6PtC,CAAA;AAEV;;;;;;kEAMkE;AAClE,eAAO,MAAM,eAAe;IAC1B;;mDAE+C;uBAnO9C,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC,SACxD,yBAAyB,CAC9B,UAAU,EACV,YAAY,EACZ,KAAK,EACL,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAChC,WACQ,OAAO,CAAC,IAAI,CAAC,MAEvB,OAAO,EAAE,UAAU,GAAG,SAAS,EAC9B,YAAY,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,KAC3D,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;IA0NnD;+DAC2D;2BAnM1D,UAAU,EAAE,YAAY,EAAE,KAAK,SACvB,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,SAC1D,OAAO,MAEf,OAAO,EAAE,UAAU,GAAG,SAAS,EAC9B,YAAY,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,KAC3D,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;IA+LnD;qDACiD;uBArKhD,UAAU,EAAE,YAAY,EAAE,KAAK,SACvB,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,MAElE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC9B,YAAY,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,KAC3D,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;CAkK3C,CAAA;AAEV;+EAC+E;AAC/E,eAAO,MAAM,aAAa;IACxB;2EACuE;oBA/IrE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EACzC,IAAI,SAAS,MAAM,MAAM,GAAG,MAAM,QAE5B,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAC3D,MAAM,GAAG,OAAO,aACb,IAAI,UACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAEzC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CAuItC,CAAA;AAEV;;;;;;uDAMuD;AACvD,eAAO,MAAM,gBAAgB,GAC1B,QAAQ,EAAE,UAAU,QAAQ,MAC5B,KAAK,EAAE,OAAO,EAAE,UAAU,EACzB,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KACrE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAe3D,CAAA;AAEH;;;;;;uDAMuD;AACvD,eAAO,MAAM,kBAAkB,SAE5B,KAAK,EAAE,OAAO,EAAE,UAAU,EACzB,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KACrE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAc3D,CAAA;AAEH,0FAA0F;AAC1F,eAAO,MAAM,GAAG,GACb,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,MAGpE,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAG5C,CAAA;AAmCH;;;;kCAIkC;AAClC,eAAO,MAAM,MAAM,GAChB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,QAAQ,OAAO,EACf,GAAG,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,MAGvE,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAmB5C,CAAA;AAgBH;;;;;;yDAMyD;AACzD,eAAO,MAAM,KAAK,GACf,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAmF5C,CAAA;AAEH;;sEAEsE;AACtE,eAAO,MAAM,WAAW,GACrB,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAqD5C,CAAA;AAEH;;sEAEsE;AACtE,eAAO,MAAM,WAAW,GACrB,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAmD5C,CAAA;AAEH,KAAK,kBAAkB,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAWF;;;iFAGiF;AACjF,eAAO,MAAM,WAAW,GACrB,QAAQ,MAAM,GAAG,OAAO,EAAE,UAAU,kBAAkB,MACtD,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CA8D5C,CAAA;AAEH,KAAK,gBAAgB,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAQF;;;mEAGmE;AACnE,eAAO,MAAM,SAAS,GACnB,QAAQ,MAAM,GAAG,OAAO,EAAE,UAAU,gBAAgB,MACpD,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAsD5C,CAAA;AAEH;wEACwE;AACxE,eAAO,MAAM,KAAK,GACf,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAY5C,CAAA;AAEH,kEAAkE;AAClE,eAAO,MAAM,KAAK,GACf,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAGzC,CAAA;AAEN,iEAAiE;AACjE,eAAO,MAAM,IAAI,GACd,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAGzC,CAAA;AAEN;6EAC6E;AAC7E,eAAO,MAAM,MAAM,EAAE;IACnB,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,EAAE,MAAM,GACZ,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,KAAK,EAAE,MAAM,GACZ,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;CAUjD,CAAA;AAED;;;uFAGuF;AACvF,eAAO,MAAM,WAAW,EAAE;IACxB,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;CAWjD,CAAA;AAED;;;;mFAImF;AACnF,eAAO,MAAM,SAAS,EAAE;IACtB,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;CAcjD,CAAA;AAED,oEAAoE;AACpE,eAAO,MAAM,MAAM,GAChB,QAAQ,MAAM,GAAG,OAAO,MACxB,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAGzC,CAAA;AAEN;yEACyE;AACzE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;AACxB,QAAA,MAAM,KAAK,EAAE;IACX,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,EAAE,MAAM,GACZ,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,KAAK,EAAE,MAAM,GACZ,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;CAUjD,CAAA;AAED;mGACmG;AACnG,eAAO,MAAM,OAAO,EAAE;IACpB,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,GAAG,EAAE,MAAM,GACV,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACpC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,GAAG,EAAE,MAAM,GACV,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,CACE,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACpC,CACD,MAAM,EAAE,MAAM,GAAG,OAAO,KACrB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAC1C,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACpD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;CAmBjD,CAAA;AA+TD;kDACkD;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA;AAC5B,QAAA,MAAM,OAAO,GAAI,SAAS,OAAO;;wBArT9B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;2BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;+BAmRvB,MAAM,GAAG,MAAM,MArRrC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;kCAqRpB,MAAM,GAAG,MAAM,MAvRxC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;2BAuR3B,MAAM,UAAU,MAAM,MAzRxC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;gCAyRtB,MAAM,MA3R7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BA2R1B,MAAM,UAAU,MAAM,MA7RzC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;2BA6R3B,MAAM,MA/RxB,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;8BA+RxB,MAAM,MAjS3B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;gCAiStB,MAAM,MAnS7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;6BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;0BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;6BAuSzB,MAAM,MAzS1B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;yCAySb,MAAM,GAAG,MAAM,MA3S/C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;gDA2SN,MAAM,GAAG,MAAM,MA7StD,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;;oBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;uBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;2BAmRvB,MAAM,GAAG,MAAM,MArRrC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;8BAqRpB,MAAM,GAAG,MAAM,MAvRxC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;uBAuR3B,MAAM,UAAU,MAAM,MAzRxC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BAyRtB,MAAM,MA3R7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;wBA2R1B,MAAM,UAAU,MAAM,MA7RzC,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;uBA6R3B,MAAM,MA/RxB,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;0BA+RxB,MAAM,MAjS3B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4BAiStB,MAAM,MAnS7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;yBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;wBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;sBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;wBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;yBAuSzB,MAAM,MAzS1B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;qCAySb,MAAM,GAAG,MAAM,MA3S/C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;4CA2SN,MAAM,GAAG,MAAM,MA7StD,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;wBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CAsT9C,CAAA;AAmDF;yDACyD;AACzD,eAAO,MAAM,SAAS,GAAI,YAAY,UAAU;;gCAPtB,MAAM,MAhC7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;0BAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;;4BA8BtB,MAAM,MAhC7B,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;sBAF7C,KAAK,EAAE,OAAO,EAAE,UAAU,0BACb,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KACtD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;CAwC9C,CAAA;AAIF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,GACxB,KAAK,EAAE,OAAO,EAAE,UAAU,SAAS,MAAM,EACxC,MAAM,CACJ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KACpB,IAAI,EACT,UAAU,OAAO,CAAC,UAAU,CAAC,MAE9B,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,MACxD,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IACM,CAAA;AAIjD,uEAAuE;AACvE,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EACzB,MAAM,EAAE,QAAQ,CAAC;QACf,MAAM,EAAE,CACN,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,KACb,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;QAC5D,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,QAAQ,CAAA;KACjE,CAAC,EACF,GAAG,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,GAC7D,IAAI,CAAA;IACP,CAAC,KAAK,EAAE,OAAO,EACb,MAAM,EAAE,QAAQ,CAAC;QACf,MAAM,EAAE,CACN,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,KACb,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;QAChD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,QAAQ,CAAA;KACjE,CAAC,EACF,GAAG,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,GAC5D,IAAI,CAAA;CAmCR,CAAA"}
@@ -4,8 +4,8 @@ import { kebabToPascal } from '../customElement/index.js';
4
4
  import { FOLDKIT_MOUNT_KEY, FileHandlerSymbol, __clearRuntime as clearHtmlRuntime, __htmlBuilder as htmlBuilderFor, __setRuntime as setHtmlRuntime, } from '../html/index.js';
5
5
  import { MountTracker } from '../mount/index.js';
6
6
  import { Dispatch } from '../runtime/index.js';
7
- import { assertAllCommandsResolved, assertAllMountsResolved, assertAllUnmountsAcknowledged, assertExactCommands, assertExactMounts, assertHasCommands, assertHasMounts, assertNoUnacknowledgedUnmounts, assertNoUnresolvedCommands, assertNoUnresolvedMounts, assertResolveUnambiguous, assertZeroCommands, assertZeroMounts, formatCommand, formatMatcher, formatMountList, formatMountMatcher, mountMatches, resolveAllInternal, resolveByMatcher, resolveMountByMatcher, } from './internal.js';
8
- import { accessibleDescription, accessibleName, ancestorsOf, attr, resolveTarget, selector, textContent, within, } from './query.js';
7
+ import { assertAllCommandsResolved, assertAllMountsResolved, assertAllUnmountsAcknowledged, assertExactCommands, assertExactMounts, assertHasCommands, assertHasMounts, assertNoUnacknowledgedUnmounts, assertNoUnresolvedCommands, assertNoUnresolvedMounts, assertResolveUnambiguous, assertZeroCommands, assertZeroMounts, formatCommand, formatMatcher, formatMountList, formatMountMatcher, mountMatches, resolveAllExactInternal, resolveAllInternal, resolveByMatcher, resolveMountByMatcher, } from './internal.js';
8
+ import { accessibleDescription, accessibleName, ancestorsOf, attr, isHidden, resolveTarget, selector, textContent, within, } from './query.js';
9
9
  import { allAltText, allDisplayValue, allLabel, allPlaceholder, allRole, allSelector, allTestId, allText, allTitle, } from './query.js';
10
10
  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';
11
11
  /** Multi-match Locator factories. Each returns a `LocatorAll` that resolves
@@ -147,6 +147,7 @@ const isDocument = (value) => value !== null && 'body' in value;
147
147
  const EVENT_NAMES = {
148
148
  click: 'OnClick',
149
149
  dblclick: 'OnDoubleClick',
150
+ contextmenu: 'OnContextMenu',
150
151
  submit: 'OnSubmit',
151
152
  input: 'OnInput',
152
153
  change: 'OnChange',
@@ -261,7 +262,6 @@ export const given = (model) => {
261
262
  * a Command Definition (matches by name; any pending Command of that name)
262
263
  * or a Command instance (matches by name AND args; strict). */
263
264
  const resolveCommand = (matcher, resultMessage) => (simulation) => {
264
- /* eslint-disable @typescript-eslint/consistent-type-assertions */
265
265
  const internal = toInternal(simulation);
266
266
  assertResolveUnambiguous(internal.commands, matcher);
267
267
  const next = resolveByMatcher(internal, matcher, resultMessage);
@@ -274,8 +274,7 @@ const resolveCommand = (matcher, resultMessage) => (simulation) => {
274
274
  `Pending Commands:\n${pending}\n\n` +
275
275
  'Make sure the previous Message produced this Command.');
276
276
  }
277
- return next;
278
- /* eslint-enable @typescript-eslint/consistent-type-assertions */
277
+ return { ...internal, ...next };
279
278
  };
280
279
  /** Resolves listed Commands with their result Messages, cascading through any
281
280
  * Commands the result produces. Each entry is consumed by exactly one
@@ -289,6 +288,15 @@ const resolveCommand = (matcher, resultMessage) => (simulation) => {
289
288
  const resolveAllCommands = (...resolvers) => (simulation) =>
290
289
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
291
290
  resolveAllInternal(toInternal(simulation), resolvers);
291
+ /** Resolves listed Commands with their result Messages, cascading through any
292
+ * Commands the results produce. Every resolver must match one dispatch in
293
+ * this call, and no actual Commands may remain unresolved. Supplied resolvers
294
+ * do not carry forward. */
295
+ const resolveAllExactCommands = (...resolvers) => (simulation) => {
296
+ const internal = toInternal(simulation);
297
+ const next = resolveAllExactInternal(internal, resolvers);
298
+ return { ...internal, ...next };
299
+ };
292
300
  /** Asserts that every given matcher matches a pending Command. Definition
293
301
  * matchers match by name only; Instance matchers match by name + args. */
294
302
  const expectHasCommandsStep = (...matchers) => (simulation) => {
@@ -492,7 +500,7 @@ const emitCustomElementEvent = (spec, target, eventName, detail) => (simulation)
492
500
  throw new Error(`I could not find an element matching ${description}.\n\n` +
493
501
  'Check that your selector matches an element in the current view.');
494
502
  }
495
- const element = maybeElement.value;
503
+ const { value: element } = maybeElement;
496
504
  if (element.data?.on?.[eventName] === undefined) {
497
505
  throw new Error(`I found an element matching ${description} but it has no ${eventName} handler.\n\n` +
498
506
  `Make sure the element has the On${kebabToPascal(eventName)} attribute from its CustomElement builder.`);
@@ -521,6 +529,10 @@ export const Command = {
521
529
  * identical responses. Resolvers carry across calls; a new entry replaces
522
530
  * any leftovers sharing its Definition or Instance shape (latest wins). */
523
531
  resolveAll: resolveAllCommands,
532
+ /** Resolves listed Commands and throws unless every resolver matches one
533
+ * dispatch and no actual Commands remain unresolved. Entries apply only to
534
+ * this call and never carry forward. */
535
+ resolveAllExact: resolveAllExactCommands,
524
536
  /** Asserts that every given Command is among the pending Commands. */
525
537
  expectHas: expectHasCommandsStep,
526
538
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */
@@ -673,7 +685,7 @@ export const click = (target) => (simulation) => {
673
685
  throw new Error(`I could not find an element matching ${description}.\n\n` +
674
686
  'Check that your selector matches an element in the current view.');
675
687
  }
676
- const element = maybeElement.value;
688
+ const { value: element } = maybeElement;
677
689
  if (isElementDisabled(element)) {
678
690
  throw new Error(`I found an element matching ${description} but it is disabled.\n\n` +
679
691
  'Disabled elements do not receive click events in the browser. ' +
@@ -716,7 +728,7 @@ export const doubleClick = (target) => (simulation) => {
716
728
  throw new Error(`I could not find an element matching ${description}.\n\n` +
717
729
  'Check that your selector matches an element in the current view.');
718
730
  }
719
- const element = maybeElement.value;
731
+ const { value: element } = maybeElement;
720
732
  const hasHandler = element.data?.on?.['dblclick'] !== undefined;
721
733
  if (hasHandler) {
722
734
  return captureFromElement(simulation, element, description, 'dblclick', handler => {
@@ -733,6 +745,32 @@ export const doubleClick = (target) => (simulation) => {
733
745
  throw new Error(`I found an element matching ${description} but neither it nor any ancestor has a dblclick handler.\n\n` +
734
746
  `Make sure the element or a parent has an ${attributeName} attribute.`);
735
747
  };
748
+ /** Simulates a contextmenu event on the element matching the target.
749
+ * When the element has no contextmenu handler, the event bubbles up to the
750
+ * nearest ancestor with one, mirroring browser event propagation. */
751
+ export const contextMenu = (target) => (simulation) => {
752
+ const internal = toInternal(simulation);
753
+ const scopedTarget = applyScopeToTarget(internal.scope, target);
754
+ const { maybeElement, description } = resolveTarget(internal.html, scopedTarget);
755
+ if (Option.isNone(maybeElement)) {
756
+ throw new Error(`I could not find an element matching ${description}.\n\n` +
757
+ 'Check that your selector matches an element in the current view.');
758
+ }
759
+ const { value: element } = maybeElement;
760
+ const invokeHandler = (handler) => {
761
+ handler({ preventDefault: Function.constVoid });
762
+ };
763
+ if (element.data?.on?.['contextmenu'] !== undefined) {
764
+ return captureFromElement(simulation, element, description, 'contextmenu', invokeHandler);
765
+ }
766
+ const maybeAncestor = findAncestorWithHandler(internal.html, element, 'contextmenu');
767
+ if (Option.isSome(maybeAncestor)) {
768
+ return captureFromElement(simulation, maybeAncestor.value, `ancestor of ${description}`, 'contextmenu', invokeHandler);
769
+ }
770
+ const attributeName = EVENT_NAMES['contextmenu'] ?? 'contextmenu';
771
+ throw new Error(`I found an element matching ${description} but neither it nor any ancestor has a contextmenu handler.\n\n` +
772
+ `Make sure the element or a parent has an ${attributeName} attribute.`);
773
+ };
736
774
  const DEFAULT_POINTER_DOWN_OPTIONS = {
737
775
  pointerType: 'mouse',
738
776
  button: 0,
@@ -753,7 +791,7 @@ export const pointerDown = (target, options) => (simulation) => {
753
791
  throw new Error(`I could not find an element matching ${description}.\n\n` +
754
792
  'Check that your selector matches an element in the current view.');
755
793
  }
756
- const element = maybeElement.value;
794
+ const { value: element } = maybeElement;
757
795
  const { pointerType, button, screenX, screenY, clientX, clientY } = {
758
796
  ...DEFAULT_POINTER_DOWN_OPTIONS,
759
797
  ...options,
@@ -796,7 +834,7 @@ export const pointerUp = (target, options) => (simulation) => {
796
834
  throw new Error(`I could not find an element matching ${description}.\n\n` +
797
835
  'Check that your selector matches an element in the current view.');
798
836
  }
799
- const element = maybeElement.value;
837
+ const { value: element } = maybeElement;
800
838
  const { pointerType, screenX, screenY } = {
801
839
  ...DEFAULT_POINTER_UP_OPTIONS,
802
840
  ...options,
@@ -889,10 +927,8 @@ const wrapAssertion = (locator, assertion, isNot) => (simulation) => {
889
927
  };
890
928
  const assertOnElement = (check, expectation) => (maybeElement, description, isNot, root) => {
891
929
  if (Option.isNone(maybeElement)) {
892
- if (!isNot) {
893
- throw new Error(`Expected element matching ${description} to ${expectation} but the element does not exist.`);
894
- }
895
- return;
930
+ const negation = isNot ? 'not ' : '';
931
+ throw new Error(`Expected element matching ${description} ${negation}to ${expectation} but the element does not exist.`);
896
932
  }
897
933
  const { pass, actual } = check(maybeElement.value, root);
898
934
  if (isNot ? pass : !pass) {
@@ -1019,21 +1055,6 @@ const assertIsChecked = assertOnElement(vnode => {
1019
1055
  (Option.isSome(ariaChecked) && ariaChecked.value === 'true');
1020
1056
  return { pass, actual: 'it is not checked' };
1021
1057
  }, 'be checked');
1022
- const isHidden = (vnode) => {
1023
- const hiddenAttr = attr(vnode, 'hidden');
1024
- if (Option.isSome(hiddenAttr) && hiddenAttr.value !== 'false')
1025
- return true;
1026
- const ariaHidden = attr(vnode, 'aria-hidden');
1027
- if (Option.isSome(ariaHidden) && ariaHidden.value === 'true')
1028
- return true;
1029
- const display = vnode.data?.style?.['display'];
1030
- if (display === 'none')
1031
- return true;
1032
- const visibility = vnode.data?.style?.['visibility'];
1033
- if (visibility === 'hidden')
1034
- return true;
1035
- return false;
1036
- };
1037
1058
  const assertIsVisible = assertOnElement(vnode => ({ pass: !isHidden(vnode), actual: 'it is hidden' }), 'be visible');
1038
1059
  const assertHasAccessibleName = (expected) => assertOnElement((vnode, root) => {
1039
1060
  const actual = accessibleName(root)(vnode);
@@ -1,22 +1,6 @@
1
- import { Effect, Option } from 'effect';
2
- import type { CommandDefinition } from '../command/index.js';
3
- import type * as Interruptible from '../command/interruptible/index.js';
4
- import type { AnyCommand, CommandMatcher, Resolver } from './internal.js';
1
+ import { Option } from 'effect';
2
+ import type { AnyCommand, AnyCommandInstance, CommandMatcher, ResolvableCommandDefinition, ResolvableCommandMatcher, Resolver } from './internal.js';
5
3
  export type { AnyCommand, CommandMatcher, Resolver };
6
- /** A typed Command instance carrying the result Message type via its
7
- * `effect` field, so passing `FetchWeather({ zipCode })` to `Story.Command.resolve`
8
- * preserves the link between the Command and its declared result Message. */
9
- type AnyCommandInstance<ResultMessage = unknown> = Readonly<{
10
- name: string;
11
- args?: Record<string, unknown>;
12
- effect: Effect.Effect<ResultMessage, any, any>;
13
- }>;
14
- /** A Command Definition accepted by `Story.Command.resolve` as a name matcher:
15
- * a plain `Command.define` Definition or an interruptible
16
- * interruptible `Command.define` Definition. Both carry the
17
- * `CommandDefinitionTypeId` brand and match by name at runtime, so `resolve`
18
- * accepts either, the way `expectHas`/`expectExact` already do. */
19
- type ResolvableCommandDefinition<Name extends string, ResultMessage> = CommandDefinition<Name, ResultMessage> | Interruptible.DefinitionNoArgs<Name, Effect.Effect<ResultMessage, any, any>> | Interruptible.DefinitionWithArgs<Name, any, any, Effect.Effect<ResultMessage, any, any>> | Interruptible.DefinitionWithArgsNameKeyed<Name, any, Effect.Effect<ResultMessage, any, any>>;
20
4
  /** An immutable test simulation of a Foldkit program. */
21
5
  export type StorySimulation<Model, Message, OutMessage = undefined> = Readonly<{
22
6
  /** @internal Carries the Message type through the step chain. */
@@ -57,7 +41,11 @@ export declare const Command: {
57
41
  * dispatch in declaration order; compose with `Array.makeBy` for N
58
42
  * identical responses. Resolvers carry across calls; a new entry replaces
59
43
  * any leftovers sharing its Definition or Instance shape (latest wins). */
60
- 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>;
44
+ readonly resolveAll: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
45
+ /** Resolves listed Commands and throws unless every resolver matches one
46
+ * dispatch and no actual Commands remain unresolved. Entries apply only to
47
+ * this call and never carry forward. */
48
+ readonly resolveAllExact: <Matchers extends ReadonlyArray<ResolvableCommandMatcher>>(...resolvers: { [K in keyof Matchers]: Resolver<Matchers[K]>; }) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
61
49
  /** Asserts that every given Command is among the pending Commands. */
62
50
  readonly expectHas: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
63
51
  /** Asserts that the pending Commands match the given definitions exactly (order-independent). */