foldkit 0.82.8 → 0.83.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/dist/task/dom.d.ts +11 -1
- package/dist/task/dom.d.ts.map +1 -1
- package/dist/task/dom.js +44 -32
- package/dist/ui/anchor.d.ts +6 -0
- package/dist/ui/anchor.d.ts.map +1 -1
- package/dist/ui/anchor.js +27 -16
- package/dist/ui/animation/index.d.ts +4 -4
- package/dist/ui/animation/index.d.ts.map +1 -1
- package/dist/ui/button/index.d.ts +6 -6
- package/dist/ui/button/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +2 -2
- package/dist/ui/checkbox/index.d.ts +10 -10
- package/dist/ui/checkbox/index.d.ts.map +1 -1
- package/dist/ui/checkbox/index.js +2 -2
- package/dist/ui/combobox/multi.d.ts +18 -14
- package/dist/ui/combobox/multi.d.ts.map +1 -1
- package/dist/ui/combobox/multi.js +2 -2
- 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 +18 -13
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +11 -1
- package/dist/ui/combobox/single.d.ts +18 -14
- package/dist/ui/combobox/single.d.ts.map +1 -1
- package/dist/ui/combobox/single.js +2 -2
- package/dist/ui/datePicker/index.d.ts +1 -1
- package/dist/ui/datePicker/index.js +2 -2
- package/dist/ui/dialog/index.d.ts +8 -8
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +2 -2
- package/dist/ui/disclosure/index.d.ts +8 -8
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +2 -2
- package/dist/ui/dragAndDrop/index.d.ts +5 -5
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/fieldset/index.d.ts +7 -7
- package/dist/ui/fieldset/index.d.ts.map +1 -1
- package/dist/ui/fileDrop/index.js +2 -2
- package/dist/ui/input/index.d.ts +8 -8
- package/dist/ui/input/index.d.ts.map +1 -1
- package/dist/ui/listbox/multi.d.ts +16 -12
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/multi.js +2 -2
- 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 +16 -11
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +11 -1
- package/dist/ui/listbox/single.d.ts +16 -12
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/listbox/single.js +2 -2
- package/dist/ui/menu/index.d.ts +15 -12
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +13 -3
- 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 +13 -10
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +13 -3
- 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/radioGroup/index.d.ts +13 -13
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +2 -2
- package/dist/ui/select/index.d.ts +8 -8
- package/dist/ui/select/index.d.ts.map +1 -1
- package/dist/ui/slider/index.d.ts +12 -12
- package/dist/ui/slider/index.d.ts.map +1 -1
- package/dist/ui/slider/index.js +2 -2
- package/dist/ui/switch/index.d.ts +10 -10
- package/dist/ui/switch/index.d.ts.map +1 -1
- package/dist/ui/switch/index.js +2 -2
- package/dist/ui/tabs/index.d.ts +11 -11
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +2 -2
- package/dist/ui/textarea/index.d.ts +8 -8
- package/dist/ui/textarea/index.d.ts.map +1 -1
- package/dist/ui/toast/index.js +2 -2
- package/dist/ui/tooltip/index.d.ts +7 -7
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +2 -2
- package/dist/ui/virtualList/index.d.ts +4 -4
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/ui/listbox/multi.js
CHANGED
|
@@ -39,9 +39,9 @@ export const view = makeView({
|
|
|
39
39
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
40
40
|
export const lazy = (staticConfig) => {
|
|
41
41
|
const lazyView = createLazy();
|
|
42
|
-
return (model, toParentMessage) => lazyView((currentModel,
|
|
42
|
+
return (model, toParentMessage) => lazyView((currentModel, currentToParentMessage) => view({
|
|
43
43
|
...staticConfig,
|
|
44
44
|
model: currentModel,
|
|
45
|
-
toParentMessage:
|
|
45
|
+
toParentMessage: currentToParentMessage,
|
|
46
46
|
}), [model, toParentMessage]);
|
|
47
47
|
};
|
|
@@ -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, CompletedAnchorMount, CompletedFocusItemsOnMount, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusButton, FocusItems, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './shared.js';
|
|
2
|
+
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, CompletedBackdropPortal, 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,oBAAoB,EACpB,0BAA0B,EAC1B,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
|
+
{"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,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,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, CompletedAnchorMount, CompletedFocusItemsOnMount, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusButton, FocusItems, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './shared.js';
|
|
2
|
+
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusButton, CompletedFocusItems, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, CompletedBackdropPortal, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusButton, FocusItems, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './shared.js';
|
|
3
3
|
export * as Multi from './multiPublic.js';
|
|
@@ -104,6 +104,8 @@ export declare const SuppressedSpaceScroll: import("../../schema/index.js").Call
|
|
|
104
104
|
export declare const CompletedAnchorMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorMount", {}>;
|
|
105
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
106
|
export declare const CompletedFocusItemsOnMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusItemsOnMount", {}>;
|
|
107
|
+
/** 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 CompletedBackdropPortal: import("../../schema/index.js").CallableTaggedStruct<"CompletedBackdropPortal", {}>;
|
|
107
109
|
/** Wraps an Animation submodel message for delegation. */
|
|
108
110
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
109
111
|
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,6 +139,7 @@ export declare const Message: S.Union<[
|
|
|
137
139
|
typeof SuppressedSpaceScroll,
|
|
138
140
|
typeof CompletedAnchorMount,
|
|
139
141
|
typeof CompletedFocusItemsOnMount,
|
|
142
|
+
typeof CompletedBackdropPortal,
|
|
140
143
|
typeof GotAnimationMessage,
|
|
141
144
|
typeof PressedPointerOnButton
|
|
142
145
|
]>;
|
|
@@ -272,6 +275,8 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
272
275
|
readonly _tag: "CompletedAnchorMount";
|
|
273
276
|
} | {
|
|
274
277
|
readonly _tag: "CompletedFocusItemsOnMount";
|
|
278
|
+
} | {
|
|
279
|
+
readonly _tag: "CompletedBackdropPortal";
|
|
275
280
|
} | {
|
|
276
281
|
readonly _tag: "GotAnimationMessage";
|
|
277
282
|
readonly message: {
|
|
@@ -300,10 +305,10 @@ export type GroupHeading = Readonly<{
|
|
|
300
305
|
className?: string;
|
|
301
306
|
}>;
|
|
302
307
|
/** Configuration for rendering a listbox with `view`. */
|
|
303
|
-
export type BaseViewConfig<
|
|
308
|
+
export type BaseViewConfig<ParentMessage, Item, Model extends BaseModel> = Readonly<{
|
|
304
309
|
model: Model;
|
|
305
|
-
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type | typeof CompletedFocusItemsOnMount.Type) =>
|
|
306
|
-
onSelectedItem?: (value: string) =>
|
|
310
|
+
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type | typeof CompletedFocusItemsOnMount.Type | typeof CompletedBackdropPortal.Type) => ParentMessage;
|
|
311
|
+
onSelectedItem?: (value: string) => ParentMessage;
|
|
307
312
|
items: ReadonlyArray<Item>;
|
|
308
313
|
itemToConfig: (item: Item, context: Readonly<{
|
|
309
314
|
isActive: boolean;
|
|
@@ -316,21 +321,21 @@ export type BaseViewConfig<Message, Item, Model extends BaseModel> = Readonly<{
|
|
|
316
321
|
isButtonDisabled?: boolean;
|
|
317
322
|
buttonContent: Html;
|
|
318
323
|
buttonClassName?: string;
|
|
319
|
-
buttonAttributes?: ReadonlyArray<Attribute<
|
|
324
|
+
buttonAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
320
325
|
itemsClassName?: string;
|
|
321
|
-
itemsAttributes?: ReadonlyArray<Attribute<
|
|
326
|
+
itemsAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
322
327
|
itemsScrollClassName?: string;
|
|
323
|
-
itemsScrollAttributes?: ReadonlyArray<Attribute<
|
|
328
|
+
itemsScrollAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
324
329
|
backdropClassName?: string;
|
|
325
|
-
backdropAttributes?: ReadonlyArray<Attribute<
|
|
330
|
+
backdropAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
326
331
|
className?: string;
|
|
327
|
-
attributes?: ReadonlyArray<Attribute<
|
|
332
|
+
attributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
328
333
|
itemGroupKey?: (item: Item, index: number) => string;
|
|
329
334
|
groupToHeading?: (groupKey: string) => GroupHeading | undefined;
|
|
330
335
|
groupClassName?: string;
|
|
331
|
-
groupAttributes?: ReadonlyArray<Attribute<
|
|
336
|
+
groupAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
332
337
|
separatorClassName?: string;
|
|
333
|
-
separatorAttributes?: ReadonlyArray<Attribute<
|
|
338
|
+
separatorAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
334
339
|
anchor?: AnchorConfig;
|
|
335
340
|
name?: string;
|
|
336
341
|
form?: string;
|
|
@@ -342,5 +347,5 @@ type ViewBehavior<Model extends BaseModel> = Readonly<{
|
|
|
342
347
|
selectedItemIndex: <Item>(model: Model, items: ReadonlyArray<Item>, itemToValue: (item: Item) => string) => Option.Option<number>;
|
|
343
348
|
ariaMultiSelectable: boolean;
|
|
344
349
|
}>;
|
|
345
|
-
export declare const makeView: <Model extends BaseModel>(behavior: ViewBehavior<Model>) => <
|
|
350
|
+
export declare const makeView: <Model extends BaseModel>(behavior: ViewBehavior<Model>) => <ParentMessage, Item>(config: BaseViewConfig<ParentMessage, Item, Model>) => Html;
|
|
346
351
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { m } from '../../message/index.js';
|
|
|
6
6
|
import * as Mount from '../../mount/index.js';
|
|
7
7
|
import { makeConstrainedEvo } from '../../struct/index.js';
|
|
8
8
|
import * as Task from '../../task/index.js';
|
|
9
|
-
import { anchorSetup } from '../anchor.js';
|
|
9
|
+
import { anchorSetup, portalToBody } from '../anchor.js';
|
|
10
10
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
11
11
|
// dependency: animation → html → runtime → devtools → listbox → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -110,6 +110,8 @@ export const SuppressedSpaceScroll = m('SuppressedSpaceScroll');
|
|
|
110
110
|
export const CompletedAnchorMount = m('CompletedAnchorMount');
|
|
111
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
112
|
export const CompletedFocusItemsOnMount = m('CompletedFocusItemsOnMount');
|
|
113
|
+
/** 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 CompletedBackdropPortal = m('CompletedBackdropPortal');
|
|
113
115
|
/** Wraps an Animation submodel message for delegation. */
|
|
114
116
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
115
117
|
message: AnimationMessage,
|
|
@@ -143,6 +145,7 @@ export const Message = S.Union([
|
|
|
143
145
|
SuppressedSpaceScroll,
|
|
144
146
|
CompletedAnchorMount,
|
|
145
147
|
CompletedFocusItemsOnMount,
|
|
148
|
+
CompletedBackdropPortal,
|
|
146
149
|
GotAnimationMessage,
|
|
147
150
|
PressedPointerOnButton,
|
|
148
151
|
]);
|
|
@@ -370,11 +373,13 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
370
373
|
SuppressedSpaceScroll: () => [model, []],
|
|
371
374
|
CompletedAnchorMount: () => [model, []],
|
|
372
375
|
CompletedFocusItemsOnMount: () => [model, []],
|
|
376
|
+
CompletedBackdropPortal: () => [model, []],
|
|
373
377
|
}));
|
|
374
378
|
};
|
|
375
379
|
};
|
|
376
380
|
const ListboxAnchor = Mount.define('ListboxAnchor', CompletedAnchorMount);
|
|
377
381
|
const ListboxFocusItemsOnMount = Mount.define('ListboxFocusItemsOnMount', CompletedFocusItemsOnMount);
|
|
382
|
+
const ListboxBackdropPortal = Mount.define('ListboxBackdropPortal', CompletedBackdropPortal);
|
|
378
383
|
const focusItemsOnMount = ListboxFocusItemsOnMount((element) => Effect.sync(() => {
|
|
379
384
|
if (element instanceof HTMLElement) {
|
|
380
385
|
element.focus();
|
|
@@ -384,6 +389,10 @@ const focusItemsOnMount = ListboxFocusItemsOnMount((element) => Effect.sync(() =
|
|
|
384
389
|
cleanup: Function.constVoid,
|
|
385
390
|
};
|
|
386
391
|
}));
|
|
392
|
+
const portalBackdropOnMount = ListboxBackdropPortal((element) => Effect.sync(() => ({
|
|
393
|
+
message: CompletedBackdropPortal(),
|
|
394
|
+
cleanup: portalToBody(element),
|
|
395
|
+
})));
|
|
387
396
|
export const makeView = (behavior) => (config) => {
|
|
388
397
|
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();
|
|
389
398
|
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;
|
|
@@ -605,6 +614,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
605
614
|
});
|
|
606
615
|
};
|
|
607
616
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
617
|
+
OnMount(Mount.mapMessage(portalBackdropOnMount, toParentMessage)),
|
|
608
618
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
609
619
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
610
620
|
...backdropAttributes,
|
|
@@ -132,6 +132,8 @@ export declare const update: (model: {
|
|
|
132
132
|
readonly _tag: "CompletedAnchorMount";
|
|
133
133
|
} | {
|
|
134
134
|
readonly _tag: "CompletedFocusItemsOnMount";
|
|
135
|
+
} | {
|
|
136
|
+
readonly _tag: "CompletedBackdropPortal";
|
|
135
137
|
} | {
|
|
136
138
|
readonly _tag: "GotAnimationMessage";
|
|
137
139
|
readonly message: {
|
|
@@ -159,9 +161,9 @@ export declare const close: (model: Model) => readonly [Model, ReadonlyArray<Com
|
|
|
159
161
|
* focus commands. Use this in domain-event handlers when the listbox uses `onSelectedItem`. */
|
|
160
162
|
export declare const selectItem: (model: Model, item: string) => readonly [Model, ReadonlyArray<Command.Command<Message>>];
|
|
161
163
|
/** Configuration for rendering a single-select listbox with `view`. */
|
|
162
|
-
export type ViewConfig<
|
|
164
|
+
export type ViewConfig<ParentMessage, Item> = BaseViewConfig<ParentMessage, Item, Model>;
|
|
163
165
|
/** Renders a headless single-select listbox with typeahead search, keyboard navigation, selection tracking, and aria-activedescendant focus management. */
|
|
164
|
-
export declare const view: <
|
|
166
|
+
export declare const view: <ParentMessage, Item>(config: Readonly<{
|
|
165
167
|
model: {
|
|
166
168
|
readonly id: string;
|
|
167
169
|
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
@@ -188,8 +190,10 @@ export declare const view: <Message, Item>(config: Readonly<{
|
|
|
188
190
|
readonly _tag: "CompletedAnchorMount";
|
|
189
191
|
} | {
|
|
190
192
|
readonly _tag: "CompletedFocusItemsOnMount";
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
+
} | {
|
|
194
|
+
readonly _tag: "CompletedBackdropPortal";
|
|
195
|
+
}) => ParentMessage;
|
|
196
|
+
onSelectedItem?: (value: string) => ParentMessage;
|
|
193
197
|
items: readonly Item[];
|
|
194
198
|
itemToConfig: (item: Item, context: Readonly<{
|
|
195
199
|
isActive: boolean;
|
|
@@ -205,24 +209,24 @@ export declare const view: <Message, Item>(config: Readonly<{
|
|
|
205
209
|
isButtonDisabled?: boolean;
|
|
206
210
|
buttonContent: Html;
|
|
207
211
|
buttonClassName?: string;
|
|
208
|
-
buttonAttributes?: readonly import("../../html/index.js").Attribute<
|
|
212
|
+
buttonAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
209
213
|
itemsClassName?: string;
|
|
210
|
-
itemsAttributes?: readonly import("../../html/index.js").Attribute<
|
|
214
|
+
itemsAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
211
215
|
itemsScrollClassName?: string;
|
|
212
|
-
itemsScrollAttributes?: readonly import("../../html/index.js").Attribute<
|
|
216
|
+
itemsScrollAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
213
217
|
backdropClassName?: string;
|
|
214
|
-
backdropAttributes?: readonly import("../../html/index.js").Attribute<
|
|
218
|
+
backdropAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
215
219
|
className?: string;
|
|
216
|
-
attributes?: readonly import("../../html/index.js").Attribute<
|
|
220
|
+
attributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
217
221
|
itemGroupKey?: (item: Item, index: number) => string;
|
|
218
222
|
groupToHeading?: (groupKey: string) => Readonly<{
|
|
219
223
|
content: Html;
|
|
220
224
|
className?: string;
|
|
221
225
|
}> | undefined;
|
|
222
226
|
groupClassName?: string;
|
|
223
|
-
groupAttributes?: readonly import("../../html/index.js").Attribute<
|
|
227
|
+
groupAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
224
228
|
separatorClassName?: string;
|
|
225
|
-
separatorAttributes?: readonly import("../../html/index.js").Attribute<
|
|
229
|
+
separatorAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
226
230
|
anchor?: Readonly<{
|
|
227
231
|
placement?: import("@floating-ui/dom").Placement;
|
|
228
232
|
gap?: number;
|
|
@@ -237,5 +241,5 @@ export declare const view: <Message, Item>(config: Readonly<{
|
|
|
237
241
|
}>) => Html;
|
|
238
242
|
/** Creates a memoized single-select listbox view. Static config is captured in a closure;
|
|
239
243
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
240
|
-
export declare const lazy: <
|
|
244
|
+
export declare const lazy: <ParentMessage, Item>(staticConfig: Omit<ViewConfig<ParentMessage, Item>, "model" | "toParentMessage" | "onSelectedItem">) => ((model: Model, toParentMessage: BaseViewConfig<ParentMessage, Item, Model>["toParentMessage"]) => Html);
|
|
241
245
|
//# sourceMappingURL=single.d.ts.map
|
|
@@ -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"}
|
|
@@ -41,9 +41,9 @@ export const view = makeView({
|
|
|
41
41
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
42
42
|
export const lazy = (staticConfig) => {
|
|
43
43
|
const lazyView = createLazy();
|
|
44
|
-
return (model, toParentMessage) => lazyView((currentModel,
|
|
44
|
+
return (model, toParentMessage) => lazyView((currentModel, currentToParentMessage) => view({
|
|
45
45
|
...staticConfig,
|
|
46
46
|
model: currentModel,
|
|
47
|
-
toParentMessage:
|
|
47
|
+
toParentMessage: currentToParentMessage,
|
|
48
48
|
}), [model, toParentMessage]);
|
|
49
49
|
};
|
package/dist/ui/menu/index.d.ts
CHANGED
|
@@ -98,6 +98,8 @@ export declare const SuppressedSpaceScroll: import("../../schema/index.js").Call
|
|
|
98
98
|
export declare const CompletedAnchorMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorMount", {}>;
|
|
99
99
|
/** Sent when the menu items panel mounts and the no-anchor focus fallback runs. Update no-ops; the side effect is the focus call, surfaced for DevTools observability. */
|
|
100
100
|
export declare const CompletedFocusItemsOnMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusItemsOnMount", {}>;
|
|
101
|
+
/** Sent when the menu backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
102
|
+
export declare const CompletedBackdropPortal: import("../../schema/index.js").CallableTaggedStruct<"CompletedBackdropPortal", {}>;
|
|
101
103
|
/** Wraps an Animation submodel message for delegation. */
|
|
102
104
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
103
105
|
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", {}>]>;
|
|
@@ -141,6 +143,7 @@ export declare const Message: S.Union<[
|
|
|
141
143
|
typeof SuppressedSpaceScroll,
|
|
142
144
|
typeof CompletedAnchorMount,
|
|
143
145
|
typeof CompletedFocusItemsOnMount,
|
|
146
|
+
typeof CompletedBackdropPortal,
|
|
144
147
|
typeof GotAnimationMessage,
|
|
145
148
|
typeof PressedPointerOnButton,
|
|
146
149
|
typeof ReleasedPointerOnItems
|
|
@@ -241,10 +244,10 @@ export type GroupHeading = Readonly<{
|
|
|
241
244
|
className?: string;
|
|
242
245
|
}>;
|
|
243
246
|
/** Configuration for rendering a menu with `view`. */
|
|
244
|
-
export type ViewConfig<
|
|
247
|
+
export type ViewConfig<ParentMessage, Item extends string> = Readonly<{
|
|
245
248
|
model: Model;
|
|
246
|
-
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | ReleasedPointerOnItems | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type | typeof CompletedFocusItemsOnMount.Type) =>
|
|
247
|
-
onSelectedItem?: (index: number) =>
|
|
249
|
+
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | ReleasedPointerOnItems | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type | typeof CompletedFocusItemsOnMount.Type | typeof CompletedBackdropPortal.Type) => ParentMessage;
|
|
250
|
+
onSelectedItem?: (index: number) => ParentMessage;
|
|
248
251
|
items: ReadonlyArray<Item>;
|
|
249
252
|
itemToConfig: (item: Item, context: Readonly<{
|
|
250
253
|
isActive: boolean;
|
|
@@ -255,27 +258,27 @@ export type ViewConfig<Message, Item extends string> = Readonly<{
|
|
|
255
258
|
isButtonDisabled?: boolean;
|
|
256
259
|
buttonContent: Html;
|
|
257
260
|
buttonClassName?: string;
|
|
258
|
-
buttonAttributes?: ReadonlyArray<Attribute<
|
|
261
|
+
buttonAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
259
262
|
itemsClassName?: string;
|
|
260
|
-
itemsAttributes?: ReadonlyArray<Attribute<
|
|
263
|
+
itemsAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
261
264
|
itemsScrollClassName?: string;
|
|
262
|
-
itemsScrollAttributes?: ReadonlyArray<Attribute<
|
|
265
|
+
itemsScrollAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
263
266
|
backdropClassName?: string;
|
|
264
|
-
backdropAttributes?: ReadonlyArray<Attribute<
|
|
267
|
+
backdropAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
265
268
|
className?: string;
|
|
266
|
-
attributes?: ReadonlyArray<Attribute<
|
|
269
|
+
attributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
267
270
|
itemGroupKey?: (item: Item, index: number) => string;
|
|
268
271
|
groupToHeading?: (groupKey: string) => GroupHeading | undefined;
|
|
269
272
|
groupClassName?: string;
|
|
270
|
-
groupAttributes?: ReadonlyArray<Attribute<
|
|
273
|
+
groupAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
271
274
|
separatorClassName?: string;
|
|
272
|
-
separatorAttributes?: ReadonlyArray<Attribute<
|
|
275
|
+
separatorAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
273
276
|
anchor?: AnchorConfig;
|
|
274
277
|
}>;
|
|
275
278
|
export { groupContiguous, resolveTypeaheadMatch };
|
|
276
279
|
/** Renders a headless menu with typeahead search, keyboard navigation, and aria-activedescendant focus management. */
|
|
277
|
-
export declare const view: <
|
|
280
|
+
export declare const view: <ParentMessage, Item extends string>(config: ViewConfig<ParentMessage, Item>) => Html;
|
|
278
281
|
/** Creates a memoized menu view. Static config is captured in a closure;
|
|
279
282
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
280
|
-
export declare const lazy: <
|
|
283
|
+
export declare const lazy: <ParentMessage, Item extends string>(staticConfig: Omit<ViewConfig<ParentMessage, Item>, "model" | "toParentMessage" | "onSelectedItem">) => ((model: Model, toParentMessage: ViewConfig<ParentMessage, Item>["toParentMessage"]) => Html);
|
|
281
284
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/menu/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { m } from '../../message/index.js';
|
|
|
6
6
|
import * as Mount from '../../mount/index.js';
|
|
7
7
|
import { evo } from '../../struct/index.js';
|
|
8
8
|
import * as Task from '../../task/index.js';
|
|
9
|
-
import { anchorSetup } from '../anchor.js';
|
|
9
|
+
import { anchorSetup, portalToBody } from '../anchor.js';
|
|
10
10
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
11
11
|
// dependency: animation → html → runtime → devtools → menu → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -99,6 +99,8 @@ export const SuppressedSpaceScroll = m('SuppressedSpaceScroll');
|
|
|
99
99
|
export const CompletedAnchorMount = m('CompletedAnchorMount');
|
|
100
100
|
/** Sent when the menu items panel mounts and the no-anchor focus fallback runs. Update no-ops; the side effect is the focus call, surfaced for DevTools observability. */
|
|
101
101
|
export const CompletedFocusItemsOnMount = m('CompletedFocusItemsOnMount');
|
|
102
|
+
/** Sent when the menu backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
103
|
+
export const CompletedBackdropPortal = m('CompletedBackdropPortal');
|
|
102
104
|
/** Wraps an Animation submodel message for delegation. */
|
|
103
105
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
104
106
|
message: AnimationMessage,
|
|
@@ -142,6 +144,7 @@ export const Message = S.Union([
|
|
|
142
144
|
SuppressedSpaceScroll,
|
|
143
145
|
CompletedAnchorMount,
|
|
144
146
|
CompletedFocusItemsOnMount,
|
|
147
|
+
CompletedBackdropPortal,
|
|
145
148
|
GotAnimationMessage,
|
|
146
149
|
PressedPointerOnButton,
|
|
147
150
|
ReleasedPointerOnItems,
|
|
@@ -394,10 +397,12 @@ export const update = (model, message) => {
|
|
|
394
397
|
SuppressedSpaceScroll: () => [model, []],
|
|
395
398
|
CompletedAnchorMount: () => [model, []],
|
|
396
399
|
CompletedFocusItemsOnMount: () => [model, []],
|
|
400
|
+
CompletedBackdropPortal: () => [model, []],
|
|
397
401
|
}));
|
|
398
402
|
};
|
|
399
403
|
const MenuAnchor = Mount.define('MenuAnchor', CompletedAnchorMount);
|
|
400
404
|
const MenuFocusItemsOnMount = Mount.define('MenuFocusItemsOnMount', CompletedFocusItemsOnMount);
|
|
405
|
+
const MenuBackdropPortal = Mount.define('MenuBackdropPortal', CompletedBackdropPortal);
|
|
401
406
|
const focusItemsOnMount = MenuFocusItemsOnMount((element) => Effect.sync(() => {
|
|
402
407
|
if (element instanceof HTMLElement) {
|
|
403
408
|
element.focus();
|
|
@@ -407,6 +412,10 @@ const focusItemsOnMount = MenuFocusItemsOnMount((element) => Effect.sync(() => {
|
|
|
407
412
|
cleanup: Function.constVoid,
|
|
408
413
|
};
|
|
409
414
|
}));
|
|
415
|
+
const portalBackdropOnMount = MenuBackdropPortal((element) => Effect.sync(() => ({
|
|
416
|
+
message: CompletedBackdropPortal(),
|
|
417
|
+
cleanup: portalToBody(element),
|
|
418
|
+
})));
|
|
410
419
|
/** Programmatically opens the menu, updating the model and returning
|
|
411
420
|
* focus and modal commands. Use this in domain-event handlers to open the menu. */
|
|
412
421
|
export const open = (model) => update(model, Opened({ maybeActiveItemIndex: Option.none() }));
|
|
@@ -620,6 +629,7 @@ export const view = (config) => {
|
|
|
620
629
|
});
|
|
621
630
|
};
|
|
622
631
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
632
|
+
OnMount(Mount.mapMessage(portalBackdropOnMount, toParentMessage)),
|
|
623
633
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
624
634
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
625
635
|
...backdropAttributes,
|
|
@@ -651,9 +661,9 @@ export const view = (config) => {
|
|
|
651
661
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
652
662
|
export const lazy = (staticConfig) => {
|
|
653
663
|
const lazyView = createLazy();
|
|
654
|
-
return (model, toParentMessage) => lazyView((currentModel,
|
|
664
|
+
return (model, toParentMessage) => lazyView((currentModel, currentToParentMessage) => view({
|
|
655
665
|
...staticConfig,
|
|
656
666
|
model: currentModel,
|
|
657
|
-
toParentMessage:
|
|
667
|
+
toParentMessage: currentToParentMessage,
|
|
658
668
|
}), [model, toParentMessage]);
|
|
659
669
|
};
|
package/dist/ui/menu/public.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusItems, FocusButton, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './index.js';
|
|
1
|
+
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, CompletedBackdropPortal, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusItems, FocusButton, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './index.js';
|
|
2
2
|
export type { ActivationTrigger, Opened, Closed, BlurredItems, ActivatedItem, DeactivatedItem, MovedPointerOverItem, RequestedItemClick, Searched, PressedPointerOnButton, ReleasedPointerOnItems, IgnoredMouseClick, SuppressedSpaceScroll, InitConfig, ViewConfig, ItemConfig, GroupHeading, } from './index.js';
|
|
3
3
|
export type { AnchorConfig } from '../anchor.js';
|
|
4
4
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/ui/menu/public.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusItems, FocusButton, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './index.js';
|
|
1
|
+
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMount, CompletedFocusItemsOnMount, CompletedBackdropPortal, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusItems, FocusButton, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './index.js';
|
|
@@ -46,6 +46,8 @@ export declare const IgnoredMouseClick: import("../../schema/index.js").Callable
|
|
|
46
46
|
export declare const SuppressedSpaceScroll: import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>;
|
|
47
47
|
/** Sent when the popover panel mounts and Floating UI has positioned it. Update no-ops; the side effect is the act of positioning, surfaced for DevTools observability. */
|
|
48
48
|
export declare const CompletedAnchorMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorMount", {}>;
|
|
49
|
+
/** Sent when the popover backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
50
|
+
export declare const CompletedBackdropPortal: import("../../schema/index.js").CallableTaggedStruct<"CompletedBackdropPortal", {}>;
|
|
49
51
|
/** Wraps an Animation submodel message for delegation. */
|
|
50
52
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
51
53
|
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", {}>]>;
|
|
@@ -65,6 +67,7 @@ export declare const Message: S.Union<[
|
|
|
65
67
|
typeof IgnoredMouseClick,
|
|
66
68
|
typeof SuppressedSpaceScroll,
|
|
67
69
|
typeof CompletedAnchorMount,
|
|
70
|
+
typeof CompletedBackdropPortal,
|
|
68
71
|
typeof GotAnimationMessage
|
|
69
72
|
]>;
|
|
70
73
|
export type Opened = typeof Opened.Type;
|
|
@@ -130,29 +133,29 @@ export declare const open: (model: Model) => readonly [Model, ReadonlyArray<Comm
|
|
|
130
133
|
* focus and modal commands. Use this in domain-event handlers when the popover uses `onClosed`. */
|
|
131
134
|
export declare const close: (model: Model) => readonly [Model, ReadonlyArray<Command.Command<Message>>];
|
|
132
135
|
/** Configuration for rendering a popover with `view`. */
|
|
133
|
-
export type ViewConfig<
|
|
136
|
+
export type ViewConfig<ParentMessage> = Readonly<{
|
|
134
137
|
model: Model;
|
|
135
|
-
toParentMessage: (message: Opened | Closed | BlurredPanel | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type) =>
|
|
136
|
-
onOpened?: () =>
|
|
137
|
-
onClosed?: () =>
|
|
138
|
+
toParentMessage: (message: Opened | Closed | BlurredPanel | PressedPointerOnButton | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMount.Type | typeof CompletedBackdropPortal.Type) => ParentMessage;
|
|
139
|
+
onOpened?: () => ParentMessage;
|
|
140
|
+
onClosed?: () => ParentMessage;
|
|
138
141
|
anchor: AnchorConfig;
|
|
139
142
|
buttonContent: Html;
|
|
140
143
|
buttonClassName?: string;
|
|
141
|
-
buttonAttributes?: ReadonlyArray<Attribute<
|
|
144
|
+
buttonAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
142
145
|
panelContent: Html;
|
|
143
146
|
panelClassName?: string;
|
|
144
|
-
panelAttributes?: ReadonlyArray<Attribute<
|
|
147
|
+
panelAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
145
148
|
backdropClassName?: string;
|
|
146
|
-
backdropAttributes?: ReadonlyArray<Attribute<
|
|
149
|
+
backdropAttributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
147
150
|
isDisabled?: boolean;
|
|
148
151
|
focusSelector?: string;
|
|
149
152
|
className?: string;
|
|
150
|
-
attributes?: ReadonlyArray<Attribute<
|
|
153
|
+
attributes?: ReadonlyArray<Attribute<ParentMessage>>;
|
|
151
154
|
}>;
|
|
152
155
|
/** Renders a headless popover with a trigger button and a floating panel. Uses the disclosure ARIA pattern (aria-expanded + aria-controls) with no role on the panel. */
|
|
153
|
-
export declare const view: <
|
|
156
|
+
export declare const view: <ParentMessage>(config: ViewConfig<ParentMessage>) => Html;
|
|
154
157
|
/** Creates a memoized popover view. Static config is captured in a closure;
|
|
155
158
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
156
|
-
export declare const lazy: <
|
|
159
|
+
export declare const lazy: <ParentMessage>(staticConfig: Omit<ViewConfig<ParentMessage>, "model" | "toParentMessage" | "onOpened" | "onClosed">) => ((model: Model, toParentMessage: ViewConfig<ParentMessage>["toParentMessage"]) => Html);
|
|
157
160
|
export {};
|
|
158
161
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE9E,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAIV,MAAM,qBAAqB,CAAA;AAM5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAiBhD,qGAAqG;AACrG,eAAO,MAAM,KAAK;;;;;;;;;;;;EAQhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,2EAA2E;AAC3E,eAAO,MAAM,MAAM,oEAAc,CAAA;AACjC,kGAAkG;AAClG,eAAO,MAAM,MAAM,oEAAc,CAAA;AACjC,oFAAoF;AACpF,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,qHAAqH;AACrH,eAAO,MAAM,sBAAsB;;;EAGjC,CAAA;AACF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,qDAAqD;AACrD,eAAO,MAAM,sBAAsB,oFAA8B,CAAA;AACjE,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,2KAA2K;AAC3K,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB;;EAE9B,CAAA;AAEF,+DAA+D;AAC/D,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IACE,OAAO,MAAM;IACb,OAAO,MAAM;IACb,OAAO,YAAY;IACnB,OAAO,sBAAsB;IAC7B,OAAO,mBAAmB;IAC1B,OAAO,oBAAoB;IAC3B,OAAO,mBAAmB;IAC1B,OAAO,qBAAqB;IAC5B,OAAO,mBAAmB;IAC1B,OAAO,sBAAsB;IAC7B,OAAO,iBAAiB;IACxB,OAAO,qBAAqB;IAC5B,OAAO,oBAAoB;IAC3B,OAAO,mBAAmB;CAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"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"}
|