@foldkit/ui 0.112.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/LICENSE +21 -0
- package/README.md +67 -0
- package/dist/anchor.d.ts +38 -0
- package/dist/anchor.d.ts.map +1 -0
- package/dist/anchor.js +142 -0
- package/dist/animation/index.d.ts +49 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/index.js +75 -0
- package/dist/animation/public.d.ts +3 -0
- package/dist/animation/public.d.ts.map +1 -0
- package/dist/animation/public.js +1 -0
- package/dist/animation/schema.d.ts +43 -0
- package/dist/animation/schema.d.ts.map +1 -0
- package/dist/animation/schema.js +41 -0
- package/dist/animation/update.d.ts +24 -0
- package/dist/animation/update.d.ts.map +1 -0
- package/dist/animation/update.js +67 -0
- package/dist/button/index.d.ts +17 -0
- package/dist/button/index.d.ts.map +1 -0
- package/dist/button/index.js +22 -0
- package/dist/button/public.d.ts +3 -0
- package/dist/button/public.d.ts.map +1 -0
- package/dist/button/public.js +1 -0
- package/dist/calendar/index.d.ts +462 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/index.js +825 -0
- package/dist/calendar/public.d.ts +3 -0
- package/dist/calendar/public.d.ts.map +1 -0
- package/dist/calendar/public.js +1 -0
- package/dist/checkbox/index.d.ts +119 -0
- package/dist/checkbox/index.d.ts.map +1 -0
- package/dist/checkbox/index.js +111 -0
- package/dist/checkbox/public.d.ts +3 -0
- package/dist/checkbox/public.d.ts.map +1 -0
- package/dist/checkbox/public.js +1 -0
- package/dist/combobox/multi.d.ts +183 -0
- package/dist/combobox/multi.d.ts.map +1 -0
- package/dist/combobox/multi.js +81 -0
- package/dist/combobox/multiPublic.d.ts +3 -0
- package/dist/combobox/multiPublic.d.ts.map +1 -0
- package/dist/combobox/multiPublic.js +1 -0
- package/dist/combobox/public.d.ts +7 -0
- package/dist/combobox/public.d.ts.map +1 -0
- package/dist/combobox/public.js +3 -0
- package/dist/combobox/shared.d.ts +423 -0
- package/dist/combobox/shared.d.ts.map +1 -0
- package/dist/combobox/shared.js +708 -0
- package/dist/combobox/single.d.ts +198 -0
- package/dist/combobox/single.d.ts.map +1 -0
- package/dist/combobox/single.js +106 -0
- package/dist/datePicker/index.d.ts +457 -0
- package/dist/datePicker/index.d.ts.map +1 -0
- package/dist/datePicker/index.js +318 -0
- package/dist/datePicker/public.d.ts +3 -0
- package/dist/datePicker/public.d.ts.map +1 -0
- package/dist/datePicker/public.js +1 -0
- package/dist/dialog/index.d.ts +160 -0
- package/dist/dialog/index.d.ts.map +1 -0
- package/dist/dialog/index.js +211 -0
- package/dist/dialog/public.d.ts +3 -0
- package/dist/dialog/public.d.ts.map +1 -0
- package/dist/dialog/public.js +1 -0
- package/dist/disclosure/index.d.ts +110 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +111 -0
- package/dist/disclosure/public.d.ts +3 -0
- package/dist/disclosure/public.d.ts.map +1 -0
- package/dist/disclosure/public.js +1 -0
- package/dist/dragAndDrop/index.d.ts +540 -0
- package/dist/dragAndDrop/index.d.ts.map +1 -0
- package/dist/dragAndDrop/index.js +535 -0
- package/dist/dragAndDrop/public.d.ts +3 -0
- package/dist/dragAndDrop/public.d.ts.map +1 -0
- package/dist/dragAndDrop/public.js +1 -0
- package/dist/fieldset/index.d.ts +21 -0
- package/dist/fieldset/index.d.ts.map +1 -0
- package/dist/fieldset/index.js +25 -0
- package/dist/fieldset/public.d.ts +3 -0
- package/dist/fieldset/public.d.ts.map +1 -0
- package/dist/fieldset/public.js +1 -0
- package/dist/fileDrop/index.d.ts +109 -0
- package/dist/fileDrop/index.d.ts.map +1 -0
- package/dist/fileDrop/index.js +127 -0
- package/dist/fileDrop/public.d.ts +3 -0
- package/dist/fileDrop/public.d.ts.map +1 -0
- package/dist/fileDrop/public.js +1 -0
- package/dist/group.d.ts +8 -0
- package/dist/group.d.ts.map +1 -0
- package/dist/group.js +13 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/input/index.d.ts +26 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +43 -0
- package/dist/input/public.d.ts +3 -0
- package/dist/input/public.d.ts.map +1 -0
- package/dist/input/public.js +1 -0
- package/dist/internal/optionExtensions.d.ts +6 -0
- package/dist/internal/optionExtensions.d.ts.map +1 -0
- package/dist/internal/optionExtensions.js +2 -0
- package/dist/keyboard.d.ts +6 -0
- package/dist/keyboard.d.ts.map +1 -0
- package/dist/keyboard.js +9 -0
- package/dist/listbox/multi.d.ts +189 -0
- package/dist/listbox/multi.d.ts.map +1 -0
- package/dist/listbox/multi.js +65 -0
- package/dist/listbox/multiPublic.d.ts +3 -0
- package/dist/listbox/multiPublic.d.ts.map +1 -0
- package/dist/listbox/multiPublic.js +1 -0
- package/dist/listbox/public.d.ts +7 -0
- package/dist/listbox/public.d.ts.map +1 -0
- package/dist/listbox/public.js +3 -0
- package/dist/listbox/shared.d.ts +432 -0
- package/dist/listbox/shared.d.ts.map +1 -0
- package/dist/listbox/shared.js +670 -0
- package/dist/listbox/single.d.ts +207 -0
- package/dist/listbox/single.d.ts.map +1 -0
- package/dist/listbox/single.js +73 -0
- package/dist/menu/index.d.ts +368 -0
- package/dist/menu/index.d.ts.map +1 -0
- package/dist/menu/index.js +682 -0
- package/dist/menu/public.d.ts +4 -0
- package/dist/menu/public.d.ts.map +1 -0
- package/dist/menu/public.js +1 -0
- package/dist/popover/index.d.ts +267 -0
- package/dist/popover/index.d.ts.map +1 -0
- package/dist/popover/index.js +346 -0
- package/dist/popover/public.d.ts +4 -0
- package/dist/popover/public.d.ts.map +1 -0
- package/dist/popover/public.js +1 -0
- package/dist/radioGroup/index.d.ts +169 -0
- package/dist/radioGroup/index.d.ts.map +1 -0
- package/dist/radioGroup/index.js +197 -0
- package/dist/radioGroup/public.d.ts +3 -0
- package/dist/radioGroup/public.d.ts.map +1 -0
- package/dist/radioGroup/public.js +1 -0
- package/dist/select/index.d.ts +24 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/select/index.js +40 -0
- package/dist/select/public.d.ts +3 -0
- package/dist/select/public.d.ts.map +1 -0
- package/dist/select/public.js +1 -0
- package/dist/slider/index.d.ts +318 -0
- package/dist/slider/index.d.ts.map +1 -0
- package/dist/slider/index.js +337 -0
- package/dist/slider/public.d.ts +3 -0
- package/dist/slider/public.d.ts.map +1 -0
- package/dist/slider/public.js +1 -0
- package/dist/switch/index.d.ts +99 -0
- package/dist/switch/index.d.ts.map +1 -0
- package/dist/switch/index.js +107 -0
- package/dist/switch/public.d.ts +3 -0
- package/dist/switch/public.d.ts.map +1 -0
- package/dist/switch/public.js +1 -0
- package/dist/tabs/index.d.ts +155 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +185 -0
- package/dist/tabs/public.d.ts +3 -0
- package/dist/tabs/public.d.ts.map +1 -0
- package/dist/tabs/public.js +1 -0
- package/dist/test/apps/disabledButton.d.ts +38 -0
- package/dist/test/apps/disabledButton.d.ts.map +1 -0
- package/dist/test/apps/disabledButton.js +71 -0
- package/dist/textarea/index.d.ts +26 -0
- package/dist/textarea/index.d.ts.map +1 -0
- package/dist/textarea/index.js +44 -0
- package/dist/textarea/public.d.ts +3 -0
- package/dist/textarea/public.d.ts.map +1 -0
- package/dist/textarea/public.js +1 -0
- package/dist/toast/index.d.ts +608 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toast/index.js +146 -0
- package/dist/toast/public.d.ts +4 -0
- package/dist/toast/public.d.ts.map +1 -0
- package/dist/toast/public.js +1 -0
- package/dist/toast/schema.d.ts +154 -0
- package/dist/toast/schema.d.ts.map +1 -0
- package/dist/toast/schema.js +93 -0
- package/dist/toast/update.d.ts +510 -0
- package/dist/toast/update.d.ts.map +1 -0
- package/dist/toast/update.js +225 -0
- package/dist/tooltip/index.d.ts +170 -0
- package/dist/tooltip/index.d.ts.map +1 -0
- package/dist/tooltip/index.js +253 -0
- package/dist/tooltip/public.d.ts +4 -0
- package/dist/tooltip/public.d.ts.map +1 -0
- package/dist/tooltip/public.js +1 -0
- package/dist/typeahead.d.ts +4 -0
- package/dist/typeahead.d.ts.map +1 -0
- package/dist/typeahead.js +14 -0
- package/dist/virtualList/index.d.ts +203 -0
- package/dist/virtualList/index.d.ts.map +1 -0
- package/dist/virtualList/index.js +392 -0
- package/dist/virtualList/public.d.ts +3 -0
- package/dist/virtualList/public.d.ts.map +1 -0
- package/dist/virtualList/public.js +1 -0
- package/dist/vitest-setup.d.ts +2 -0
- package/dist/vitest-setup.d.ts.map +1 -0
- package/dist/vitest-setup.js +2 -0
- package/package.json +161 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { Effect, Option, Schema as S } from 'effect';
|
|
2
|
+
import * as Command from 'foldkit/command';
|
|
3
|
+
import { type ChildAttribute, type Html } from 'foldkit/html';
|
|
4
|
+
import * as Mount from 'foldkit/mount';
|
|
5
|
+
import { type View as SubmodelView } from 'foldkit/submodel';
|
|
6
|
+
import { AnchorConfig } from '../anchor.js';
|
|
7
|
+
import { groupContiguous } from '../group.js';
|
|
8
|
+
export { groupContiguous };
|
|
9
|
+
/** Schema for the activation trigger: whether the user interacted via mouse or keyboard. */
|
|
10
|
+
export declare const ActivationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
11
|
+
export type ActivationTrigger = typeof ActivationTrigger.Type;
|
|
12
|
+
/** Schema fields shared by all combobox variants (single-select and multi-select). Spread into each variant's `S.Struct` to avoid duplicating field definitions. */
|
|
13
|
+
export declare const BaseModel: S.Struct<{
|
|
14
|
+
readonly id: S.String;
|
|
15
|
+
readonly isOpen: S.Boolean;
|
|
16
|
+
readonly isAnimated: S.Boolean;
|
|
17
|
+
readonly isModal: S.Boolean;
|
|
18
|
+
readonly nullable: S.Boolean;
|
|
19
|
+
readonly immediate: S.Boolean;
|
|
20
|
+
readonly selectInputOnFocus: S.Boolean;
|
|
21
|
+
readonly animation: S.Struct<{
|
|
22
|
+
readonly id: S.String;
|
|
23
|
+
readonly isShowing: S.Boolean;
|
|
24
|
+
readonly transitionState: S.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
25
|
+
}>;
|
|
26
|
+
readonly maybeActiveItemIndex: S.Option<S.Number>;
|
|
27
|
+
readonly activationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
28
|
+
readonly inputValue: S.String;
|
|
29
|
+
readonly maybeLastPointerPosition: S.Option<S.Struct<{
|
|
30
|
+
readonly screenX: S.Number;
|
|
31
|
+
readonly screenY: S.Number;
|
|
32
|
+
}>>;
|
|
33
|
+
}>;
|
|
34
|
+
export type BaseModel = typeof BaseModel.Type;
|
|
35
|
+
/** Configuration fields shared by all combobox variant `init` functions. */
|
|
36
|
+
export type BaseInitConfig = Readonly<{
|
|
37
|
+
id: string;
|
|
38
|
+
isAnimated?: boolean;
|
|
39
|
+
isModal?: boolean;
|
|
40
|
+
nullable?: boolean;
|
|
41
|
+
immediate?: boolean;
|
|
42
|
+
selectInputOnFocus?: boolean;
|
|
43
|
+
}>;
|
|
44
|
+
/** Creates the shared base fields for a combobox model from a config. Each variant spreads this and adds its selection fields. */
|
|
45
|
+
export declare const baseInit: (config: BaseInitConfig) => BaseModel;
|
|
46
|
+
/** Sent when the combobox popup opens. Contains an optional initial active item index. */
|
|
47
|
+
export declare const Opened: import("foldkit/schema").CallableTaggedStruct<"Opened", {
|
|
48
|
+
maybeActiveItemIndex: S.Option<S.Number>;
|
|
49
|
+
}>;
|
|
50
|
+
/** Sent when the combobox closes via Escape key or backdrop click. */
|
|
51
|
+
export declare const Closed: import("foldkit/schema").CallableTaggedStruct<"Closed", {}>;
|
|
52
|
+
/** Sent when the combobox input loses focus. */
|
|
53
|
+
export declare const BlurredInput: import("foldkit/schema").CallableTaggedStruct<"BlurredInput", {}>;
|
|
54
|
+
/** Sent when an item is highlighted via arrow keys or mouse hover. Includes activation trigger and optional immediate selection info. */
|
|
55
|
+
export declare const ActivatedItem: import("foldkit/schema").CallableTaggedStruct<"ActivatedItem", {
|
|
56
|
+
index: S.Number;
|
|
57
|
+
activationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
58
|
+
maybeImmediateSelection: S.Option<S.Struct<{
|
|
59
|
+
readonly item: S.String;
|
|
60
|
+
readonly displayText: S.String;
|
|
61
|
+
}>>;
|
|
62
|
+
}>;
|
|
63
|
+
/** Sent when the mouse leaves an enabled item. */
|
|
64
|
+
export declare const DeactivatedItem: import("foldkit/schema").CallableTaggedStruct<"DeactivatedItem", {}>;
|
|
65
|
+
/** Sent when an item is selected via Enter or click. Includes display text for restoring input value on close. */
|
|
66
|
+
export declare const SelectedItem: import("foldkit/schema").CallableTaggedStruct<"SelectedItem", {
|
|
67
|
+
item: S.String;
|
|
68
|
+
displayText: S.String;
|
|
69
|
+
}>;
|
|
70
|
+
/** Sent when the pointer moves over a combobox item. */
|
|
71
|
+
export declare const MovedPointerOverItem: import("foldkit/schema").CallableTaggedStruct<"MovedPointerOverItem", {
|
|
72
|
+
index: S.Number;
|
|
73
|
+
screenX: S.Number;
|
|
74
|
+
screenY: S.Number;
|
|
75
|
+
}>;
|
|
76
|
+
/** Sent when Enter or Space is pressed on the active item, triggering a programmatic click. */
|
|
77
|
+
export declare const RequestedItemClick: import("foldkit/schema").CallableTaggedStruct<"RequestedItemClick", {
|
|
78
|
+
index: S.Number;
|
|
79
|
+
}>;
|
|
80
|
+
/** Sent when the scroll lock command completes. */
|
|
81
|
+
export declare const CompletedLockScroll: import("foldkit/schema").CallableTaggedStruct<"CompletedLockScroll", {}>;
|
|
82
|
+
/** Sent when the scroll unlock command completes. */
|
|
83
|
+
export declare const CompletedUnlockScroll: import("foldkit/schema").CallableTaggedStruct<"CompletedUnlockScroll", {}>;
|
|
84
|
+
/** Sent when the inert-others command completes. */
|
|
85
|
+
export declare const CompletedInertOthers: import("foldkit/schema").CallableTaggedStruct<"CompletedInertOthers", {}>;
|
|
86
|
+
/** Sent when the restore-inert command completes. */
|
|
87
|
+
export declare const CompletedRestoreInert: import("foldkit/schema").CallableTaggedStruct<"CompletedRestoreInert", {}>;
|
|
88
|
+
/** Sent when the focus-input command completes. */
|
|
89
|
+
export declare const CompletedFocusInput: import("foldkit/schema").CallableTaggedStruct<"CompletedFocusInput", {}>;
|
|
90
|
+
/** Sent when the scroll-into-view command completes after keyboard activation. */
|
|
91
|
+
export declare const CompletedScrollIntoView: import("foldkit/schema").CallableTaggedStruct<"CompletedScrollIntoView", {}>;
|
|
92
|
+
/** Sent when the programmatic item click command completes. */
|
|
93
|
+
export declare const CompletedClickItem: import("foldkit/schema").CallableTaggedStruct<"CompletedClickItem", {}>;
|
|
94
|
+
/** Sent when the items panel mounts and Floating UI has positioned it. Update no-ops; surfaces the positioning side effect for DevTools. */
|
|
95
|
+
export declare const CompletedAnchorCombobox: import("foldkit/schema").CallableTaggedStruct<"CompletedAnchorCombobox", {}>;
|
|
96
|
+
/** Sent when the items panel mounts and the capture-phase pointerdown listener is attached (with or without anchor). Update no-ops; surfaces the listener-attach side effect for DevTools. */
|
|
97
|
+
export declare const CompletedAttachComboboxPreventBlur: import("foldkit/schema").CallableTaggedStruct<"CompletedAttachComboboxPreventBlur", {}>;
|
|
98
|
+
/** Sent when the input mounts and the focus listener that auto-selects on focus is attached. Update no-ops; surfaces the listener-attach side effect for DevTools. */
|
|
99
|
+
export declare const CompletedAttachComboboxSelectOnFocus: import("foldkit/schema").CallableTaggedStruct<"CompletedAttachComboboxSelectOnFocus", {}>;
|
|
100
|
+
/** Sent when the combobox backdrop mounts and is portaled to the document body. Update no-ops; surfaces the portal side effect for DevTools. */
|
|
101
|
+
export declare const CompletedPortalComboboxBackdrop: import("foldkit/schema").CallableTaggedStruct<"CompletedPortalComboboxBackdrop", {}>;
|
|
102
|
+
/** Wraps an Animation submodel message for delegation. */
|
|
103
|
+
export declare const GotAnimationMessage: import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
104
|
+
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
105
|
+
}>;
|
|
106
|
+
/** Sent when the user types in the input. */
|
|
107
|
+
export declare const UpdatedInputValue: import("foldkit/schema").CallableTaggedStruct<"UpdatedInputValue", {
|
|
108
|
+
value: S.String;
|
|
109
|
+
}>;
|
|
110
|
+
/** Sent when the optional toggle button is clicked. */
|
|
111
|
+
export declare const PressedToggleButton: import("foldkit/schema").CallableTaggedStruct<"PressedToggleButton", {}>;
|
|
112
|
+
/** Union of all messages the combobox component can produce. */
|
|
113
|
+
export declare const Message: S.Union<[
|
|
114
|
+
typeof Opened,
|
|
115
|
+
typeof Closed,
|
|
116
|
+
typeof BlurredInput,
|
|
117
|
+
typeof ActivatedItem,
|
|
118
|
+
typeof DeactivatedItem,
|
|
119
|
+
typeof SelectedItem,
|
|
120
|
+
typeof MovedPointerOverItem,
|
|
121
|
+
typeof RequestedItemClick,
|
|
122
|
+
typeof CompletedLockScroll,
|
|
123
|
+
typeof CompletedUnlockScroll,
|
|
124
|
+
typeof CompletedInertOthers,
|
|
125
|
+
typeof CompletedRestoreInert,
|
|
126
|
+
typeof CompletedFocusInput,
|
|
127
|
+
typeof CompletedScrollIntoView,
|
|
128
|
+
typeof CompletedClickItem,
|
|
129
|
+
typeof CompletedAnchorCombobox,
|
|
130
|
+
typeof CompletedAttachComboboxPreventBlur,
|
|
131
|
+
typeof CompletedAttachComboboxSelectOnFocus,
|
|
132
|
+
typeof CompletedPortalComboboxBackdrop,
|
|
133
|
+
typeof GotAnimationMessage,
|
|
134
|
+
typeof UpdatedInputValue,
|
|
135
|
+
typeof PressedToggleButton
|
|
136
|
+
]>;
|
|
137
|
+
export type Opened = typeof Opened.Type;
|
|
138
|
+
export type Closed = typeof Closed.Type;
|
|
139
|
+
export type BlurredInput = typeof BlurredInput.Type;
|
|
140
|
+
export type ActivatedItem = typeof ActivatedItem.Type;
|
|
141
|
+
export type DeactivatedItem = typeof DeactivatedItem.Type;
|
|
142
|
+
export type SelectedItem = typeof SelectedItem.Type;
|
|
143
|
+
export type MovedPointerOverItem = typeof MovedPointerOverItem.Type;
|
|
144
|
+
export type RequestedItemClick = typeof RequestedItemClick.Type;
|
|
145
|
+
export type CompletedLockScroll = typeof CompletedLockScroll.Type;
|
|
146
|
+
export type CompletedUnlockScroll = typeof CompletedUnlockScroll.Type;
|
|
147
|
+
export type CompletedInertOthers = typeof CompletedInertOthers.Type;
|
|
148
|
+
export type CompletedRestoreInert = typeof CompletedRestoreInert.Type;
|
|
149
|
+
export type CompletedFocusInput = typeof CompletedFocusInput.Type;
|
|
150
|
+
export type CompletedScrollIntoView = typeof CompletedScrollIntoView.Type;
|
|
151
|
+
export type CompletedClickItem = typeof CompletedClickItem.Type;
|
|
152
|
+
export type UpdatedInputValue = typeof UpdatedInputValue.Type;
|
|
153
|
+
export type PressedToggleButton = typeof PressedToggleButton.Type;
|
|
154
|
+
export type Message = typeof Message.Type;
|
|
155
|
+
/** Sent when a single-select combobox commits a selection, or when a multi-select combobox toggles an item on. The `value` is the string key; consumers that need a richer domain type should look it up from their own state or, in the multi case, branch on `wasAdded` to distinguish add vs remove. */
|
|
156
|
+
export declare const Selected: import("foldkit/schema").CallableTaggedStruct<"Selected", {
|
|
157
|
+
value: S.String;
|
|
158
|
+
wasAdded: S.Boolean;
|
|
159
|
+
}>;
|
|
160
|
+
export type Selected<Value extends string = string> = Readonly<{
|
|
161
|
+
readonly _tag: 'Selected';
|
|
162
|
+
readonly value: Value;
|
|
163
|
+
readonly wasAdded: boolean;
|
|
164
|
+
}>;
|
|
165
|
+
/** Union of out-messages the combobox component can produce. Single-select comboboxes always emit `wasAdded: true`. Multi-select comboboxes emit `wasAdded: true` when adding to the selection and `wasAdded: false` when toggling off. */
|
|
166
|
+
export declare const OutMessage: S.Union<readonly [import("foldkit/schema").CallableTaggedStruct<"Selected", {
|
|
167
|
+
value: S.String;
|
|
168
|
+
wasAdded: S.Boolean;
|
|
169
|
+
}>]>;
|
|
170
|
+
/** Generic over `Value extends string` so consumers who create the combobox
|
|
171
|
+
* via `Combobox.create<MyUnion>()` receive `value: MyUnion` in the
|
|
172
|
+
* `Selected` OutMessage from the factory's `update`, instead of
|
|
173
|
+
* `value: string`. Defaults to `string`. */
|
|
174
|
+
export type OutMessage<Value extends string = string> = Selected<Value>;
|
|
175
|
+
export declare const inputSelector: (id: string) => string;
|
|
176
|
+
export declare const inputWrapperSelector: (id: string) => string;
|
|
177
|
+
export declare const itemsSelector: (id: string) => string;
|
|
178
|
+
export declare const itemSelector: (id: string, index: number) => string;
|
|
179
|
+
export declare const itemId: (id: string, index: number) => string;
|
|
180
|
+
/** Resets only shared base fields to their closed state. Does not touch inputValue or selection. Those are variant-specific. */
|
|
181
|
+
export declare const closedBaseModel: <Model extends BaseModel>(model: Model) => Model;
|
|
182
|
+
/** Context passed to the `handleSelectedItem` handler with commands for focus management and modal cleanup. */
|
|
183
|
+
export type SelectedItemContext = Readonly<{
|
|
184
|
+
focusInput: Command.Command<Message>;
|
|
185
|
+
maybeUnlockScroll: Option.Option<Command.Command<Message>>;
|
|
186
|
+
maybeRestoreInert: Option.Option<Command.Command<Message>>;
|
|
187
|
+
}>;
|
|
188
|
+
/** Prevents page scrolling while the combobox popup is open in modal mode. */
|
|
189
|
+
export declare const LockScroll: Command.CommandDefinitionNoArgs<"LockScroll", Effect.Effect<{
|
|
190
|
+
readonly _tag: "CompletedLockScroll";
|
|
191
|
+
}, never, never>>;
|
|
192
|
+
/** Re-enables page scrolling after the combobox popup closes. */
|
|
193
|
+
export declare const UnlockScroll: Command.CommandDefinitionNoArgs<"UnlockScroll", Effect.Effect<{
|
|
194
|
+
readonly _tag: "CompletedUnlockScroll";
|
|
195
|
+
}, never, never>>;
|
|
196
|
+
/** Marks all elements outside the combobox as inert for modal behavior. */
|
|
197
|
+
export declare const InertOthers: Command.CommandDefinitionWithArgs<"InertOthers", {
|
|
198
|
+
id: S.String;
|
|
199
|
+
}, Effect.Effect<{
|
|
200
|
+
readonly _tag: "CompletedInertOthers";
|
|
201
|
+
}, never, never>>;
|
|
202
|
+
/** Removes the inert attribute from elements outside the combobox. */
|
|
203
|
+
export declare const RestoreInert: Command.CommandDefinitionWithArgs<"RestoreInert", {
|
|
204
|
+
id: S.String;
|
|
205
|
+
}, Effect.Effect<{
|
|
206
|
+
readonly _tag: "CompletedRestoreInert";
|
|
207
|
+
}, never, never>>;
|
|
208
|
+
/** Moves focus to the combobox input after selection or close. */
|
|
209
|
+
export declare const FocusInput: Command.CommandDefinitionWithArgs<"FocusInput", {
|
|
210
|
+
id: S.String;
|
|
211
|
+
}, Effect.Effect<{
|
|
212
|
+
readonly _tag: "CompletedFocusInput";
|
|
213
|
+
}, never, never>>;
|
|
214
|
+
/** Scrolls the active combobox item into view after keyboard navigation. */
|
|
215
|
+
export declare const ScrollIntoView: Command.CommandDefinitionWithArgs<"ScrollIntoView", {
|
|
216
|
+
id: S.String;
|
|
217
|
+
index: S.Number;
|
|
218
|
+
}, Effect.Effect<{
|
|
219
|
+
readonly _tag: "CompletedScrollIntoView";
|
|
220
|
+
}, never, never>>;
|
|
221
|
+
/** Programmatically clicks the active combobox item's DOM element. */
|
|
222
|
+
export declare const ClickItem: Command.CommandDefinitionWithArgs<"ClickItem", {
|
|
223
|
+
id: S.String;
|
|
224
|
+
index: S.Number;
|
|
225
|
+
}, Effect.Effect<{
|
|
226
|
+
readonly _tag: "CompletedClickItem";
|
|
227
|
+
}, never, never>>;
|
|
228
|
+
/** Detects whether the combobox input wrapper moved or the leave animation ended. Whichever comes first; both outcomes signal the Animation submodel that leave is complete. */
|
|
229
|
+
export declare const DetectMovementOrAnimationEnd: Command.CommandDefinitionWithArgs<"DetectMovementOrAnimationEnd", {
|
|
230
|
+
id: S.String;
|
|
231
|
+
}, Effect.Effect<{
|
|
232
|
+
readonly _tag: "GotAnimationMessage";
|
|
233
|
+
readonly message: {
|
|
234
|
+
readonly _tag: "Showed";
|
|
235
|
+
} | {
|
|
236
|
+
readonly _tag: "Hid";
|
|
237
|
+
} | {
|
|
238
|
+
readonly _tag: "AdvancedAnimationFrame";
|
|
239
|
+
} | {
|
|
240
|
+
readonly _tag: "EndedAnimation";
|
|
241
|
+
};
|
|
242
|
+
}, never, never>>;
|
|
243
|
+
/** Creates a combobox update function from variant-specific handlers. Shared logic (open, close, activate, transition) is handled internally; only close, selection, and immediate-activation behavior varies by variant. */
|
|
244
|
+
export declare const makeUpdate: <Model extends BaseModel>(handlers: Readonly<{
|
|
245
|
+
handleClose: (model: Model) => Model;
|
|
246
|
+
handleSelectedItem: (model: Model, item: string, displayText: string, context: SelectedItemContext) => readonly [Model, ReadonlyArray<Command.Command<Message>>, Option.Option<OutMessage>];
|
|
247
|
+
handleImmediateActivation: (model: Model, item: string, displayText: string) => Model;
|
|
248
|
+
}>) => (model: Model, message: Message) => readonly [Model, readonly Readonly<{
|
|
249
|
+
name: string;
|
|
250
|
+
args?: Record<string, unknown>;
|
|
251
|
+
effect: Effect.Effect<{
|
|
252
|
+
readonly _tag: "CompletedLockScroll";
|
|
253
|
+
} | {
|
|
254
|
+
readonly _tag: "CompletedUnlockScroll";
|
|
255
|
+
} | {
|
|
256
|
+
readonly _tag: "CompletedInertOthers";
|
|
257
|
+
} | {
|
|
258
|
+
readonly _tag: "CompletedRestoreInert";
|
|
259
|
+
} | {
|
|
260
|
+
readonly _tag: "Closed";
|
|
261
|
+
} | {
|
|
262
|
+
readonly _tag: "Opened";
|
|
263
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
264
|
+
} | {
|
|
265
|
+
readonly _tag: "BlurredInput";
|
|
266
|
+
} | {
|
|
267
|
+
readonly _tag: "ActivatedItem";
|
|
268
|
+
readonly index: number;
|
|
269
|
+
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
270
|
+
readonly maybeImmediateSelection: Option.Option<{
|
|
271
|
+
readonly item: string;
|
|
272
|
+
readonly displayText: string;
|
|
273
|
+
}>;
|
|
274
|
+
} | {
|
|
275
|
+
readonly _tag: "DeactivatedItem";
|
|
276
|
+
} | {
|
|
277
|
+
readonly _tag: "SelectedItem";
|
|
278
|
+
readonly item: string;
|
|
279
|
+
readonly displayText: string;
|
|
280
|
+
} | {
|
|
281
|
+
readonly _tag: "MovedPointerOverItem";
|
|
282
|
+
readonly index: number;
|
|
283
|
+
readonly screenX: number;
|
|
284
|
+
readonly screenY: number;
|
|
285
|
+
} | {
|
|
286
|
+
readonly _tag: "RequestedItemClick";
|
|
287
|
+
readonly index: number;
|
|
288
|
+
} | {
|
|
289
|
+
readonly _tag: "CompletedFocusInput";
|
|
290
|
+
} | {
|
|
291
|
+
readonly _tag: "CompletedScrollIntoView";
|
|
292
|
+
} | {
|
|
293
|
+
readonly _tag: "CompletedClickItem";
|
|
294
|
+
} | {
|
|
295
|
+
readonly _tag: "CompletedAnchorCombobox";
|
|
296
|
+
} | {
|
|
297
|
+
readonly _tag: "CompletedAttachComboboxPreventBlur";
|
|
298
|
+
} | {
|
|
299
|
+
readonly _tag: "CompletedAttachComboboxSelectOnFocus";
|
|
300
|
+
} | {
|
|
301
|
+
readonly _tag: "CompletedPortalComboboxBackdrop";
|
|
302
|
+
} | {
|
|
303
|
+
readonly _tag: "GotAnimationMessage";
|
|
304
|
+
readonly message: {
|
|
305
|
+
readonly _tag: "Showed";
|
|
306
|
+
} | {
|
|
307
|
+
readonly _tag: "Hid";
|
|
308
|
+
} | {
|
|
309
|
+
readonly _tag: "AdvancedAnimationFrame";
|
|
310
|
+
} | {
|
|
311
|
+
readonly _tag: "EndedAnimation";
|
|
312
|
+
};
|
|
313
|
+
} | {
|
|
314
|
+
readonly _tag: "UpdatedInputValue";
|
|
315
|
+
readonly value: string;
|
|
316
|
+
} | {
|
|
317
|
+
readonly _tag: "PressedToggleButton";
|
|
318
|
+
}, never, never>;
|
|
319
|
+
}>[], Option.Option<Readonly<{
|
|
320
|
+
readonly _tag: "Selected";
|
|
321
|
+
readonly value: string;
|
|
322
|
+
readonly wasAdded: boolean;
|
|
323
|
+
}>>];
|
|
324
|
+
/** The anchor-positioning Mount this Combobox renders on its items panel.
|
|
325
|
+
* The panel is always anchored to the input wrapper via Floating UI and
|
|
326
|
+
* portaled to the document body (opt out of portaling with
|
|
327
|
+
* `anchor.portal: false`), so it escapes ancestor stacking contexts and
|
|
328
|
+
* overflow clipping. The Mount also installs the `pointerdown`-cancelling
|
|
329
|
+
* capture listener that prevents input blur on item presses. Exposed so
|
|
330
|
+
* Scene tests can call
|
|
331
|
+
* `Scene.Mount.resolve(AnchorCombobox, CompletedAnchorCombobox())`. */
|
|
332
|
+
export declare const AnchorCombobox: Mount.MountDefinitionWithArgs<"AnchorCombobox", {
|
|
333
|
+
buttonId: S.String;
|
|
334
|
+
anchor: S.Struct<{
|
|
335
|
+
readonly placement: S.optional<S.Literals<readonly ["top", "right", "bottom", "left", "top-start", "top-end", "right-start", "right-end", "bottom-start", "bottom-end", "left-start", "left-end"]>>;
|
|
336
|
+
readonly gap: S.optional<S.Number>;
|
|
337
|
+
readonly offset: S.optional<S.Number>;
|
|
338
|
+
readonly padding: S.optional<S.Number>;
|
|
339
|
+
readonly portal: S.optional<S.Boolean>;
|
|
340
|
+
}>;
|
|
341
|
+
}, {
|
|
342
|
+
readonly _tag: "CompletedAnchorCombobox";
|
|
343
|
+
}>;
|
|
344
|
+
/** The Mount this Combobox renders to install a `pointerdown`-cancelling
|
|
345
|
+
* capture listener that prevents blur on item presses. Exposed so Scene
|
|
346
|
+
* tests can call
|
|
347
|
+
* `Scene.Mount.resolve(AttachComboboxPreventBlur, CompletedAttachComboboxPreventBlur())`. */
|
|
348
|
+
export declare const AttachComboboxPreventBlur: Mount.MountDefinitionNoArgs<"AttachComboboxPreventBlur", {
|
|
349
|
+
readonly _tag: "CompletedAttachComboboxPreventBlur";
|
|
350
|
+
}>;
|
|
351
|
+
/** The Mount this Combobox renders to install the input's select-on-focus
|
|
352
|
+
* behavior. Exposed so Scene tests can call
|
|
353
|
+
* `Scene.Mount.resolve(AttachComboboxSelectOnFocus, CompletedAttachComboboxSelectOnFocus())`. */
|
|
354
|
+
export declare const AttachComboboxSelectOnFocus: Mount.MountDefinitionNoArgs<"AttachComboboxSelectOnFocus", {
|
|
355
|
+
readonly _tag: "CompletedAttachComboboxSelectOnFocus";
|
|
356
|
+
}>;
|
|
357
|
+
/** The backdrop-portaling Mount this Combobox renders. Exposed so Scene tests can
|
|
358
|
+
* call `Scene.Mount.resolve(PortalComboboxBackdrop, CompletedPortalComboboxBackdrop())` to
|
|
359
|
+
* acknowledge the mount produced by the rendered backdrop. */
|
|
360
|
+
export declare const PortalComboboxBackdrop: Mount.MountDefinitionNoArgs<"PortalComboboxBackdrop", {
|
|
361
|
+
readonly _tag: "CompletedPortalComboboxBackdrop";
|
|
362
|
+
}>;
|
|
363
|
+
/** Configuration for an individual combobox item's appearance. */
|
|
364
|
+
export type ItemConfig = Readonly<{
|
|
365
|
+
className?: string;
|
|
366
|
+
content: Html;
|
|
367
|
+
}>;
|
|
368
|
+
/** Configuration for a group heading rendered above a group of items. */
|
|
369
|
+
export type GroupHeading = Readonly<{
|
|
370
|
+
content: Html;
|
|
371
|
+
className?: string;
|
|
372
|
+
}>;
|
|
373
|
+
/** Per-render view inputs passed to `view` via `h.submodel`'s `viewInputs` field.
|
|
374
|
+
*
|
|
375
|
+
* The Combobox emits a `Selected({ value, wasAdded })` OutMessage on
|
|
376
|
+
* commit (single-select always `wasAdded: true`, multi-select toggles).
|
|
377
|
+
* Consumers pattern-match this in their `GotComboboxMessage` handler. */
|
|
378
|
+
export type BaseViewInputs<Item extends string> = Readonly<{
|
|
379
|
+
items: ReadonlyArray<Item>;
|
|
380
|
+
itemToConfig: (item: Item, context: Readonly<{
|
|
381
|
+
isActive: boolean;
|
|
382
|
+
isDisabled: boolean;
|
|
383
|
+
isSelected: boolean;
|
|
384
|
+
}>) => ItemConfig;
|
|
385
|
+
itemToValue: (item: Item, index: number) => Item;
|
|
386
|
+
itemToDisplayText: (item: Item, index: number) => string;
|
|
387
|
+
isItemDisabled?: (item: Item, index: number) => boolean;
|
|
388
|
+
inputClassName?: string;
|
|
389
|
+
inputAttributes?: ReadonlyArray<ChildAttribute>;
|
|
390
|
+
inputPlaceholder?: string;
|
|
391
|
+
inputWrapperClassName?: string;
|
|
392
|
+
inputWrapperAttributes?: ReadonlyArray<ChildAttribute>;
|
|
393
|
+
itemsClassName?: string;
|
|
394
|
+
itemsAttributes?: ReadonlyArray<ChildAttribute>;
|
|
395
|
+
itemsScrollClassName?: string;
|
|
396
|
+
itemsScrollAttributes?: ReadonlyArray<ChildAttribute>;
|
|
397
|
+
backdropClassName?: string;
|
|
398
|
+
backdropAttributes?: ReadonlyArray<ChildAttribute>;
|
|
399
|
+
className?: string;
|
|
400
|
+
attributes?: ReadonlyArray<ChildAttribute>;
|
|
401
|
+
buttonContent?: Html;
|
|
402
|
+
buttonClassName?: string;
|
|
403
|
+
buttonAttributes?: ReadonlyArray<ChildAttribute>;
|
|
404
|
+
formName?: string;
|
|
405
|
+
isDisabled?: boolean;
|
|
406
|
+
isInvalid?: boolean;
|
|
407
|
+
openOnFocus?: boolean;
|
|
408
|
+
itemGroupKey?: (item: Item, index: number) => string;
|
|
409
|
+
groupToHeading?: (groupKey: string) => GroupHeading | undefined;
|
|
410
|
+
groupClassName?: string;
|
|
411
|
+
groupAttributes?: ReadonlyArray<ChildAttribute>;
|
|
412
|
+
separatorClassName?: string;
|
|
413
|
+
separatorAttributes?: ReadonlyArray<ChildAttribute>;
|
|
414
|
+
anchor?: AnchorConfig;
|
|
415
|
+
}>;
|
|
416
|
+
/** Variant-specific view behavior injected into the shared combobox view factory. */
|
|
417
|
+
export type ViewBehavior<Model extends BaseModel> = Readonly<{
|
|
418
|
+
isItemSelected: (model: Model, itemValue: string) => boolean;
|
|
419
|
+
ariaMultiSelectable: boolean;
|
|
420
|
+
}>;
|
|
421
|
+
/** Creates a combobox view function from variant-specific behavior. Shared rendering logic (input, items, transitions, keyboard navigation) is handled internally; only selection display varies by variant. */
|
|
422
|
+
export declare const makeView: <Model extends BaseModel>(behavior: ViewBehavior<Model>) => <Item extends string>() => SubmodelView<Model, Message, BaseViewInputs<Item>>;
|
|
423
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/combobox/shared.ts"],"names":[],"mappings":"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"}
|