@sectile/core 0.7.0 → 0.9.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 (262) hide show
  1. package/dist/accordion.d.ts +0 -1
  2. package/dist/adapter-runtime.d.ts +53 -2
  3. package/dist/adapter-runtime.js +224 -25
  4. package/dist/adapter-runtime.js.map +1 -1
  5. package/dist/alert-dialog.d.ts +0 -1
  6. package/dist/carousel.d.ts +0 -1
  7. package/dist/cascade-list.d.ts +16 -0
  8. package/dist/cascade-list.js +33 -0
  9. package/dist/cascade-list.js.map +1 -0
  10. package/dist/cascade-select.d.ts +0 -1
  11. package/dist/cascade-select.js +47 -119
  12. package/dist/cascade-select.js.map +1 -1
  13. package/dist/checkbox-group.d.ts +0 -1
  14. package/dist/checkbox.d.ts +0 -1
  15. package/dist/collection-window.d.ts +0 -1
  16. package/dist/color-picker.d.ts +3 -8
  17. package/dist/color-picker.js +60 -305
  18. package/dist/color-picker.js.map +1 -1
  19. package/dist/combobox.d.ts +0 -1
  20. package/dist/dialog.d.ts +0 -1
  21. package/dist/disclosure.d.ts +0 -1
  22. package/dist/drawer.d.ts +0 -1
  23. package/dist/editable.d.ts +0 -1
  24. package/dist/editing/color-text.d.ts +7 -0
  25. package/dist/editing/color-text.js +199 -0
  26. package/dist/editing/color-text.js.map +1 -0
  27. package/dist/error-code.d.ts +1 -2
  28. package/dist/feed.d.ts +0 -1
  29. package/dist/grid-control.d.ts +3 -0
  30. package/dist/grid-control.js +2 -0
  31. package/dist/grid-control.js.map +1 -0
  32. package/dist/identity.d.ts +10 -0
  33. package/dist/identity.js +16 -0
  34. package/dist/identity.js.map +1 -0
  35. package/dist/index.d.ts +2 -2
  36. package/dist/interaction.d.ts +0 -1
  37. package/dist/internal/composites/cascade-choice.d.ts +54 -0
  38. package/dist/internal/composites/cascade-choice.js +154 -0
  39. package/dist/internal/composites/cascade-choice.js.map +1 -0
  40. package/dist/internal/composites/combobox.d.ts +0 -1
  41. package/dist/internal/composites/combobox.js +28 -11
  42. package/dist/internal/composites/combobox.js.map +1 -1
  43. package/dist/internal/composites/grid-control.d.ts +0 -1
  44. package/dist/internal/composites/grid-control.js +18 -23
  45. package/dist/internal/composites/grid-control.js.map +1 -1
  46. package/dist/internal/composites/linear-action.d.ts +0 -1
  47. package/dist/internal/composites/linear-action.js +20 -14
  48. package/dist/internal/composites/linear-action.js.map +1 -1
  49. package/dist/internal/composites/linear-choice.d.ts +0 -1
  50. package/dist/internal/composites/linear-choice.js +15 -8
  51. package/dist/internal/composites/linear-choice.js.map +1 -1
  52. package/dist/internal/composites/listbox.d.ts +0 -1
  53. package/dist/internal/composites/listbox.js +15 -13
  54. package/dist/internal/composites/listbox.js.map +1 -1
  55. package/dist/internal/composites/menu.d.ts +0 -1
  56. package/dist/internal/composites/menu.js +38 -17
  57. package/dist/internal/composites/menu.js.map +1 -1
  58. package/dist/internal/composites/popup.d.ts +0 -1
  59. package/dist/internal/composites/slider.d.ts +0 -1
  60. package/dist/internal/composites/tree-grid.d.ts +0 -1
  61. package/dist/internal/composites/tree-grid.js +70 -48
  62. package/dist/internal/composites/tree-grid.js.map +1 -1
  63. package/dist/internal/composites/tree-view.d.ts +0 -1
  64. package/dist/internal/composites/tree-view.js +32 -20
  65. package/dist/internal/composites/tree-view.js.map +1 -1
  66. package/dist/internal/editing/text.d.ts +0 -1
  67. package/dist/internal/editing/text.js +40 -27
  68. package/dist/internal/editing/text.js.map +1 -1
  69. package/dist/internal/kernel/bounded-scalar.d.ts +31 -0
  70. package/dist/internal/kernel/bounded-scalar.js +78 -0
  71. package/dist/internal/kernel/bounded-scalar.js.map +1 -0
  72. package/dist/internal/kernel/decimal.d.ts +0 -1
  73. package/dist/internal/kernel/exact-ratio.d.ts +5 -0
  74. package/dist/internal/kernel/exact-ratio.js +2 -0
  75. package/dist/internal/kernel/exact-ratio.js.map +1 -0
  76. package/dist/internal/kernel/foundation.d.ts +8 -6
  77. package/dist/internal/kernel/foundation.js +35 -16
  78. package/dist/internal/kernel/foundation.js.map +1 -1
  79. package/dist/internal/kernel/indexed-sequence.d.ts +28 -3
  80. package/dist/internal/kernel/indexed-sequence.js +162 -12
  81. package/dist/internal/kernel/indexed-sequence.js.map +1 -1
  82. package/dist/internal/kernel/machine.d.ts +1 -2
  83. package/dist/internal/kernel/machine.js +5 -2
  84. package/dist/internal/kernel/machine.js.map +1 -1
  85. package/dist/internal/runtime/revision.d.ts +0 -1
  86. package/dist/internal/state/checked.d.ts +0 -1
  87. package/dist/internal/state/cursor.d.ts +0 -1
  88. package/dist/internal/state/expansion.d.ts +0 -1
  89. package/dist/internal/state/open-state.d.ts +0 -1
  90. package/dist/internal/state/selection.d.ts +0 -1
  91. package/dist/internal/state/selection.js +99 -27
  92. package/dist/internal/state/selection.js.map +1 -1
  93. package/dist/layer-stack.d.ts +0 -1
  94. package/dist/listbox.d.ts +0 -1
  95. package/dist/menu-button.d.ts +0 -1
  96. package/dist/menu.d.ts +0 -1
  97. package/dist/menubar.d.ts +0 -1
  98. package/dist/meter-group.d.ts +38 -0
  99. package/dist/meter-group.js +103 -0
  100. package/dist/meter-group.js.map +1 -0
  101. package/dist/meter.d.ts +25 -0
  102. package/dist/meter.js +89 -0
  103. package/dist/meter.js.map +1 -0
  104. package/dist/multi-thumb-slider.d.ts +0 -1
  105. package/dist/navigation-menu.d.ts +0 -1
  106. package/dist/number-field.d.ts +0 -1
  107. package/dist/pagination.d.ts +0 -1
  108. package/dist/pin-input.d.ts +0 -1
  109. package/dist/popover.d.ts +0 -1
  110. package/dist/progress.d.ts +17 -0
  111. package/dist/progress.js +49 -0
  112. package/dist/progress.js.map +1 -0
  113. package/dist/quantity-field.d.ts +0 -1
  114. package/dist/radio-group.d.ts +0 -1
  115. package/dist/rating.d.ts +0 -1
  116. package/dist/reorder.d.ts +0 -1
  117. package/dist/reorder.js +92 -43
  118. package/dist/reorder.js.map +1 -1
  119. package/dist/result.d.ts +2 -1
  120. package/dist/result.js +14 -0
  121. package/dist/result.js.map +1 -1
  122. package/dist/revision.d.ts +1 -1
  123. package/dist/revision.js +1 -0
  124. package/dist/revision.js.map +1 -1
  125. package/dist/select.d.ts +0 -1
  126. package/dist/selection.d.ts +24 -0
  127. package/dist/selection.js +20 -0
  128. package/dist/selection.js.map +1 -0
  129. package/dist/shared.d.ts +0 -1
  130. package/dist/slider.d.ts +0 -1
  131. package/dist/spin-button.d.ts +0 -1
  132. package/dist/stepper.d.ts +0 -1
  133. package/dist/structures/anchored-layout.d.ts +33 -0
  134. package/dist/structures/anchored-layout.js +162 -0
  135. package/dist/structures/anchored-layout.js.map +1 -0
  136. package/dist/structures/color.d.ts +80 -0
  137. package/dist/structures/color.js +206 -0
  138. package/dist/structures/color.js.map +1 -0
  139. package/dist/structures/geometry.d.ts +53 -0
  140. package/dist/structures/geometry.js +165 -0
  141. package/dist/structures/geometry.js.map +1 -0
  142. package/dist/structures/grid.d.ts +20 -4
  143. package/dist/structures/grid.js +91 -50
  144. package/dist/structures/grid.js.map +1 -1
  145. package/dist/structures/index-span.d.ts +31 -0
  146. package/dist/structures/index-span.js +267 -0
  147. package/dist/structures/index-span.js.map +1 -0
  148. package/dist/structures/metric-index.d.ts +36 -0
  149. package/dist/structures/metric-index.js +390 -0
  150. package/dist/structures/metric-index.js.map +1 -0
  151. package/dist/structures/range.d.ts +21 -4
  152. package/dist/structures/range.js +156 -11
  153. package/dist/structures/range.js.map +1 -1
  154. package/dist/structures/selection-expression.d.ts +26 -0
  155. package/dist/structures/selection-expression.js +157 -0
  156. package/dist/structures/selection-expression.js.map +1 -0
  157. package/dist/structures/sequence.d.ts +0 -1
  158. package/dist/structures/sequence.js +69 -7
  159. package/dist/structures/sequence.js.map +1 -1
  160. package/dist/structures/tree.d.ts +5 -1
  161. package/dist/structures/tree.js +33 -5
  162. package/dist/structures/tree.js.map +1 -1
  163. package/dist/switch.d.ts +0 -1
  164. package/dist/tabs.d.ts +0 -1
  165. package/dist/tags-input.d.ts +0 -1
  166. package/dist/text.d.ts +0 -1
  167. package/dist/timer.d.ts +0 -1
  168. package/dist/toast.d.ts +2 -2
  169. package/dist/toast.js +3 -1
  170. package/dist/toast.js.map +1 -1
  171. package/dist/toggle-button.d.ts +0 -1
  172. package/dist/toggle-group.d.ts +0 -1
  173. package/dist/toolbar.d.ts +0 -1
  174. package/dist/tooltip.d.ts +0 -1
  175. package/dist/tree-grid.d.ts +0 -1
  176. package/dist/tree-view.d.ts +0 -1
  177. package/dist/units.d.ts +0 -1
  178. package/dist/window-splitter.d.ts +0 -1
  179. package/package.json +75 -12
  180. package/dist/accordion.d.ts.map +0 -1
  181. package/dist/adapter-runtime.d.ts.map +0 -1
  182. package/dist/alert-dialog.d.ts.map +0 -1
  183. package/dist/carousel.d.ts.map +0 -1
  184. package/dist/cascade-select.d.ts.map +0 -1
  185. package/dist/checkbox-group.d.ts.map +0 -1
  186. package/dist/checkbox.d.ts.map +0 -1
  187. package/dist/collection-window.d.ts.map +0 -1
  188. package/dist/color-picker.d.ts.map +0 -1
  189. package/dist/combobox.d.ts.map +0 -1
  190. package/dist/dialog.d.ts.map +0 -1
  191. package/dist/disclosure.d.ts.map +0 -1
  192. package/dist/drawer.d.ts.map +0 -1
  193. package/dist/editable.d.ts.map +0 -1
  194. package/dist/error-code.d.ts.map +0 -1
  195. package/dist/feed.d.ts.map +0 -1
  196. package/dist/form.d.ts +0 -135
  197. package/dist/form.d.ts.map +0 -1
  198. package/dist/form.js +0 -627
  199. package/dist/form.js.map +0 -1
  200. package/dist/index.d.ts.map +0 -1
  201. package/dist/interaction.d.ts.map +0 -1
  202. package/dist/internal/composites/combobox.d.ts.map +0 -1
  203. package/dist/internal/composites/grid-control.d.ts.map +0 -1
  204. package/dist/internal/composites/linear-action.d.ts.map +0 -1
  205. package/dist/internal/composites/linear-choice.d.ts.map +0 -1
  206. package/dist/internal/composites/listbox.d.ts.map +0 -1
  207. package/dist/internal/composites/menu.d.ts.map +0 -1
  208. package/dist/internal/composites/popup.d.ts.map +0 -1
  209. package/dist/internal/composites/slider.d.ts.map +0 -1
  210. package/dist/internal/composites/tree-grid.d.ts.map +0 -1
  211. package/dist/internal/composites/tree-view.d.ts.map +0 -1
  212. package/dist/internal/editing/text.d.ts.map +0 -1
  213. package/dist/internal/kernel/decimal.d.ts.map +0 -1
  214. package/dist/internal/kernel/foundation.d.ts.map +0 -1
  215. package/dist/internal/kernel/indexed-sequence.d.ts.map +0 -1
  216. package/dist/internal/kernel/machine.d.ts.map +0 -1
  217. package/dist/internal/runtime/revision.d.ts.map +0 -1
  218. package/dist/internal/state/checked.d.ts.map +0 -1
  219. package/dist/internal/state/cursor.d.ts.map +0 -1
  220. package/dist/internal/state/expansion.d.ts.map +0 -1
  221. package/dist/internal/state/open-state.d.ts.map +0 -1
  222. package/dist/internal/state/selection.d.ts.map +0 -1
  223. package/dist/layer-stack.d.ts.map +0 -1
  224. package/dist/listbox.d.ts.map +0 -1
  225. package/dist/menu-button.d.ts.map +0 -1
  226. package/dist/menu.d.ts.map +0 -1
  227. package/dist/menubar.d.ts.map +0 -1
  228. package/dist/multi-thumb-slider.d.ts.map +0 -1
  229. package/dist/navigation-menu.d.ts.map +0 -1
  230. package/dist/number-field.d.ts.map +0 -1
  231. package/dist/pagination.d.ts.map +0 -1
  232. package/dist/pin-input.d.ts.map +0 -1
  233. package/dist/popover.d.ts.map +0 -1
  234. package/dist/quantity-field.d.ts.map +0 -1
  235. package/dist/radio-group.d.ts.map +0 -1
  236. package/dist/rating.d.ts.map +0 -1
  237. package/dist/reorder.d.ts.map +0 -1
  238. package/dist/result.d.ts.map +0 -1
  239. package/dist/revision.d.ts.map +0 -1
  240. package/dist/select.d.ts.map +0 -1
  241. package/dist/shared.d.ts.map +0 -1
  242. package/dist/slider.d.ts.map +0 -1
  243. package/dist/spin-button.d.ts.map +0 -1
  244. package/dist/stepper.d.ts.map +0 -1
  245. package/dist/structures/grid.d.ts.map +0 -1
  246. package/dist/structures/range.d.ts.map +0 -1
  247. package/dist/structures/sequence.d.ts.map +0 -1
  248. package/dist/structures/tree.d.ts.map +0 -1
  249. package/dist/switch.d.ts.map +0 -1
  250. package/dist/tabs.d.ts.map +0 -1
  251. package/dist/tags-input.d.ts.map +0 -1
  252. package/dist/text.d.ts.map +0 -1
  253. package/dist/timer.d.ts.map +0 -1
  254. package/dist/toast.d.ts.map +0 -1
  255. package/dist/toggle-button.d.ts.map +0 -1
  256. package/dist/toggle-group.d.ts.map +0 -1
  257. package/dist/toolbar.d.ts.map +0 -1
  258. package/dist/tooltip.d.ts.map +0 -1
  259. package/dist/tree-grid.d.ts.map +0 -1
  260. package/dist/tree-view.d.ts.map +0 -1
  261. package/dist/units.d.ts.map +0 -1
  262. package/dist/window-splitter.d.ts.map +0 -1
