foldkit 0.36.2 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/dist/command/index.d.ts +36 -2
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +11 -1
- package/dist/command/public.d.ts +1 -0
- 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 +16 -15
- package/dist/devtools/store.d.ts +2 -2
- package/dist/devtools/store.d.ts.map +1 -1
- package/dist/devtools/store.js +2 -2
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +10 -4
- package/dist/task/dom.d.ts +1 -9
- package/dist/task/dom.d.ts.map +1 -1
- package/dist/task/dom.js +81 -111
- package/dist/ui/combobox/multi.d.ts +56 -53
- package/dist/ui/combobox/multi.d.ts.map +1 -1
- package/dist/ui/combobox/shared.d.ts +63 -60
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +11 -10
- package/dist/ui/combobox/single.d.ts +56 -53
- package/dist/ui/combobox/single.d.ts.map +1 -1
- package/dist/ui/dialog/index.d.ts +2 -2
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +10 -7
- package/dist/ui/disclosure/index.d.ts +2 -2
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +3 -2
- package/dist/ui/listbox/multi.d.ts +65 -62
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/shared.d.ts +71 -68
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +14 -13
- package/dist/ui/listbox/single.d.ts +65 -62
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/menu/index.d.ts +2 -2
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +17 -16
- package/dist/ui/popover/index.d.ts +2 -2
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +12 -11
- package/dist/ui/radioGroup/index.d.ts +2 -2
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +2 -1
- package/dist/ui/tabs/index.d.ts +2 -2
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +3 -2
- package/package.json +1 -1
|
@@ -69,61 +69,64 @@ export declare const update: (model: {
|
|
|
69
69
|
} & {
|
|
70
70
|
readonly maybeSelectedItem: Option.Option<string>;
|
|
71
71
|
readonly maybeSelectedDisplayText: Option.Option<string>;
|
|
72
|
-
}, readonly
|
|
73
|
-
readonly
|
|
74
|
-
readonly
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
} | {
|
|
78
|
-
|
|
79
|
-
} | {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
72
|
+
}, readonly {
|
|
73
|
+
readonly name: string;
|
|
74
|
+
readonly effect: import("effect/Effect").Effect<{
|
|
75
|
+
readonly _tag: "Opened";
|
|
76
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
77
|
+
} | {
|
|
78
|
+
readonly _tag: "Closed";
|
|
79
|
+
} | {
|
|
80
|
+
readonly _tag: "ClosedByTab";
|
|
81
|
+
} | {
|
|
82
|
+
readonly _tag: "ActivatedItem";
|
|
83
|
+
readonly index: number;
|
|
84
|
+
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
85
|
+
readonly maybeImmediateSelection: Option.Option<{
|
|
86
|
+
readonly item: string;
|
|
87
|
+
readonly displayText: string;
|
|
88
|
+
}>;
|
|
89
|
+
} | {
|
|
90
|
+
readonly _tag: "DeactivatedItem";
|
|
91
|
+
} | {
|
|
92
|
+
readonly _tag: "SelectedItem";
|
|
84
93
|
readonly item: string;
|
|
85
94
|
readonly displayText: string;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
} | {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
} | {
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
} | {
|
|
122
|
-
readonly _tag: "UpdatedInputValue";
|
|
123
|
-
readonly value: string;
|
|
124
|
-
} | {
|
|
125
|
-
readonly _tag: "PressedToggleButton";
|
|
126
|
-
}>[]];
|
|
95
|
+
} | {
|
|
96
|
+
readonly _tag: "MovedPointerOverItem";
|
|
97
|
+
readonly index: number;
|
|
98
|
+
readonly screenX: number;
|
|
99
|
+
readonly screenY: number;
|
|
100
|
+
} | {
|
|
101
|
+
readonly _tag: "RequestedItemClick";
|
|
102
|
+
readonly index: number;
|
|
103
|
+
} | {
|
|
104
|
+
readonly _tag: "CompletedScrollLock";
|
|
105
|
+
} | {
|
|
106
|
+
readonly _tag: "CompletedScrollUnlock";
|
|
107
|
+
} | {
|
|
108
|
+
readonly _tag: "CompletedInertSetup";
|
|
109
|
+
} | {
|
|
110
|
+
readonly _tag: "CompletedInertTeardown";
|
|
111
|
+
} | {
|
|
112
|
+
readonly _tag: "CompletedInputFocus";
|
|
113
|
+
} | {
|
|
114
|
+
readonly _tag: "CompletedScrollIntoView";
|
|
115
|
+
} | {
|
|
116
|
+
readonly _tag: "CompletedItemClick";
|
|
117
|
+
} | {
|
|
118
|
+
readonly _tag: "AdvancedTransitionFrame";
|
|
119
|
+
} | {
|
|
120
|
+
readonly _tag: "EndedTransition";
|
|
121
|
+
} | {
|
|
122
|
+
readonly _tag: "DetectedInputMovement";
|
|
123
|
+
} | {
|
|
124
|
+
readonly _tag: "UpdatedInputValue";
|
|
125
|
+
readonly value: string;
|
|
126
|
+
} | {
|
|
127
|
+
readonly _tag: "PressedToggleButton";
|
|
128
|
+
}, never, never>;
|
|
129
|
+
}[]];
|
|
127
130
|
/** Configuration for rendering a single-select combobox with `view`. */
|
|
128
131
|
export type ViewConfig<Message, Item extends string> = BaseViewConfig<Message, Item, Model>;
|
|
129
132
|
/** Renders a headless single-select combobox with keyboard navigation, selection tracking, and aria-activedescendant focus management. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/combobox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAKpB,MAAM,UAAU,CAAA;AAIjB,uJAAuJ;AACvJ,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;GAOjB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,8RAA8R;AAC9R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC,CAAA;AAEJ,4IAA4I;AAC5I,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAMxC,CAAA;AAIF,uIAAuI;AACvI,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqDjB,CAAA;AAIF,wEAAwE;AACxE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,SAAS,MAAM,IAAI,cAAc,CACnE,OAAO,EACP,IAAI,EACJ,KAAK,CACN,CAAA;AAED,0IAA0I;AAC1I,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOf,CAAA;AAEF;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,SAAS,MAAM,EAC/C,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KACnE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KACzD,IAAI,CAgBR,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema as S } from 'effect';
|
|
2
|
-
import
|
|
2
|
+
import * as Command from '../../command';
|
|
3
3
|
import { type Attribute, type Html } from '../../html';
|
|
4
4
|
/** Schema for the dialog component's state, tracking its unique ID, open/closed status, animation support, and transition phase. */
|
|
5
5
|
export declare const Model: S.Struct<{
|
|
@@ -45,7 +45,7 @@ export type InitConfig = Readonly<{
|
|
|
45
45
|
}>;
|
|
46
46
|
/** Creates an initial dialog model from a config. Defaults to closed and non-animated. */
|
|
47
47
|
export declare const init: (config: InitConfig) => Model;
|
|
48
|
-
type UpdateReturn = [Model, ReadonlyArray<Command<Message>>];
|
|
48
|
+
type UpdateReturn = [Model, ReadonlyArray<Command.Command<Message>>];
|
|
49
49
|
/** Processes a dialog message and returns the next model and commands. */
|
|
50
50
|
export declare const update: (model: Model, message: Message) => UpdateReturn;
|
|
51
51
|
/** Returns the ID used for `aria-labelledby` on the dialog. Apply this to your title element. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/dialog/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Array, Effect, Match as M, Option, Schema as S } from 'effect';
|
|
2
|
+
import * as Command from '../../command';
|
|
2
3
|
import { OptionExt } from '../../effectExtensions';
|
|
3
4
|
import { createLazy, html } from '../../html';
|
|
4
5
|
import { m } from '../../message';
|
|
@@ -43,14 +44,14 @@ const panelSelector = (id) => `#${id}-panel`;
|
|
|
43
44
|
const withUpdateReturn = M.withReturnType();
|
|
44
45
|
/** Processes a dialog message and returns the next model and commands. */
|
|
45
46
|
export const update = (model, message) => {
|
|
46
|
-
const maybeNextFrame = OptionExt.when(model.isAnimated, Task.nextFrame.pipe(Effect.as(AdvancedTransitionFrame())));
|
|
47
|
+
const maybeNextFrame = OptionExt.when(model.isAnimated, Task.nextFrame.pipe(Effect.as(AdvancedTransitionFrame()), Command.make('RequestFrame')));
|
|
47
48
|
return M.value(message).pipe(withUpdateReturn, M.tagsExhaustive({
|
|
48
49
|
Opened: () => {
|
|
49
50
|
const focusOptions = Option.match(model.maybeFocusSelector, {
|
|
50
51
|
onNone: () => undefined,
|
|
51
52
|
onSome: focusSelector => ({ focusSelector }),
|
|
52
53
|
});
|
|
53
|
-
const maybeShow = Option.liftPredicate(Task.lockScroll.pipe(Effect.andThen(() => Task.showModal(dialogSelector(model.id), focusOptions)), Effect.ignore, Effect.as(CompletedDialogShow())), () => !model.isOpen);
|
|
54
|
+
const maybeShow = Option.liftPredicate(Task.lockScroll.pipe(Effect.andThen(() => Task.showModal(dialogSelector(model.id), focusOptions)), Effect.ignore, Effect.as(CompletedDialogShow()), Command.make('ShowDialog')), () => !model.isOpen);
|
|
54
55
|
return [
|
|
55
56
|
evo(model, {
|
|
56
57
|
isOpen: () => true,
|
|
@@ -74,18 +75,18 @@ export const update = (model, message) => {
|
|
|
74
75
|
Option.toArray(maybeNextFrame),
|
|
75
76
|
];
|
|
76
77
|
}
|
|
77
|
-
const maybeClose = Option.liftPredicate(Task.closeModal(dialogSelector(model.id)).pipe(Effect.andThen(() => Task.unlockScroll), Effect.ignore, Effect.as(CompletedDialogClose())), () => model.isOpen);
|
|
78
|
+
const maybeClose = Option.liftPredicate(Task.closeModal(dialogSelector(model.id)).pipe(Effect.andThen(() => Task.unlockScroll), Effect.ignore, Effect.as(CompletedDialogClose()), Command.make('CloseDialog')), () => model.isOpen);
|
|
78
79
|
return [evo(model, { isOpen: () => false }), Option.toArray(maybeClose)];
|
|
79
80
|
},
|
|
80
81
|
AdvancedTransitionFrame: () => M.value(model.transitionState).pipe(withUpdateReturn, M.when('EnterStart', () => [
|
|
81
82
|
evo(model, { transitionState: () => 'EnterAnimating' }),
|
|
82
83
|
[
|
|
83
|
-
Task.waitForTransitions(panelSelector(model.id)).pipe(Effect.as(EndedTransition())),
|
|
84
|
+
Task.waitForTransitions(panelSelector(model.id)).pipe(Effect.as(EndedTransition()), Command.make('WaitForTransitions')),
|
|
84
85
|
],
|
|
85
86
|
]), M.when('LeaveStart', () => [
|
|
86
87
|
evo(model, { transitionState: () => 'LeaveAnimating' }),
|
|
87
88
|
[
|
|
88
|
-
Task.waitForTransitions(panelSelector(model.id)).pipe(Effect.as(EndedTransition())),
|
|
89
|
+
Task.waitForTransitions(panelSelector(model.id)).pipe(Effect.as(EndedTransition()), Command.make('WaitForTransitions')),
|
|
89
90
|
],
|
|
90
91
|
]), M.orElse(() => [model, []])),
|
|
91
92
|
EndedTransition: () => M.value(model.transitionState).pipe(withUpdateReturn, M.when('EnterAnimating', () => [
|
|
@@ -94,7 +95,7 @@ export const update = (model, message) => {
|
|
|
94
95
|
]), M.when('LeaveAnimating', () => [
|
|
95
96
|
evo(model, { transitionState: () => 'Idle' }),
|
|
96
97
|
[
|
|
97
|
-
Task.closeModal(dialogSelector(model.id)).pipe(Effect.andThen(() => Task.unlockScroll), Effect.ignore, Effect.as(CompletedDialogClose())),
|
|
98
|
+
Task.closeModal(dialogSelector(model.id)).pipe(Effect.andThen(() => Task.unlockScroll), Effect.ignore, Effect.as(CompletedDialogClose()), Command.make('CloseDialog')),
|
|
98
99
|
],
|
|
99
100
|
]), M.orElse(() => [model, []])),
|
|
100
101
|
CompletedDialogShow: () => [model, []],
|
|
@@ -133,7 +134,8 @@ export const view = (config) => {
|
|
|
133
134
|
AriaDescribedBy(`${id}-description`),
|
|
134
135
|
OnCancel(toMessage(Closed())),
|
|
135
136
|
Style({
|
|
136
|
-
|
|
137
|
+
width: '100%',
|
|
138
|
+
height: '100%',
|
|
137
139
|
maxWidth: '100%',
|
|
138
140
|
maxHeight: '100%',
|
|
139
141
|
padding: '0',
|
|
@@ -145,6 +147,7 @@ export const view = (config) => {
|
|
|
145
147
|
...attributes,
|
|
146
148
|
];
|
|
147
149
|
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
150
|
+
Style({ minHeight: '100vh' }),
|
|
148
151
|
...transitionAttributes,
|
|
149
152
|
...(isLeaving ? [] : [OnClick(toMessage(Closed()))]),
|
|
150
153
|
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema as S } from 'effect';
|
|
2
|
-
import
|
|
2
|
+
import * as Command from '../../command';
|
|
3
3
|
import { type Attribute, type Html, type TagName } from '../../html';
|
|
4
4
|
/** Schema for the disclosure component's state, tracking its unique ID and open/closed status. */
|
|
5
5
|
export declare const Model: S.Struct<{
|
|
@@ -31,7 +31,7 @@ export type InitConfig = Readonly<{
|
|
|
31
31
|
/** Creates an initial disclosure model from a config. Defaults to closed. */
|
|
32
32
|
export declare const init: (config: InitConfig) => Model;
|
|
33
33
|
/** Processes a disclosure message and returns the next model and commands. */
|
|
34
|
-
export declare const update: (model: Model, message: Message) => [Model, ReadonlyArray<Command<Message>>];
|
|
34
|
+
export declare const update: (model: Model, message: Message) => [Model, ReadonlyArray<Command.Command<Message>>];
|
|
35
35
|
/** Configuration for rendering a disclosure with `view`. */
|
|
36
36
|
export type ViewConfig<Message> = Readonly<{
|
|
37
37
|
model: Model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhE,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,OAAO,EAGb,MAAM,YAAY,CAAA;AAOnB,kGAAkG;AAClG,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,iFAAiF;AACjF,eAAO,MAAM,OAAO,4DAAe,CAAA;AACnC,gFAAgF;AAChF,eAAO,MAAM,MAAM,2DAAc,CAAA;AACjC,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,yEAA4B,CAAA;AAE7D,kEAAkE;AAClE,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IAAC,OAAO,OAAO;IAAE,OAAO,MAAM;IAAE,OAAO,oBAAoB;CAAC,CACZ,CAAA;AAElD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AACzC,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF,6EAA6E;AAC7E,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAUF,8EAA8E;AAC9E,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiC/C,CAAA;AAIH,4DAA4D;AAC5D,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,oBAAoB,KAAK,OAAO,CAAA;IACxE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,aAAa,EAAE,IAAI,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,YAAY,EAAE,IAAI,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEF,oGAAoG;AACpG,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,QAAQ,UAAU,CAAC,OAAO,CAAC,KAAG,IAgG3D,CAAA;AAED;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAC1B,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KAC7D,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAgBtE,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect, Match as M, Option, Schema as S } from 'effect';
|
|
2
|
+
import * as Command from '../../command';
|
|
2
3
|
import { createLazy, html, } from '../../html';
|
|
3
4
|
import { m } from '../../message';
|
|
4
5
|
import { evo } from '../../struct';
|
|
@@ -30,14 +31,14 @@ const panelId = (id) => `${id}-panel`;
|
|
|
30
31
|
/** Processes a disclosure message and returns the next model and commands. */
|
|
31
32
|
export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
|
|
32
33
|
Toggled: () => {
|
|
33
|
-
const maybeFocus = Option.liftPredicate(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedButtonFocus())), () => model.isOpen);
|
|
34
|
+
const maybeFocus = Option.liftPredicate(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedButtonFocus()), Command.make('FocusButton')), () => model.isOpen);
|
|
34
35
|
return [
|
|
35
36
|
evo(model, { isOpen: () => !model.isOpen }),
|
|
36
37
|
Option.toArray(maybeFocus),
|
|
37
38
|
];
|
|
38
39
|
},
|
|
39
40
|
Closed: () => {
|
|
40
|
-
const maybeFocus = Option.liftPredicate(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedButtonFocus())), () => model.isOpen);
|
|
41
|
+
const maybeFocus = Option.liftPredicate(Task.focus(buttonSelector(model.id)).pipe(Effect.ignore, Effect.as(CompletedButtonFocus()), Command.make('FocusButton')), () => model.isOpen);
|
|
41
42
|
return [evo(model, { isOpen: () => false }), Option.toArray(maybeFocus)];
|
|
42
43
|
},
|
|
43
44
|
CompletedButtonFocus: () => [model, []],
|
|
@@ -65,68 +65,71 @@ export declare const update: (model: {
|
|
|
65
65
|
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
66
66
|
} & {
|
|
67
67
|
readonly selectedItems: readonly string[];
|
|
68
|
-
}, readonly
|
|
69
|
-
readonly
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
} | {
|
|
73
|
-
|
|
74
|
-
} | {
|
|
75
|
-
|
|
76
|
-
} | {
|
|
77
|
-
|
|
78
|
-
} | {
|
|
79
|
-
|
|
80
|
-
} | {
|
|
81
|
-
|
|
82
|
-
} | {
|
|
83
|
-
|
|
84
|
-
} | {
|
|
85
|
-
|
|
86
|
-
} | {
|
|
87
|
-
|
|
88
|
-
} | {
|
|
89
|
-
|
|
90
|
-
} | {
|
|
91
|
-
|
|
92
|
-
} | {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
} | {
|
|
120
|
-
|
|
121
|
-
} | {
|
|
122
|
-
|
|
123
|
-
} | {
|
|
124
|
-
|
|
125
|
-
} | {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
68
|
+
}, readonly {
|
|
69
|
+
readonly name: string;
|
|
70
|
+
readonly effect: import("effect/Effect").Effect<{
|
|
71
|
+
readonly _tag: "Closed";
|
|
72
|
+
} | {
|
|
73
|
+
readonly _tag: "ClosedByTab";
|
|
74
|
+
} | {
|
|
75
|
+
readonly _tag: "DeactivatedItem";
|
|
76
|
+
} | {
|
|
77
|
+
readonly _tag: "CompletedScrollLock";
|
|
78
|
+
} | {
|
|
79
|
+
readonly _tag: "CompletedScrollUnlock";
|
|
80
|
+
} | {
|
|
81
|
+
readonly _tag: "CompletedInertSetup";
|
|
82
|
+
} | {
|
|
83
|
+
readonly _tag: "CompletedInertTeardown";
|
|
84
|
+
} | {
|
|
85
|
+
readonly _tag: "CompletedScrollIntoView";
|
|
86
|
+
} | {
|
|
87
|
+
readonly _tag: "CompletedItemClick";
|
|
88
|
+
} | {
|
|
89
|
+
readonly _tag: "AdvancedTransitionFrame";
|
|
90
|
+
} | {
|
|
91
|
+
readonly _tag: "EndedTransition";
|
|
92
|
+
} | {
|
|
93
|
+
readonly _tag: "CompletedButtonFocus";
|
|
94
|
+
} | {
|
|
95
|
+
readonly _tag: "Opened";
|
|
96
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
97
|
+
} | {
|
|
98
|
+
readonly _tag: "ActivatedItem";
|
|
99
|
+
readonly index: number;
|
|
100
|
+
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
101
|
+
} | {
|
|
102
|
+
readonly _tag: "SelectedItem";
|
|
103
|
+
readonly item: string;
|
|
104
|
+
} | {
|
|
105
|
+
readonly _tag: "RequestedItemClick";
|
|
106
|
+
readonly index: number;
|
|
107
|
+
} | {
|
|
108
|
+
readonly _tag: "Searched";
|
|
109
|
+
readonly key: string;
|
|
110
|
+
readonly maybeTargetIndex: Option.Option<number>;
|
|
111
|
+
} | {
|
|
112
|
+
readonly _tag: "ClearedSearch";
|
|
113
|
+
readonly version: number;
|
|
114
|
+
} | {
|
|
115
|
+
readonly _tag: "MovedPointerOverItem";
|
|
116
|
+
readonly index: number;
|
|
117
|
+
readonly screenX: number;
|
|
118
|
+
readonly screenY: number;
|
|
119
|
+
} | {
|
|
120
|
+
readonly _tag: "CompletedItemsFocus";
|
|
121
|
+
} | {
|
|
122
|
+
readonly _tag: "IgnoredMouseClick";
|
|
123
|
+
} | {
|
|
124
|
+
readonly _tag: "SuppressedSpaceScroll";
|
|
125
|
+
} | {
|
|
126
|
+
readonly _tag: "DetectedButtonMovement";
|
|
127
|
+
} | {
|
|
128
|
+
readonly _tag: "PressedPointerOnButton";
|
|
129
|
+
readonly button: number;
|
|
130
|
+
readonly pointerType: string;
|
|
131
|
+
}, never, never>;
|
|
132
|
+
}[]];
|
|
130
133
|
/** Configuration for rendering a multi-select listbox with `view`. */
|
|
131
134
|
export type ViewConfig<Message, Item> = BaseViewConfig<Message, Item, Model>;
|
|
132
135
|
/** Renders a headless multi-select listbox with typeahead search, keyboard navigation, selection tracking, and aria-activedescendant focus management. */
|
|
@@ -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,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAIpB,MAAM,UAAU,CAAA;AAIjB,iKAAiK;AACjK,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;GAEjB,CAAA;AAED,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,EAAE,KAAK,IAAI,EAAc,MAAM,YAAY,CAAA;AAElD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EAIpB,MAAM,UAAU,CAAA;AAIjB,iKAAiK;AACjK,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;GAEjB,CAAA;AAED,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMjB,CAAA;AAIF,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AAE5E,0JAA0J;AAC1J,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAYf,CAAA;AAEF;6EAC6E;AAC7E,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,EAChC,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,KACnE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KACzD,IAAI,CAgBR,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Option, Schema as S } from 'effect';
|
|
2
|
-
import
|
|
1
|
+
import { Effect, Option, Schema as S } from 'effect';
|
|
2
|
+
import * as Command from '../../command';
|
|
3
3
|
import { type Attribute, type Html } from '../../html';
|
|
4
4
|
import type { AnchorConfig } from '../anchor';
|
|
5
5
|
import { resolveTypeaheadMatch } from '../typeahead';
|
|
@@ -159,73 +159,76 @@ export declare const itemSelector: (id: string, index: number) => string;
|
|
|
159
159
|
export declare const itemId: (id: string, index: number) => string;
|
|
160
160
|
export declare const closedModel: <Model extends BaseModel>(model: Model) => Model;
|
|
161
161
|
type SelectedItemContext = Readonly<{
|
|
162
|
-
focusButton: Command<Message>;
|
|
163
|
-
maybeNextFrame: Option.Option<Command<Message>>;
|
|
164
|
-
maybeUnlockScroll: Option.Option<Command<Message>>;
|
|
165
|
-
maybeRestoreInert: Option.Option<Command<Message>>;
|
|
162
|
+
focusButton: Command.Command<Message>;
|
|
163
|
+
maybeNextFrame: Option.Option<Command.Command<Message>>;
|
|
164
|
+
maybeUnlockScroll: Option.Option<Command.Command<Message>>;
|
|
165
|
+
maybeRestoreInert: Option.Option<Command.Command<Message>>;
|
|
166
166
|
}>;
|
|
167
|
-
export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (model: Model, item: string, context: SelectedItemContext) => [Model, ReadonlyArray<Command<Message>>]) => (model: Model, message: Message) => [Model, readonly
|
|
168
|
-
readonly
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
} | {
|
|
172
|
-
|
|
173
|
-
} | {
|
|
174
|
-
|
|
175
|
-
} | {
|
|
176
|
-
|
|
177
|
-
} | {
|
|
178
|
-
|
|
179
|
-
} | {
|
|
180
|
-
|
|
181
|
-
} | {
|
|
182
|
-
|
|
183
|
-
} | {
|
|
184
|
-
|
|
185
|
-
} | {
|
|
186
|
-
|
|
187
|
-
} | {
|
|
188
|
-
|
|
189
|
-
} | {
|
|
190
|
-
|
|
191
|
-
} | {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
} | {
|
|
219
|
-
|
|
220
|
-
} | {
|
|
221
|
-
|
|
222
|
-
} | {
|
|
223
|
-
|
|
224
|
-
} | {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
167
|
+
export declare const makeUpdate: <Model extends BaseModel>(handleSelectedItem: (model: Model, item: string, context: SelectedItemContext) => [Model, ReadonlyArray<Command.Command<Message>>]) => (model: Model, message: Message) => [Model, readonly {
|
|
168
|
+
readonly name: string;
|
|
169
|
+
readonly effect: Effect.Effect<{
|
|
170
|
+
readonly _tag: "Closed";
|
|
171
|
+
} | {
|
|
172
|
+
readonly _tag: "ClosedByTab";
|
|
173
|
+
} | {
|
|
174
|
+
readonly _tag: "DeactivatedItem";
|
|
175
|
+
} | {
|
|
176
|
+
readonly _tag: "CompletedScrollLock";
|
|
177
|
+
} | {
|
|
178
|
+
readonly _tag: "CompletedScrollUnlock";
|
|
179
|
+
} | {
|
|
180
|
+
readonly _tag: "CompletedInertSetup";
|
|
181
|
+
} | {
|
|
182
|
+
readonly _tag: "CompletedInertTeardown";
|
|
183
|
+
} | {
|
|
184
|
+
readonly _tag: "CompletedScrollIntoView";
|
|
185
|
+
} | {
|
|
186
|
+
readonly _tag: "CompletedItemClick";
|
|
187
|
+
} | {
|
|
188
|
+
readonly _tag: "AdvancedTransitionFrame";
|
|
189
|
+
} | {
|
|
190
|
+
readonly _tag: "EndedTransition";
|
|
191
|
+
} | {
|
|
192
|
+
readonly _tag: "CompletedButtonFocus";
|
|
193
|
+
} | {
|
|
194
|
+
readonly _tag: "Opened";
|
|
195
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
196
|
+
} | {
|
|
197
|
+
readonly _tag: "ActivatedItem";
|
|
198
|
+
readonly index: number;
|
|
199
|
+
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
200
|
+
} | {
|
|
201
|
+
readonly _tag: "SelectedItem";
|
|
202
|
+
readonly item: string;
|
|
203
|
+
} | {
|
|
204
|
+
readonly _tag: "RequestedItemClick";
|
|
205
|
+
readonly index: number;
|
|
206
|
+
} | {
|
|
207
|
+
readonly _tag: "Searched";
|
|
208
|
+
readonly key: string;
|
|
209
|
+
readonly maybeTargetIndex: Option.Option<number>;
|
|
210
|
+
} | {
|
|
211
|
+
readonly _tag: "ClearedSearch";
|
|
212
|
+
readonly version: number;
|
|
213
|
+
} | {
|
|
214
|
+
readonly _tag: "MovedPointerOverItem";
|
|
215
|
+
readonly index: number;
|
|
216
|
+
readonly screenX: number;
|
|
217
|
+
readonly screenY: number;
|
|
218
|
+
} | {
|
|
219
|
+
readonly _tag: "CompletedItemsFocus";
|
|
220
|
+
} | {
|
|
221
|
+
readonly _tag: "IgnoredMouseClick";
|
|
222
|
+
} | {
|
|
223
|
+
readonly _tag: "SuppressedSpaceScroll";
|
|
224
|
+
} | {
|
|
225
|
+
readonly _tag: "DetectedButtonMovement";
|
|
226
|
+
} | {
|
|
227
|
+
readonly _tag: "PressedPointerOnButton";
|
|
228
|
+
readonly button: number;
|
|
229
|
+
readonly pointerType: string;
|
|
230
|
+
}, never, never>;
|
|
231
|
+
}[]];
|
|
229
232
|
/** Configuration for an individual listbox item's appearance. */
|
|
230
233
|
export type ItemConfig = Readonly<{
|
|
231
234
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"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"}
|