foldkit 0.84.0 → 0.86.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/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +16 -6
- package/dist/task/dom.d.ts +11 -7
- package/dist/task/dom.d.ts.map +1 -1
- package/dist/task/dom.js +17 -20
- package/dist/task/elementMovement.d.ts.map +1 -1
- package/dist/task/elementMovement.js +4 -5
- package/dist/task/index.d.ts +1 -1
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +1 -1
- package/dist/task/public.d.ts +1 -1
- package/dist/task/public.d.ts.map +1 -1
- package/dist/task/public.js +1 -1
- package/dist/task/timing.d.ts +23 -0
- package/dist/task/timing.d.ts.map +1 -1
- package/dist/task/timing.js +26 -0
- package/dist/test/apps/mountPanel.d.ts +3 -3
- package/dist/test/apps/mountPanel.js +9 -9
- package/dist/test/internal.d.ts +6 -1
- package/dist/test/internal.d.ts.map +1 -1
- package/dist/test/internal.js +18 -0
- package/dist/test/scene.d.ts +3 -0
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +62 -8
- 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 +27 -27
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +36 -36
- 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 +13 -24
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +22 -40
- 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 +11 -20
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +26 -40
- 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 +11 -11
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +21 -21
- 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 +6 -6
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +11 -11
- 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 +1 -1
|
@@ -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';
|
|
@@ -102,11 +102,9 @@ export declare const IgnoredMouseClick: import("../../schema/index.js").Callable
|
|
|
102
102
|
/** Sent when a Space key-up is captured to prevent page scrolling. */
|
|
103
103
|
export declare const SuppressedSpaceScroll: import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>;
|
|
104
104
|
/** Sent when the listbox items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
|
|
105
|
-
export declare const
|
|
106
|
-
/** Sent when the listbox items panel mounts and the no-anchor focus fallback runs. Update no-ops; surfaces the focus side effect for DevTools. */
|
|
107
|
-
export declare const CompletedFocusItemsOnMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusItemsOnMount", {}>;
|
|
105
|
+
export declare const CompletedAnchorListbox: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorListbox", {}>;
|
|
108
106
|
/** Sent when the listbox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
109
|
-
export declare const
|
|
107
|
+
export declare const CompletedPortalListboxBackdrop: import("../../schema/index.js").CallableTaggedStruct<"CompletedPortalListboxBackdrop", {}>;
|
|
110
108
|
/** Wraps an Animation submodel message for delegation. */
|
|
111
109
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
112
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", {}>]>;
|
|
@@ -138,9 +136,8 @@ export declare const Message: S.Union<[
|
|
|
138
136
|
typeof CompletedClickItem,
|
|
139
137
|
typeof IgnoredMouseClick,
|
|
140
138
|
typeof SuppressedSpaceScroll,
|
|
141
|
-
typeof
|
|
142
|
-
typeof
|
|
143
|
-
typeof CompletedBackdropPortal,
|
|
139
|
+
typeof CompletedAnchorListbox,
|
|
140
|
+
typeof CompletedPortalListboxBackdrop,
|
|
144
141
|
typeof GotAnimationMessage,
|
|
145
142
|
typeof PressedPointerOnButton
|
|
146
143
|
]>;
|
|
@@ -273,11 +270,9 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
273
270
|
} | {
|
|
274
271
|
readonly _tag: "SuppressedSpaceScroll";
|
|
275
272
|
} | {
|
|
276
|
-
readonly _tag: "
|
|
273
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
277
274
|
} | {
|
|
278
|
-
readonly _tag: "
|
|
279
|
-
} | {
|
|
280
|
-
readonly _tag: "CompletedBackdropPortal";
|
|
275
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
281
276
|
} | {
|
|
282
277
|
readonly _tag: "GotAnimationMessage";
|
|
283
278
|
readonly message: {
|
|
@@ -297,21 +292,15 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
297
292
|
}>[]];
|
|
298
293
|
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
299
294
|
* configured. Exposed so Scene tests can call
|
|
300
|
-
* `Scene.Mount.resolve(
|
|
301
|
-
export declare const
|
|
302
|
-
readonly _tag: "
|
|
303
|
-
}>;
|
|
304
|
-
/** The Mount this Listbox renders to focus its items container on open.
|
|
305
|
-
* Exposed so Scene tests can call
|
|
306
|
-
* `Scene.Mount.resolve(ListboxFocusItemsOnMount, CompletedFocusItemsOnMount())`. */
|
|
307
|
-
export declare const ListboxFocusItemsOnMount: Mount.MountDefinition<"ListboxFocusItemsOnMount", {
|
|
308
|
-
readonly _tag: "CompletedFocusItemsOnMount";
|
|
295
|
+
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
296
|
+
export declare const AnchorListbox: Mount.MountDefinition<"AnchorListbox", {
|
|
297
|
+
readonly _tag: "CompletedAnchorListbox";
|
|
309
298
|
}>;
|
|
310
299
|
/** The backdrop-portaling Mount this Listbox renders. Exposed so Scene tests can
|
|
311
|
-
* call `Scene.Mount.resolve(
|
|
300
|
+
* call `Scene.Mount.resolve(PortalListboxBackdrop, CompletedPortalListboxBackdrop())` to
|
|
312
301
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
313
|
-
export declare const
|
|
314
|
-
readonly _tag: "
|
|
302
|
+
export declare const PortalListboxBackdrop: Mount.MountDefinition<"PortalListboxBackdrop", {
|
|
303
|
+
readonly _tag: "CompletedPortalListboxBackdrop";
|
|
315
304
|
}>;
|
|
316
305
|
/** Configuration for an individual listbox item's appearance. */
|
|
317
306
|
export type ItemConfig = Readonly<{
|
|
@@ -326,7 +315,7 @@ export type GroupHeading = Readonly<{
|
|
|
326
315
|
/** Configuration for rendering a listbox with `view`. */
|
|
327
316
|
export type BaseViewConfig<ParentMessage, Item, Model extends BaseModel> = Readonly<{
|
|
328
317
|
model: Model;
|
|
329
|
-
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;
|
|
330
319
|
onSelectedItem?: (value: string) => ParentMessage;
|
|
331
320
|
items: ReadonlyArray<Item>;
|
|
332
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,37 +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
376
|
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
381
377
|
* configured. Exposed so Scene tests can call
|
|
382
|
-
* `Scene.Mount.resolve(
|
|
383
|
-
export const
|
|
384
|
-
/** The Mount this Listbox renders to focus its items container on open.
|
|
385
|
-
* Exposed so Scene tests can call
|
|
386
|
-
* `Scene.Mount.resolve(ListboxFocusItemsOnMount, CompletedFocusItemsOnMount())`. */
|
|
387
|
-
export const ListboxFocusItemsOnMount = Mount.define('ListboxFocusItemsOnMount', CompletedFocusItemsOnMount);
|
|
378
|
+
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
379
|
+
export const AnchorListbox = Mount.define('AnchorListbox', CompletedAnchorListbox);
|
|
388
380
|
/** The backdrop-portaling Mount this Listbox renders. Exposed so Scene tests can
|
|
389
|
-
* call `Scene.Mount.resolve(
|
|
381
|
+
* call `Scene.Mount.resolve(PortalListboxBackdrop, CompletedPortalListboxBackdrop())` to
|
|
390
382
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
391
|
-
export const
|
|
392
|
-
const
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}
|
|
396
|
-
return {
|
|
397
|
-
message: CompletedFocusItemsOnMount(),
|
|
398
|
-
cleanup: Function.constVoid,
|
|
399
|
-
};
|
|
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 };
|
|
400
387
|
}));
|
|
401
|
-
const portalBackdropOnMount = ListboxBackdropPortal((element) => Effect.sync(() => ({
|
|
402
|
-
message: CompletedBackdropPortal(),
|
|
403
|
-
cleanup: portalToBody(element),
|
|
404
|
-
})));
|
|
405
388
|
export const makeView = (behavior) => (config) => {
|
|
406
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();
|
|
407
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;
|
|
@@ -517,16 +500,15 @@ export const makeView = (behavior) => (config) => {
|
|
|
517
500
|
const anchorAttributes = anchor
|
|
518
501
|
? [
|
|
519
502
|
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
520
|
-
OnMount(Mount.mapMessage(
|
|
521
|
-
|
|
522
|
-
cleanup: anchorSetup({
|
|
503
|
+
OnMount(Mount.mapMessage(AnchorListbox((items) => Effect.sync(() => {
|
|
504
|
+
const cleanup = anchorSetup({
|
|
523
505
|
buttonId: `${id}-button`,
|
|
524
506
|
anchor,
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
}))
|
|
507
|
+
})(items);
|
|
508
|
+
return { message: CompletedAnchorListbox(), cleanup };
|
|
509
|
+
})), toParentMessage)),
|
|
528
510
|
]
|
|
529
|
-
: [
|
|
511
|
+
: [];
|
|
530
512
|
const itemsContainerAttributes = [
|
|
531
513
|
Id(`${id}-items`),
|
|
532
514
|
Role('listbox'),
|
|
@@ -623,7 +605,7 @@ export const makeView = (behavior) => (config) => {
|
|
|
623
605
|
});
|
|
624
606
|
};
|
|
625
607
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
626
|
-
OnMount(Mount.mapMessage(
|
|
608
|
+
OnMount(Mount.mapMessage(portalListboxBackdrop, toParentMessage)),
|
|
627
609
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
628
610
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
629
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"}
|
package/dist/ui/menu/index.d.ts
CHANGED
|
@@ -96,11 +96,9 @@ export declare const IgnoredMouseClick: import("../../schema/index.js").Callable
|
|
|
96
96
|
/** Sent when a Space key-up is captured to prevent page scrolling. */
|
|
97
97
|
export declare const SuppressedSpaceScroll: import("../../schema/index.js").CallableTaggedStruct<"SuppressedSpaceScroll", {}>;
|
|
98
98
|
/** Sent when the menu items panel mounts and Floating UI has positioned it. Update no-ops; the side effect is the act of positioning, surfaced for DevTools observability. */
|
|
99
|
-
export declare const
|
|
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
|
-
export declare const CompletedFocusItemsOnMount: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusItemsOnMount", {}>;
|
|
99
|
+
export declare const CompletedAnchorMenu: import("../../schema/index.js").CallableTaggedStruct<"CompletedAnchorMenu", {}>;
|
|
102
100
|
/** 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 declare const
|
|
101
|
+
export declare const CompletedPortalMenuBackdrop: import("../../schema/index.js").CallableTaggedStruct<"CompletedPortalMenuBackdrop", {}>;
|
|
104
102
|
/** Wraps an Animation submodel message for delegation. */
|
|
105
103
|
export declare const GotAnimationMessage: import("../../schema/index.js").CallableTaggedStruct<"GotAnimationMessage", {
|
|
106
104
|
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", {}>]>;
|
|
@@ -142,9 +140,8 @@ export declare const Message: S.Union<[
|
|
|
142
140
|
typeof CompletedAdvanceFocus,
|
|
143
141
|
typeof IgnoredMouseClick,
|
|
144
142
|
typeof SuppressedSpaceScroll,
|
|
145
|
-
typeof
|
|
146
|
-
typeof
|
|
147
|
-
typeof CompletedBackdropPortal,
|
|
143
|
+
typeof CompletedAnchorMenu,
|
|
144
|
+
typeof CompletedPortalMenuBackdrop,
|
|
148
145
|
typeof GotAnimationMessage,
|
|
149
146
|
typeof PressedPointerOnButton,
|
|
150
147
|
typeof ReleasedPointerOnItems
|
|
@@ -226,22 +223,16 @@ export declare const DetectMovementOrAnimationEnd: Command.CommandDefinition<"De
|
|
|
226
223
|
/** Processes a menu message and returns the next model and commands. */
|
|
227
224
|
export declare const update: (model: Model, message: Message) => UpdateReturn;
|
|
228
225
|
/** The anchor-positioning Mount this Menu renders on its panel. Exposed so
|
|
229
|
-
* Scene tests can call `Scene.Mount.resolve(
|
|
226
|
+
* Scene tests can call `Scene.Mount.resolve(AnchorMenu, CompletedAnchorMenu())`
|
|
230
227
|
* to acknowledge the mount produced by the rendered panel. */
|
|
231
|
-
export declare const
|
|
232
|
-
readonly _tag: "
|
|
233
|
-
}>;
|
|
234
|
-
/** The Mount this Menu renders to focus its first item on open. Exposed so
|
|
235
|
-
* Scene tests can call
|
|
236
|
-
* `Scene.Mount.resolve(MenuFocusItemsOnMount, CompletedFocusItemsOnMount())`. */
|
|
237
|
-
export declare const MenuFocusItemsOnMount: Mount.MountDefinition<"MenuFocusItemsOnMount", {
|
|
238
|
-
readonly _tag: "CompletedFocusItemsOnMount";
|
|
228
|
+
export declare const AnchorMenu: Mount.MountDefinition<"AnchorMenu", {
|
|
229
|
+
readonly _tag: "CompletedAnchorMenu";
|
|
239
230
|
}>;
|
|
240
231
|
/** The backdrop-portaling Mount this Menu renders. Exposed so Scene tests can
|
|
241
|
-
* call `Scene.Mount.resolve(
|
|
232
|
+
* call `Scene.Mount.resolve(PortalMenuBackdrop, CompletedPortalMenuBackdrop())` to
|
|
242
233
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
243
|
-
export declare const
|
|
244
|
-
readonly _tag: "
|
|
234
|
+
export declare const PortalMenuBackdrop: Mount.MountDefinition<"PortalMenuBackdrop", {
|
|
235
|
+
readonly _tag: "CompletedPortalMenuBackdrop";
|
|
245
236
|
}>;
|
|
246
237
|
/** Programmatically opens the menu, updating the model and returning
|
|
247
238
|
* focus and modal commands. Use this in domain-event handlers to open the menu. */
|
|
@@ -265,7 +256,7 @@ export type GroupHeading = Readonly<{
|
|
|
265
256
|
/** Configuration for rendering a menu with `view`. */
|
|
266
257
|
export type ViewConfig<ParentMessage, Item extends string> = Readonly<{
|
|
267
258
|
model: Model;
|
|
268
|
-
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | ReleasedPointerOnItems | IgnoredMouseClick | SuppressedSpaceScroll | typeof
|
|
259
|
+
toParentMessage: (message: Opened | Closed | BlurredItems | ActivatedItem | DeactivatedItem | SelectedItem | MovedPointerOverItem | RequestedItemClick | Searched | PressedPointerOnButton | ReleasedPointerOnItems | IgnoredMouseClick | SuppressedSpaceScroll | typeof CompletedAnchorMenu.Type | typeof CompletedPortalMenuBackdrop.Type) => ParentMessage;
|
|
269
260
|
onSelectedItem?: (index: number) => ParentMessage;
|
|
270
261
|
items: ReadonlyArray<Item>;
|
|
271
262
|
itemToConfig: (item: Item, context: Readonly<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
@@ -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 { createLazy, html, } from '../../html/index.js';
|
|
@@ -96,11 +96,9 @@ export const IgnoredMouseClick = m('IgnoredMouseClick');
|
|
|
96
96
|
/** Sent when a Space key-up is captured to prevent page scrolling. */
|
|
97
97
|
export const SuppressedSpaceScroll = m('SuppressedSpaceScroll');
|
|
98
98
|
/** Sent when the menu items panel mounts and Floating UI has positioned it. Update no-ops; the side effect is the act of positioning, surfaced for DevTools observability. */
|
|
99
|
-
export const
|
|
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
|
-
export const CompletedFocusItemsOnMount = m('CompletedFocusItemsOnMount');
|
|
99
|
+
export const CompletedAnchorMenu = m('CompletedAnchorMenu');
|
|
102
100
|
/** 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
|
|
101
|
+
export const CompletedPortalMenuBackdrop = m('CompletedPortalMenuBackdrop');
|
|
104
102
|
/** Wraps an Animation submodel message for delegation. */
|
|
105
103
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
106
104
|
message: AnimationMessage,
|
|
@@ -142,9 +140,8 @@ export const Message = S.Union([
|
|
|
142
140
|
CompletedAdvanceFocus,
|
|
143
141
|
IgnoredMouseClick,
|
|
144
142
|
SuppressedSpaceScroll,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
CompletedBackdropPortal,
|
|
143
|
+
CompletedAnchorMenu,
|
|
144
|
+
CompletedPortalMenuBackdrop,
|
|
148
145
|
GotAnimationMessage,
|
|
149
146
|
PressedPointerOnButton,
|
|
150
147
|
ReleasedPointerOnItems,
|
|
@@ -234,7 +231,11 @@ export const update = (model, message) => {
|
|
|
234
231
|
]).pipe(Effect.as(CompletedSetupInert()))));
|
|
235
232
|
const maybeRestoreInert = OptionExt.when(model.isModal, RestoreInert(Task.restoreInert(model.id).pipe(Effect.as(CompletedTeardownInert()))));
|
|
236
233
|
const focusButton = FocusButton(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusButton())));
|
|
237
|
-
const
|
|
234
|
+
const focusItems = FocusItems(Task.focus(itemsSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedFocusItems())));
|
|
235
|
+
const openCommands = [
|
|
236
|
+
...Array.getSomes([maybeLockScroll, maybeInertOthers]),
|
|
237
|
+
focusItems,
|
|
238
|
+
];
|
|
238
239
|
const closeWithFocusCommands = [
|
|
239
240
|
focusButton,
|
|
240
241
|
...Array.getSomes([maybeUnlockScroll, maybeRestoreInert]),
|
|
@@ -395,36 +396,22 @@ export const update = (model, message) => {
|
|
|
395
396
|
[],
|
|
396
397
|
],
|
|
397
398
|
SuppressedSpaceScroll: () => [model, []],
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
CompletedBackdropPortal: () => [model, []],
|
|
399
|
+
CompletedAnchorMenu: () => [model, []],
|
|
400
|
+
CompletedPortalMenuBackdrop: () => [model, []],
|
|
401
401
|
}));
|
|
402
402
|
};
|
|
403
403
|
/** The anchor-positioning Mount this Menu renders on its panel. Exposed so
|
|
404
|
-
* Scene tests can call `Scene.Mount.resolve(
|
|
404
|
+
* Scene tests can call `Scene.Mount.resolve(AnchorMenu, CompletedAnchorMenu())`
|
|
405
405
|
* to acknowledge the mount produced by the rendered panel. */
|
|
406
|
-
export const
|
|
407
|
-
/** The Mount this Menu renders to focus its first item on open. Exposed so
|
|
408
|
-
* Scene tests can call
|
|
409
|
-
* `Scene.Mount.resolve(MenuFocusItemsOnMount, CompletedFocusItemsOnMount())`. */
|
|
410
|
-
export const MenuFocusItemsOnMount = Mount.define('MenuFocusItemsOnMount', CompletedFocusItemsOnMount);
|
|
406
|
+
export const AnchorMenu = Mount.define('AnchorMenu', CompletedAnchorMenu);
|
|
411
407
|
/** The backdrop-portaling Mount this Menu renders. Exposed so Scene tests can
|
|
412
|
-
* call `Scene.Mount.resolve(
|
|
408
|
+
* call `Scene.Mount.resolve(PortalMenuBackdrop, CompletedPortalMenuBackdrop())` to
|
|
413
409
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
414
|
-
export const
|
|
415
|
-
const
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
}
|
|
419
|
-
return {
|
|
420
|
-
message: CompletedFocusItemsOnMount(),
|
|
421
|
-
cleanup: Function.constVoid,
|
|
422
|
-
};
|
|
410
|
+
export const PortalMenuBackdrop = Mount.define('PortalMenuBackdrop', CompletedPortalMenuBackdrop);
|
|
411
|
+
const portalMenuBackdrop = PortalMenuBackdrop((element) => Effect.sync(() => {
|
|
412
|
+
const cleanup = portalToBody(element);
|
|
413
|
+
return { message: CompletedPortalMenuBackdrop(), cleanup };
|
|
423
414
|
}));
|
|
424
|
-
const portalBackdropOnMount = MenuBackdropPortal((element) => Effect.sync(() => ({
|
|
425
|
-
message: CompletedBackdropPortal(),
|
|
426
|
-
cleanup: portalToBody(element),
|
|
427
|
-
})));
|
|
428
415
|
/** Programmatically opens the menu, updating the model and returning
|
|
429
416
|
* focus and modal commands. Use this in domain-event handlers to open the menu. */
|
|
430
417
|
export const open = (model) => update(model, Opened({ maybeActiveItemIndex: Option.none() }));
|
|
@@ -537,16 +524,15 @@ export const view = (config) => {
|
|
|
537
524
|
const anchorAttributes = anchor
|
|
538
525
|
? [
|
|
539
526
|
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
540
|
-
OnMount(Mount.mapMessage(
|
|
541
|
-
|
|
542
|
-
cleanup: anchorSetup({
|
|
527
|
+
OnMount(Mount.mapMessage(AnchorMenu((items) => Effect.sync(() => {
|
|
528
|
+
const cleanup = anchorSetup({
|
|
543
529
|
buttonId: `${id}-button`,
|
|
544
530
|
anchor,
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
}))
|
|
531
|
+
})(items);
|
|
532
|
+
return { message: CompletedAnchorMenu(), cleanup };
|
|
533
|
+
})), toParentMessage)),
|
|
548
534
|
]
|
|
549
|
-
: [
|
|
535
|
+
: [];
|
|
550
536
|
const itemsContainerAttributes = [
|
|
551
537
|
Id(`${id}-items`),
|
|
552
538
|
Role('menu'),
|
|
@@ -638,7 +624,7 @@ export const view = (config) => {
|
|
|
638
624
|
});
|
|
639
625
|
};
|
|
640
626
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
641
|
-
OnMount(Mount.mapMessage(
|
|
627
|
+
OnMount(Mount.mapMessage(portalMenuBackdrop, toParentMessage)),
|
|
642
628
|
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
643
629
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
644
630
|
...backdropAttributes,
|
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,
|
|
1
|
+
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMenu, CompletedPortalMenuBackdrop, AnchorMenu, PortalMenuBackdrop, 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,
|
|
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,mBAAmB,EACnB,2BAA2B,EAC3B,UAAU,EACV,kBAAkB,EAClB,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,
|
|
1
|
+
export { init, update, open, close, selectItem, view, lazy, Model, Message, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedSetupInert, CompletedTeardownInert, CompletedFocusItems, CompletedFocusButton, CompletedScrollIntoView, CompletedClickItem, CompletedAnchorMenu, CompletedPortalMenuBackdrop, AnchorMenu, PortalMenuBackdrop, ClearedSearch, GotAnimationMessage, LockScroll, UnlockScroll, InertOthers, RestoreInert, FocusItems, FocusButton, ScrollIntoView, ClickItem, DelayClearSearch, DetectMovementOrAnimationEnd, } from './index.js';
|