@@ -41,4 +41,3 @@ export interface AccordionUpdate<ID extends StableID = StableID> {
41
41
  export declare function createAccordionState<ID extends StableID>(domain: Sequence<ID>, input?: AccordionStateInput<ID>, policies?: AccordionPolicies<ID>): AccordionState<ID>;
42
42
  export declare function tryCreateAccordionState<ID extends StableID>(domain: Sequence<ID>, input?: AccordionStateInput<ID>, policies?: AccordionPolicies<ID>): Result<AccordionState<ID>>;
43
43
  export declare function applyAccordionEvent<ID extends StableID>(domain: Sequence<ID>, state: AccordionState<ID>, event: AccordionEvent<ID>, policies?: AccordionPolicies<ID>): Result<AccordionUpdate<ID>>;
44
- //# sourceMappingURL=accordion.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { Result, SectileError } from './shared.js';
1
+ import type { Result, SectileError, StableID } from './shared.js';
2
2
  import type { CoreErrorCode } from './error-code.js';
3
3
  import { type InteractionStateInput } from './interaction.js';
4
4
  import { type EventReducer, type RevisionResult, type RevisionSnapshot } from './revision.js';
@@ -36,6 +36,58 @@ export interface HostAdapterOptions<State, HostInput, Event, Command, HostEffect
36
36
  }
