foldkit 0.56.0 → 0.58.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 (105) hide show
  1. package/README.md +21 -11
  2. package/dist/devtools/overlay-styles.d.ts +1 -1
  3. package/dist/devtools/overlay-styles.d.ts.map +1 -1
  4. package/dist/devtools/overlay-styles.js +5 -1
  5. package/dist/devtools/overlay.d.ts.map +1 -1
  6. package/dist/devtools/overlay.js +52 -19
  7. package/dist/file/error.d.ts +10 -0
  8. package/dist/file/error.d.ts.map +1 -0
  9. package/dist/file/error.js +4 -0
  10. package/dist/file/file.d.ts +24 -0
  11. package/dist/file/file.d.ts.map +1 -0
  12. package/dist/file/file.js +16 -0
  13. package/dist/file/index.d.ts +5 -0
  14. package/dist/file/index.d.ts.map +1 -0
  15. package/dist/file/index.js +4 -0
  16. package/dist/file/public.d.ts +2 -0
  17. package/dist/file/public.d.ts.map +1 -0
  18. package/dist/file/public.js +1 -0
  19. package/dist/file/reader.d.ts +56 -0
  20. package/dist/file/reader.d.ts.map +1 -0
  21. package/dist/file/reader.js +92 -0
  22. package/dist/file/select.d.ts +36 -0
  23. package/dist/file/select.d.ts.map +1 -0
  24. package/dist/file/select.js +60 -0
  25. package/dist/html/index.d.ts +34 -3
  26. package/dist/html/index.d.ts.map +1 -1
  27. package/dist/html/index.js +40 -1
  28. package/dist/html/lazy.d.ts +7 -5
  29. package/dist/html/lazy.d.ts.map +1 -1
  30. package/dist/html/lazy.js +12 -8
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/runtime/runtime.d.ts.map +1 -1
  35. package/dist/runtime/runtime.js +2 -4
  36. package/dist/test/apps/disabledButton.d.ts +11 -3
  37. package/dist/test/apps/disabledButton.d.ts.map +1 -1
  38. package/dist/test/apps/fileUpload.d.ts +17 -0
  39. package/dist/test/apps/fileUpload.d.ts.map +1 -0
  40. package/dist/test/apps/fileUpload.js +29 -0
  41. package/dist/test/apps/resumeUpload.d.ts +43 -0
  42. package/dist/test/apps/resumeUpload.d.ts.map +1 -0
  43. package/dist/test/apps/resumeUpload.js +85 -0
  44. package/dist/test/query.d.ts +2 -1
  45. package/dist/test/query.d.ts.map +1 -1
  46. package/dist/test/query.js +15 -2
  47. package/dist/test/scene.d.ts +18 -0
  48. package/dist/test/scene.d.ts.map +1 -1
  49. package/dist/test/scene.js +46 -0
  50. package/dist/ui/combobox/multi.d.ts +31 -10
  51. package/dist/ui/combobox/multi.d.ts.map +1 -1
  52. package/dist/ui/combobox/public.d.ts +1 -2
  53. package/dist/ui/combobox/public.d.ts.map +1 -1
  54. package/dist/ui/combobox/public.js +1 -2
  55. package/dist/ui/combobox/shared.d.ts +33 -33
  56. package/dist/ui/combobox/shared.d.ts.map +1 -1
  57. package/dist/ui/combobox/shared.js +89 -112
  58. package/dist/ui/combobox/single.d.ts +31 -10
  59. package/dist/ui/combobox/single.d.ts.map +1 -1
  60. package/dist/ui/combobox/single.js +1 -5
  61. package/dist/ui/dialog/index.d.ts +10 -15
  62. package/dist/ui/dialog/index.d.ts.map +1 -1
  63. package/dist/ui/dialog/index.js +68 -73
  64. package/dist/ui/dialog/public.d.ts +1 -1
  65. package/dist/ui/dialog/public.d.ts.map +1 -1
  66. package/dist/ui/dialog/public.js +1 -1
  67. package/dist/ui/listbox/multi.d.ts +30 -9
  68. package/dist/ui/listbox/multi.d.ts.map +1 -1
  69. package/dist/ui/listbox/public.d.ts +1 -2
  70. package/dist/ui/listbox/public.d.ts.map +1 -1
  71. package/dist/ui/listbox/public.js +1 -2
  72. package/dist/ui/listbox/shared.d.ts +35 -36
  73. package/dist/ui/listbox/shared.d.ts.map +1 -1
  74. package/dist/ui/listbox/shared.js +106 -104
  75. package/dist/ui/listbox/single.d.ts +30 -9
  76. package/dist/ui/listbox/single.d.ts.map +1 -1
  77. package/dist/ui/listbox/single.js +9 -12
  78. package/dist/ui/menu/index.d.ts +22 -26
  79. package/dist/ui/menu/index.d.ts.map +1 -1
  80. package/dist/ui/menu/index.js +103 -91
  81. package/dist/ui/menu/public.d.ts +1 -2
  82. package/dist/ui/menu/public.d.ts.map +1 -1
  83. package/dist/ui/menu/public.js +1 -2
  84. package/dist/ui/popover/index.d.ts +21 -22
  85. package/dist/ui/popover/index.d.ts.map +1 -1
  86. package/dist/ui/popover/index.js +92 -75
  87. package/dist/ui/popover/public.d.ts +1 -2
  88. package/dist/ui/popover/public.d.ts.map +1 -1
  89. package/dist/ui/popover/public.js +1 -2
  90. package/dist/ui/transition/index.d.ts +8 -58
  91. package/dist/ui/transition/index.d.ts.map +1 -1
  92. package/dist/ui/transition/index.js +21 -111
  93. package/dist/ui/transition/public.d.ts +1 -1
  94. package/dist/ui/transition/public.d.ts.map +1 -1
  95. package/dist/ui/transition/public.js +1 -1
  96. package/dist/ui/transition/schema.d.ts +43 -0
  97. package/dist/ui/transition/schema.d.ts.map +1 -0
  98. package/dist/ui/transition/schema.js +35 -0
  99. package/dist/ui/transition/update.d.ts +22 -0
  100. package/dist/ui/transition/update.d.ts.map +1 -0
  101. package/dist/ui/transition/update.js +68 -0
  102. package/package.json +5 -1
  103. package/dist/ui/transition.d.ts +0 -5
  104. package/dist/ui/transition.d.ts.map +0 -1
  105. package/dist/ui/transition.js +0 -3
