foldkit 0.156.0 → 0.157.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 (201) hide show
  1. package/README.md +3 -3
  2. package/dist/asyncData/asyncData.d.ts +7 -7
  3. package/dist/asyncData/asyncData.d.ts.map +1 -1
  4. package/dist/asyncData/asyncData.js +12 -12
  5. package/dist/calendar/calendarDate.d.ts +15 -15
  6. package/dist/calendar/calendarDate.d.ts.map +1 -1
  7. package/dist/calendar/calendarDate.js +14 -14
  8. package/dist/calendar/comparison.d.ts +2 -2
  9. package/dist/calendar/comparison.d.ts.map +1 -1
  10. package/dist/calendar/comparison.js +5 -5
  11. package/dist/calendar/info.d.ts +2 -2
  12. package/dist/calendar/info.d.ts.map +1 -1
  13. package/dist/calendar/info.js +2 -2
  14. package/dist/calendar/locale.d.ts +7 -7
  15. package/dist/calendar/locale.d.ts.map +1 -1
  16. package/dist/calendar/locale.js +23 -23
  17. package/dist/canvas/shape.d.ts +89 -89
  18. package/dist/canvas/shape.d.ts.map +1 -1
  19. package/dist/canvas/shape.js +65 -53
  20. package/dist/command/index.d.ts +3 -3
  21. package/dist/customElement/index.d.ts +2 -2
  22. package/dist/customElement/index.js +2 -2
  23. package/dist/devTools/protocol.d.ts +278 -278
  24. package/dist/devTools/protocol.d.ts.map +1 -1
  25. package/dist/devTools/protocol.js +98 -92
  26. package/dist/devTools/schemaSummarize.d.ts.map +1 -1
  27. package/dist/devTools/schemaSummarize.js +24 -24
  28. package/dist/devTools/serialize.d.ts +1 -1
  29. package/dist/devTools/serialize.d.ts.map +1 -1
  30. package/dist/devTools/serialize.js +10 -10
  31. package/dist/devTools/store.d.ts.map +1 -1
  32. package/dist/devTools/store.js +52 -28
  33. package/dist/devTools/submodelPath.d.ts.map +1 -1
  34. package/dist/devTools/submodelPath.js +3 -3
  35. package/dist/devTools/summarize.d.ts +6 -6
  36. package/dist/devTools/summarize.d.ts.map +1 -1
  37. package/dist/devTools/summarize.js +13 -13
  38. package/dist/devTools/webSocketBridge.d.ts +3 -3
  39. package/dist/devTools/webSocketBridge.d.ts.map +1 -1
  40. package/dist/devTools/webSocketBridge.js +8 -8
  41. package/dist/dom/dom.d.ts +2 -0
  42. package/dist/dom/dom.d.ts.map +1 -1
  43. package/dist/dom/dom.js +47 -13
  44. package/dist/experimental/machine/machine.d.ts +29 -6
  45. package/dist/experimental/machine/machine.d.ts.map +1 -1
  46. package/dist/experimental/machine/machine.js +9 -8
  47. package/dist/experimental/server/entry.js +2 -2
  48. package/dist/experimental/server/serialize.js +2 -2
  49. package/dist/experimental/server/server.js +4 -4
  50. package/dist/fieldValidation/fieldValidation.d.ts +12 -12
  51. package/dist/fieldValidation/fieldValidation.d.ts.map +1 -1
  52. package/dist/fieldValidation/fieldValidation.js +9 -9
  53. package/dist/fieldValidation/rule.d.ts +2 -2
  54. package/dist/fieldValidation/rule.d.ts.map +1 -1
  55. package/dist/fieldValidation/rule.js +6 -6
  56. package/dist/file/file.d.ts +3 -3
  57. package/dist/file/file.d.ts.map +1 -1
  58. package/dist/file/file.js +3 -3
  59. package/dist/html/boundary.d.ts +93 -36
  60. package/dist/html/boundary.d.ts.map +1 -1
  61. package/dist/html/boundary.js +242 -75
  62. package/dist/html/childAttribute.d.ts +6 -4
  63. package/dist/html/childAttribute.d.ts.map +1 -1
  64. package/dist/html/childAttribute.js +7 -1
  65. package/dist/html/index.d.ts +31 -16
  66. package/dist/html/index.d.ts.map +1 -1
  67. package/dist/html/index.js +97 -40
  68. package/dist/html/lazy.d.ts +6 -6
  69. package/dist/html/lazy.d.ts.map +1 -1
  70. package/dist/html/lazy.js +37 -15
  71. package/dist/html/public.d.ts +1 -1
  72. package/dist/html/public.d.ts.map +1 -1
  73. package/dist/html/runtimeSingleton.d.ts +27 -6
  74. package/dist/html/runtimeSingleton.d.ts.map +1 -1
  75. package/dist/html/runtimeSingleton.js +46 -29
  76. package/dist/html/submodel.d.ts.map +1 -1
  77. package/dist/html/submodel.js +28 -39
  78. package/dist/http/http.d.ts +1 -1
  79. package/dist/http/http.js +1 -1
  80. package/dist/managedResource/managedResource.d.ts +5 -5
  81. package/dist/managedResource/managedResource.js +3 -3
  82. package/dist/mount/index.d.ts +92 -39
  83. package/dist/mount/index.d.ts.map +1 -1
  84. package/dist/mount/index.js +28 -8
  85. package/dist/mount/public.d.ts +1 -1
  86. package/dist/mount/public.d.ts.map +1 -1
  87. package/dist/mount/public.js +1 -1
  88. package/dist/navigation/urlRequest.d.ts +9 -9
  89. package/dist/navigation/urlRequest.d.ts.map +1 -1
  90. package/dist/navigation/urlRequest.js +2 -2
  91. package/dist/onUnmountModule.d.ts +19 -0
  92. package/dist/onUnmountModule.d.ts.map +1 -0
  93. package/dist/onUnmountModule.js +80 -0
  94. package/dist/port/port.d.ts +5 -5
  95. package/dist/port/port.js +5 -5
  96. package/dist/route/parser.d.ts +2 -2
  97. package/dist/route/parser.js +2 -2
  98. package/dist/runtime/hmrProtocol.d.ts +10 -10
  99. package/dist/runtime/hmrProtocol.d.ts.map +1 -1
  100. package/dist/runtime/hmrProtocol.js +10 -10
  101. package/dist/runtime/runtime.d.ts +4 -4
  102. package/dist/runtime/runtime.d.ts.map +1 -1
  103. package/dist/runtime/runtime.js +168 -51
  104. package/dist/schema/index.d.ts +41 -29
  105. package/dist/schema/index.d.ts.map +1 -1
  106. package/dist/schema/index.js +9 -9
  107. package/dist/snabbdom/init.d.ts +1 -1
  108. package/dist/snabbdom/init.d.ts.map +1 -1
  109. package/dist/snabbdom/init.js +5 -1
  110. package/dist/snabbdom/vnode.d.ts +1 -0
  111. package/dist/snabbdom/vnode.d.ts.map +1 -1
  112. package/dist/snabbdom/vnode.js +1 -0
  113. package/dist/subscription/animationFrame.d.ts +3 -3
  114. package/dist/subscription/animationFrame.d.ts.map +1 -1
  115. package/dist/subscription/animationFrame.js +2 -2
  116. package/dist/subscription/fromEvent.d.ts +2 -2
  117. package/dist/subscription/fromEvent.js +2 -2
  118. package/dist/subscription/subscription.d.ts +3 -3
  119. package/dist/subscription/subscription.js +1 -1
  120. package/dist/test/apps/bubbling.d.ts +6 -6
  121. package/dist/test/apps/bubbling.d.ts.map +1 -1
  122. package/dist/test/apps/bubbling.js +6 -6
  123. package/dist/test/apps/colorPicker.d.ts +7 -7
  124. package/dist/test/apps/colorPicker.d.ts.map +1 -1
  125. package/dist/test/apps/colorPicker.js +5 -5
  126. package/dist/test/apps/contextMenu.d.ts +5 -5
  127. package/dist/test/apps/contextMenu.d.ts.map +1 -1
  128. package/dist/test/apps/contextMenu.js +4 -4
  129. package/dist/test/apps/counter.d.ts +8 -8
  130. package/dist/test/apps/counter.d.ts.map +1 -1
  131. package/dist/test/apps/counter.js +8 -8
  132. package/dist/test/apps/crashOnRender.d.ts +18 -18
  133. package/dist/test/apps/crashOnRender.d.ts.map +1 -1
  134. package/dist/test/apps/crashOnRender.js +11 -11
  135. package/dist/test/apps/drafts.d.ts +9 -9
  136. package/dist/test/apps/drafts.d.ts.map +1 -1
  137. package/dist/test/apps/drafts.js +6 -6
  138. package/dist/test/apps/feedSocket.d.ts +6 -6
  139. package/dist/test/apps/feedSocket.d.ts.map +1 -1
  140. package/dist/test/apps/feedSocket.js +8 -8
  141. package/dist/test/apps/fileUpload.d.ts +2 -2
  142. package/dist/test/apps/fileUpload.d.ts.map +1 -1
  143. package/dist/test/apps/fileUpload.js +2 -2
  144. package/dist/test/apps/focusBoundary.d.ts +3 -3
  145. package/dist/test/apps/focusBoundary.d.ts.map +1 -1
  146. package/dist/test/apps/focusBoundary.js +3 -3
  147. package/dist/test/apps/formChild.d.ts +11 -11
  148. package/dist/test/apps/formChild.d.ts.map +1 -1
  149. package/dist/test/apps/formChild.js +13 -12
  150. package/dist/test/apps/interactions.d.ts +8 -8
  151. package/dist/test/apps/interactions.d.ts.map +1 -1
  152. package/dist/test/apps/interactions.js +8 -8
  153. package/dist/test/apps/keypress.d.ts +6 -6
  154. package/dist/test/apps/keypress.d.ts.map +1 -1
  155. package/dist/test/apps/keypress.js +6 -6
  156. package/dist/test/apps/login.d.ts +11 -11
  157. package/dist/test/apps/login.d.ts.map +1 -1
  158. package/dist/test/apps/login.js +15 -15
  159. package/dist/test/apps/logoutButton.d.ts +3 -3
  160. package/dist/test/apps/logoutButton.d.ts.map +1 -1
  161. package/dist/test/apps/logoutButton.js +2 -2
  162. package/dist/test/apps/mountPanel.d.ts +9 -9
  163. package/dist/test/apps/mountPanel.d.ts.map +1 -1
  164. package/dist/test/apps/mountPanel.js +9 -9
  165. package/dist/test/apps/multiRole.d.ts +3 -3
  166. package/dist/test/apps/multiRole.d.ts.map +1 -1
  167. package/dist/test/apps/multiRole.js +2 -2
  168. package/dist/test/apps/pointer.d.ts +7 -7
  169. package/dist/test/apps/pointer.d.ts.map +1 -1
  170. package/dist/test/apps/pointer.js +7 -7
  171. package/dist/test/apps/resumeUpload.d.ts +8 -8
  172. package/dist/test/apps/resumeUpload.d.ts.map +1 -1
  173. package/dist/test/apps/resumeUpload.js +7 -7
  174. package/dist/test/apps/scorePanel.d.ts +3 -3
  175. package/dist/test/apps/scorePanel.d.ts.map +1 -1
  176. package/dist/test/apps/scorePanel.js +2 -2
  177. package/dist/test/apps/selectiveKeys.d.ts +3 -3
  178. package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
  179. package/dist/test/apps/selectiveKeys.js +3 -3
  180. package/dist/test/apps/uploads.d.ts +18 -18
  181. package/dist/test/apps/uploads.d.ts.map +1 -1
  182. package/dist/test/apps/uploads.js +13 -13
  183. package/dist/test/matchers.d.ts.map +1 -1
  184. package/dist/test/matchers.js +4 -4
  185. package/dist/test/query.d.ts.map +1 -1
  186. package/dist/test/query.js +28 -28
  187. package/dist/test/scene.d.ts +37 -8
  188. package/dist/test/scene.d.ts.map +1 -1
  189. package/dist/test/scene.js +58 -15
  190. package/dist/test/story.d.ts +35 -8
  191. package/dist/test/story.d.ts.map +1 -1
  192. package/dist/test/story.js +44 -22
  193. package/dist/update/update.d.ts +17 -20
  194. package/dist/update/update.d.ts.map +1 -1
  195. package/dist/url/index.d.ts +8 -8
  196. package/dist/url/index.d.ts.map +1 -1
  197. package/dist/url/index.js +19 -19
  198. package/dist/vdom.d.ts +3 -2
  199. package/dist/vdom.d.ts.map +1 -1
  200. package/dist/vdom.js +16 -6
  201. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Array, Context, Effect, Equal, Function, Match as M, Option, Predicate, String as String_, pipe, } from 'effect';