37
37
  export declare function createSemanticController<State, Event, Command, Effect, Code extends string = CoreErrorCode>(options: SemanticControllerOptions<State, Event, Command, Effect, Code>): Result<SemanticController<State, Event, Effect, Code>, CoreErrorCode | Code>;
38
38
  export declare function createHostAdapter<State, HostInput, Event, Command, HostEffect, Code extends string = CoreErrorCode>(options: HostAdapterOptions<State, HostInput, Event, Command, HostEffect, Code>): Result<HostAdapter<State, HostInput, HostEffect, Code>, CoreErrorCode | Code>;
39
+ export interface ControlledComponentController<State, Event, Command, Value, Code extends string = CoreErrorCode> {
40
+ getSnapshot(): RevisionSnapshot<State>;
41
+ syncControlledValue(value: Value): Result<RevisionSnapshot<State>, CoreErrorCode | Code>;
42
+ handle(event: Event, expectedRevision?: number): RevisionResult<State, Command, CoreErrorCode | Code>;
43
+ }
44
+ export interface ControlledComponentControllerOptions<State, Event, Command, Value, Code extends string = CoreErrorCode> {
45
+ readonly controlled: boolean;
46
+ readonly initial: Result<State, Code>;
47
+ readonly reducer: EventReducer<State, Event, Command, Code>;
48
+ readonly create: (value: Value, reference: State) => Result<State, Code>;
49
+ readonly read: (state: State) => Value;
50
+ readonly onChange?: (value: Value, previous: Value) => void;
51
+ readonly interaction?: InteractionStateInput;
52
+ readonly interactionIntent?: (event: Event) => 'navigate' | 'mutate';
53
+ }
54
+ export declare function createControlledComponentController<State, Event, Command extends object, Value, Code extends string = CoreErrorCode>(options: ControlledComponentControllerOptions<State, Event, Command, Value, Code>): Result<ControlledComponentController<State, Event, Command, Value, Code>, CoreErrorCode | Code>;
55
+ export interface CollectionComponentController<Domain, State, Event, Command, Code extends string = CoreErrorCode> {
56
+ getDomain(): Domain;
57
+ getSnapshot(): RevisionSnapshot<State>;
58
+ replaceDomain(domain: Domain): Result<RevisionSnapshot<State>, CoreErrorCode | Code>;
59
+ replaceState(state: Result<State, Code>): Result<RevisionSnapshot<State>, CoreErrorCode | Code>;
60
+ handle(event: Event, expectedRevision?: number): RevisionResult<State, Command, CoreErrorCode | Code>;
61
+ }
62
+ export interface CollectionComponentControllerOptions<Domain, State, Event, Command, Code extends string = CoreErrorCode> {
63
+ readonly domain: Domain;
64
+ readonly initial: (domain: Domain) => Result<State, Code>;
65
+ readonly reducer: (domain: Domain, state: State, event: Event) => Result<{
66
+ readonly state: State;
67
+ readonly commands: readonly Command[];
68
+ }, Code>;
69
+ readonly reconcile: (domain: Domain, previous: State, proposed: State) => Result<State, Code>;
70
+ readonly replaceDomain: (domain: Domain, previous: State) => Result<State, Code>;
71
+ readonly notify?: (previous: State, proposed: State) => void;
72
+ readonly interaction?: InteractionStateInput;
73
+ readonly interactionIntent?: (event: Event) => 'navigate' | 'mutate';
74
+ }
75
+ export declare function createCollectionComponentController<Domain, State, Event, Command extends object, Code extends string = CoreErrorCode>(options: CollectionComponentControllerOptions<Domain, State, Event, Command, Code>): Result<CollectionComponentController<Domain, State, Event, Command, Code>, CoreErrorCode | Code>;
76
+ export interface IdentityDomain<ID extends StableID> {
77
+ contains(id: ID): boolean;
78
+ }
79
+ export type CollectionSelectionMode = 'single' | 'multiple';
80
+ export interface ReconciledCollectionIdentities<ID extends StableID> {
81
+ readonly selected: readonly ID[];
82
+ readonly current: ID | null;
83
+ readonly selectionChanged: boolean;
84
+ readonly currentChanged: boolean;
85
+ }
86
+ export interface ReconcileCollectionIdentitiesOptions {
87
+ readonly preserveNullCurrent?: boolean;
88
+ }
89
+ export declare function tryReconcileCollectionIdentities<ID extends StableID>(items: readonly ID[], selected: readonly ID[], current: ID | null, disabledItems: readonly ID[], mode: CollectionSelectionMode, options?: ReconcileCollectionIdentitiesOptions): Result<ReconciledCollectionIdentities<ID>>;
90
+ export declare function tryCreateDisabledIdentitySet<ID extends StableID>(domain: IdentityDomain<ID>, ids?: readonly ID[]): Result<ReadonlySet<ID>>;
39
91
  interface SnapshotConnection {
40
92
  getSnapshot(): {
41
93
  readonly state: unknown;
@@ -79,4 +131,3 @@ export type FacadeConnection<Connection extends SnapshotConnection> = Connection
79
131
  };
80
132
  export declare function createFacadeConnection<Options extends FacadeOptions, Connection extends SnapshotConnection, Code extends string = CoreErrorCode>(options: Options, construct: (options: Options) => Result<Connection, Code>): Result<FacadeConnection<Connection>, Code>;
81
133
  export {};
82
- //# sourceMappingURL=adapter-runtime.d.ts.map
@@ -1,18 +1,33 @@
1
+ import { sameStableIDOrder, tryNormalizeStableIDs } from './identity.js';
2
+ import { tryCreateSequence } from './structures/sequence.js';
1
3
  import { tryCreateInteractionState, requireInteraction, } from './interaction.js';
2
4
  import { applyRevisionedEvent, tryCreateRevisionSnapshot, mapRevisionCommands, rejectRevisionInput, } from './revision.js';
3
5
  export function applyControllerEvent(current, expectedRevision, event, reducer, reconcile, notify, toEffect) {
6
+ const prepared = prepareControllerEvent(current, expectedRevision, event, reducer, reconcile, toEffect);
7
+ if (!prepared.result.ok)
8
+ return prepared.result;
9
+ notify(current.state, prepared.proposed);
10
+ return prepared.result;
11
+ }
12
+ function prepareControllerEvent(current, expectedRevision, event, reducer, reconcile, toEffect) {
4
13
  const semantic = applyRevisionedEvent(current, expectedRevision, event, reducer);
5
14
  if (!semantic.ok)
6
- return semantic;
15
+ return { result: semantic, proposed: current.state };
7
16
  const committed = reconcile(current.state, semantic.snapshot.state);
8
- if (!committed.ok)
9
- return rejectRevisionInput(current, committed.error);
17
+ if (!committed.ok) {
18
+ return {
19
+ result: rejectRevisionInput(current, committed.error),
20
+ proposed: semantic.snapshot.state,
21
+ };
22
+ }
10
23
  const snapshot = Object.freeze({
11
24
  revision: semantic.snapshot.revision,
12
25
  state: committed.value,
13
26
  });
14
- notify(current.state, semantic.snapshot.state);
15
- return mapRevisionCommands(Object.freeze({ ok: true, snapshot, commands: semantic.commands }), toEffect);
27
+ return {
28
+ result: mapRevisionCommands(Object.freeze({ ok: true, snapshot, commands: semantic.commands }), toEffect),
29
+ proposed: semantic.snapshot.state,
30
+ };
16
31
  }
17
32
  export function synchronizeControllerState(current, state) {
18
33
  if (!state.ok)
@@ -68,10 +83,13 @@ export function createSemanticController(options) {
68
83
  const permitted = requireInteraction(interaction.value, options.interactionIntent?.(event) ?? 'mutate');
69
84
  if (!permitted.ok)
70
85
  return rejectRevisionInput(current, permitted.error);
71
- const result = applyControllerEvent(current, expectedRevision, event, options.reducer, options.reconcile ?? ((_previous, proposed) => ({ ok: true, value: proposed })), options.notify ?? (() => undefined), options.toEffect);
72
- if (result.ok)
73
- current = result.snapshot;
74
- return result;
86
+ const previous = current;
87
+ const prepared = prepareControllerEvent(current, expectedRevision, event, options.reducer, options.reconcile ?? ((_previous, proposed) => ({ ok: true, value: proposed })), options.toEffect);
88
+ if (!prepared.result.ok)
89
+ return prepared.result;
90
+ current = prepared.result.snapshot;
91
+ options.notify?.(previous.state, prepared.proposed);
92
+ return prepared.result;
75
93
  },
76
94
  reject: (code, message, details) => rejectRevisionInput(current, {
77
95
  class: 'transition-rejection',
@@ -109,11 +127,152 @@ export function createHostAdapter(options) {
109
127
  }),
110
128
  };
111
129
  }
130
+ export function createControlledComponentController(options) {
131
+ const runtime = createSemanticController({
132
+ initial: options.initial,
133
+ reducer: options.reducer,
134
+ reconcile: (previous, proposed) => options.create(options.controlled ? options.read(previous) : options.read(proposed), proposed),
135
+ notify: (previous, proposed) => {
136
+ const before = options.read(previous);
137
+ const after = options.read(proposed);
138
+ if (!Object.is(before, after))
139
+ options.onChange?.(after, before);
140
+ },
141
+ toEffect: (command) => command,
142
+ ...(options.interaction === undefined ? {} : { interaction: options.interaction }),
143
+ ...(options.interactionIntent === undefined
144
+ ? {}
145
+ : { interactionIntent: options.interactionIntent }),
146
+ });
147
+ if (!runtime.ok)
148
+ return runtime;
149
+ const getSnapshot = () => runtime.value.getSnapshot();
150
+ const syncControlledValue = (value) => {
151
+ if (!options.controlled) {
152
+ return {
153
+ ok: false,
154
+ error: {
155
+ class: 'construction',
156
+ code: 'uncontrolled-controller-sync',
157
+ message: 'An uncontrolled component cannot be synchronized externally.',
158
+ },
159
+ };
160
+ }
161
+ return runtime.value.replace(options.create(value, getSnapshot().state));
162
+ };
163
+ return {
164
+ ok: true,
165
+ value: Object.freeze({
166
+ getSnapshot,
167
+ syncControlledValue,
168
+ handle: (event, expectedRevision) => runtime.value.handle(event, expectedRevision),
169
+ }),
170
+ };
171
+ }
172
+ export function createCollectionComponentController(options) {
173
+ let domain = options.domain;
174
+ const runtime = createSemanticController({
175
+ initial: options.initial(domain),
176
+ reducer: (state, event) => options.reducer(domain, state, event),
177
+ reconcile: (previous, proposed) => options.reconcile(domain, previous, proposed),
178
+ toEffect: (command) => command,
179
+ ...(options.notify === undefined ? {} : { notify: options.notify }),
180
+ ...(options.interaction === undefined ? {} : { interaction: options.interaction }),
181
+ ...(options.interactionIntent === undefined
182
+ ? {}
183
+ : { interactionIntent: options.interactionIntent }),
184
+ });
185
+ if (!runtime.ok)
186
+ return runtime;
187
+ const replaceDomain = (nextDomain) => {
188
+ if (Object.is(domain, nextDomain))
189
+ return { ok: true, value: runtime.value.getSnapshot() };
190
+ const previous = runtime.value.getSnapshot().state;
191
+ const next = options.replaceDomain(nextDomain, previous);
192
+ if (!next.ok)
193
+ return next;
194
+ const replaced = runtime.value.replace(next);
195
+ if (replaced.ok) {
196
+ domain = nextDomain;
197
+ options.notify?.(previous, replaced.value.state);
198
+ }
199
+ return replaced;
200
+ };
201
+ return {
202
+ ok: true,
203
+ value: Object.freeze({
204
+ getDomain: () => domain,
205
+ getSnapshot: () => runtime.value.getSnapshot(),
206
+ replaceDomain,
207
+ replaceState: (state) => runtime.value.replace(state),
208
+ handle: (event, expectedRevision) => runtime.value.handle(event, expectedRevision),
209
+ }),
210
+ };
211
+ }
212
+ export function tryReconcileCollectionIdentities(items, selected, current, disabledItems, mode, options = {}) {
213
+ if (mode !== 'single' && mode !== 'multiple') {
214
+ return {
215
+ ok: false,
216
+ error: {
217
+ class: 'construction',
218
+ code: 'invalid-selection-mode',
219
+ message: 'Collection selection mode must be single or multiple.',
220
+ },
221
+ };
222
+ }
223
+ const domain = tryCreateSequence(items);
224
+ if (!domain.ok)
225
+ return domain;
226
+ const normalizedSelection = tryNormalizeStableIDs(selected);
227
+ if (!normalizedSelection.ok)
228
+ return normalizedSelection;
229
+ const disabled = tryCreateDisabledIdentitySet(domain.value, disabledItems);
230
+ if (!disabled.ok)
231
+ return disabled;
232
+ const requested = new Set(normalizedSelection.value);
233
+ const selectedInDomain = domain.value.ids.filter((id) => requested.has(id));
234
+ const nextSelected = Object.freeze(mode === 'single' ? selectedInDomain.slice(0, 1) : selectedInDomain);
235
+ const nextCurrent = current === null && options.preserveNullCurrent === true
236
+ ? null
237
+ : current !== null && domain.value.contains(current) && !disabled.value.has(current)
238
+ ? current
239
+ : nextSelected.find((id) => !disabled.value.has(id))
240
+ ?? domain.value.ids.find((id) => !disabled.value.has(id))
241
+ ?? null;
242
+ return {
243
+ ok: true,
244
+ value: Object.freeze({
245
+ selected: nextSelected,
246
+ current: nextCurrent,
247
+ selectionChanged: !sameStableIDOrder(selected, nextSelected),
248
+ currentChanged: current !== nextCurrent,
249
+ }),
250
+ };
251
+ }
252
+ export function tryCreateDisabledIdentitySet(domain, ids = []) {
253
+ const disabled = new Set(ids);
254
+ for (const id of disabled) {
255
+ if (!domain.contains(id)) {
256
+ return {
257
+ ok: false,
258
+ error: {
259
+ class: 'construction',
260
+ code: 'disabled-item-outside-domain',
261
+ message: 'Every disabled item must exist in the component domain.',
262
+ details: { id },
263
+ },
264
+ };
265
+ }
266
+ }
267
+ return { ok: true, value: disabled };
268
+ }
112
269
  export function createFacadeConnection(options, construct) {
113
270
  const subscribers = new Set();
114
271
  let connection;
115
272
  let active = true;
116
273
  const onUpdate = () => {
274
+ if (!active)
275
+ return;
117
276
  options.onUpdate?.();
118
277
  if (connection === undefined)
119
278
  return;
@@ -126,38 +285,78 @@ export function createFacadeConnection(options, construct) {
126
285
  return constructed;
127
286
  connection = constructed.value;
128
287
  const target = connection;
288
+ const forwardedMethods = new Map();
289
+ const inactiveUnsubscribe = () => undefined;
290
+ const send = (input) => active && Boolean(callFirst(target, ['handleEvent', 'handleKeyboardInput', 'handleKeyboardEvent', 'handleBeforeInput'], input));
291
+ const update = (input) => active
292
+ ? callFirst(target, ['syncControlledValues', 'syncControlledValue', 'syncWindow'], input)
293
+ : destroyedConnectionResult();
294
+ const subscribe = (listener) => {
295
+ if (!active)
296
+ return inactiveUnsubscribe;
297
+ subscribers.add(listener);
298
+ return () => { subscribers.delete(listener); };
299
+ };
300
+ const destroy = () => {
301
+ if (!active)
302
+ return;
303
+ active = false;
304
+ const disconnect = target['disconnect'];
305
+ if (typeof disconnect === 'function')
306
+ Reflect.apply(disconnect, target, []);
307
+ subscribers.clear();
308
+ };
129
309
  const facade = new Proxy(target, {
130
310
  get: (_target, property) => {
131
311
  if (property === 'state')
132
312
  return connection?.getSnapshot().state;
133
313
  if (property === 'send')
134
- return (input) => active && Boolean(callFirst(target, ['handleEvent', 'handleKeyboardInput', 'handleKeyboardEvent', 'handleBeforeInput'], input));
314
+ return send;
135
315
  if (property === 'update')
136
- return (input) => callFirst(target, ['syncControlledValues', 'syncControlledValue', 'syncWindow'], input);
316
+ return update;
137
317
  if (property === 'subscribe')
138
- return (listener) => {
139
- subscribers.add(listener);
140
- return () => { subscribers.delete(listener); };
141
- };
318
+ return subscribe;
142
319
  if (property === 'destroy')
143
- return () => {
144
- if (!active)
145
- return;
146
- active = false;
147
- const disconnect = target['disconnect'];
148
- if (typeof disconnect === 'function')
149
- Reflect.apply(disconnect, target, []);
150
- subscribers.clear();
151
- };
320
+ return destroy;
152
321
  const value = Reflect.get(target, property, target);
153
322
  const ownDescriptor = Reflect.getOwnPropertyDescriptor(target, property);
154
323
  if (ownDescriptor !== undefined && ownDescriptor.configurable === false)
155
324
  return value;
156
- return typeof value === 'function' ? value.bind(target) : value;
325
+ if (typeof value !== 'function')
326
+ return value;
327
+ const existing = forwardedMethods.get(property);
328
+ if (existing !== undefined)
329
+ return existing;
330
+ const forwarded = (...args) => {
331
+ if (active || isPostDestroyRead(property))
332
+ return Reflect.apply(value, target, args);
333
+ if (typeof property === 'string' && property.startsWith('handle'))
334
+ return false;
335
+ if (typeof property === 'string' && property.startsWith('sync')) {
336
+ return destroyedConnectionResult();
337
+ }
338
+ return undefined;
339
+ };
340
+ forwardedMethods.set(property, forwarded);
341
+ return forwarded;
157
342
  },
158
343
  });
159
344
  return { ok: true, value: facade };
160
345
  }
346
+ function destroyedConnectionResult() {
347
+ return {
348
+ ok: false,
349
+ error: {
350
+ class: 'resource-rejection',
351
+ code: 'connection-destroyed',
352
+ message: 'A destroyed facade connection cannot be updated.',
353
+ },
354
+ };
355
+ }
356
+ function isPostDestroyRead(property) {
357
+ return property === 'getSnapshot'
358
+ || (typeof property === 'string' && property.startsWith('get'));
359
+ }
161
360
  function callFirst(target, names, input) {
162
361
  for (const name of names) {
163
362
  const method = target[name];
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-runtime.js","sourceRoot":"","sources":["../src/adapter-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,GAIpB,MAAM,eAAe,CAAC;AAEvB,MAAM,UAAU,oBAAoB,CAClC,OAAgC,EAChC,gBAAwB,EACxB,KAAY,EACZ,OAAkD,EAClD,SAAoE,EACpE,MAAkD,EAClD,QAAsC;IAEtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CACxB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAC3E,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAgC,EAChC,KAA0B;IAE1B,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACjD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,qEAAqE;gBAC9E,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;aACxC;SACF,CAAC;IACJ,CAAC;IACD,OAAO,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAeD,MAAM,UAAU,oBAAoB,CAClC,UAAmB,EACnB,QAAiB,EACjB,QAAiC,EACjC,KAAa;IAEb,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,IAAI,GAA6B,UAAU;QAC/C,CAAC,CAAC,cAAc,QAAQ,WAAW;QACnC,CAAC,CAAC,gBAAgB,QAAQ,SAAS,CAAC;IACtC,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI;QACJ,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,cAAc,KAAK,oCAAoC;YACzD,CAAC,CAAC,gBAAgB,KAAK,qCAAqC;KAC/D,CAAC;AACJ,CAAC;AAmCD,MAAM,UAAU,wBAAwB,CACtC,OAAuE;IAEvE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IACxC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,GAA4B,EAAE,CAAC,OAAO;YACnD,OAAO,EAAE,CAAC,KAA0B,EAAyD,EAAE;gBAC7F,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,EAAE;oBAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,EAAE,CACN,KAAY,EACZ,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EACkB,EAAE;gBACvD,MAAM,SAAS,GAAG,kBAAkB,CAClC,WAAW,CAAC,KAAK,EACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,IAAI,QAAQ,CAC/C,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,EAAE;oBAAE,OAAO,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,MAAM,GAAG,oBAAoB,CACjC,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAC/E,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EACnC,OAAO,CAAC,QAAQ,CACjB,CAAC;gBACF,IAAI,MAAM,CAAC,EAAE;oBAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,EAAE,CACN,IAAU,EACV,OAAe,EACf,OAA2C,EACN,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBACrE,KAAK,EAAE,sBAAsB;gBAC7B,IAAI;gBACJ,OAAO;gBACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;aAC9C,CAAC;SACH,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA+E;IAE/E,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,OAAO;QACzB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;KACrG,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,GAA4B,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1E,OAAO,EAAE,CAAC,KAA0B,EAAyD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/H,WAAW,EAAE,CACX,KAAgB,EAChB,gBAAyB,EACuC,EAAE;gBAClE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBAChC,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,EAAE,CACN,IAAU,EACV,OAAe,EACf,OAA2C,EACF,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;SAC9F,CAAC;KACH,CAAC;AACJ,CAAC;AA6CD,MAAM,UAAU,sBAAsB,CAKpC,OAAgB,EAChB,SAAyD;IAEzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAClE,IAAI,UAAkC,CAAC;IACvC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrB,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAA4B,CAAC;QACpE,KAAK,MAAM,UAAU,IAAI,WAAW;YAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAa,CAAC,CAAC;IACnE,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IACxC,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;IAC/B,MAAM,MAAM,GAAG,UAAuD,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;QAC/B,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YACzB,IAAI,QAAQ,KAAK,OAAO;gBAAE,OAAO,UAAU,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC;YACjE,IAAI,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,KAAc,EAAW,EAAE,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7L,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAc,EAAW,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;YACvJ,IAAI,QAAQ,KAAK,WAAW;gBAAE,OAAO,CAAC,QAA4C,EAAgB,EAAE;oBAClG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC1B,OAAO,GAAS,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,GAAS,EAAE;oBAC5C,IAAI,CAAC,MAAM;wBAAE,OAAO;oBACpB,MAAM,GAAG,KAAK,CAAC;oBACf,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;oBACxC,IAAI,OAAO,UAAU,KAAK,UAAU;wBAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5E,WAAW,CAAC,KAAK,EAAE,CAAC;gBACtB,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,aAAa,GAAG,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,YAAY,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC;YACtF,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAiD,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAChB,MAAoC,EACpC,KAAwB,EACxB,KAAc;IAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,qCAAqC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"adapter-runtime.js","sourceRoot":"","sources":["../src/adapter-runtime.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,3 @@ export interface AlertDialogUpdate {
16
16
  export declare const createAlertDialogState: typeof createDialogState;
17
17
  export declare const tryCreateAlertDialogState: typeof tryCreateDialogState;
18
18
  export declare function applyAlertDialogEvent(state: AlertDialogState, event: AlertDialogEvent): Result<AlertDialogUpdate>;
19
- //# sourceMappingURL=alert-dialog.d.ts.map
@@ -38,4 +38,3 @@ export declare function tryCreateCarouselState<ID extends StableID>(slides: Sequ
38
38
  export declare function getCarouselPosition<ID extends StableID>(slides: Sequence<ID>, state: CarouselState<ID>): CarouselPosition;
39
39
  export declare function isCarouselRotationPaused(state: CarouselState): boolean;
40
40
  export declare function applyCarouselEvent<ID extends StableID>(slides: Sequence<ID>, state: CarouselState<ID>, event: CarouselEvent<ID>, policies?: CarouselPolicies): Result<CarouselUpdate<ID>>;
41
- //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1,16 @@
1
+ import type { Result, StableID } from './shared.js';
2
+ import type { Tree } from './structures/tree.js';
3
+ import { type CascadeChoiceCommand, type CascadeChoiceEvent, type CascadeChoicePolicies, type CascadeChoiceState, type CascadeChoiceStateInput, type CascadeChoiceUpdate } from './internal/composites/cascade-choice.js';
4
+ export type CascadeListEvent<ID extends StableID = StableID> = CascadeChoiceEvent<ID>;
5
+ export type CascadeListCommand<ID extends StableID = StableID> = CascadeChoiceCommand<ID>;
6
+ export type CascadeListState<ID extends StableID = StableID> = CascadeChoiceState<ID>;
7
+ export type CascadeListStateInput<ID extends StableID = StableID> = CascadeChoiceStateInput<ID>;
8
+ export type CascadeListPolicies<ID extends StableID = StableID> = CascadeChoicePolicies<ID>;
9
+ export type CascadeListEligiblePredicate<ID extends StableID = StableID> = NonNullable<CascadeListPolicies<ID>['eligible']>;
10
+ export type CascadeListSelectablePredicate<ID extends StableID = StableID> = NonNullable<CascadeListPolicies<ID>['selectable']>;
11
+ export type CascadeListUpdate<ID extends StableID = StableID> = CascadeChoiceUpdate<ID>;
12
+ export declare function createCascadeListState<ID extends StableID>(tree: Tree<ID>, input?: CascadeListStateInput<ID>): CascadeListState<ID>;
13
+ export declare function tryCreateCascadeListState<ID extends StableID>(tree: Tree<ID>, input?: CascadeListStateInput<ID>): Result<CascadeListState<ID>>;
14
+ export declare function getCascadeListColumns<ID extends StableID>(tree: Tree<ID>, state: CascadeListState<ID>): readonly (readonly ID[])[];
15
+ export declare function getCascadeListValuePath<ID extends StableID>(tree: Tree<ID>, value: ID | null): readonly ID[];
16
+ export declare function applyCascadeListEvent<ID extends StableID>(tree: Tree<ID>, state: CascadeListState<ID>, event: CascadeListEvent<ID>, policies?: CascadeListPolicies<ID>): Result<CascadeListUpdate<ID>>;
@@ -0,0 +1,33 @@
1
+ import { unwrap } from './result.js';
2
+ import { ok } from './internal/kernel/foundation.js';
3
+ import { applyCascadeChoiceEvent, getCascadeChoiceColumns, getCascadeChoiceValuePath, tryCreateCascadeChoiceState, } from './internal/composites/cascade-choice.js';
4
+ const errors = Object.freeze({
5
+ label: 'Cascade list',
6
+ valueOutsideTree: 'cascade-list-value-outside-tree',
7
+ highlightOutsideTree: 'cascade-list-highlight-outside-tree',
8
+ pathOutsideTree: 'cascade-list-path-outside-tree',
9
+ leafInPath: 'cascade-list-leaf-in-path',
10
+ invalidPath: 'invalid-cascade-list-path',
11
+ targetUnavailable: 'cascade-list-target-unavailable',
12
+ targetDisabled: 'cascade-list-target-disabled',
13
+ targetUnselectable: 'cascade-list-target-unselectable',
14
+ });
15
+ export function createCascadeListState(tree, input = {}) {
16
+ return unwrap(tryCreateCascadeListState(tree, input));
17
+ }
18
+ export function tryCreateCascadeListState(tree, input = {}) {
19
+ return tryCreateCascadeChoiceState(tree, input, errors);
20
+ }
21
+ export function getCascadeListColumns(tree, state) {
22
+ return getCascadeChoiceColumns(tree, state);
23
+ }
24
+ export function getCascadeListValuePath(tree, value) {
25
+ return getCascadeChoiceValuePath(tree, value);
26
+ }
27
+ export function applyCascadeListEvent(tree, state, event, policies = {}) {
28
+ const result = applyCascadeChoiceEvent(tree, state, event, policies, errors);
29
+ if (!result.ok)
30
+ return result;
31
+ return ok(Object.freeze({ state: result.value.state, commands: result.value.commands }));
32
+ }
33
+ //# sourceMappingURL=cascade-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-list.js","sourceRoot":"","sources":["../src/cascade-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,GAQ5B,MAAM,yCAAyC,CAAC;AAWjD,MAAM,MAAM,GAA8B,MAAM,CAAC,MAAM,CAAC;IACtD,KAAK,EAAE,cAAc;IACrB,gBAAgB,EAAE,iCAAiC;IACnD,oBAAoB,EAAE,qCAAqC;IAC3D,eAAe,EAAE,gCAAgC;IACjD,UAAU,EAAE,2BAA2B;IACvC,WAAW,EAAE,2BAA2B;IACxC,iBAAiB,EAAE,iCAAiC;IACpD,cAAc,EAAE,8BAA8B;IAC9C,kBAAkB,EAAE,kCAAkC;CACvD,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CACpC,IAAc,EACd,KAAK,GAA8B,EAAE;IAErC,OAAO,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAc,EACd,KAAK,GAA8B,EAAE;IAErC,OAAO,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,KAA2B;IAE3B,OAAO,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAc,EACd,KAAgB;IAEhB,OAAO,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,KAA2B,EAC3B,KAA2B,EAC3B,QAAQ,GAA4B,EAAE;IAEtC,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC"}
@@ -45,4 +45,3 @@ export declare function tryCreateCascadeSelectState<ID extends StableID>(tree: T
45
45
  export declare function getCascadeSelectColumns<ID extends StableID>(tree: Tree<ID>, state: CascadeSelectState<ID>): readonly (readonly ID[])[];
46
46
  export declare function getCascadeSelectValuePath<ID extends StableID>(tree: Tree<ID>, value: ID | null): readonly ID[];
47
47
  export declare function applyCascadeSelectEvent<ID extends StableID>(tree: Tree<ID>, state: CascadeSelectState<ID>, event: CascadeSelectEvent<ID>, policies?: CascadeSelectPolicies<ID>): Result<CascadeSelectUpdate<ID>>;
48
- //# sourceMappingURL=cascade-select.d.ts.map