@@ -16,7 +16,11 @@ export declare const BaseModel: S.Struct<{
16
16
  nullable: typeof S.Boolean;
17
17
  immediate: typeof S.Boolean;
18
18
  selectInputOnFocus: typeof S.Boolean;
19
- transitionState: S.Literal<["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
19
+ transition: S.Struct<{
20
+ id: typeof S.String;
21
+ isShowing: typeof S.Boolean;
22
+ transitionState: S.Literal<["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
23
+ }>;
20
24
  maybeActiveItemIndex: S.OptionFromSelf<typeof S.Number>;
21
25
  activationTrigger: S.Literal<["Pointer", "Keyboard"]>;
22
26
  inputValue: typeof S.String;
@@ -85,12 +89,10 @@ export declare const CompletedFocusInput: import("../../schema").CallableTaggedS
85
89
  export declare const CompletedScrollIntoView: import("../../schema").CallableTaggedStruct<"CompletedScrollIntoView", {}>;
86
90
  /** Sent when the programmatic item click command completes. */
87
91
  export declare const CompletedClickItem: import("../../schema").CallableTaggedStruct<"CompletedClickItem", {}>;
88
- /** Sent internally when a double-rAF completes, advancing the transition to its animating phase. */
89
- export declare const AdvancedTransitionFrame: import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>;
90
- /** Sent internally when all CSS transitions on the items container have completed. */
91
- export declare const EndedTransition: import("../../schema").CallableTaggedStruct<"EndedTransition", {}>;
92
- /** Sent internally when the input wrapper moves in the viewport during a leave transition, cancelling the animation. */
93
- export declare const DetectedInputMovement: import("../../schema").CallableTaggedStruct<"DetectedInputMovement", {}>;
92
+ /** Wraps a Transition submodel message for delegation. */
93
+ export declare const GotTransitionMessage: import("../../schema").CallableTaggedStruct<"GotTransitionMessage", {
94
+ message: S.Union<[import("../../schema").CallableTaggedStruct<"Showed", {}>, import("../../schema").CallableTaggedStruct<"Hidden", {}>, import("../../schema").CallableTaggedStruct<"AdvancedTransitionFrame", {}>, import("../../schema").CallableTaggedStruct<"EndedTransition", {}>]>;
95
+ }>;
94
96
  /** Sent when the user types in the input. */
95
97
  export declare const UpdatedInputValue: import("../../schema").CallableTaggedStruct<"UpdatedInputValue", {
96
98
  value: typeof S.String;
@@ -114,9 +116,7 @@ export declare const Message: S.Union<[
114
116
  typeof CompletedFocusInput,
115
117
  typeof CompletedScrollIntoView,
116
118
  typeof CompletedClickItem,
117
- typeof AdvancedTransitionFrame,
118
- typeof EndedTransition,
119
- typeof DetectedInputMovement,
119
+ typeof GotTransitionMessage,
120
120
  typeof UpdatedInputValue,
121
121
  typeof PressedToggleButton
122
122
  ]>;
@@ -135,9 +135,6 @@ export type CompletedTeardownInert = typeof CompletedTeardownInert.Type;
135
135
  export type CompletedFocusInput = typeof CompletedFocusInput.Type;
136
136
  export type CompletedScrollIntoView = typeof CompletedScrollIntoView.Type;
137
137
  export type CompletedClickItem = typeof CompletedClickItem.Type;
138
- export type AdvancedTransitionFrame = typeof AdvancedTransitionFrame.Type;
139
- export type EndedTransition = typeof EndedTransition.Type;
140
- export type DetectedInputMovement = typeof DetectedInputMovement.Type;
141
138
  export type UpdatedInputValue = typeof UpdatedInputValue.Type;
142
139
  export type PressedToggleButton = typeof PressedToggleButton.Type;
143
140
  export type Message = typeof Message.Type;
@@ -151,15 +148,9 @@ export declare const closedBaseModel: <Model extends BaseModel>(model: Model) =>
151
148
  /** Context passed to the `handleSelectedItem` handler with commands for focus management and modal cleanup. */
152
149
  export type SelectedItemContext = Readonly<{
153
150
  focusInput: Command.Command<Message>;
154
- maybeNextFrame: Option.Option<Command.Command<Message>>;
155
151
  maybeUnlockScroll: Option.Option<Command.Command<Message>>;
156
152
  maybeRestoreInert: Option.Option<Command.Command<Message>>;
157
153
  }>;
158
- /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
159
- /** Advances the combobox's enter/leave transition by waiting a double-rAF. */
160
- export declare const RequestFrame: Command.CommandDefinition<"RequestFrame", {
161
- readonly _tag: "AdvancedTransitionFrame";
162
- }>;
163
154
  /** Prevents page scrolling while the combobox popup is open in modal mode. */
164
155
  export declare const LockScroll: Command.CommandDefinition<"LockScroll", {
165
156
  readonly _tag: "CompletedLockScroll";
@@ -188,16 +179,20 @@ export declare const ScrollIntoView: Command.CommandDefinition<"ScrollIntoView",
188
179
  export declare const ClickItem: Command.CommandDefinition<"ClickItem", {
189
180
  readonly _tag: "CompletedClickItem";
190
181
  }>;
191
- /** Waits for all CSS transitions on the combobox items container to complete. */
192
- export declare const WaitForTransitions: Command.CommandDefinition<"WaitForTransitions", {
193
- readonly _tag: "EndedTransition";
194
- }>;
195
- /** Detects whether the combobox input moved or the leave transition ended — whichever comes first. */
182
+ /** Detects whether the combobox input wrapper moved or the leave transition ended whichever comes first. Both outcomes signal the Transition submodel that leave is complete. */
196
183
  export declare const DetectMovementOrTransitionEnd: Command.CommandDefinition<"DetectMovementOrTransitionEnd", {
197
- readonly _tag: "EndedTransition";
198
- } | {
199
- readonly _tag: "DetectedInputMovement";
184
+ readonly _tag: "GotTransitionMessage";
185
+ readonly message: {
186
+ readonly _tag: "Showed";
187
+ } | {
188
+ readonly _tag: "Hidden";
189
+ } | {
190
+ readonly _tag: "AdvancedTransitionFrame";
191
+ } | {
192
+ readonly _tag: "EndedTransition";
193
+ };
200
194
  }>;
195
+ /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
201
196
  export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
202
197
  handleClose: (model: Model) => Model;
203
198
  handleSelectedItem: (model: Model, item: string, displayText: string, context: SelectedItemContext) => [Model, ReadonlyArray<Command.Command<Message>>];
@@ -222,10 +217,6 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
222
217
  readonly _tag: "CompletedScrollIntoView";
223
218
  } | {
224
219
  readonly _tag: "CompletedClickItem";
225
- } | {
226
- readonly _tag: "AdvancedTransitionFrame";
227
- } | {
228
- readonly _tag: "EndedTransition";
229
220
  } | {
230
221
  readonly _tag: "Opened";
231
222
  readonly maybeActiveItemIndex: Option.Option<number>;
@@ -252,7 +243,16 @@ export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
252
243
  } | {
253
244
  readonly _tag: "CompletedFocusInput";
254
245
  } | {
255
- readonly _tag: "DetectedInputMovement";
246
+ readonly _tag: "GotTransitionMessage";
247
+ readonly message: {
248
+ readonly _tag: "Showed";
249
+ } | {
250
+ readonly _tag: "Hidden";
251
+ } | {
252
+ readonly _tag: "AdvancedTransitionFrame";
253
+ } | {
254
+ readonly _tag: "EndedTransition";
255
+ };
256
256
  } | {
257
257
  readonly _tag: "UpdatedInputValue";
258
258
  readonly value: string;
@@ -273,7 +273,7 @@ export type GroupHeading = Readonly<{
273
273
  /** Configuration for rendering a combobox with `view`. */
274
274
  export type BaseViewConfig<Message, Item extends string, Model extends BaseModel> = Readonly<{
275
275
  model: Model;
276
- toParentMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton | CompletedLockScroll | CompletedUnlockScroll | CompletedSetupInert | CompletedTeardownInert | CompletedFocusInput | CompletedScrollIntoView | CompletedClickItem) => Message;
276
+ toParentMessage: (message: Opened | Closed | ClosedByTab | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | UpdatedInputValue | PressedToggleButton) => Message;
277
277
  onSelectedItem?: (value: string) => Message;
278
278
  items: ReadonlyArray<Item>;
279
279
  itemToConfig: (item: Item, context: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/shared.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,11 @@ import * as Task from '../../task';
8
8
  import { anchorHooks } from '../anchor';
9
9
  import { groupContiguous } from '../group';
10
10
  import { findFirstEnabledIndex, keyToIndex } from '../keyboard';
11
- import { TransitionState } from '../transition';
11
+ // NOTE: Transition imports are split across schema + update to avoid a circular
12
+ // dependency: transition → html → runtime → devtools → combobox → transition.
13
+ // The barrel (../transition) imports from html, which starts the cycle.
14
+ import { EndedTransition as TransitionEndedTransition, Hidden as TransitionHidden, Message as TransitionMessage, Model as TransitionModel, Showed as TransitionShowed, init as transitionInit, } from '../transition/schema';
15
+ import { update as transitionUpdate } from '../transition/update';
12
16
  export { groupContiguous };
13
17
  // MODEL
14
18
  /** Schema for the activation trigger — whether the user interacted via mouse or keyboard. */
@@ -22,7 +26,7 @@ export const BaseModel = S.Struct({
22
26
  nullable: S.Boolean,
23
27
  immediate: S.Boolean,
24
28
  selectInputOnFocus: S.Boolean,
25
- transitionState: TransitionState,
29
+ transition: TransitionModel,
26
30
  maybeActiveItemIndex: S.OptionFromSelf(S.Number),
27
31
  activationTrigger: ActivationTrigger,
28
32
  inputValue: S.String,
@@ -37,7 +41,7 @@ export const baseInit = (config) => ({
37
41
  nullable: config.nullable ?? false,
38
42
  immediate: config.immediate ?? false,
39
43
  selectInputOnFocus: config.selectInputOnFocus ?? false,
40
- transitionState: 'Idle',
44
+ transition: transitionInit({ id: `${config.id}-items` }),
41
45
  maybeActiveItemIndex: Option.none(),
42
46
  activationTrigger: 'Keyboard',
43
47
  inputValue: '',
@@ -89,12 +93,10 @@ export const CompletedFocusInput = m('CompletedFocusInput');
89
93
  export const CompletedScrollIntoView = m('CompletedScrollIntoView');
90
94
  /** Sent when the programmatic item click command completes. */
91
95
  export const CompletedClickItem = m('CompletedClickItem');
92
- /** Sent internally when a double-rAF completes, advancing the transition to its animating phase. */
93
- export const AdvancedTransitionFrame = m('AdvancedTransitionFrame');
94
- /** Sent internally when all CSS transitions on the items container have completed. */
95
- export const EndedTransition = m('EndedTransition');
96
- /** Sent internally when the input wrapper moves in the viewport during a leave transition, cancelling the animation. */
97
- export const DetectedInputMovement = m('DetectedInputMovement');
96
+ /** Wraps a Transition submodel message for delegation. */
97
+ export const GotTransitionMessage = m('GotTransitionMessage', {
98
+ message: TransitionMessage,
99
+ });
98
100
  /** Sent when the user types in the input. */
99
101
  export const UpdatedInputValue = m('UpdatedInputValue', {
100
102
  value: S.String,
@@ -102,7 +104,7 @@ export const UpdatedInputValue = m('UpdatedInputValue', {
102
104
  /** Sent when the optional toggle button is clicked. */
103
105
  export const PressedToggleButton = m('PressedToggleButton');
104
106
  /** Union of all messages the combobox component can produce. */
105
- export const Message = S.Union(Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, RequestedItemClick, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, AdvancedTransitionFrame, EndedTransition, DetectedInputMovement, UpdatedInputValue, PressedToggleButton);
107
+ export const Message = S.Union(Opened, Closed, ClosedByTab, ActivatedItem, DeactivatedItem, SelectedItem, MovedPointerOverItem, RequestedItemClick, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusInput, CompletedScrollIntoView, CompletedClickItem, GotTransitionMessage, UpdatedInputValue, PressedToggleButton);
106
108
  // SELECTORS
107
109
  export const inputSelector = (id) => `#${id}-input`;
108
110
  export const inputWrapperSelector = (id) => `#${id}-input-wrapper`;
@@ -114,14 +116,10 @@ const constrainedEvo = makeConstrainedEvo();
114
116
  /** Resets only shared base fields to their closed state. Does not touch inputValue or selection — those are variant-specific. */
115
117
  export const closedBaseModel = (model) => constrainedEvo(model, {
116
118
  isOpen: () => false,
117
- transitionState: () => model.isAnimated ? 'LeaveStart' : 'Idle',
118
119
  maybeActiveItemIndex: () => Option.none(),
119
120
  activationTrigger: () => 'Keyboard',
120
121
  maybeLastPointerPosition: () => Option.none(),
121
122
  });
122
- /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
123
- /** Advances the combobox's enter/leave transition by waiting a double-rAF. */
124
- export const RequestFrame = Command.define('RequestFrame', AdvancedTransitionFrame);
125
123
  /** Prevents page scrolling while the combobox popup is open in modal mode. */
126
124
  export const LockScroll = Command.define('LockScroll', CompletedLockScroll);
127
125
  /** Re-enables page scrolling after the combobox popup closes. */
@@ -136,14 +134,33 @@ export const FocusInput = Command.define('FocusInput', CompletedFocusInput);
136
134
  export const ScrollIntoView = Command.define('ScrollIntoView', CompletedScrollIntoView);
137
135
  /** Programmatically clicks the active combobox item's DOM element. */
138
136
  export const ClickItem = Command.define('ClickItem', CompletedClickItem);
139
- /** Waits for all CSS transitions on the combobox items container to complete. */
140
- export const WaitForTransitions = Command.define('WaitForTransitions', EndedTransition);
141
- /** Detects whether the combobox input moved or the leave transition ended — whichever comes first. */
142
- export const DetectMovementOrTransitionEnd = Command.define('DetectMovementOrTransitionEnd', DetectedInputMovement, EndedTransition);
137
+ /** Detects whether the combobox input wrapper moved or the leave transition ended whichever comes first. Both outcomes signal the Transition submodel that leave is complete. */
138
+ export const DetectMovementOrTransitionEnd = Command.define('DetectMovementOrTransitionEnd', GotTransitionMessage);
139
+ const delegateToTransition = (model, transitionMessage) => {
140
+ const [nextTransition, transitionCommands, maybeOutMessage] = transitionUpdate(model.transition, transitionMessage);
141
+ const mappedCommands = transitionCommands.map(Command.mapEffect(Effect.map(message => GotTransitionMessage({ message }))));
142
+ const additionalCommands = Option.match(maybeOutMessage, {
143
+ onNone: () => [],
144
+ onSome: M.type().pipe(M.tagsExhaustive({
145
+ StartedLeaveAnimating: () => [
146
+ DetectMovementOrTransitionEnd(Effect.raceFirst(Task.detectElementMovement(inputWrapperSelector(model.id)).pipe(Effect.as(GotTransitionMessage({
147
+ message: TransitionEndedTransition(),
148
+ }))), Task.waitForTransitions(itemsSelector(model.id)).pipe(Effect.as(GotTransitionMessage({
149
+ message: TransitionEndedTransition(),
150
+ }))))),
151
+ ],
152
+ TransitionedOut: () => [],
153
+ })),
154
+ });
155
+ return [
156
+ constrainedEvo(model, { transition: () => nextTransition }),
157
+ [...mappedCommands, ...additionalCommands],
158
+ ];
159
+ };
160
+ /** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
143
161
  export const makeUpdate = (handlers) => {
144
162
  const withUpdateReturn = M.withReturnType();
145
163
  return (model, message) => {
146
- const maybeNextFrame = OptionExt.when(model.isAnimated, RequestFrame(Task.nextFrame.pipe(Effect.as(AdvancedTransitionFrame()))));
147
164
  const maybeLockScroll = OptionExt.when(model.isModal, LockScroll(Task.lockScroll.pipe(Effect.as(CompletedLockScroll()))));
148
165
  const maybeUnlockScroll = OptionExt.when(model.isModal, UnlockScroll(Task.unlockScroll.pipe(Effect.as(CompletedUnlockScroll()))));
149
166
  const maybeInertOthers = OptionExt.when(model.isModal, InertOthers(Task.inertOthers(model.id, [
@@ -152,39 +169,41 @@ export const makeUpdate = (handlers) => {
152
169
  ]).pipe(Effect.as(CompletedSetupInert()))));
153
170
  const maybeRestoreInert = OptionExt.when(model.isModal, RestoreInert(Task.restoreInert(model.id).pipe(Effect.as(CompletedTeardownInert()))));
154
171
  const focusInput = FocusInput(Task.focus(inputSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusInput())));
155
- return M.value(message).pipe(withUpdateReturn, M.tagsExhaustive({
156
- Opened: ({ maybeActiveItemIndex }) => {
157
- const nextModel = constrainedEvo(model, {
158
- isOpen: () => true,
159
- transitionState: () => model.isAnimated ? 'EnterStart' : 'Idle',
160
- maybeActiveItemIndex: () => maybeActiveItemIndex,
161
- activationTrigger: () => Option.match(maybeActiveItemIndex, {
162
- onNone: () => 'Pointer',
163
- onSome: () => 'Keyboard',
164
- }),
165
- maybeLastPointerPosition: () => Option.none(),
166
- });
172
+ const openCombobox = (baseModel) => {
173
+ if (model.isAnimated) {
174
+ const [nextModel, transitionCommands] = delegateToTransition(baseModel, TransitionShowed());
167
175
  return [
168
- nextModel,
169
- Array.getSomes([maybeNextFrame, maybeLockScroll, maybeInertOthers]),
176
+ constrainedEvo(nextModel, { isOpen: () => true }),
177
+ [
178
+ ...Array.getSomes([maybeLockScroll, maybeInertOthers]),
179
+ ...transitionCommands,
180
+ ],
170
181
  ];
171
- },
172
- Closed: () => [
173
- handlers.handleClose(model),
174
- pipe(Array.getSomes([
175
- maybeNextFrame,
176
- maybeUnlockScroll,
177
- maybeRestoreInert,
178
- ]), Array.prepend(focusInput)),
179
- ],
180
- ClosedByTab: () => [
181
- handlers.handleClose(model),
182
- Array.getSomes([
183
- maybeNextFrame,
184
- maybeUnlockScroll,
185
- maybeRestoreInert,
186
- ]),
187
- ],
182
+ }
183
+ return [
184
+ constrainedEvo(baseModel, { isOpen: () => true }),
185
+ Array.getSomes([maybeLockScroll, maybeInertOthers]),
186
+ ];
187
+ };
188
+ const closeCombobox = (baseModel, commands) => {
189
+ const closed = handlers.handleClose(baseModel);
190
+ if (model.isAnimated) {
191
+ const [nextModel, transitionCommands] = delegateToTransition(closed, TransitionHidden());
192
+ return [nextModel, [...commands, ...transitionCommands]];
193
+ }
194
+ return [closed, commands];
195
+ };
196
+ return M.value(message).pipe(withUpdateReturn, M.tagsExhaustive({
197
+ Opened: ({ maybeActiveItemIndex }) => openCombobox(constrainedEvo(model, {
198
+ maybeActiveItemIndex: () => maybeActiveItemIndex,
199
+ activationTrigger: () => Option.match(maybeActiveItemIndex, {
200
+ onNone: () => 'Pointer',
201
+ onSome: () => 'Keyboard',
202
+ }),
203
+ maybeLastPointerPosition: () => Option.none(),
204
+ })),
205
+ Closed: () => closeCombobox(model, [focusInput]),
206
+ ClosedByTab: () => closeCombobox(model, []),
188
207
  ActivatedItem: ({ index, activationTrigger, maybeImmediateSelection, }) => {
189
208
  const highlightedModel = constrainedEvo(model, {
190
209
  maybeActiveItemIndex: () => Option.some(index),
@@ -225,12 +244,18 @@ export const makeUpdate = (handlers) => {
225
244
  [],
226
245
  ]
227
246
  : [model, []],
228
- SelectedItem: ({ item, displayText }) => handlers.handleSelectedItem(model, item, displayText, {
229
- focusInput,
230
- maybeNextFrame,
231
- maybeUnlockScroll,
232
- maybeRestoreInert,
233
- }),
247
+ SelectedItem: ({ item, displayText }) => {
248
+ const [nextModel, commands] = handlers.handleSelectedItem(model, item, displayText, {
249
+ focusInput,
250
+ maybeUnlockScroll,
251
+ maybeRestoreInert,
252
+ });
253
+ if (model.isOpen && !nextModel.isOpen && model.isAnimated) {
254
+ const [transitionedModel, transitionCommands] = delegateToTransition(nextModel, TransitionHidden());
255
+ return [transitionedModel, [...commands, ...transitionCommands]];
256
+ }
257
+ return [nextModel, commands];
258
+ },
234
259
  RequestedItemClick: ({ index }) => [
235
260
  model,
236
261
  [
@@ -248,73 +273,25 @@ export const makeUpdate = (handlers) => {
248
273
  [],
249
274
  ];
250
275
  }
251
- const nextModel = constrainedEvo(model, {
252
- isOpen: () => true,
253
- transitionState: () => model.isAnimated ? 'EnterStart' : 'Idle',
276
+ return openCombobox(constrainedEvo(model, {
254
277
  inputValue: () => value,
255
278
  maybeActiveItemIndex: () => Option.some(0),
256
279
  activationTrigger: () => 'Keyboard',
257
280
  maybeLastPointerPosition: () => Option.none(),
258
- });
259
- return [
260
- nextModel,
261
- Array.getSomes([maybeNextFrame, maybeLockScroll, maybeInertOthers]),
262
- ];
281
+ }));
263
282
  },
264
283
  PressedToggleButton: () => {
265
284
  if (model.isOpen) {
266
- return [
267
- handlers.handleClose(model),
268
- pipe(Array.getSomes([
269
- maybeNextFrame,
270
- maybeUnlockScroll,
271
- maybeRestoreInert,
272
- ]), Array.prepend(focusInput)),
273
- ];
285
+ return closeCombobox(model, [focusInput]);
274
286
  }
275
- const nextModel = constrainedEvo(model, {
276
- isOpen: () => true,
277
- transitionState: () => model.isAnimated ? 'EnterStart' : 'Idle',
287
+ const [nextModel, commands] = openCombobox(constrainedEvo(model, {
278
288
  maybeActiveItemIndex: () => Option.none(),
279
289
  activationTrigger: () => 'Pointer',
280
290
  maybeLastPointerPosition: () => Option.none(),
281
- });
282
- return [
283
- nextModel,
284
- pipe(Array.getSomes([
285
- maybeNextFrame,
286
- maybeLockScroll,
287
- maybeInertOthers,
288
- ]), Array.prepend(focusInput)),
289
- ];
291
+ }));
292
+ return [nextModel, [focusInput, ...commands]];
290
293
  },
291
- AdvancedTransitionFrame: () => M.value(model.transitionState).pipe(withUpdateReturn, M.when('EnterStart', () => [
292
- constrainedEvo(model, {
293
- transitionState: () => 'EnterAnimating',
294
- }),
295
- [
296
- WaitForTransitions(Task.waitForTransitions(itemsSelector(model.id)).pipe(Effect.as(EndedTransition()))),
297
- ],
298
- ]), M.when('LeaveStart', () => [
299
- constrainedEvo(model, {
300
- transitionState: () => 'LeaveAnimating',
301
- }),
302
- [
303
- DetectMovementOrTransitionEnd(Effect.raceFirst(Task.detectElementMovement(inputWrapperSelector(model.id)).pipe(Effect.as(DetectedInputMovement())), Task.waitForTransitions(itemsSelector(model.id)).pipe(Effect.as(EndedTransition())))),
304
- ],
305
- ]), M.orElse(() => [model, []])),
306
- EndedTransition: () => M.value(model.transitionState).pipe(withUpdateReturn, M.whenOr('EnterAnimating', 'LeaveAnimating', () => [
307
- constrainedEvo(model, {
308
- transitionState: () => 'Idle',
309
- }),
310
- [],
311
- ]), M.orElse(() => [model, []])),
312
- DetectedInputMovement: () => M.value(model.transitionState).pipe(withUpdateReturn, M.when('LeaveAnimating', () => [
313
- constrainedEvo(model, {
314
- transitionState: () => 'Idle',
315
- }),
316
- [],
317
- ]), M.orElse(() => [model, []])),
294
+ GotTransitionMessage: ({ message: transitionMessage }) => delegateToTransition(model, transitionMessage),
318
295
  CompletedLockScroll: () => [model, []],
319
296
  CompletedUnlockScroll: () => [model, []],
320
297
  CompletedSetupInert: () => [model, []],
@@ -328,7 +305,7 @@ export const makeUpdate = (handlers) => {
328
305
  /** Creates a combobox view function from variant-specific behavior. Shared rendering logic (input, items, transitions, keyboard navigation) is handled internally; only selection display varies by variant. */
329
306
  export const makeView = (behavior) => (config) => {
330
307
  const { div, input, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaInvalid, AriaLabelledBy, AriaMultiSelectable, AriaSelected, Attribute, Autocomplete, Class, DataAttribute, Id, Name, OnBlur, OnClick, OnDestroy, OnFocus, OnInput, OnInsert, OnKeyDownPreventDefault, OnPointerLeave, OnPointerMove, Placeholder, Role, Style, Tabindex, Type, Value, keyed, } = html();
331
- const { model: { id, isOpen, immediate, transitionState, maybeActiveItemIndex }, toParentMessage, onSelectedItem, items, itemToConfig, itemToValue, itemToDisplayText, isItemDisabled, inputClassName, inputAttributes = [], inputPlaceholder, inputWrapperClassName, inputWrapperAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], buttonContent, buttonClassName, buttonAttributes = [], formName, isDisabled, isInvalid, openOnFocus, itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
308
+ const { model: { id, isOpen, immediate, transition: { transitionState }, maybeActiveItemIndex, }, toParentMessage, onSelectedItem, items, itemToConfig, itemToValue, itemToDisplayText, isItemDisabled, inputClassName, inputAttributes = [], inputPlaceholder, inputWrapperClassName, inputWrapperAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], buttonContent, buttonClassName, buttonAttributes = [], formName, isDisabled, isInvalid, openOnFocus, itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
332
309
  const dispatchSelectedItem = (item, index) => onSelectedItem
333
310
  ? onSelectedItem(itemToValue(item, index))
334
311
  : toParentMessage(SelectedItem({
@@ -10,7 +10,11 @@ export declare const Model: S.extend<S.Struct<{
10
10
  nullable: typeof S.Boolean;
11
11
  immediate: typeof S.Boolean;
12
12
  selectInputOnFocus: typeof S.Boolean;
13
- transitionState: S.Literal<["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
13
+ transition: S.Struct<{
14
+ id: typeof S.String;
15
+ isShowing: typeof S.Boolean;
16
+ transitionState: S.Literal<["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
17
+ }>;
14
18
  maybeActiveItemIndex: S.OptionFromSelf<typeof S.Number>;
15
19
  activationTrigger: S.Literal<["Pointer", "Keyboard"]>;
16
20
  inputValue: typeof S.String;
@@ -36,7 +40,11 @@ export declare const update: (model: {
36
40
  readonly isOpen: boolean;
37
41
  readonly isAnimated: boolean;
38
42
  readonly isModal: boolean;
39
- readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
43
+ readonly transition: {
44
+ readonly id: string;
45
+ readonly isShowing: boolean;
46
+ readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
47
+ };
40
48
  readonly maybeActiveItemIndex: Option.Option<number>;
41
49
  readonly activationTrigger: "Pointer" | "Keyboard";
42
50
  readonly maybeLastPointerPosition: Option.Option<{
@@ -55,7 +63,11 @@ export declare const update: (model: {
55
63
  readonly isOpen: boolean;
56
64
  readonly isAnimated: boolean;
57
65
  readonly isModal: boolean;
58
- readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
66
+ readonly transition: {
67
+ readonly id: string;
68
+ readonly isShowing: boolean;
69
+ readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
70
+ };
59
71
  readonly maybeActiveItemIndex: Option.Option<number>;
60
72
  readonly activationTrigger: "Pointer" | "Keyboard";
61
73
  readonly maybeLastPointerPosition: Option.Option<{
@@ -89,10 +101,6 @@ export declare const update: (model: {
89
101
  readonly _tag: "CompletedScrollIntoView";
90
102
  } | {
91
103
  readonly _tag: "CompletedClickItem";
92
- } | {
93
- readonly _tag: "AdvancedTransitionFrame";
94
- } | {
95
- readonly _tag: "EndedTransition";
96
104
  } | {
97
105
  readonly _tag: "Opened";
98
106
  readonly maybeActiveItemIndex: Option.Option<number>;
@@ -119,7 +127,16 @@ export declare const update: (model: {
119
127
  } | {
120
128
  readonly _tag: "CompletedFocusInput";
121
129
  } | {
122
- readonly _tag: "DetectedInputMovement";
130
+ readonly _tag: "GotTransitionMessage";
131
+ readonly message: {
132
+ readonly _tag: "Showed";
133
+ } | {
134
+ readonly _tag: "Hidden";
135
+ } | {
136
+ readonly _tag: "AdvancedTransitionFrame";
137
+ } | {
138
+ readonly _tag: "EndedTransition";
139
+ };
123
140
  } | {
124
141
  readonly _tag: "UpdatedInputValue";
125
142
  readonly value: string;
@@ -136,7 +153,11 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
136
153
  readonly isOpen: boolean;
137
154
  readonly isAnimated: boolean;
138
155
  readonly isModal: boolean;
139
- readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
156
+ readonly transition: {
157
+ readonly id: string;
158
+ readonly isShowing: boolean;
159
+ readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
160
+ };
140
161
  readonly maybeActiveItemIndex: Option.Option<number>;
141
162
  readonly activationTrigger: "Pointer" | "Keyboard";
142
163
  readonly maybeLastPointerPosition: Option.Option<{
@@ -151,7 +172,7 @@ export declare const view: <Message, Item extends string>(config: Readonly<{
151
172
  readonly maybeSelectedItem: Option.Option<string>;
152
173
  readonly maybeSelectedDisplayText: Option.Option<string>;
153
174
  };
154
- toParentMessage: (message: import("./shared").Opened | import("./shared").Closed | import("./shared").ClosedByTab | import("./shared").ActivatedItem | import("./shared").DeactivatedItem | import("./shared").SelectedItem | import("./shared").MovedPointerOverItem | import("./shared").RequestedItemClick | import("./shared").UpdatedInputValue | import("./shared").PressedToggleButton | import("./shared").CompletedLockScroll | import("./shared").CompletedUnlockScroll | import("./shared").CompletedSetupInert | import("./shared").CompletedTeardownInert | import("./shared").CompletedFocusInput | import("./shared").CompletedScrollIntoView | import("./shared").CompletedClickItem) => Message;
175
+ toParentMessage: (message: import("./shared").Opened | import("./shared").Closed | import("./shared").ClosedByTab | import("./shared").ActivatedItem | import("./shared").DeactivatedItem | import("./shared").SelectedItem | import("./shared").MovedPointerOverItem | import("./shared").RequestedItemClick | import("./shared").UpdatedInputValue | import("./shared").PressedToggleButton) => Message;
155
176
  onSelectedItem?: (value: string) => Message;
156
177
  items: readonly Item[];
157
178
  itemToConfig: (item: Item, context: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDjB,CAAA;AAIF,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0IAA0I;AAC1I,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzB,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,KACrE,IAAI,CAoBR,CAAA"}
1
+ {"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiDjB,CAAA;AAIF,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0IAA0I;AAC1I,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzB,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,KACrE,IAAI,CAoBR,CAAA"}
@@ -44,11 +44,7 @@ export const update = makeUpdate({
44
44
  });
45
45
  return [
46
46
  nextModel,
47
- pipe(Array.getSomes([
48
- context.maybeNextFrame,
49
- context.maybeUnlockScroll,
50
- context.maybeRestoreInert,
51
- ]), Array.prepend(context.focusInput)),
47
+ pipe(Array.getSomes([context.maybeUnlockScroll, context.maybeRestoreInert]), Array.prepend(context.focusInput)),
52
48
  ];
53
49
  },
54
50
  handleImmediateActivation: (model, item, displayText) => evo(model, {