foldkit 0.83.0 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +66 -4
- package/dist/devTools/protocol.d.ts +19 -2
- package/dist/devTools/protocol.d.ts.map +1 -1
- package/dist/devTools/protocol.js +5 -2
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +2 -0
- package/dist/devTools/store.d.ts +5 -1
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +37 -1
- package/dist/devTools/webSocketBridge.js +1 -0
- package/dist/html/index.d.ts +11 -0
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +58 -39
- package/dist/mount/index.d.ts +14 -1
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/mount/index.js +9 -1
- package/dist/mount/public.d.ts +1 -1
- package/dist/mount/public.d.ts.map +1 -1
- package/dist/mount/public.js +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +50 -5
- package/dist/scene/public.d.ts +2 -0
- package/dist/scene/public.d.ts.map +1 -0
- package/dist/scene/public.js +1 -0
- package/dist/story/public.d.ts +2 -0
- package/dist/story/public.d.ts.map +1 -0
- package/dist/story/public.js +1 -0
- package/dist/task/dom.d.ts +11 -7
- package/dist/task/dom.d.ts.map +1 -1
- package/dist/task/dom.js +11 -7
- package/dist/test/apps/mountPanel.d.ts +42 -0
- package/dist/test/apps/mountPanel.d.ts.map +1 -0
- package/dist/test/apps/mountPanel.js +76 -0
- package/dist/test/internal.d.ts +43 -0
- package/dist/test/internal.d.ts.map +1 -1
- package/dist/test/internal.js +93 -0
- package/dist/test/scene.d.ts +40 -14
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +195 -8
- package/dist/test/story.d.ts +17 -13
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +19 -5
- package/dist/ui/combobox/multi.d.ts +10 -10
- package/dist/ui/combobox/public.d.ts +1 -1
- package/dist/ui/combobox/public.d.ts.map +1 -1
- package/dist/ui/combobox/public.js +1 -1
- package/dist/ui/combobox/shared.d.ts +41 -15
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +45 -32
- package/dist/ui/combobox/single.d.ts +10 -10
- package/dist/ui/datePicker/index.d.ts +1 -1
- package/dist/ui/listbox/multi.d.ts +4 -8
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/public.d.ts +1 -1
- package/dist/ui/listbox/public.d.ts.map +1 -1
- package/dist/ui/listbox/public.js +1 -1
- package/dist/ui/listbox/shared.d.ts +20 -12
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +26 -35
- package/dist/ui/listbox/single.d.ts +4 -8
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/menu/index.d.ts +18 -8
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +30 -35
- package/dist/ui/menu/public.d.ts +1 -1
- package/dist/ui/menu/public.d.ts.map +1 -1
- package/dist/ui/menu/public.js +1 -1
- package/dist/ui/popover/index.d.ts +18 -5
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +25 -19
- package/dist/ui/popover/public.d.ts +1 -1
- package/dist/ui/popover/public.d.ts.map +1 -1
- package/dist/ui/popover/public.js +1 -1
- package/dist/ui/tooltip/index.d.ts +10 -3
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +13 -10
- package/dist/ui/tooltip/public.d.ts +1 -1
- package/dist/ui/tooltip/public.d.ts.map +1 -1
- package/dist/ui/tooltip/public.js +1 -1
- package/package.json +9 -1
|
@@ -95,13 +95,13 @@ export const CompletedScrollIntoView = m('CompletedScrollIntoView');
|
|
|
95
95
|
/** Sent when the programmatic item click command completes. */
|
|
96
96
|
export const CompletedClickItem = m('CompletedClickItem');
|
|
97
97
|
/** Sent when the items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
|
|
98
|
-
export const
|
|
98
|
+
export const CompletedAnchorCombobox = m('CompletedAnchorCombobox');
|
|
99
99
|
/** Sent when the items panel mounts and the capture-phase pointerdown listener is attached (with or without anchor). Update no-ops; surfaces the listener-attach side effect for DevTools. */
|
|
100
|
-
export const
|
|
100
|
+
export const CompletedAttachComboboxPreventBlur = m('CompletedAttachComboboxPreventBlur');
|
|
101
101
|
/** Sent when the input mounts and the focus listener that auto-selects on focus is attached. Update no-ops; surfaces the listener-attach side effect for DevTools. */
|
|
102
|
-
export const
|
|
102
|
+
export const CompletedAttachComboboxSelectOnFocus = m('CompletedAttachComboboxSelectOnFocus');
|
|
103
103
|
/** Sent when the combobox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
104
|
-
export const
|
|
104
|
+
export const CompletedPortalComboboxBackdrop = m('CompletedPortalComboboxBackdrop');
|
|
105
105
|
/** Wraps an Animation submodel message for delegation. */
|
|
106
106
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
107
107
|
message: AnimationMessage,
|
|
@@ -129,10 +129,10 @@ export const Message = S.Union([
|
|
|
129
129
|
CompletedFocusInput,
|
|
130
130
|
CompletedScrollIntoView,
|
|
131
131
|
CompletedClickItem,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
CompletedAnchorCombobox,
|
|
133
|
+
CompletedAttachComboboxPreventBlur,
|
|
134
|
+
CompletedAttachComboboxSelectOnFocus,
|
|
135
|
+
CompletedPortalComboboxBackdrop,
|
|
136
136
|
GotAnimationMessage,
|
|
137
137
|
UpdatedInputValue,
|
|
138
138
|
PressedToggleButton,
|
|
@@ -331,30 +331,43 @@ export const makeUpdate = (handlers) => {
|
|
|
331
331
|
CompletedFocusInput: () => [model, []],
|
|
332
332
|
CompletedScrollIntoView: () => [model, []],
|
|
333
333
|
CompletedClickItem: () => [model, []],
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
334
|
+
CompletedAnchorCombobox: () => [model, []],
|
|
335
|
+
CompletedAttachComboboxPreventBlur: () => [model, []],
|
|
336
|
+
CompletedAttachComboboxSelectOnFocus: () => [model, []],
|
|
337
|
+
CompletedPortalComboboxBackdrop: () => [model, []],
|
|
338
338
|
}));
|
|
339
339
|
};
|
|
340
340
|
};
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
const
|
|
345
|
-
|
|
341
|
+
/** The anchor-positioning Mount this Combobox renders when an anchor is
|
|
342
|
+
* configured. Exposed so Scene tests can call
|
|
343
|
+
* `Scene.Mount.resolve(AnchorCombobox, CompletedAnchorCombobox())`. */
|
|
344
|
+
export const AnchorCombobox = Mount.define('AnchorCombobox', CompletedAnchorCombobox);
|
|
345
|
+
/** The Mount this Combobox renders to install a `pointerdown`-cancelling
|
|
346
|
+
* capture listener that prevents blur on item presses. Exposed so Scene
|
|
347
|
+
* tests can call
|
|
348
|
+
* `Scene.Mount.resolve(AttachComboboxPreventBlur, CompletedAttachComboboxPreventBlur())`. */
|
|
349
|
+
export const AttachComboboxPreventBlur = Mount.define('AttachComboboxPreventBlur', CompletedAttachComboboxPreventBlur);
|
|
350
|
+
/** The Mount this Combobox renders to install the input's select-on-focus
|
|
351
|
+
* behavior. Exposed so Scene tests can call
|
|
352
|
+
* `Scene.Mount.resolve(AttachComboboxSelectOnFocus, CompletedAttachComboboxSelectOnFocus())`. */
|
|
353
|
+
export const AttachComboboxSelectOnFocus = Mount.define('AttachComboboxSelectOnFocus', CompletedAttachComboboxSelectOnFocus);
|
|
354
|
+
/** The backdrop-portaling Mount this Combobox renders. Exposed so Scene tests can
|
|
355
|
+
* call `Scene.Mount.resolve(PortalComboboxBackdrop, CompletedPortalComboboxBackdrop())` to
|
|
356
|
+
* acknowledge the mount produced by the rendered backdrop. */
|
|
357
|
+
export const PortalComboboxBackdrop = Mount.define('PortalComboboxBackdrop', CompletedPortalComboboxBackdrop);
|
|
358
|
+
const attachComboboxPreventBlur = AttachComboboxPreventBlur((element) => Effect.sync(() => {
|
|
346
359
|
const handler = (event) => {
|
|
347
360
|
event.preventDefault();
|
|
348
361
|
};
|
|
349
362
|
element.addEventListener('pointerdown', handler, { capture: true });
|
|
350
363
|
return {
|
|
351
|
-
message:
|
|
364
|
+
message: CompletedAttachComboboxPreventBlur(),
|
|
352
365
|
cleanup: () => element.removeEventListener('pointerdown', handler, {
|
|
353
366
|
capture: true,
|
|
354
367
|
}),
|
|
355
368
|
};
|
|
356
369
|
}));
|
|
357
|
-
const
|
|
370
|
+
const attachComboboxSelectOnFocus = AttachComboboxSelectOnFocus((element) => Effect.sync(() => {
|
|
358
371
|
const handler = () => {
|
|
359
372
|
if (element instanceof HTMLInputElement) {
|
|
360
373
|
element.select();
|
|
@@ -362,14 +375,14 @@ const attachSelectOnFocus = ComboboxAttachSelectOnFocus((element) => Effect.sync
|
|
|
362
375
|
};
|
|
363
376
|
element.addEventListener('focus', handler);
|
|
364
377
|
return {
|
|
365
|
-
message:
|
|
378
|
+
message: CompletedAttachComboboxSelectOnFocus(),
|
|
366
379
|
cleanup: () => element.removeEventListener('focus', handler),
|
|
367
380
|
};
|
|
368
381
|
}));
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}))
|
|
382
|
+
const portalComboboxBackdrop = PortalComboboxBackdrop((element) => Effect.sync(() => {
|
|
383
|
+
const cleanup = portalToBody(element);
|
|
384
|
+
return { message: CompletedPortalComboboxBackdrop(), cleanup };
|
|
385
|
+
}));
|
|
373
386
|
/** 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. */
|
|
374
387
|
export const makeView = (behavior) => (config) => {
|
|
375
388
|
const { div, input, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaInvalid, AriaLabelledBy, AriaMultiSelectable, AriaSelected, Attribute, Autocomplete, Class, DataAttribute, Id, Name, OnBlur, OnClick, OnFocus, OnInput, OnKeyDownPreventDefault, OnMount, OnPointerLeave, OnPointerMove, Placeholder, Role, Style, Tabindex, Type, Value, keyed, } = html();
|
|
@@ -484,7 +497,9 @@ export const makeView = (behavior) => (config) => {
|
|
|
484
497
|
...(isInvalid ? [AriaInvalid(true), DataAttribute('invalid', '')] : []),
|
|
485
498
|
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
486
499
|
...(config.model.selectInputOnFocus
|
|
487
|
-
? [
|
|
500
|
+
? [
|
|
501
|
+
OnMount(Mount.mapMessage(attachComboboxSelectOnFocus, toParentMessage)),
|
|
502
|
+
]
|
|
488
503
|
: []),
|
|
489
504
|
...(inputClassName ? [Class(inputClassName)] : []),
|
|
490
505
|
...inputAttributes,
|
|
@@ -492,7 +507,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
492
507
|
const anchorAttributes = anchor
|
|
493
508
|
? [
|
|
494
509
|
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
495
|
-
OnMount(Mount.mapMessage(
|
|
510
|
+
OnMount(Mount.mapMessage(AnchorCombobox((items) => Effect.sync(() => {
|
|
496
511
|
const preventBlur = (event) => {
|
|
497
512
|
event.preventDefault();
|
|
498
513
|
};
|
|
@@ -505,7 +520,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
505
520
|
interceptTab: false,
|
|
506
521
|
})(items);
|
|
507
522
|
return {
|
|
508
|
-
message:
|
|
523
|
+
message: CompletedAnchorCombobox(),
|
|
509
524
|
cleanup: () => {
|
|
510
525
|
items.removeEventListener('pointerdown', preventBlur, {
|
|
511
526
|
capture: true,
|
|
@@ -515,9 +530,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
515
530
|
};
|
|
516
531
|
})), toParentMessage)),
|
|
517
532
|
]
|
|
518
|
-
: [
|
|
519
|
-
OnMount(Mount.mapMessage(attachPreventBlurOnPointerDown, toParentMessage)),
|
|
520
|
-
];
|
|
533
|
+
: [OnMount(Mount.mapMessage(attachComboboxPreventBlur, toParentMessage))];
|
|
521
534
|
const itemsContainerAttributes = [
|
|
522
535
|
Id(`${id}-items`),
|
|
523
536
|
Role('listbox'),
|
|
@@ -605,7 +618,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
605
618
|
});
|
|
606
619
|
};
|
|
607
620
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
608
|
-
OnMount(Mount.mapMessage(
|
|
621
|
+
OnMount(Mount.mapMessage(portalComboboxBackdrop, toParentMessage)),
|
|
609
622
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
610
623
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
611
624
|
...backdropAttributes,
|
|
@@ -641,7 +654,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
641
654
|
...(isDisabled
|
|
642
655
|
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
643
656
|
: [OnClick(toParentMessage(PressedToggleButton()))]),
|
|
644
|
-
OnMount(Mount.mapMessage(
|
|
657
|
+
OnMount(Mount.mapMessage(attachComboboxPreventBlur, toParentMessage)),
|
|
645
658
|
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
646
659
|
...buttonAttributes,
|
|
647
660
|
], [buttonContent]),
|
|
@@ -97,10 +97,6 @@ export declare const update: (model: {
|
|
|
97
97
|
readonly _tag: "CompletedScrollIntoView";
|
|
98
98
|
} | {
|
|
99
99
|
readonly _tag: "CompletedClickItem";
|
|
100
|
-
} | {
|
|
101
|
-
readonly _tag: "CompletedAnchorMount";
|
|
102
|
-
} | {
|
|
103
|
-
readonly _tag: "CompletedBackdropPortal";
|
|
104
100
|
} | {
|
|
105
101
|
readonly _tag: "Opened";
|
|
106
102
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
@@ -129,9 +125,13 @@ export declare const update: (model: {
|
|
|
129
125
|
} | {
|
|
130
126
|
readonly _tag: "CompletedFocusInput";
|
|
131
127
|
} | {
|
|
132
|
-
readonly _tag: "
|
|
128
|
+
readonly _tag: "CompletedAnchorCombobox";
|
|
129
|
+
} | {
|
|
130
|
+
readonly _tag: "CompletedAttachComboboxPreventBlur";
|
|
131
|
+
} | {
|
|
132
|
+
readonly _tag: "CompletedAttachComboboxSelectOnFocus";
|
|
133
133
|
} | {
|
|
134
|
-
readonly _tag: "
|
|
134
|
+
readonly _tag: "CompletedPortalComboboxBackdrop";
|
|
135
135
|
} | {
|
|
136
136
|
readonly _tag: "GotAnimationMessage";
|
|
137
137
|
readonly message: {
|
|
@@ -187,13 +187,13 @@ export declare const view: <ParentMessage, Item extends string>(config: Readonly
|
|
|
187
187
|
readonly maybeSelectedDisplayText: Option.Option<string>;
|
|
188
188
|
};
|
|
189
189
|
toParentMessage: (message: Opened | Closed | import("./shared.js").BlurredInput | import("./shared.js").ActivatedItem | import("./shared.js").DeactivatedItem | SelectedItem | import("./shared.js").MovedPointerOverItem | import("./shared.js").RequestedItemClick | import("./shared.js").UpdatedInputValue | import("./shared.js").PressedToggleButton | {
|
|
190
|
-
readonly _tag: "
|
|
190
|
+
readonly _tag: "CompletedAnchorCombobox";
|
|
191
191
|
} | {
|
|
192
|
-
readonly _tag: "
|
|
192
|
+
readonly _tag: "CompletedAttachComboboxPreventBlur";
|
|
193
193
|
} | {
|
|
194
|
-
readonly _tag: "
|
|
194
|
+
readonly _tag: "CompletedAttachComboboxSelectOnFocus";
|
|
195
195
|
} | {
|
|
196
|
-
readonly _tag: "
|
|
196
|
+
readonly _tag: "CompletedPortalComboboxBackdrop";
|
|
197
197
|
}) => ParentMessage;
|
|
198
198
|
onSelectedItem?: (value: string) => ParentMessage;
|
|
199
199
|
items: readonly Item[];
|
|
@@ -105,7 +105,7 @@ export declare const GotPopoverMessage: import("../../schema/index.js").Callable
|
|
|
105
105
|
message: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"Opened", {}>, import("../../schema/index.js").CallableTaggedStruct<"Closed", {}>, import("../../schema/index.js").CallableTaggedStruct<"BlurredPanel", {}>, import("../../schema/index.js").CallableTaggedStruct<"PressedPointerOnButton", {
|
|
106
106
|
pointerType: S.String;
|
|
107
107
|
button: S.Number;
|
|
108
|
-
}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusPanel", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusButton", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedLockScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedUnlockScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedSetupInert", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedTeardownInert", {}>, import("../../schema/index.js").CallableTaggedStruct<"IgnoredMouseClick", {}>, import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"
|
|
108
|
+
}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusPanel", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusButton", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedLockScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedUnlockScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedSetupInert", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedTeardownInert", {}>, import("../../schema/index.js").CallableTaggedStruct<"IgnoredMouseClick", {}>, import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorPopover", {}>, import("../../schema/index.js").CallableTaggedStruct<"CompletedPortalPopoverBackdrop", {}>, import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
109
109
|
message: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"Showed", {}>, import("../../schema/index.js").CallableTaggedStruct<"Hid", {}>, import("../../schema/index.js").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("../../schema/index.js").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
110
110
|
}>]>;
|
|
111
111
|
}>;
|
|
@@ -129,11 +129,9 @@ export declare const update: (model: {
|
|
|
129
129
|
} | {
|
|
130
130
|
readonly _tag: "SuppressedSpaceScroll";
|
|
131
131
|
} | {
|
|
132
|
-
readonly _tag: "
|
|
132
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
133
133
|
} | {
|
|
134
|
-
readonly _tag: "
|
|
135
|
-
} | {
|
|
136
|
-
readonly _tag: "CompletedBackdropPortal";
|
|
134
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
137
135
|
} | {
|
|
138
136
|
readonly _tag: "GotAnimationMessage";
|
|
139
137
|
readonly message: {
|
|
@@ -186,11 +184,9 @@ export declare const view: <ParentMessage, Item>(config: Readonly<{
|
|
|
186
184
|
readonly selectedItems: readonly string[];
|
|
187
185
|
};
|
|
188
186
|
toParentMessage: (message: Opened | Closed | import("./shared.js").BlurredItems | import("./shared.js").ActivatedItem | import("./shared.js").DeactivatedItem | SelectedItem | import("./shared.js").MovedPointerOverItem | import("./shared.js").RequestedItemClick | import("./shared.js").Searched | import("./shared.js").PressedPointerOnButton | import("./shared.js").IgnoredMouseClick | import("./shared.js").SuppressedSpaceScroll | {
|
|
189
|
-
readonly _tag: "
|
|
190
|
-
} | {
|
|
191
|
-
readonly _tag: "CompletedFocusItemsOnMount";
|
|
187
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
192
188
|
} | {
|
|
193
|
-
readonly _tag: "
|
|
189
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
194
190
|
}) => ParentMessage;
|
|
195
191
|
onSelectedItem?: (value: string) => ParentMessage;
|
|
196
192
|
items: readonly Item[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,iKAAiK;AACjK,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,6RAA6R;AAC7R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC,CAAA;AAEJ,4HAA4H;AAC5H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,wJAAwJ;AACxJ,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,iKAAiK;AACjK,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,6RAA6R;AAC7R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC,CAAA;AAEJ,4HAA4H;AAC5H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,wJAAwJ;AACxJ,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMjB,CAAA;AAEF;uFACuF;AACvF,eAAO,MAAM,IAAI,GACf,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACK,CAAA;AAEhE;wFACwF;AACxF,eAAO,MAAM,KAAK,GAChB,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAClC,CAAA;AAEzB,8IAA8I;AAC9I,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,MAAM,MAAM,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACpB,CAAA;AAIvC,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,IAAI,cAAc,CAC1D,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0JAA0J;AAC1J,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAYf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,aAAa,EAAE,IAAI,EACtC,cAAc,IAAI,CAChB,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAC/B,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAC7B,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAC,iBAAiB,CAAC,KACjB,IAAI,CAoBR,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { init, update, open, close, selectItem, view, lazy, Model, } from './single.js';
|
|
2
|
-
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem,
|
|
2
|
+
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorListbox, CompletedPortalListboxBackdrop, AnchorListbox, PortalListboxBackdrop, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusButton, FocusItems, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './shared.js';
|
|
3
3
|
export type { ActivationTrigger, Opened, Closed, BlurredItems, ActivatedItem, DeactivatedItem, MovedPointerOverItem, RequestedItemClick, Searched, PressedPointerOnButton, IgnoredMouseClick, SuppressedSpaceScroll, ItemConfig, GroupHeading, } from './shared.js';
|
|
4
4
|
export type { InitConfig, ViewConfig } from './single.js';
|
|
5
5
|
export type { AnchorConfig } from '../anchor.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,GACN,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,GACN,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEzD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { init, update, open, close, selectItem, view, lazy, Model, } from './single.js';
|
|
2
|
-
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem,
|
|
2
|
+
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorListbox, CompletedPortalListboxBackdrop, AnchorListbox, PortalListboxBackdrop, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusButton, FocusItems, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './shared.js';
|
|
3
3
|
export * as Multi from './multiPublic.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Effect, Option, Schema as S } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { type Attribute, type Html } from '../../html/index.js';
|
|
4
|
+
import * as Mount from '../../mount/index.js';
|
|
4
5
|
import type { AnchorConfig } from '../anchor.js';
|
|
5
6
|
import { resolveTypeaheadMatch } from '../typeahead.js';
|
|
6
7
|
export { resolveTypeaheadMatch };
|
|
@@ -101,11 +102,9 @@ export declare const IgnoredMouseClick: import("../../schema/index.js").Callable
|
|
|
101
102
|
/** Sent when a Space key-up is captured to prevent page scrolling. */
|
|
102
103
|
export declare const SuppressedSpaceScroll: import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>;
|
|
103
104
|
/** Sent when the listbox items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
|
|
104
|
-
export declare const
|
|
105
|
-
/** Sent when the listbox items panel mounts and the no-anchor focus fallback runs. Update no-ops; surfaces the focus side effect for DevTools. */
|
|
106
|
-
export declare const CompletedFocusItemsOnMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusItemsOnMount", {}>;
|
|
105
|
+
export declare const CompletedAnchorListbox: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorListbox", {}>;
|
|
107
106
|
/** Sent when the listbox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
108
|
-
export declare const
|
|
107
|
+
export declare const CompletedPortalListboxBackdrop: import("../../schema/index.js").CallableTaggedStruct<"CompletedPortalListboxBackdrop", {}>;
|
|
109
108
|
/** Wraps an Animation submodel message for delegation. */
|
|
110
109
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
111
110
|
message: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"Showed", {}>, import("../../schema/index.js").CallableTaggedStruct<"Hid", {}>, import("../../schema/index.js").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("../../schema/index.js").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
@@ -137,9 +136,8 @@ export declare const Message: S.Union<[
|
|
|
137
136
|
typeof CompletedClickItem,
|
|
138
137
|
typeof IgnoredMouseClick,
|
|
139
138
|
typeof SuppressedSpaceScroll,
|
|
140
|
-
typeof
|
|
141
|
-
typeof
|
|
142
|
-
typeof CompletedBackdropPortal,
|
|
139
|
+
typeof CompletedAnchorListbox,
|
|
140
|
+
typeof CompletedPortalListboxBackdrop,
|
|
143
141
|
typeof GotAnimationMessage,
|
|
144
142
|
typeof PressedPointerOnButton
|
|
145
143
|
]>;
|
|
@@ -272,11 +270,9 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
272
270
|
} | {
|
|
273
271
|
readonly _tag: "SuppressedSpaceScroll";
|
|
274
272
|
} | {
|
|
275
|
-
readonly _tag: "
|
|
273
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
276
274
|
} | {
|
|
277
|
-
readonly _tag: "
|
|
278
|
-
} | {
|
|
279
|
-
readonly _tag: "CompletedBackdropPortal";
|
|
275
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
280
276
|
} | {
|
|
281
277
|
readonly _tag: "GotAnimationMessage";
|
|
282
278
|
readonly message: {
|
|
@@ -294,6 +290,18 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
294
290
|
readonly pointerType: string;
|
|
295
291
|
}, never, never>;
|
|
296
292
|
}>[]];
|
|
293
|
+
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
294
|
+
* configured. Exposed so Scene tests can call
|
|
295
|
+
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
296
|
+
export declare const AnchorListbox: Mount.MountDefinition<"AnchorListbox", {
|
|
297
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
298
|
+
}>;
|
|
299
|
+
/** The backdrop-portaling Mount this Listbox renders. Exposed so Scene tests can
|
|
300
|
+
* call `Scene.Mount.resolve(PortalListboxBackdrop, CompletedPortalListboxBackdrop())` to
|
|
301
|
+
* acknowledge the mount produced by the rendered backdrop. */
|
|
302
|
+
export declare const PortalListboxBackdrop: Mount.MountDefinition<"PortalListboxBackdrop", {
|
|
303
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
304
|
+
}>;
|
|
297
305
|
/** Configuration for an individual listbox item's appearance. */
|
|
298
306
|
export type ItemConfig = Readonly<{
|
|
299
307
|
className?: string;
|
|
@@ -307,7 +315,7 @@ export type GroupHeading = Readonly<{
|
|
|
307
315
|
/** Configuration for rendering a listbox with `view`. */
|
|
308
316
|
export type BaseViewConfig<ParentMessage, Item, Model extends BaseModel> = Readonly<{
|
|
309
317
|
model: Model;
|
|
310
|
-
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof
|
|
318
|
+
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorListbox.Type | typeof CompletedPortalListboxBackdrop.Type) => ParentMessage;
|
|
311
319
|
onSelectedItem?: (value: string) => ParentMessage;
|
|
312
320
|
items: ReadonlyArray<Item>;
|
|
313
321
|
itemToConfig: (item: Item, context: Readonly<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Effect, Equal,
|
|
1
|
+
import { Array, Effect, Equal, Match as M, Option, Predicate, Schema as S, String as Str, pipe, } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { OptionExt } from '../../effectExtensions/index.js';
|
|
4
4
|
import { html, } from '../../html/index.js';
|
|
@@ -107,11 +107,9 @@ export const IgnoredMouseClick = m('IgnoredMouseClick');
|
|
|
107
107
|
/** Sent when a Space key-up is captured to prevent page scrolling. */
|
|
108
108
|
export const SuppressedSpaceScroll = m('SuppressedSpaceScroll');
|
|
109
109
|
/** Sent when the listbox items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
|
|
110
|
-
export const
|
|
111
|
-
/** Sent when the listbox items panel mounts and the no-anchor focus fallback runs. Update no-ops; surfaces the focus side effect for DevTools. */
|
|
112
|
-
export const CompletedFocusItemsOnMount = m('CompletedFocusItemsOnMount');
|
|
110
|
+
export const CompletedAnchorListbox = m('CompletedAnchorListbox');
|
|
113
111
|
/** Sent when the listbox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
114
|
-
export const
|
|
112
|
+
export const CompletedPortalListboxBackdrop = m('CompletedPortalListboxBackdrop');
|
|
115
113
|
/** Wraps an Animation submodel message for delegation. */
|
|
116
114
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
117
115
|
message: AnimationMessage,
|
|
@@ -143,9 +141,8 @@ export const Message = S.Union([
|
|
|
143
141
|
CompletedClickItem,
|
|
144
142
|
IgnoredMouseClick,
|
|
145
143
|
SuppressedSpaceScroll,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
CompletedBackdropPortal,
|
|
144
|
+
CompletedAnchorListbox,
|
|
145
|
+
CompletedPortalListboxBackdrop,
|
|
149
146
|
GotAnimationMessage,
|
|
150
147
|
PressedPointerOnButton,
|
|
151
148
|
]);
|
|
@@ -239,8 +236,8 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
239
236
|
const focusButton = FocusButton(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusButton())));
|
|
240
237
|
const focusItems = FocusItems(Task.focus(itemsSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusItems())));
|
|
241
238
|
const openCommands = [
|
|
242
|
-
focusItems,
|
|
243
239
|
...Array.getSomes([maybeLockScroll, maybeInertOthers]),
|
|
240
|
+
focusItems,
|
|
244
241
|
];
|
|
245
242
|
const closeWithFocusCommands = [
|
|
246
243
|
focusButton,
|
|
@@ -371,28 +368,23 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
371
368
|
[],
|
|
372
369
|
],
|
|
373
370
|
SuppressedSpaceScroll: () => [model, []],
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
CompletedBackdropPortal: () => [model, []],
|
|
371
|
+
CompletedAnchorListbox: () => [model, []],
|
|
372
|
+
CompletedPortalListboxBackdrop: () => [model, []],
|
|
377
373
|
}));
|
|
378
374
|
};
|
|
379
375
|
};
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
};
|
|
376
|
+
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
377
|
+
* configured. Exposed so Scene tests can call
|
|
378
|
+
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
379
|
+
export const AnchorListbox = Mount.define('AnchorListbox', CompletedAnchorListbox);
|
|
380
|
+
/** The backdrop-portaling Mount this Listbox renders. Exposed so Scene tests can
|
|
381
|
+
* call `Scene.Mount.resolve(PortalListboxBackdrop, CompletedPortalListboxBackdrop())` to
|
|
382
|
+
* acknowledge the mount produced by the rendered backdrop. */
|
|
383
|
+
export const PortalListboxBackdrop = Mount.define('PortalListboxBackdrop', CompletedPortalListboxBackdrop);
|
|
384
|
+
const portalListboxBackdrop = PortalListboxBackdrop((element) => Effect.sync(() => {
|
|
385
|
+
const cleanup = portalToBody(element);
|
|
386
|
+
return { message: CompletedPortalListboxBackdrop(), cleanup };
|
|
391
387
|
}));
|
|
392
|
-
const portalBackdropOnMount = ListboxBackdropPortal((element) => Effect.sync(() => ({
|
|
393
|
-
message: CompletedBackdropPortal(),
|
|
394
|
-
cleanup: portalToBody(element),
|
|
395
|
-
})));
|
|
396
388
|
export const makeView = (behavior) => (config) => {
|
|
397
389
|
const { div, input, AriaActiveDescendant, AriaControls, AriaDisabled, AriaExpanded, AriaHasPopup, AriaLabelledBy, AriaMultiSelectable, AriaOrientation, AriaSelected, Attribute, Class, DataAttribute, Id, Name, OnBlur, OnClick, OnKeyDownPreventDefault, OnKeyUpPreventDefault, OnMount, OnPointerDown, OnPointerLeave, OnPointerMove, Role, Style, Tabindex, Type, Value, keyed, } = html();
|
|
398
390
|
const { model: { id, isOpen, orientation, animation: { transitionState }, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, }, toParentMessage, onSelectedItem, items, itemToConfig, isItemDisabled, isButtonDisabled, buttonContent, buttonClassName, buttonAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, name, form, isDisabled, isInvalid, } = config;
|
|
@@ -508,16 +500,15 @@ export const makeView = (behavior) => (config) => {
|
|
|
508
500
|
const anchorAttributes = anchor
|
|
509
501
|
? [
|
|
510
502
|
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
511
|
-
OnMount(Mount.mapMessage(
|
|
512
|
-
|
|
513
|
-
cleanup: anchorSetup({
|
|
503
|
+
OnMount(Mount.mapMessage(AnchorListbox((items) => Effect.sync(() => {
|
|
504
|
+
const cleanup = anchorSetup({
|
|
514
505
|
buttonId: `${id}-button`,
|
|
515
506
|
anchor,
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
}))
|
|
507
|
+
})(items);
|
|
508
|
+
return { message: CompletedAnchorListbox(), cleanup };
|
|
509
|
+
})), toParentMessage)),
|
|
519
510
|
]
|
|
520
|
-
: [
|
|
511
|
+
: [];
|
|
521
512
|
const itemsContainerAttributes = [
|
|
522
513
|
Id(`${id}-items`),
|
|
523
514
|
Role('listbox'),
|
|
@@ -614,7 +605,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
614
605
|
});
|
|
615
606
|
};
|
|
616
607
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
617
|
-
OnMount(Mount.mapMessage(
|
|
608
|
+
OnMount(Mount.mapMessage(portalListboxBackdrop, toParentMessage)),
|
|
618
609
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
619
610
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
620
611
|
...backdropAttributes,
|
|
@@ -129,11 +129,9 @@ export declare const update: (model: {
|
|
|
129
129
|
} | {
|
|
130
130
|
readonly _tag: "SuppressedSpaceScroll";
|
|
131
131
|
} | {
|
|
132
|
-
readonly _tag: "
|
|
132
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
133
133
|
} | {
|
|
134
|
-
readonly _tag: "
|
|
135
|
-
} | {
|
|
136
|
-
readonly _tag: "CompletedBackdropPortal";
|
|
134
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
137
135
|
} | {
|
|
138
136
|
readonly _tag: "GotAnimationMessage";
|
|
139
137
|
readonly message: {
|
|
@@ -187,11 +185,9 @@ export declare const view: <ParentMessage, Item>(config: Readonly<{
|
|
|
187
185
|
readonly maybeSelectedItem: Option.Option<string>;
|
|
188
186
|
};
|
|
189
187
|
toParentMessage: (message: Opened | Closed | import("./shared.js").BlurredItems | import("./shared.js").ActivatedItem | import("./shared.js").DeactivatedItem | SelectedItem | import("./shared.js").MovedPointerOverItem | import("./shared.js").RequestedItemClick | import("./shared.js").Searched | import("./shared.js").PressedPointerOnButton | import("./shared.js").IgnoredMouseClick | import("./shared.js").SuppressedSpaceScroll | {
|
|
190
|
-
readonly _tag: "
|
|
191
|
-
} | {
|
|
192
|
-
readonly _tag: "CompletedFocusItemsOnMount";
|
|
188
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
193
189
|
} | {
|
|
194
|
-
readonly _tag: "
|
|
190
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
195
191
|
}) => ParentMessage;
|
|
196
192
|
onSelectedItem?: (value: string) => ParentMessage;
|
|
197
193
|
items: readonly Item[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEnD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,mJAAmJ;AACnJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,6RAA6R;AAC7R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEJ,6HAA6H;AAC7H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,qIAAqI;AACrI,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEnD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,mJAAmJ;AACnJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,6RAA6R;AAC7R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEJ,6HAA6H;AAC7H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,qIAAqI;AACrI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMjB,CAAA;AAEF;uFACuF;AACvF,eAAO,MAAM,IAAI,GACf,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACK,CAAA;AAEhE;wFACwF;AACxF,eAAO,MAAM,KAAK,GAChB,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAClC,CAAA;AAEzB;gGACgG;AAChG,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,MAAM,MAAM,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACpB,CAAA;AAIvC,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,IAAI,cAAc,CAC1D,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAA;AAED,2JAA2J;AAC3J,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAWf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,aAAa,EAAE,IAAI,EACtC,cAAc,IAAI,CAChB,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAC/B,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAC7B,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAC,iBAAiB,CAAC,KACjB,IAAI,CAoBR,CAAA"}
|