foldkit 0.101.0 → 0.102.1
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 +2 -1
- package/dist/canvas/view.d.ts +1 -1
- package/dist/canvas/view.d.ts.map +1 -1
- package/dist/canvas/view.js +5 -5
- package/dist/command/index.d.ts +71 -0
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +34 -1
- package/dist/command/public.d.ts +1 -1
- package/dist/command/public.d.ts.map +1 -1
- package/dist/command/public.js +1 -1
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +137 -110
- package/dist/dom/dom.d.ts +8 -11
- package/dist/dom/dom.d.ts.map +1 -1
- package/dist/dom/dom.js +8 -11
- package/dist/dom/elementMovement.d.ts +1 -3
- package/dist/dom/elementMovement.d.ts.map +1 -1
- package/dist/dom/elementMovement.js +1 -3
- package/dist/dom/inert.d.ts +2 -4
- package/dist/dom/inert.d.ts.map +1 -1
- package/dist/dom/inert.js +2 -4
- package/dist/dom/scrollLock.d.ts +2 -2
- package/dist/dom/scrollLock.js +2 -2
- package/dist/dom/waitForAnimation.d.ts +1 -1
- package/dist/dom/waitForAnimation.js +1 -1
- package/dist/html/boundary.d.ts +98 -0
- package/dist/html/boundary.d.ts.map +1 -0
- package/dist/html/boundary.js +176 -0
- package/dist/html/childAttribute.d.ts +44 -0
- package/dist/html/childAttribute.d.ts.map +1 -0
- package/dist/html/childAttribute.js +34 -0
- package/dist/html/index.d.ts +70 -23
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +639 -575
- package/dist/html/lazy.d.ts +12 -7
- package/dist/html/lazy.d.ts.map +1 -1
- package/dist/html/lazy.js +30 -11
- package/dist/html/public.d.ts +2 -2
- package/dist/html/public.d.ts.map +1 -1
- package/dist/html/public.js +1 -1
- package/dist/html/runtimeSingleton.d.ts +72 -0
- package/dist/html/runtimeSingleton.d.ts.map +1 -0
- package/dist/html/runtimeSingleton.js +112 -0
- package/dist/html/submodel.d.ts +98 -0
- package/dist/html/submodel.d.ts.map +1 -0
- package/dist/html/submodel.js +190 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/render/render.d.ts +1 -1
- package/dist/render/render.js +1 -1
- package/dist/runtime/messagePriority.d.ts +5 -1
- package/dist/runtime/messagePriority.d.ts.map +1 -1
- package/dist/runtime/messagePriority.js +25 -4
- package/dist/runtime/runtime.d.ts +3 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +123 -67
- package/dist/submodel/public.d.ts +4 -0
- package/dist/submodel/public.d.ts.map +1 -0
- package/dist/submodel/public.js +1 -0
- package/dist/submodel/submodel.d.ts +32 -0
- package/dist/submodel/submodel.d.ts.map +1 -0
- package/dist/submodel/submodel.js +1 -0
- package/dist/test/apps/disabledButton.d.ts +4 -5
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/test/apps/disabledButton.js +16 -16
- package/dist/test/scene.d.ts +8 -8
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +25 -13
- package/dist/test/story.d.ts +15 -8
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +21 -9
- package/dist/ui/animation/index.d.ts +30 -14
- package/dist/ui/animation/index.d.ts.map +1 -1
- package/dist/ui/animation/index.js +9 -19
- package/dist/ui/animation/public.d.ts +2 -2
- package/dist/ui/animation/public.d.ts.map +1 -1
- package/dist/ui/animation/public.js +1 -1
- package/dist/ui/calendar/index.d.ts +199 -84
- package/dist/ui/calendar/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +129 -140
- package/dist/ui/calendar/public.d.ts +2 -2
- package/dist/ui/calendar/public.d.ts.map +1 -1
- package/dist/ui/calendar/public.js +1 -1
- package/dist/ui/checkbox/index.d.ts +93 -21
- package/dist/ui/checkbox/index.d.ts.map +1 -1
- package/dist/ui/checkbox/index.js +62 -33
- package/dist/ui/checkbox/public.d.ts +2 -2
- package/dist/ui/checkbox/public.d.ts.map +1 -1
- package/dist/ui/checkbox/public.js +1 -1
- package/dist/ui/combobox/multi.d.ts +35 -91
- package/dist/ui/combobox/multi.d.ts.map +1 -1
- package/dist/ui/combobox/multi.js +34 -17
- package/dist/ui/combobox/multiPublic.d.ts +2 -2
- package/dist/ui/combobox/multiPublic.d.ts.map +1 -1
- package/dist/ui/combobox/multiPublic.js +1 -1
- package/dist/ui/combobox/public.d.ts +3 -3
- package/dist/ui/combobox/public.d.ts.map +1 -1
- package/dist/ui/combobox/public.js +2 -2
- package/dist/ui/combobox/shared.d.ts +56 -31
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +333 -322
- package/dist/ui/combobox/single.d.ts +46 -93
- package/dist/ui/combobox/single.d.ts.map +1 -1
- package/dist/ui/combobox/single.js +44 -17
- package/dist/ui/datePicker/index.d.ts +256 -48
- package/dist/ui/datePicker/index.d.ts.map +1 -1
- package/dist/ui/datePicker/index.js +149 -104
- package/dist/ui/datePicker/public.d.ts +2 -2
- package/dist/ui/datePicker/public.d.ts.map +1 -1
- package/dist/ui/datePicker/public.js +1 -1
- package/dist/ui/dialog/index.d.ts +95 -39
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +71 -62
- package/dist/ui/dialog/public.d.ts +2 -2
- package/dist/ui/dialog/public.d.ts.map +1 -1
- package/dist/ui/dialog/public.js +1 -1
- package/dist/ui/disclosure/index.d.ts +71 -31
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +57 -62
- package/dist/ui/disclosure/public.d.ts +2 -2
- package/dist/ui/disclosure/public.d.ts.map +1 -1
- package/dist/ui/disclosure/public.js +1 -1
- package/dist/ui/dragAndDrop/index.d.ts +6 -6
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/index.js +7 -7
- package/dist/ui/dragAndDrop/public.d.ts +1 -1
- package/dist/ui/dragAndDrop/public.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/public.js +1 -1
- package/dist/ui/fileDrop/index.d.ts +42 -46
- package/dist/ui/fileDrop/index.d.ts.map +1 -1
- package/dist/ui/fileDrop/index.js +30 -46
- package/dist/ui/fileDrop/public.d.ts +2 -2
- package/dist/ui/fileDrop/public.d.ts.map +1 -1
- package/dist/ui/fileDrop/public.js +1 -1
- package/dist/ui/listbox/multi.d.ts +39 -84
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/multi.js +38 -20
- package/dist/ui/listbox/multiPublic.d.ts +2 -2
- package/dist/ui/listbox/multiPublic.d.ts.map +1 -1
- package/dist/ui/listbox/multiPublic.js +1 -1
- package/dist/ui/listbox/public.d.ts +3 -3
- package/dist/ui/listbox/public.d.ts.map +1 -1
- package/dist/ui/listbox/public.js +2 -2
- package/dist/ui/listbox/shared.d.ts +71 -30
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +319 -296
- package/dist/ui/listbox/single.d.ts +57 -85
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/listbox/single.js +48 -24
- package/dist/ui/menu/index.d.ts +80 -36
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +117 -86
- package/dist/ui/menu/public.d.ts +2 -2
- 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 +117 -44
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +88 -101
- package/dist/ui/popover/public.d.ts +2 -2
- 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 +122 -45
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +111 -72
- package/dist/ui/radioGroup/public.d.ts +2 -2
- package/dist/ui/radioGroup/public.d.ts.map +1 -1
- package/dist/ui/radioGroup/public.js +1 -1
- package/dist/ui/slider/index.d.ts +72 -34
- package/dist/ui/slider/index.d.ts.map +1 -1
- package/dist/ui/slider/index.js +40 -49
- package/dist/ui/slider/public.d.ts +2 -2
- package/dist/ui/slider/public.d.ts.map +1 -1
- package/dist/ui/slider/public.js +1 -1
- package/dist/ui/switch/index.d.ts +74 -21
- package/dist/ui/switch/index.d.ts.map +1 -1
- package/dist/ui/switch/index.js +62 -33
- package/dist/ui/switch/public.d.ts +2 -2
- package/dist/ui/switch/public.d.ts.map +1 -1
- package/dist/ui/switch/public.js +1 -1
- package/dist/ui/tabs/index.d.ts +107 -45
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +99 -81
- package/dist/ui/tabs/public.d.ts +2 -2
- package/dist/ui/tabs/public.d.ts.map +1 -1
- package/dist/ui/tabs/public.js +1 -1
- package/dist/ui/toast/index.d.ts +93 -109
- package/dist/ui/toast/index.d.ts.map +1 -1
- package/dist/ui/toast/index.js +16 -29
- package/dist/ui/toast/schema.d.ts +15 -4
- package/dist/ui/toast/schema.d.ts.map +1 -1
- package/dist/ui/toast/schema.js +11 -4
- package/dist/ui/toast/update.d.ts +36 -18
- package/dist/ui/toast/update.d.ts.map +1 -1
- package/dist/ui/toast/update.js +33 -14
- package/dist/ui/tooltip/index.d.ts +94 -42
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +64 -73
- package/dist/ui/tooltip/public.d.ts +2 -2
- package/dist/ui/tooltip/public.d.ts.map +1 -1
- package/dist/ui/tooltip/public.js +1 -1
- package/dist/ui/virtualList/index.d.ts +18 -41
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/dist/ui/virtualList/index.js +17 -37
- package/dist/ui/virtualList/public.d.ts +2 -2
- package/dist/ui/virtualList/public.d.ts.map +1 -1
- package/dist/ui/virtualList/public.js +1 -1
- package/dist/vdom.d.ts +3 -2
- package/dist/vdom.d.ts.map +1 -1
- package/dist/vdom.js +44 -0
- package/package.json +1 -1
package/dist/ui/listbox/multi.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Array, Option, Schema as S, pipe } from 'effect';
|
|
2
|
-
import { createLazy } from '../../html/index.js';
|
|
1
|
+
import { Array, Function, Option, Schema as S, pipe } from 'effect';
|
|
3
2
|
import { evo } from '../../struct/index.js';
|
|
4
|
-
import { BaseModel, Closed, Opened, SelectedItem, baseInit, makeUpdate, makeView, } from './shared.js';
|
|
3
|
+
import { BaseModel, Closed, Opened, SelectedItem, Selected as SharedSelected, baseInit, makeUpdate, makeView, } from './shared.js';
|
|
5
4
|
// MODEL
|
|
6
5
|
/** Schema for the multi-select listbox component's state, tracking open/closed status, active item, selected items, activation trigger, and typeahead search. */
|
|
7
6
|
export const Model = S.Struct({
|
|
@@ -14,12 +13,17 @@ export const init = (config) => ({
|
|
|
14
13
|
selectedItems: config.selectedItems ?? [],
|
|
15
14
|
});
|
|
16
15
|
// UPDATE
|
|
17
|
-
/** Processes a listbox message and returns the next model and
|
|
16
|
+
/** Processes a listbox message and returns the next model, commands, and optional OutMessage. Stays open on selection and toggles item membership (multi-select behavior); emits a `Selected({ value, wasAdded })` OutMessage indicating whether the value was added or removed. */
|
|
18
17
|
export const update = makeUpdate((model, item) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const wasAdded = !Array.contains(model.selectedItems, item);
|
|
19
|
+
const nextSelectedItems = wasAdded
|
|
20
|
+
? Array.append(model.selectedItems, item)
|
|
21
|
+
: Array.filter(model.selectedItems, selected => selected !== item);
|
|
22
|
+
return [
|
|
23
|
+
evo(model, { selectedItems: () => nextSelectedItems }),
|
|
24
|
+
[],
|
|
25
|
+
Option.some(SharedSelected({ value: item, wasAdded })),
|
|
26
|
+
];
|
|
23
27
|
});
|
|
24
28
|
/** Programmatically opens the listbox, updating the model and returning
|
|
25
29
|
* focus and modal commands. Use this in domain-event handlers to open the listbox. */
|
|
@@ -27,21 +31,35 @@ export const open = (model) => update(model, Opened({ maybeActiveItemIndex: Opti
|
|
|
27
31
|
/** Programmatically closes the listbox, updating the model and returning
|
|
28
32
|
* focus and modal commands. Use this in domain-event handlers to close the listbox. */
|
|
29
33
|
export const close = (model) => update(model, Closed());
|
|
30
|
-
/** Programmatically toggles an item in the multi-select listbox.
|
|
34
|
+
/** Programmatically toggles an item in the multi-select listbox. Emits `Selected({ value, wasAdded })`. */
|
|
31
35
|
export const selectItem = (model, item) => update(model, SelectedItem({ item }));
|
|
32
|
-
/**
|
|
33
|
-
|
|
36
|
+
/** Reflects an externally-sourced selection set onto the model without
|
|
37
|
+
* emitting an OutMessage or running selection side effects. Use this to
|
|
38
|
+
* mirror external truth (URL parameters, restored storage, a server push)
|
|
39
|
+
* onto the listbox's selected items. Contrast with `selectItem`, which
|
|
40
|
+
* toggles a single item as a user *choice* and emits `Selected`. Returns
|
|
41
|
+
* the model directly because it produces no commands and no OutMessage. */
|
|
42
|
+
export const reflectSelectedItems = Function.dual(2, (model, items) => evo(model, { selectedItems: () => items }));
|
|
43
|
+
const internalView = makeView({
|
|
34
44
|
isItemSelected: (model, itemValue) => Array.contains(model.selectedItems, itemValue),
|
|
35
45
|
selectedItemIndex: (model, items, itemToValue) => pipe(model.selectedItems, Array.head, Option.flatMap(selectedItem => Array.findFirstIndex(items, item => itemToValue(item) === selectedItem))),
|
|
36
46
|
ariaMultiSelectable: true,
|
|
37
47
|
});
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
/** Pairs the multi-select listbox's `view` and `update` (and programmatic
|
|
49
|
+
* helpers) behind a single Item-typed entry point. Same shape as
|
|
50
|
+
* `Ui.Listbox.create`. Two type params support object-typed items via
|
|
51
|
+
* `itemToValue`: `Value` defaults to `Item` when `Item extends string`,
|
|
52
|
+
* else `string`. */
|
|
53
|
+
export const create = () => {
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
55
|
+
const typedUpdate = update;
|
|
56
|
+
return {
|
|
57
|
+
view: internalView(),
|
|
58
|
+
update: typedUpdate,
|
|
59
|
+
selectItem: (model, item) => typedUpdate(model, SelectedItem({ item })),
|
|
60
|
+
open: model => typedUpdate(model, Opened({ maybeActiveItemIndex: Option.none() })),
|
|
61
|
+
close: model => typedUpdate(model, Closed()),
|
|
62
|
+
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
63
|
+
reflectSelectedItems: reflectSelectedItems,
|
|
64
|
+
};
|
|
47
65
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { init,
|
|
2
|
-
export type { InitConfig,
|
|
1
|
+
export { init, create, Model } from './multi.js';
|
|
2
|
+
export type { InitConfig, ViewInputs } from './multi.js';
|
|
3
3
|
//# sourceMappingURL=multiPublic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiPublic.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multiPublic.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"multiPublic.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multiPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { init,
|
|
1
|
+
export { init, create, Model } from './multi.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { init,
|
|
2
|
-
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll,
|
|
1
|
+
export { init, create, Model } from './single.js';
|
|
2
|
+
export { Message, OutMessage, Selected, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedInertOthers, CompletedRestoreInert, 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
|
-
export type { InitConfig,
|
|
4
|
+
export type { InitConfig, ViewInputs } from './single.js';
|
|
5
5
|
export type { AnchorConfig } from '../anchor.js';
|
|
6
6
|
export * as Multi from './multiPublic.js';
|
|
7
7
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,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
|
-
export { init,
|
|
2
|
-
export { Message, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll,
|
|
1
|
+
export { init, create, Model } from './single.js';
|
|
2
|
+
export { Message, OutMessage, Selected, Orientation, SelectedItem, CompletedLockScroll, CompletedUnlockScroll, CompletedInertOthers, CompletedRestoreInert, 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,14 +1,14 @@
|
|
|
1
1
|
import { Effect, Option, Schema as S } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ChildAttribute, type Html, type SubmodelView } from '../../html/index.js';
|
|
4
4
|
import * as Mount from '../../mount/index.js';
|
|
5
5
|
import { AnchorConfig } from '../anchor.js';
|
|
6
6
|
import { resolveTypeaheadMatch } from '../typeahead.js';
|
|
7
7
|
export { resolveTypeaheadMatch };
|
|
8
|
-
/** Schema for the activation trigger
|
|
8
|
+
/** Schema for the activation trigger: whether the user interacted via mouse or keyboard. */
|
|
9
9
|
export declare const ActivationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
10
10
|
export type ActivationTrigger = typeof ActivationTrigger.Type;
|
|
11
|
-
/** Schema for the listbox orientation
|
|
11
|
+
/** Schema for the listbox orientation: whether items flow vertically or horizontally. */
|
|
12
12
|
export declare const Orientation: S.Literals<readonly ["Vertical", "Horizontal"]>;
|
|
13
13
|
export type Orientation = typeof Orientation.Type;
|
|
14
14
|
/** Schema fields shared by all listbox variants (single-select and multi-select). Spread into each variant's `S.Struct` to avoid duplicating field definitions. */
|
|
@@ -43,7 +43,7 @@ export type BaseInitConfig = Readonly<{
|
|
|
43
43
|
}>;
|
|
44
44
|
/** Creates the shared base fields for a listbox model from a config. Each variant spreads this and adds its selection field. */
|
|
45
45
|
export declare const baseInit: (config: BaseInitConfig) => BaseModel;
|
|
46
|
-
/** Sent when the listbox opens via button click or keyboard. Contains an optional initial active item index
|
|
46
|
+
/** Sent when the listbox opens via button click or keyboard. Contains an optional initial active item index: None for pointer, Some for keyboard. */
|
|
47
47
|
export declare const Opened: import("../../schema/index.js").CallableTaggedStruct<"Opened", {
|
|
48
48
|
maybeActiveItemIndex: S.Option<S.Number>;
|
|
49
49
|
}>;
|
|
@@ -86,9 +86,9 @@ export declare const CompletedLockScroll: import("../../schema/index.js").Callab
|
|
|
86
86
|
/** Sent when the scroll unlock command completes. */
|
|
87
87
|
export declare const CompletedUnlockScroll: import("../../schema/index.js").CallableTaggedStruct<"CompletedUnlockScroll", {}>;
|
|
88
88
|
/** Sent when the inert-others command completes. */
|
|
89
|
-
export declare const
|
|
89
|
+
export declare const CompletedInertOthers: import("../../schema/index.js").CallableTaggedStruct<"CompletedInertOthers", {}>;
|
|
90
90
|
/** Sent when the restore-inert command completes. */
|
|
91
|
-
export declare const
|
|
91
|
+
export declare const CompletedRestoreInert: import("../../schema/index.js").CallableTaggedStruct<"CompletedRestoreInert", {}>;
|
|
92
92
|
/** Sent when the focus-button command completes after closing. */
|
|
93
93
|
export declare const CompletedFocusButton: import("../../schema/index.js").CallableTaggedStruct<"CompletedFocusButton", {}>;
|
|
94
94
|
/** Sent when the focus-items command completes after opening. */
|
|
@@ -128,8 +128,8 @@ export declare const Message: S.Union<[
|
|
|
128
128
|
typeof ClearedSearch,
|
|
129
129
|
typeof CompletedLockScroll,
|
|
130
130
|
typeof CompletedUnlockScroll,
|
|
131
|
-
typeof
|
|
132
|
-
typeof
|
|
131
|
+
typeof CompletedInertOthers,
|
|
132
|
+
typeof CompletedRestoreInert,
|
|
133
133
|
typeof CompletedFocusButton,
|
|
134
134
|
typeof CompletedFocusItems,
|
|
135
135
|
typeof CompletedScrollIntoView,
|
|
@@ -155,6 +155,26 @@ export type IgnoredMouseClick = typeof IgnoredMouseClick.Type;
|
|
|
155
155
|
export type SuppressedSpaceScroll = typeof SuppressedSpaceScroll.Type;
|
|
156
156
|
export type PressedPointerOnButton = typeof PressedPointerOnButton.Type;
|
|
157
157
|
export type Message = typeof Message.Type;
|
|
158
|
+
/** Sent when a single-select listbox commits a selection, or when a multi-select listbox toggles an item. Generic over `Value extends string`: the runtime schema stores `value: string`, but the type-level OutMessage exposes `value: Value` so consumers who supply `items: ReadonlyArray<MyUnion>` receive `value: MyUnion` from `update<MyUnion>` without casting. The cast is fenced inside this module's `update` return, sound because the value was extracted from the items array the consumer supplied. */
|
|
159
|
+
export declare const Selected: import("../../schema/index.js").CallableTaggedStruct<"Selected", {
|
|
160
|
+
value: S.String;
|
|
161
|
+
wasAdded: S.Boolean;
|
|
162
|
+
}>;
|
|
163
|
+
export type Selected<Value extends string = string> = Readonly<{
|
|
164
|
+
readonly _tag: 'Selected';
|
|
165
|
+
readonly value: Value;
|
|
166
|
+
readonly wasAdded: boolean;
|
|
167
|
+
}>;
|
|
168
|
+
/** Union of out-messages the listbox component can produce. Single-select listboxes always emit `wasAdded: true`. Multi-select listboxes emit `wasAdded: true` when adding to the selection and `wasAdded: false` when toggling off. */
|
|
169
|
+
export declare const OutMessage: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"Selected", {
|
|
170
|
+
value: S.String;
|
|
171
|
+
wasAdded: S.Boolean;
|
|
172
|
+
}>]>;
|
|
173
|
+
/** Generic over `Value extends string` so consumers who create the listbox
|
|
174
|
+
* via `Ui.Listbox.create<MyUnion>()` receive `value: MyUnion` in the
|
|
175
|
+
* `Selected` OutMessage from the factory's `update`, instead of
|
|
176
|
+
* `value: string`. Defaults to `string`. */
|
|
177
|
+
export type OutMessage<Value extends string = string> = Selected<Value>;
|
|
158
178
|
export declare const SEARCH_DEBOUNCE_MILLISECONDS = 350;
|
|
159
179
|
export declare const LEFT_MOUSE_BUTTON = 0;
|
|
160
180
|
export declare const buttonSelector: (id: string) => string;
|
|
@@ -163,8 +183,16 @@ export declare const itemSelector: (id: string, index: number) => string;
|
|
|
163
183
|
export declare const itemId: (id: string, index: number) => string;
|
|
164
184
|
export declare const closedModel: <Model extends BaseModel>(model: Model) => Model;
|
|
165
185
|
type SelectedItemContext<Model extends BaseModel> = Readonly<{
|
|
166
|
-
closeWithFocus: (model: Model) => readonly [
|
|
167
|
-
|
|
186
|
+
closeWithFocus: (model: Model, maybeOutMessage?: Option.Option<OutMessage>) => readonly [
|
|
187
|
+
Model,
|
|
188
|
+
ReadonlyArray<Command.Command<Message>>,
|
|
189
|
+
Option.Option<OutMessage>
|
|
190
|
+
];
|
|
191
|
+
closeWithoutFocus: (model: Model, maybeOutMessage?: Option.Option<OutMessage>) => readonly [
|
|
192
|
+
Model,
|
|
193
|
+
ReadonlyArray<Command.Command<Message>>,
|
|
194
|
+
Option.Option<OutMessage>
|
|
195
|
+
];
|
|
168
196
|
}>;
|
|
169
197
|
/** Prevents page scrolling while the listbox is open in modal mode. */
|
|
170
198
|
export declare const LockScroll: Command.CommandDefinitionNoArgs<"LockScroll", Effect.Effect<{
|
|
@@ -178,13 +206,13 @@ export declare const UnlockScroll: Command.CommandDefinitionNoArgs<"UnlockScroll
|
|
|
178
206
|
export declare const InertOthers: Command.CommandDefinitionWithArgs<"InertOthers", {
|
|
179
207
|
id: S.String;
|
|
180
208
|
}, Effect.Effect<{
|
|
181
|
-
readonly _tag: "
|
|
209
|
+
readonly _tag: "CompletedInertOthers";
|
|
182
210
|
}, never, never>>;
|
|
183
211
|
/** Removes the inert attribute from elements outside the listbox. */
|
|
184
212
|
export declare const RestoreInert: Command.CommandDefinitionWithArgs<"RestoreInert", {
|
|
185
213
|
id: S.String;
|
|
186
214
|
}, Effect.Effect<{
|
|
187
|
-
readonly _tag: "
|
|
215
|
+
readonly _tag: "CompletedRestoreInert";
|
|
188
216
|
}, never, never>>;
|
|
189
217
|
/** Moves focus back to the listbox button after closing. */
|
|
190
218
|
export declare const FocusButton: Command.CommandDefinitionWithArgs<"FocusButton", {
|
|
@@ -234,7 +262,7 @@ export declare const DetectMovementOrAnimationEnd: Command.CommandDefinitionWith
|
|
|
234
262
|
readonly _tag: "EndedAnimation";
|
|
235
263
|
};
|
|
236
264
|
}, never, never>>;
|
|
237
|
-
export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (model: Model, item: string, context: SelectedItemContext<Model>) => [Model, ReadonlyArray<Command.Command<Message
|
|
265
|
+
export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (model: Model, item: string, context: SelectedItemContext<Model>) => readonly [Model, ReadonlyArray<Command.Command<Message>>, Option.Option<OutMessage>]) => (model: Model, message: Message) => readonly [Model, readonly Readonly<{
|
|
238
266
|
name: string;
|
|
239
267
|
args?: Record<string, unknown>;
|
|
240
268
|
effect: Effect.Effect<{
|
|
@@ -273,9 +301,9 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
273
301
|
} | {
|
|
274
302
|
readonly _tag: "CompletedUnlockScroll";
|
|
275
303
|
} | {
|
|
276
|
-
readonly _tag: "
|
|
304
|
+
readonly _tag: "CompletedInertOthers";
|
|
277
305
|
} | {
|
|
278
|
-
readonly _tag: "
|
|
306
|
+
readonly _tag: "CompletedRestoreInert";
|
|
279
307
|
} | {
|
|
280
308
|
readonly _tag: "CompletedFocusButton";
|
|
281
309
|
} | {
|
|
@@ -308,7 +336,11 @@ export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (
|
|
|
308
336
|
readonly pointerType: string;
|
|
309
337
|
readonly button: number;
|
|
310
338
|
}, never, never>;
|
|
311
|
-
}>[]
|
|
339
|
+
}>[], Option.Option<Readonly<{
|
|
340
|
+
readonly _tag: "Selected";
|
|
341
|
+
readonly value: string;
|
|
342
|
+
readonly wasAdded: boolean;
|
|
343
|
+
}>>];
|
|
312
344
|
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
313
345
|
* configured. Exposed so Scene tests can call
|
|
314
346
|
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
@@ -340,11 +372,12 @@ export type GroupHeading = Readonly<{
|
|
|
340
372
|
content: Html;
|
|
341
373
|
className?: string;
|
|
342
374
|
}>;
|
|
343
|
-
/**
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
375
|
+
/** Per-render view inputs passed to `view` via `h.submodel`'s `viewInputs` field.
|
|
376
|
+
*
|
|
377
|
+
* The Listbox emits a `Selected({ value, wasAdded })` OutMessage on
|
|
378
|
+
* commit (single-select always `wasAdded: true`, multi-select toggles).
|
|
379
|
+
* Consumers pattern-match this in their `GotListboxMessage` handler. */
|
|
380
|
+
type BaseViewInputsCommon<Item> = Readonly<{
|
|
348
381
|
items: ReadonlyArray<Item>;
|
|
349
382
|
itemToConfig: (item: Item, context: Readonly<{
|
|
350
383
|
isActive: boolean;
|
|
@@ -353,35 +386,43 @@ export type BaseViewConfig<ParentMessage, Item, Model extends BaseModel> = Reado
|
|
|
353
386
|
}>) => ItemConfig;
|
|
354
387
|
isItemDisabled?: (item: Item, index: number) => boolean;
|
|
355
388
|
itemToSearchText?: (item: Item, index: number) => string;
|
|
356
|
-
itemToValue?: (item: Item) => string;
|
|
357
389
|
isButtonDisabled?: boolean;
|
|
358
390
|
buttonContent: Html;
|
|
359
391
|
buttonClassName?: string;
|
|
360
|
-
buttonAttributes?: ReadonlyArray<
|
|
392
|
+
buttonAttributes?: ReadonlyArray<ChildAttribute>;
|
|
361
393
|
itemsClassName?: string;
|
|
362
|
-
itemsAttributes?: ReadonlyArray<
|
|
394
|
+
itemsAttributes?: ReadonlyArray<ChildAttribute>;
|
|
363
395
|
itemsScrollClassName?: string;
|
|
364
|
-
itemsScrollAttributes?: ReadonlyArray<
|
|
396
|
+
itemsScrollAttributes?: ReadonlyArray<ChildAttribute>;
|
|
365
397
|
backdropClassName?: string;
|
|
366
|
-
backdropAttributes?: ReadonlyArray<
|
|
398
|
+
backdropAttributes?: ReadonlyArray<ChildAttribute>;
|
|
367
399
|
className?: string;
|
|
368
|
-
attributes?: ReadonlyArray<
|
|
400
|
+
attributes?: ReadonlyArray<ChildAttribute>;
|
|
369
401
|
itemGroupKey?: (item: Item, index: number) => string;
|
|
370
402
|
groupToHeading?: (groupKey: string) => GroupHeading | undefined;
|
|
371
403
|
groupClassName?: string;
|
|
372
|
-
groupAttributes?: ReadonlyArray<
|
|
404
|
+
groupAttributes?: ReadonlyArray<ChildAttribute>;
|
|
373
405
|
separatorClassName?: string;
|
|
374
|
-
separatorAttributes?: ReadonlyArray<
|
|
406
|
+
separatorAttributes?: ReadonlyArray<ChildAttribute>;
|
|
375
407
|
anchor?: AnchorConfig;
|
|
376
408
|
name?: string;
|
|
377
409
|
form?: string;
|
|
378
410
|
isDisabled?: boolean;
|
|
379
411
|
isInvalid?: boolean;
|
|
380
412
|
}>;
|
|
413
|
+
/** Per-render view inputs for a Listbox view. The `itemToValue` extractor
|
|
414
|
+
* is optional when `Item` is itself a string (the default returns the
|
|
415
|
+
* item unchanged) and required when items are objects, so the OutMessage
|
|
416
|
+
* payload type can't drift from what the consumer actually emits. */
|
|
417
|
+
export type BaseViewInputs<Item, Value extends string = string> = BaseViewInputsCommon<Item> & ([Item] extends [string] ? Readonly<{
|
|
418
|
+
itemToValue?: (item: Item) => Value;
|
|
419
|
+
}> : Readonly<{
|
|
420
|
+
itemToValue: (item: Item) => Value;
|
|
421
|
+
}>);
|
|
381
422
|
type ViewBehavior<Model extends BaseModel> = Readonly<{
|
|
382
423
|
isItemSelected: (model: Model, itemValue: string) => boolean;
|
|
383
424
|
selectedItemIndex: <Item>(model: Model, items: ReadonlyArray<Item>, itemToValue: (item: Item) => string) => Option.Option<number>;
|
|
384
425
|
ariaMultiSelectable: boolean;
|
|
385
426
|
}>;
|
|
386
|
-
export declare const makeView: <Model extends BaseModel>(behavior: ViewBehavior<Model>) => <
|
|
427
|
+
export declare const makeView: <Model extends BaseModel>(behavior: ViewBehavior<Model>) => <Item, Value extends string = string>() => SubmodelView<Model, Message, BaseViewInputs<Item, Value>>;
|
|
387
428
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAGjD,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAA6B,MAAM,cAAc,CAAA;AAoBtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAIhC,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,8CAAsC,CAAA;AACpE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,yFAAyF;AACzF,eAAO,MAAM,WAAW,iDAAyC,CAAA;AACjE,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,mKAAmK;AACnK,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EAepB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,2EAA2E;AAC3E,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC,IAAI,CAAA;CACtC,CAAC,CAAA;AAEF,gIAAgI;AAChI,eAAO,MAAM,QAAQ,GAAI,QAAQ,cAAc,KAAG,SAahD,CAAA;AAIF,qJAAqJ;AACrJ,eAAO,MAAM,MAAM;;EAEjB,CAAA;AACF,qEAAqE;AACrE,eAAO,MAAM,MAAM,oEAAc,CAAA;AACjC,yDAAyD;AACzD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,mGAAmG;AACnG,eAAO,MAAM,aAAa;;;EAGxB,CAAA;AACF,kDAAkD;AAClD,eAAO,MAAM,eAAe,6EAAuB,CAAA;AACnD,kGAAkG;AAClG,eAAO,MAAM,YAAY;;EAAwC,CAAA;AACjE,kHAAkH;AAClH,eAAO,MAAM,kBAAkB;;EAE7B,CAAA;AACF,qEAAqE;AACrE,eAAO,MAAM,QAAQ;;;EAGnB,CAAA;AACF,4EAA4E;AAC5E,eAAO,MAAM,aAAa;;EAA4C,CAAA;AACtE,mHAAmH;AACnH,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAA;AACF,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,qFAA+B,CAAA;AACnE,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,gFAA0B,CAAA;AACzD,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,oJAAoJ;AACpJ,eAAO,MAAM,sBAAsB,oFAA8B,CAAA;AACjE,+IAA+I;AAC/I,eAAO,MAAM,8BAA8B,4FAE1C,CAAA;AACD,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB;;EAE9B,CAAA;AACF,kHAAkH;AAClH,eAAO,MAAM,sBAAsB;;;EAGjC,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,aAAa;IACpB,OAAO,eAAe;IACtB,OAAO,YAAY;IACnB,OAAO,oBAAoB;IAC3B,OAAO,kBAAkB;IACzB,OAAO,QAAQ;IACf,OAAO,aAAa;IACpB,OAAO,mBAAmB;IAC1B,OAAO,qBAAqB;IAC5B,OAAO,oBAAoB;IAC3B,OAAO,qBAAqB;IAC5B,OAAO,oBAAoB;IAC3B,OAAO,mBAAmB;IAC1B,OAAO,uBAAuB;IAC9B,OAAO,kBAAkB;IACzB,OAAO,iBAAiB;IACxB,OAAO,qBAAqB;IAC5B,OAAO,sBAAsB;IAC7B,OAAO,8BAA8B;IACrC,OAAO,mBAAmB;IAC1B,OAAO,sBAAsB;CAC9B,CA0BD,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AACrD,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AACnD,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAC/D,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAC3C,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAC7D,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AACrE,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,sfAAsf;AACtf,eAAO,MAAM,QAAQ;;;EAGnB,CAAA;AAEF,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B,CAAC,CAAA;AAEF,wOAAwO;AACxO,eAAO,MAAM,UAAU;;;IAAsB,CAAA;AAE7C;;;6CAG6C;AAC7C,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;AAIvE,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAC/C,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAIlC,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAAyB,CAAA;AACrE,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAAwB,CAAA;AACnE,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,MACjC,CAAA;AACxB,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,MAC5B,CAAA;AAMvB,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,SAAS,EAAE,OAAO,KAAK,KAAG,KAQhE,CAAA;AAIJ,KAAK,mBAAmB,CAAC,KAAK,SAAS,SAAS,IAAI,QAAQ,CAAC;IAC3D,cAAc,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KACxC,SAAS;QACZ,KAAK;QACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KAC1B,CAAA;IACD,iBAAiB,EAAE,CACjB,KAAK,EAAE,KAAK,EACZ,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KACxC,SAAS;QACZ,KAAK;QACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KAC1B,CAAA;CACF,CAAC,CAAA;AAEF,uEAAuE;AACvE,eAAO,MAAM,UAAU;;iBAGiC,CAAA;AACxD,0DAA0D;AAC1D,eAAO,MAAM,YAAY;;iBAGmC,CAAA;AAC5D,0EAA0E;AAC1E,eAAO,MAAM,WAAW;;;;iBAQvB,CAAA;AACD,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;iBAImD,CAAA;AAC5E,4DAA4D;AAC5D,eAAO,MAAM,WAAW;;;;iBASvB,CAAA;AACD,gEAAgE;AAChE,eAAO,MAAM,UAAU;;;;iBAStB,CAAA;AACD,2EAA2E;AAC3E,eAAO,MAAM,cAAc;;;;;iBAS1B,CAAA;AACD,qEAAqE;AACrE,eAAO,MAAM,SAAS;;;;;iBASrB,CAAA;AACD,gFAAgF;AAChF,eAAO,MAAM,gBAAgB;;;;;iBAQ5B,CAAA;AACD,wKAAwK;AACxK,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAaxC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,SAAS,EAChD,oBAAoB,CAClB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAChC,SAAS,CACZ,KAAK,EACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAC1B,aAkF8B,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA1PvC,UAAU;;uBAEN,OAAO;IAqd3B,CAAA;AAED;;sEAEsE;AACtE,eAAO,MAAM,aAAa;;;;;;;;;;;EAczB,CAAA;AAED;;+DAE+D;AAC/D,eAAO,MAAM,qBAAqB;;EAWjC,CAAA;AAID,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,IAAI,CAAA;CACd,CAAC,CAAA;AAEF,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AAEF;;;;yEAIyE;AACzE,KAAK,oBAAoB,CAAC,IAAI,IAAI,QAAQ,CAAC;IACzC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IAC1B,YAAY,EAAE,CACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,QAAQ,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAA;QACjB,UAAU,EAAE,OAAO,CAAA;QACnB,UAAU,EAAE,OAAO,CAAA;KACpB,CAAC,KACC,UAAU,CAAA;IACf,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACvD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,IAAI,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAChD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qBAAqB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACpD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAC,CAAA;AAEF;;;sEAGsE;AACtE,MAAM,MAAM,cAAc,CACxB,IAAI,EACJ,KAAK,SAAS,MAAM,GAAG,MAAM,IAC3B,oBAAoB,CAAC,IAAI,CAAC,GAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GACpB,QAAQ,CAAC;IAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAA;CAAE,CAAC,GACjD,QAAQ,CAAC;IAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAA;CAAE,CAAC,CAAC,CAAA;AAIvD,KAAK,YAAY,CAAC,KAAK,SAAS,SAAS,IAAI,QAAQ,CAAC;IACpD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5D,iBAAiB,EAAE,CAAC,IAAI,EACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,KAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,mBAAmB,EAAE,OAAO,CAAA;CAC7B,CAAC,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,EAC9C,UAAU,YAAY,CAAC,KAAK,CAAC,MAmfrB,IAAI,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,OAEtB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAC9E,CAAA"}
|