1
+ import { Array, Context, Effect, Equal, Function, Match, Option, Predicate, String, pipe, } from 'effect';
2
2
  import { dual } from 'effect/Function';
3
3
  import { kebabToPascal } from '../customElement/index.js';
4
4
  import { serializedStylePropertyName } from '../domReflection.js';
@@ -233,13 +233,30 @@ const applyMessageWithoutBoundaryChecks = (simulation, message) => {
233
233
  };
234
234
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
235
235
  };
236
- const applyExternalMessages = (simulation, messages, context) => {
236
+ const assertExternalMessageBoundary = (simulation, context) => {
237
237
  const internal = toInternal(simulation);
238
238
  assertNoUnresolvedCommands(internal.commands, context);
239
239
  assertNoUnresolvedMounts(internal.mounts, context);
240
240
  assertNoUnacknowledgedUnmounts(unacknowledgedEndedMountsOf(internal.mountSlots), context);
241
+ };
242
+ const applyExternalMessages = (simulation, messages, context) => {
243
+ assertExternalMessageBoundary(simulation, context);
241
244
  return Array.reduce(messages, simulation, applyMessageWithoutBoundaryChecks);
242
245
  };
246
+ const applySubscriptionMessage = (simulation, message) => {
247
+ const internal = toInternal(simulation);
248
+ const context = 'when a Subscription emitted a new Message';
249
+ assertExternalMessageBoundary(simulation, context);
250
+ const messageUpdate = internal.updateFn(internal.model, message);
251
+ /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
252
+ return {
253
+ ...internal,
254
+ model: messageUpdate.model,
255
+ message,
256
+ commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
257
+ outMessage: messageUpdate.outMessage,
258
+ };
259
+ };
243
260
  /** Clears the pending fall-through, marking it acknowledged. Paired with
244
261
  * {@link assertNoUnacknowledgedIgnored}, which is what it silences. */
245
262
  const withNoUnacknowledgedIgnored = (simulation) =>
@@ -303,7 +320,7 @@ const lookupStringAttribute = (vnode, name) => {
303
320
  return undefined;
304
321
  };
305
322
  const isSubmitButton = (element) => {
306
- const maybeType = pipe(lookupStringAttribute(element, 'type'), Option.fromNullishOr, Option.map(String_.toLowerCase));
323
+ const maybeType = pipe(lookupStringAttribute(element, 'type'), Option.fromNullishOr, Option.map(String.toLowerCase));
307
324
  if (element.sel === 'button') {
308
325
  return Option.match(maybeType, {
309
326
  onNone: () => true,
@@ -551,7 +568,10 @@ const applyExternalMessage = (simulation, message, context) => {
551
568
  * the test exercises the handler wiring this step skips. Like an
552
569
  * interaction, it throws if unresolved Commands, unresolved Mounts, or
553
570
  * unacknowledged unmounts are pending. */
554
- const emitSubscriptionMessage = (message) => (simulation) => applyExternalMessage(simulation, message, 'when a Subscription emitted a new Message');
571
+ const emitSubscriptionMessage = (message) => ({
572
+ _tag: 'SubscriptionMessageStep',
573
+ message,
574
+ });
555
575
  const MANAGED_RESOURCE_CONTEXT = 'when a ManagedResource dispatched a new Message';
556
576
  /** Declares that a ManagedResource's acquire succeeded, feeding the entry's
557
577
  * `onAcquired` Message through update the way the runtime would. The step
@@ -610,7 +630,7 @@ const emitCustomElementEvent = (spec, target, eventName, detail) => (simulation)
610
630
  if (!Object.hasOwn(spec.events, eventName)) {
611
631
  const declared = Object.keys(spec.events).join(', ');
612
632
  throw new Error(`I tried to emit "${eventName}" but the '${spec.tag}' element does not declare it.\n\n` +
613
- `Declared events: ${String_.isEmpty(declared) ? '(none)' : declared}.`);
633
+ `Declared events: ${String.isEmpty(declared) ? '(none)' : declared}.`);
614
634
  }
615
635
  const internal = toInternal(simulation);
616
636
  const scopedTarget = applyScopeToTarget(internal.scope, target);
@@ -712,7 +732,11 @@ export const CustomElement = {
712
732
  };
713
733
  /** Asserts by structural equality that the latest update-producing Scene step
714
734
  * emitted exactly the expected OutMessage. */
715
- export const expectOutMessage = (expected) => (simulation) => {
735
+ export const expectOutMessage = (expected) => ({
736
+ _tag: 'OutMessageStep',
737
+ expected,
738
+ });
739
+ const assertOutMessage = (simulation, expected) => {
716
740
  const internal = toInternal(simulation);
717
741
  const maybeOutMessage = Array.head(internal.outMessages);
718
742
  if (Option.isNone(maybeOutMessage)) {
@@ -724,16 +748,18 @@ export const expectOutMessage = (expected) => (simulation) => {
724
748
  if (!Equal.equals(maybeOutMessage.value, expected)) {
725
749
  throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(maybeOutMessage.value)}`);
726
750
  }
727
- return simulation;
728
751
  };
729
752
  /** Asserts by structural equality that the latest update-producing Scene
730
753
  * step emitted two or more expected OutMessages in runtime order. */
731
- export const expectOutMessages = (...expected) => (simulation) => {
754
+ export const expectOutMessages = (...expected) => ({
755
+ _tag: 'OutMessagesStep',
756
+ expected,
757
+ });
758
+ const assertOutMessages = (simulation, expected) => {
732
759
  const actual = toInternal(simulation).outMessages;
733
760
  if (!Equal.equals(actual, expected)) {
734
761
  throw new Error(`Expected OutMessages:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(actual)}`);
735
762
  }
736
- return simulation;
737
763
  };
738
764
  /** Asserts that the latest update-producing Scene step emitted no OutMessages. */
739
765
  export const expectNoOutMessage = () => (simulation) => {
@@ -772,7 +798,7 @@ export const expectNoOutMessage = () => (simulation) => {
772
798
  * assertion that says so, and it fails until the handler is fixed. Where
773
799
  * falling through is intended, reach for {@link expectIgnored} instead,
774
800
  * which a fall-through requires. */
775
- export const expectHandled = () => (simulation) => M.value(toInternal(simulation).lastInteractionOutcome).pipe(M.withReturnType(), M.tagsExhaustive({
801
+ export const expectHandled = () => (simulation) => Match.value(toInternal(simulation).lastInteractionOutcome).pipe(Match.withReturnType(), Match.tagsExhaustive({
776
802
  NotRun: () => {
777
803
  throw new Error('I was asked whether the last interaction was handled, but no interaction has run yet.\n\n' +
778
804
  'Put `expectHandled()` after a step like `click`, `keydown`, or `change`.');
@@ -800,7 +826,7 @@ export const expectHandled = () => (simulation) => M.value(toInternal(simulation
800
826
  * Carries the same adjacency caveat as {@link expectHandled}: only
801
827
  * interaction steps set the outcome, so keep the assertion next to the
802
828
  * interaction it covers. */
803
- export const expectIgnored = () => (simulation) => M.value(toInternal(simulation).lastInteractionOutcome).pipe(M.withReturnType(), M.tagsExhaustive({
829
+ export const expectIgnored = () => (simulation) => Match.value(toInternal(simulation).lastInteractionOutcome).pipe(Match.withReturnType(), Match.tagsExhaustive({
804
830
  NotRun: () => {
805
831
  throw new Error('I was asked whether the last interaction was ignored, but no interaction has run yet.\n\n' +
806
832
  'Put `expectIgnored()` after a step like `click`, `keydown`, or `change`.');
@@ -815,6 +841,23 @@ export const tap = (f) => (simulation) => {
815
841
  f(simulation);
816
842
  return simulation;
817
843
  };
844
+ const applySceneStep = (simulation, step) => {
845
+ if (Predicate.isTagged(step, 'SubscriptionMessageStep')) {
846
+ return applySubscriptionMessage(simulation, step.message);
847
+ }
848
+ if (Predicate.isTagged(step, 'OutMessageStep')) {
849
+ assertOutMessage(simulation, step.expected);
850
+ return simulation;
851
+ }
852
+ if (Predicate.isTagged(step, 'OutMessagesStep')) {
853
+ assertOutMessages(simulation, step.expected);
854
+ return simulation;
855
+ }
856
+ if (Predicate.isFunction(step)) {
857
+ return step(simulation);
858
+ }
859
+ return simulation;
860
+ };
818
861
  const runSteps = (seed, steps) =>
819
862
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
820
863
  Array.reduce(steps, seed, (current, step) => {
@@ -824,7 +867,7 @@ Array.reduce(steps, seed, (current, step) => {
824
867
  ...currentInternal,
825
868
  updateFn: outMessageCapture.updateFn,
826
869
  };
827
- const stepResult = step(capturingSimulation);
870
+ const stepResult = applySceneStep(capturingSimulation, step);
828
871
  const restoredSimulation = {
829
872
  ...toInternal(stepResult),
830
873
  updateFn: currentInternal.updateFn,
@@ -1243,7 +1286,7 @@ const assertHasStyle = (name, value) => assertOnElement(vnode => {
1243
1286
  return Option.match(maybeActualValue, {
1244
1287
  onNone: () => ({ pass: false, actual: 'it is not present' }),
1245
1288
  onSome: actualValue => ({
1246
- pass: String(actualValue) === value,
1289
+ pass: globalThis.String(actualValue) === value,
1247
1290
  actual: `received "${actualValue}"`,
1248
1291
  }),
1249
1292
  });
@@ -1317,8 +1360,8 @@ const assertIsEmpty = assertOnElement(vnode => {
1317
1360
  const childCount = (vnode.children ?? []).length;
1318
1361
  const text = textContent(vnode);
1319
1362
  return {
1320
- pass: String_.isEmpty(text) && childCount === 0,
1321
- actual: String_.isNonEmpty(text)
1363
+ pass: String.isEmpty(text) && childCount === 0,
1364
+ actual: String.isNonEmpty(text)
1322
1365
  ? `received text "${text}"`
1323
1366
  : `received ${childCount} child(ren)`,
1324
1367
  };
@@ -17,14 +17,38 @@ export type ModelStep<Model> = Readonly<{
17
17
  readonly _tag: 'ModelStep';
18
18
  readonly assert: (model: Model) => void;
19
19
  }>;
20
- /** A single step in a story: a {@link GivenStep}, a {@link ModelStep},
21
- * or a simulation transform. */
22
- export type StoryStep<Model> = GivenStep<NoInfer<Model>> | ModelStep<NoInfer<Model>> | ((sim: StorySimulation<any, any, any>) => StorySimulation<any, any, any>);
20
+ /** A typed Message-dispatch step produced by {@link message}. */
21
+ export type MessageStep<Message> = Readonly<{
22
+ _tag: 'MessageStep';
23
+ message: Message;
24
+ }>;
25
+ /** A typed OutMessage assertion step produced by {@link expectOutMessage}. */
26
+ export type OutMessageStep<OutMessage> = Readonly<{
27
+ _tag: 'OutMessageStep';
28
+ expected: OutMessage;
29
+ }>;
30
+ /** A grouped sequence of Story steps produced by {@link steps}. */
31
+ export type StoryStepsStep<GivenModel, ModelAssertion, Message, OutMessage> = Readonly<{
32
+ _tag: 'StoryStepsStep';
33
+ /** @internal Carries the produced Model type through a reusable step group. */
34
+ _phantomGivenModel?: GivenModel;
35
+ /** @internal Carries Model assertion types through a reusable step group. */
36
+ _phantomModelAssertion?: ModelAssertion;
37
+ /** @internal Carries the Message type through a reusable step group. */
38
+ _phantomMessage?: Message;
39
+ /** @internal Carries the OutMessage type through a reusable step group. */
40
+ _phantomOutMessage?: OutMessage;
41
+ steps: ReadonlyArray<StoryStep<any, any, any>>;
42
+ }>;
43
+ /** A single step in a story: a {@link GivenStep}, {@link ModelStep},
44
+ * {@link MessageStep}, {@link OutMessageStep}, {@link StoryStepsStep}, or
45
+ * simulation transform. */
46
+ export type StoryStep<Model, Message = unknown, OutMessage = unknown> = GivenStep<NoInfer<Model>> | ModelStep<NoInfer<Model>> | MessageStep<NoInfer<Message>> | OutMessageStep<NoInfer<OutMessage>> | StoryStepsStep<NoInfer<Model>, (model: NoInfer<Model>) => void, NoInfer<Message>, NoInfer<OutMessage>> | ((simulation: StorySimulation<any, any, any>) => StorySimulation<any, any, any>);
23
47
  /** Sets the initial Model for a test story. */
24
48
  export declare const given: <Model>(model: Model) => GivenStep<Model>;
25
49
  /** Sends a Message through update. Commands stay pending until resolve or
26
50
  * resolveAll. */
27
- export declare const message: <MessageInput>(message_: MessageInput) => <Model, Message, OutMessage>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
51
+ export declare const message: <Message>(message_: Message) => MessageStep<Message>;
28
52
  /** Resolves listed Commands with their result Messages, cascading through any
29
53
  * Commands the result produces. Each entry is consumed by exactly one
30
54
  * matching dispatch in declaration order, so
@@ -42,6 +66,9 @@ declare const resolveAllCommands: <Matchers extends ReadonlyArray<ResolvableComm
42
66
  declare const resolveAllExactCommands: <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>;
43
67
  /** Runs an assertion function against the current Model. */
44
68
  export declare const model: <Model>(f: (model: Model) => void) => ModelStep<Model>;
69
+ /** Groups Story steps so a reusable setup can remain type-safe without
70
+ * erasing its Message or OutMessage types through function composition. */
71
+ export declare const steps: <Steps extends ReadonlyArray<StoryStep<any, any, any>>>(...storySteps: Steps) => StoryStepsStep<Steps[number] extends infer Step ? Step extends GivenStep<infer Model> ? Model : Step extends StoryStepsStep<infer Model, any, any, any> ? Model : never : never, Steps[number] extends infer Step ? Step extends ModelStep<infer Model> ? (model: Model) => void : Step extends StoryStepsStep<any, infer ModelAssertion, any, any> ? ModelAssertion : never : never, Steps[number] extends infer Step ? Step extends MessageStep<infer Message> ? Message : Step extends StoryStepsStep<any, any, infer Message, any> ? Message : never : never, Steps[number] extends infer Step ? Step extends OutMessageStep<infer OutMessage> ? OutMessage : Step extends StoryStepsStep<any, any, any, infer OutMessage> ? OutMessage : never : never>;
45
72
  /** Asserts that every given matcher matches a pending Command. Definition
46
73
  * matchers match by name only; Instance matchers match by name + args. */
47
74
  declare const expectHasCommandsStep: (...matchers: ReadonlyArray<CommandMatcher>) => <Model, Message, OutMessage = undefined>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
@@ -79,20 +106,20 @@ export declare const Command: {
79
106
  };
80
107
  /** Asserts by structural equality that update emitted the expected OutMessage,
81
108
  * so callers can pass a freshly constructed expected value. */
82
- export declare const expectOutMessage: <Expected>(expected: Expected) => <Model, Message, OutMessage>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
109
+ export declare const expectOutMessage: <OutMessage>(expected: OutMessage) => OutMessageStep<OutMessage>;
83
110
  /** Asserts that update emitted no OutMessage. */
84
111
  export declare const expectNoOutMessage: () => <Model, Message, OutMessage>(simulation: StorySimulation<Model, Message, OutMessage>) => StorySimulation<Model, Message, OutMessage>;
85
112
  /** Executes a test story. Throws if any Commands remain unresolved. */
86
113
  export declare const story: {
87
- <Model, Message, OutMessage>(updateFn: (model: Model, message: Message) => Readonly<{
114
+ <Model, Message, OutMessage = never>(updateFn: (model: Model, message: Message) => Readonly<{
88
115
  model: Model;
89
116
  commands?: ReadonlyArray<AnyCommand>;
90
117
  outMessage?: OutMessage;
91
- }>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>>>): void;
118
+ }>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>, NoInfer<Message>, NoInfer<OutMessage>>>): void;
92
119
  <Model, Message>(updateFn: (model: Model, message: Message) => Readonly<{
93
120
  model: Model;
94
121
  commands?: ReadonlyArray<AnyCommand>;
95
122
  outMessage?: never;
96
- }>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>>>): void;
123
+ }>, ...steps: ReadonlyArray<StoryStep<NoInfer<Model>, NoInfer<Message>, undefined>>): void;
97
124
  };
98
125
  //# sourceMappingURL=story.d.ts.map
@@ -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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"}
@@ -17,23 +17,25 @@ export const given = (model) => {
17
17
  });
18
18
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
19
19
  };
20
- /** Sends a Message through update. Commands stay pending until resolve or
21
- * resolveAll. */
22
- export const message = (message_) => (simulation) => {
20
+ const applyMessage = (simulation, message_) => {
23
21
  const internal = toInternal(simulation);
24
22
  assertNoUnresolvedCommands(internal.commands, 'when you sent a new Message');
25
- /* eslint-disable @typescript-eslint/consistent-type-assertions */
26
- const messageAsParent = message_;
27
- const messageUpdate = internal.updateFn(internal.model, messageAsParent);
23
+ const messageUpdate = internal.updateFn(internal.model, message_);
24
+ /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
28
25
  return {
29
26
  ...internal,
30
27
  model: messageUpdate.model,
31
- message: messageAsParent,
28
+ message: message_,
32
29
  commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
33
30
  outMessage: messageUpdate.outMessage,
34
31
  };
35
- /* eslint-enable @typescript-eslint/consistent-type-assertions */
36
32
  };
33
+ /** Sends a Message through update. Commands stay pending until resolve or
34
+ * resolveAll. */
35
+ export const message = (message_) => ({
36
+ _tag: 'MessageStep',
37
+ message: message_,
38
+ });
37
39
  /** Resolves a pending Command with the given result Message. Accepts either
38
40
  * a Command Definition (matches by name; any pending Command of that name)
39
41
  * or a Command instance (matches by name AND args; strict). */
@@ -74,6 +76,12 @@ export const model = (f) => ({
74
76
  _tag: 'ModelStep',
75
77
  assert: f,
76
78
  });
79
+ /** Groups Story steps so a reusable setup can remain type-safe without
80
+ * erasing its Message or OutMessage types through function composition. */
81
+ export const steps = (...storySteps) => ({
82
+ _tag: 'StoryStepsStep',
83
+ steps: storySteps,
84
+ });
77
85
  /** Asserts that every given matcher matches a pending Command. Definition
78
86
  * matchers match by name only; Instance matchers match by name + args. */
79
87
  const expectHasCommandsStep = (...matchers) => (simulation) => {
@@ -115,16 +123,19 @@ export const Command = {
115
123
  /** Asserts that there are no pending Commands. */
116
124
  expectNone: expectNoCommandsStep,
117
125
  };
118
- /** Asserts by structural equality that update emitted the expected OutMessage,
119
- * so callers can pass a freshly constructed expected value. */
120
- export const expectOutMessage = (expected) => (simulation) => {
126
+ const assertOutMessage = (simulation, expected) => {
121
127
  const internal = toInternal(simulation);
122
128
  const outMessage = internal.outMessage;
123
129
  if (outMessage === undefined || !Equal.equals(outMessage, expected)) {
124
130
  throw new Error(`Expected OutMessage:\n\n ${JSON.stringify(expected)}\n\nBut got:\n\n ${JSON.stringify(outMessage)}`);
125
131
  }
126
- return simulation;
127
132
  };
133
+ /** Asserts by structural equality that update emitted the expected OutMessage,
134
+ * so callers can pass a freshly constructed expected value. */
135
+ export const expectOutMessage = (expected) => ({
136
+ _tag: 'OutMessageStep',
137
+ expected,
138
+ });
128
139
  /** Asserts that update emitted no OutMessage. */
129
140
  export const expectNoOutMessage = () => (simulation) => {
130
141
  const internal = toInternal(simulation);
@@ -135,6 +146,26 @@ export const expectNoOutMessage = () => (simulation) => {
135
146
  return simulation;
136
147
  };
137
148
  // STORY
149
+ const applyStoryStep = (current, step) => {
150
+ if (Predicate.isTagged(step, 'ModelStep')) {
151
+ step.assert(toInternal(current).model);
152
+ return current;
153
+ }
154
+ if (Predicate.isTagged(step, 'MessageStep')) {
155
+ return applyMessage(current, step.message);
156
+ }
157
+ if (Predicate.isTagged(step, 'OutMessageStep')) {
158
+ assertOutMessage(current, step.expected);
159
+ return current;
160
+ }
161
+ if (Predicate.isTagged(step, 'StoryStepsStep')) {
162
+ return Array.reduce(step.steps, current, applyStoryStep);
163
+ }
164
+ if (Predicate.isFunction(step)) {
165
+ return step(current);
166
+ }
167
+ return current;
168
+ };
138
169
  /** Executes a test story. Throws if any Commands remain unresolved. */
139
170
  export const story = (updateFn, ...steps) => {
140
171
  /* eslint-disable @typescript-eslint/consistent-type-assertions */
@@ -146,16 +177,7 @@ export const story = (updateFn, ...steps) => {
146
177
  updateFn,
147
178
  resolvers: [],
148
179
  };
149
- const result = steps.reduce((current, step) => {
150
- if (typeof step === 'function') {
151
- return step(current);
152
- }
153
- if ('_tag' in step && step._tag === 'ModelStep') {
154
- step.assert(toInternal(current).model);
155
- return current;
156
- }
157
- return current;
158
- }, seed);
180
+ const result = Array.reduce(steps, seed, applyStoryStep);
159
181
  /* eslint-enable @typescript-eslint/consistent-type-assertions */
160
182
  const internal = toInternal(result);
161
183
  assertAllCommandsResolved(internal.commands);
@@ -176,29 +176,26 @@ export type ChildFold<ParentModel, ParentMessage, ChildModel, Input, ChildMessag
176
176
  * no second copy of the wrapper, and the mapping stays recorded on the
177
177
  * Command for `Story.Command.resolve` and `Scene.Command.resolve`.
178
178
  *
179
- * The annotated standalone const takes both parameters, so match the
180
- * OutMessage value directly:
179
+ * The annotated standalone const takes both parameters, so pass the
180
+ * OutMessage value to its union matcher:
181
181
  *
182
182
  * ```ts
183
183
  * const foldLoginOutMessage = (
184
184
  * outMessage: Login.OutMessage,
185
185
  * { liftCommand }: Update.FoldContext<Login.Message, Message>,
186
186
  * ) =>
187
- * M.value(outMessage).pipe(
188
- * M.withReturnType<Update.Step<Model, Message>>(),
189
- * M.tagsExhaustive({
190
- * RequestedMagicLink:
191
- * ({ email }) =>
192
- * model => ({
193
- * model,
194
- * commands: [
195
- * liftCommand(
196
- * Login.SendMagicLink({ email, redirectRoute: model.route }),
197
- * ),
198
- * ],
199
- * }),
200
- * }),
201
- * )
187
+ * Login.OutMessage.match<Update.Step<Model, Message>>(outMessage, {
188
+ * RequestedMagicLink:
189
+ * ({ email }) =>
190
+ * model => ({
191
+ * model,
192
+ * commands: [
193
+ * liftCommand(
194
+ * Login.SendMagicLink({ email, redirectRoute: model.route }),
195
+ * ),
196
+ * ],
197
+ * }),
198
+ * })
202
199
  * ``` */
203
200
  export type FoldContext<ChildMessage, ParentMessage> = Readonly<{
204
201
  liftCommand: <E = never, R = never>(command: Command<ChildMessage, E, R>) => Command<ParentMessage, E, R>;
@@ -210,9 +207,9 @@ export type FoldContext<ChildMessage, ParentMessage> = Readonly<{
210
207
  * - `foldOutMessage`: folds the child's OutMessage into the parent as a
211
208
  * {@link Step}. The Step receives the parent Model with the child
212
209
  * already written back, and its Commands follow the child's in the
213
- * returned batch. Match on the OutMessage tag inside
214
- * (`M.tagsExhaustive`), and build a multi-step fold with
215
- * {@link combine}. Takes an optional second parameter, a
210
+ * returned batch. Match on the OutMessage tag through its union matcher,
211
+ * and build a multi-step fold with {@link combine}. Takes an optional
212
+ * second parameter, a
216
213
  * {@link FoldContext} of lifters bound to `toParentMessage`, for a
217
214
  * Command the Step returns whose result is the child's Message. Parent Model
218
215
  * inference comes from `read` and `write`; the child wrapper and OutMessage
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update/update.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { Option, Schema as S } from 'effect';
1
+ import { Option, Schema } from 'effect';
2
2
  /** Schema representing a parsed URL with protocol, host, port, pathname, search, and hash fields. */
3
- export declare const Url: S.Struct<{
4
- readonly protocol: S.String;
5
- readonly host: S.String;
6
- readonly port: S.Option<S.String>;
7
- readonly pathname: S.String;
8
- readonly search: S.Option<S.String>;
9
- readonly hash: S.Option<S.String>;
3
+ export declare const Url: Schema.Struct<{
4
+ readonly protocol: Schema.String;
5
+ readonly host: Schema.String;
6
+ readonly port: Schema.Option<Schema.String>;
7
+ readonly pathname: Schema.String;
8
+ readonly search: Schema.Option<Schema.String>;
9
+ readonly hash: Schema.Option<Schema.String>;
10
10
  }>;
11
11
  export type Url = typeof Url.Type;
12
12
  /** Parses a URL string into a `Url`, returning `Option.None` if invalid. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,IAAI,CAAC,EAIZ,MAAM,QAAQ,CAAA;AAIf,qGAAqG;AACrG,eAAO,MAAM,GAAG;;;;;;;EAOd,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAwFjC,4EAA4E;AAC5E,eAAO,MAAM,UAAU,QAAS,MAAM;;;;;;;EAAuC,CAAA;AAC7E,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,QAAS,GAAG,WAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,EAIP,MAAM,QAAQ,CAAA;AAIf,qGAAqG;AACrG,eAAO,MAAM,GAAG;;;;;;;EAOd,CAAA;AACF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,CAAA;AAwFjC,4EAA4E;AAC5E,eAAO,MAAM,UAAU,QAAS,MAAM;;;;;;;EACG,CAAA;AACzC,2CAA2C;AAC3C,eAAO,MAAM,QAAQ,QAAS,GAAG,WAA0C,CAAA"}
package/dist/url/index.js CHANGED
@@ -1,23 +1,23 @@
1
- import { Effect, Option, Schema as S, SchemaIssue, SchemaTransformation, String, } from 'effect';
1
+ import { Effect, Option, Schema, SchemaIssue, SchemaTransformation, String, } from 'effect';
2
2
  import { OptionExt } from '../effectExtensions/index.js';
3
3
  /** Schema representing a parsed URL with protocol, host, port, pathname, search, and hash fields. */
4
- export const Url = S.Struct({
5
- protocol: S.String,
6
- host: S.String,
7
- port: S.Option(S.String),
8
- pathname: S.String,
9
- search: S.Option(S.String),
10
- hash: S.Option(S.String),
4
+ export const Url = Schema.Struct({
5
+ protocol: Schema.String,
6
+ host: Schema.String,
7
+ port: Schema.Option(Schema.String),
8
+ pathname: Schema.String,
9
+ search: Schema.Option(Schema.String),
10
+ hash: Schema.Option(Schema.String),
11
11
  });
12
- const LocationAndHref = S.Struct({
13
- href: S.String,
14
- location: S.Struct({
15
- protocol: S.String,
16
- host: S.String,
17
- port: S.String,
12
+ const LocationAndHref = Schema.Struct({
13
+ href: Schema.String,
14
+ location: Schema.Struct({
15
+ protocol: Schema.String,
16
+ host: Schema.String,
17
+ port: Schema.String,
18
18
  }),
19
19
  });
20
- const LocationAndHrefFromString = S.String.pipe(S.decodeTo(LocationAndHref, SchemaTransformation.transformOrFail({
20
+ const LocationAndHrefFromString = Schema.String.pipe(Schema.decodeTo(LocationAndHref, SchemaTransformation.transformOrFail({
21
21
  decode: urlString => Effect.try({
22
22
  try: () => {
23
23
  const url = new URL(urlString);
@@ -39,7 +39,7 @@ const LocationAndHrefFromString = S.String.pipe(S.decodeTo(LocationAndHref, Sche
39
39
  return Effect.succeed(`${location.protocol}//${location.host}${portString}${href}`);
40
40
  },
41
41
  })));
42
- const UrlFromLocationAndHref = LocationAndHref.pipe(S.decodeTo(Url, SchemaTransformation.transform({
42
+ const UrlFromLocationAndHref = LocationAndHref.pipe(Schema.decodeTo(Url, SchemaTransformation.transform({
43
43
  decode: ({ href, location }) => {
44
44
  const [pathAndQuery, hashPart] = String.split(href, '#');
45
45
  const [pathname, searchPart] = String.split(pathAndQuery, '?');
@@ -72,8 +72,8 @@ const UrlFromLocationAndHref = LocationAndHref.pipe(S.decodeTo(Url, SchemaTransf
72
72
  };
73
73
  },
74
74
  })));
75
- const UrlFromString = LocationAndHrefFromString.pipe(S.decodeTo(UrlFromLocationAndHref));
75
+ const UrlFromString = LocationAndHrefFromString.pipe(Schema.decodeTo(UrlFromLocationAndHref));
76
76
  /** Parses a URL string into a `Url`, returning `Option.None` if invalid. */
77
- export const fromString = (str) => S.decodeOption(UrlFromString)(str);
77
+ export const fromString = (str) => Schema.decodeOption(UrlFromString)(str);
78
78
  /** Serializes a `Url` back to a string. */
79
- export const toString = (url) => S.encodeSync(UrlFromString)(url);
79
+ export const toString = (url) => Schema.encodeSync(UrlFromString)(url);
package/dist/vdom.d.ts CHANGED
@@ -2,7 +2,7 @@ import { Option } from 'effect';
2
2
  import { type VNode, toVNode } from './snabbdom/index.js';
3
3
  export type { VNode } from './snabbdom/index.js';
4
4
  export { toVNode };
5
- export declare const patch: (oldVnode: VNode | Element | DocumentFragment, vnode: VNode) => VNode;
5
+ export declare const patch: (oldVnode: VNode | Element | DocumentFragment, vnode: VNode, onRootPatched?: (vnode: VNode) => void) => VNode;
6
6
  export declare const memoizedVNodes: WeakSet<VNode>;
7
7
  /** Clones any reused vnode in the tree so snabbdom never sees one object at two
8
8
  * positions. Memoized subtrees (createLazy/createKeyedLazy results) are left
@@ -17,5 +17,6 @@ export declare const dedupeSharedVNodes: (root: VNode, seen?: Set<object>) => VN
17
17
  * the top-level pass still exempts it by membership rather than treating it as
18
18
  * a duplicate. */
19
19
  export declare const dedupeMemoizedResult: (root: VNode, seen?: Set<object>) => VNode;
20
- export declare const __patchVNode: (maybeCurrentVNode: Option.Option<VNode>, nextVNode: VNode | null, container: HTMLElement, seen?: Set<object>) => VNode;
20
+ export declare const __patchVNode: (maybeCurrentVNode: Option.Option<VNode>, nextVNode: VNode | null, container: HTMLElement, seen?: Set<object>, onRootPatched?: (vnode: VNode) => void) => VNode;
21
+ export declare const __recoverVNodeAfterPatchFailure: (currentVNode: VNode) => VNode;
21
22
  //# sourceMappingURL=vdom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,EACL,KAAK,KAAK,EAQV,OAAO,EACR,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,CAAA;AASlB,eAAO,MAAM,KAAK,uEAOhB,CAAA;AAsBF,eAAO,MAAM,cAAc,gBAAuB,CAAA;AA2ClD;;;;mBAImB;AACnB,eAAO,MAAM,kBAAkB,SACvB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAA0B,CAAA;AAE7B;;;;;mBAKmB;AACnB,eAAO,MAAM,oBAAoB,SACzB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAMF,CAAA;AAoBD,eAAO,MAAM,YAAY,sBACJ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAC5B,KAAK,GAAG,IAAI,aACZ,WAAW,SACf,GAAG,CAAC,MAAM,CAAC,KACjB,KASF,CAAA"}
1
+ {"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,OAAO,EACL,KAAK,KAAK,EAQV,OAAO,EACR,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,CAAA;AASlB,eAAO,MAAM,KAAK,+GAQhB,CAAA;AAsBF,eAAO,MAAM,cAAc,gBAAuB,CAAA;AA2ClD;;;;mBAImB;AACnB,eAAO,MAAM,kBAAkB,SACvB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAA0B,CAAA;AAE7B;;;;;mBAKmB;AACnB,eAAO,MAAM,oBAAoB,SACzB,KAAK,SACL,GAAG,CAAC,MAAM,CAAC,KAChB,KAMF,CAAA;AAwBD,eAAO,MAAM,YAAY,sBACJ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAC5B,KAAK,GAAG,IAAI,aACZ,WAAW,SACf,GAAG,CAAC,MAAM,CAAC,kBACF,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KACrC,KASF,CAAA;AAED,eAAO,MAAM,+BAA+B,iBAAkB,KAAK,KAAG,KAOrE,CAAA"}