@foldkit/ui 0.118.0 → 0.120.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dialog/index.d.ts +37 -5
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +39 -3
- package/dist/dialog/public.d.ts +1 -1
- package/dist/dialog/public.d.ts.map +1 -1
- package/dist/dialog/public.js +1 -1
- package/dist/disclosure/index.d.ts +9 -0
- package/dist/disclosure/index.d.ts.map +1 -1
- package/dist/disclosure/index.js +16 -0
- package/dist/listbox/multiPublic.d.ts +1 -0
- package/dist/listbox/multiPublic.d.ts.map +1 -1
- package/dist/listbox/multiPublic.js +1 -0
- package/dist/listbox/public.d.ts +1 -0
- package/dist/listbox/public.d.ts.map +1 -1
- package/dist/listbox/public.js +1 -0
- package/dist/listbox/shared.d.ts +8 -0
- package/dist/listbox/shared.d.ts.map +1 -1
- package/dist/listbox/shared.js +20 -1
- package/dist/test/apps/disabledButton.d.ts +2 -2
- package/package.json +4 -2
package/dist/dialog/index.d.ts
CHANGED
|
@@ -22,6 +22,15 @@ export declare const RequestedClose: import("foldkit/schema").CallableTaggedStru
|
|
|
22
22
|
export declare const CompletedShowDialog: import("foldkit/schema").CallableTaggedStruct<"CompletedShowDialog", {}>;
|
|
23
23
|
/** Sent when the close-dialog command completes. */
|
|
24
24
|
export declare const CompletedCloseDialog: import("foldkit/schema").CallableTaggedStruct<"CompletedCloseDialog", {}>;
|
|
25
|
+
/** Sent when the native `<dialog>` element is removed from the DOM, the classic
|
|
26
|
+
* case being navigation away from a route-keyed subtree that contains the
|
|
27
|
+
* dialog. When the dialog still holds framework resources, `update` triggers
|
|
28
|
+
* the hygiene-only `ReleaseDialogResources` command and resets the model to a
|
|
29
|
+
* clean closed state. Does not emit `Closed` or run any consumer close
|
|
30
|
+
* Commands: it is a backstop, not the purposeful close. */
|
|
31
|
+
export declare const Unmounted: import("foldkit/schema").CallableTaggedStruct<"Unmounted", {}>;
|
|
32
|
+
/** Sent when the release-dialog-resources command completes. */
|
|
33
|
+
export declare const CompletedReleaseDialogResources: import("foldkit/schema").CallableTaggedStruct<"CompletedReleaseDialogResources", {}>;
|
|
25
34
|
/** Wraps an Animation submodel message for delegation. */
|
|
26
35
|
export declare const GotAnimationMessage: import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
27
36
|
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
@@ -32,12 +41,16 @@ export declare const Message: S.Union<[
|
|
|
32
41
|
typeof RequestedClose,
|
|
33
42
|
typeof CompletedShowDialog,
|
|
34
43
|
typeof CompletedCloseDialog,
|
|
44
|
+
typeof Unmounted,
|
|
45
|
+
typeof CompletedReleaseDialogResources,
|
|
35
46
|
typeof GotAnimationMessage
|
|
36
47
|
]>;
|
|
37
48
|
export type RequestedOpen = typeof RequestedOpen.Type;
|
|
38
49
|
export type RequestedClose = typeof RequestedClose.Type;
|
|
39
50
|
export type CompletedShowDialog = typeof CompletedShowDialog.Type;
|
|
40
51
|
export type CompletedCloseDialog = typeof CompletedCloseDialog.Type;
|
|
52
|
+
export type Unmounted = typeof Unmounted.Type;
|
|
53
|
+
export type CompletedReleaseDialogResources = typeof CompletedReleaseDialogResources.Type;
|
|
41
54
|
export type Message = typeof Message.Type;
|
|
42
55
|
/** Sent once the dialog has transitioned to open. Fires after `update`
|
|
43
56
|
* has processed `RequestedOpen` and `isOpen` reflects the new state.
|
|
@@ -54,7 +67,10 @@ export declare const OutMessage: S.Union<readonly [import("foldkit/schema").Call
|
|
|
54
67
|
export type Opened = typeof Opened.Type;
|
|
55
68
|
export type Closed = typeof Closed.Type;
|
|
56
69
|
export type OutMessage = typeof OutMessage.Type;
|
|
57
|
-
/** Configuration for creating a dialog model with `init`.
|
|
70
|
+
/** Configuration for creating a dialog model with `init`. The `id` must be
|
|
71
|
+
* non-empty and unique within the document: it keys the dialog element, its
|
|
72
|
+
* ARIA references, and the framework's per-dialog resource cleanup, so a
|
|
73
|
+
* duplicate or empty id breaks cleanup accounting. */
|
|
58
74
|
export type InitConfig = Readonly<{
|
|
59
75
|
id: string;
|
|
60
76
|
isOpen?: boolean;
|
|
@@ -81,6 +97,15 @@ export declare const CloseDialog: Command.CommandDefinitionWithArgs<"CloseDialog
|
|
|
81
97
|
}, Effect.Effect<{
|
|
82
98
|
readonly _tag: "CompletedCloseDialog";
|
|
83
99
|
}, never, never>>;
|
|
100
|
+
/** Releases the framework hygiene the dialog holds while open (scroll lock,
|
|
101
|
+
* focus trap, return focus, stack entry) when the element unmounts without a
|
|
102
|
+
* purposeful close. Idempotent: a no-op if the dialog already released its
|
|
103
|
+
* resources through `CloseDialog`. */
|
|
104
|
+
export declare const ReleaseDialogResources: Command.CommandDefinitionWithArgs<"ReleaseDialogResources", {
|
|
105
|
+
id: S.String;
|
|
106
|
+
}, Effect.Effect<{
|
|
107
|
+
readonly _tag: "CompletedReleaseDialogResources";
|
|
108
|
+
}, never, never>>;
|
|
84
109
|
/** Processes a dialog message and returns the next model and commands. */
|
|
85
110
|
export declare const update: (model: Model, message: Message) => UpdateReturn;
|
|
86
111
|
/** Programmatically opens the dialog. */
|
|
@@ -94,10 +119,13 @@ export declare const descriptionId: (model: Model) => string;
|
|
|
94
119
|
/** Render-time payload published to the consumer's `toView`.
|
|
95
120
|
*
|
|
96
121
|
* - `dialog`: attributes for the native `<dialog>` element. Carries
|
|
97
|
-
* the id, ARIA labelling, `open` prop, positioning style,
|
|
98
|
-
* `OnCancel` handler that wires Escape to `RequestedClose
|
|
99
|
-
*
|
|
100
|
-
*
|
|
122
|
+
* the id, ARIA labelling, `open` prop, positioning style, the
|
|
123
|
+
* `OnCancel` handler that wires Escape to `RequestedClose`, and an
|
|
124
|
+
* `OnUnmount` backstop that releases framework hygiene (scroll lock,
|
|
125
|
+
* focus trap, return focus) if the element is removed from the DOM
|
|
126
|
+
* while still open, such as navigating away from a route-keyed subtree.
|
|
127
|
+
* The consumer MUST render an `h.dialog(...)` element so the framework
|
|
128
|
+
* can open and close it, and so the unmount backstop can fire.
|
|
101
129
|
* - `backdrop`: attributes for the backdrop element. Includes the
|
|
102
130
|
* Animation data attributes and the `OnClick` handler that closes
|
|
103
131
|
* the dialog on outside-click (suppressed while a leave animation
|
|
@@ -142,6 +170,10 @@ export declare const view: import("foldkit/submodel").View<S.Struct.ReadonlySide
|
|
|
142
170
|
readonly _tag: S.tag<"CompletedShowDialog">;
|
|
143
171
|
}, "Type"> | S.Struct.ReadonlySide<{
|
|
144
172
|
readonly _tag: S.tag<"CompletedCloseDialog">;
|
|
173
|
+
}, "Type"> | S.Struct.ReadonlySide<{
|
|
174
|
+
readonly _tag: S.tag<"Unmounted">;
|
|
175
|
+
}, "Type"> | S.Struct.ReadonlySide<{
|
|
176
|
+
readonly _tag: S.tag<"CompletedReleaseDialogResources">;
|
|
145
177
|
}, "Type"> | S.Struct.ReadonlySide<{
|
|
146
178
|
readonly _tag: S.tag<"GotAnimationMessage">;
|
|
147
179
|
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EAGV,MAAM,cAAc,CAAA;AAwBrB,6IAA6I;AAC7I,eAAO,MAAM,KAAK;;;;;;;;;;EAMhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,yEAAyE;AACzE,eAAO,MAAM,aAAa,oEAAqB,CAAA;AAC/C,uFAAuF;AACvF,eAAO,MAAM,cAAc,qEAAsB,CAAA;AACjD,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,0EAA2B,CAAA;AAC3D,oDAAoD;AACpD,eAAO,MAAM,oBAAoB,2EAA4B,CAAA;AAC7D,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB;;EAE9B,CAAA;AAEF,8DAA8D;AAC9D,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IACE,OAAO,aAAa;IACpB,OAAO,cAAc;IACrB,OAAO,mBAAmB;IAC1B,OAAO,oBAAoB;IAC3B,OAAO,mBAAmB;CAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"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"}
|
package/dist/dialog/index.js
CHANGED
|
@@ -29,6 +29,15 @@ export const RequestedClose = m('RequestedClose');
|
|
|
29
29
|
export const CompletedShowDialog = m('CompletedShowDialog');
|
|
30
30
|
/** Sent when the close-dialog command completes. */
|
|
31
31
|
export const CompletedCloseDialog = m('CompletedCloseDialog');
|
|
32
|
+
/** Sent when the native `<dialog>` element is removed from the DOM, the classic
|
|
33
|
+
* case being navigation away from a route-keyed subtree that contains the
|
|
34
|
+
* dialog. When the dialog still holds framework resources, `update` triggers
|
|
35
|
+
* the hygiene-only `ReleaseDialogResources` command and resets the model to a
|
|
36
|
+
* clean closed state. Does not emit `Closed` or run any consumer close
|
|
37
|
+
* Commands: it is a backstop, not the purposeful close. */
|
|
38
|
+
export const Unmounted = m('Unmounted');
|
|
39
|
+
/** Sent when the release-dialog-resources command completes. */
|
|
40
|
+
export const CompletedReleaseDialogResources = m('CompletedReleaseDialogResources');
|
|
32
41
|
/** Wraps an Animation submodel message for delegation. */
|
|
33
42
|
export const GotAnimationMessage = m('GotAnimationMessage', {
|
|
34
43
|
message: AnimationMessage,
|
|
@@ -39,6 +48,8 @@ export const Message = S.Union([
|
|
|
39
48
|
RequestedClose,
|
|
40
49
|
CompletedShowDialog,
|
|
41
50
|
CompletedCloseDialog,
|
|
51
|
+
Unmounted,
|
|
52
|
+
CompletedReleaseDialogResources,
|
|
42
53
|
GotAnimationMessage,
|
|
43
54
|
]);
|
|
44
55
|
// OUT MESSAGE
|
|
@@ -69,12 +80,17 @@ export const init = (config) => ({
|
|
|
69
80
|
const dialogSelector = (id) => idSelector(id);
|
|
70
81
|
const withUpdateReturn = M.withReturnType();
|
|
71
82
|
/** Locks page scroll and opens the native dialog element with `show()`. */
|
|
72
|
-
export const ShowDialog = Command.define('ShowDialog', { id: S.String, maybeFocusSelector: S.Option(S.String) }, CompletedShowDialog)(({ id, maybeFocusSelector }) => Dom.lockScroll.pipe(Effect.andThen(() => Dom.
|
|
83
|
+
export const ShowDialog = Command.define('ShowDialog', { id: S.String, maybeFocusSelector: S.Option(S.String) }, CompletedShowDialog)(({ id, maybeFocusSelector }) => Dom.lockScroll.pipe(Effect.andThen(() => Dom.showDialog(dialogSelector(id), Option.match(maybeFocusSelector, {
|
|
73
84
|
onNone: () => undefined,
|
|
74
85
|
onSome: focusSelector => ({ focusSelector }),
|
|
75
86
|
}))), Effect.ignore, Effect.as(CompletedShowDialog())));
|
|
76
87
|
/** Calls `close()` on the native dialog element and unlocks page scroll. */
|
|
77
|
-
export const CloseDialog = Command.define('CloseDialog', { id: S.String }, CompletedCloseDialog)(({ id }) => Dom.
|
|
88
|
+
export const CloseDialog = Command.define('CloseDialog', { id: S.String }, CompletedCloseDialog)(({ id }) => Dom.closeDialog(dialogSelector(id)).pipe(Effect.andThen(() => Dom.unlockScroll), Effect.ignore, Effect.as(CompletedCloseDialog())));
|
|
89
|
+
/** Releases the framework hygiene the dialog holds while open (scroll lock,
|
|
90
|
+
* focus trap, return focus, stack entry) when the element unmounts without a
|
|
91
|
+
* purposeful close. Idempotent: a no-op if the dialog already released its
|
|
92
|
+
* resources through `CloseDialog`. */
|
|
93
|
+
export const ReleaseDialogResources = Command.define('ReleaseDialogResources', { id: S.String }, CompletedReleaseDialogResources)(({ id }) => Dom.releaseDialogResources(id).pipe(Effect.ignore, Effect.as(CompletedReleaseDialogResources())));
|
|
78
94
|
const wrapAnimationMessage = (message) => GotAnimationMessage({ message });
|
|
79
95
|
const delegateToAnimation = (model, animationMessage) => {
|
|
80
96
|
const [nextAnimation, animationCommands, maybeOutMessage] = animationUpdate(model.animation, animationMessage);
|
|
@@ -140,8 +156,26 @@ export const update = (model, message) => M.value(message).pipe(withUpdateReturn
|
|
|
140
156
|
];
|
|
141
157
|
},
|
|
142
158
|
GotAnimationMessage: ({ message: animationMessage }) => delegateToAnimation(model, animationMessage),
|
|
159
|
+
Unmounted: () => {
|
|
160
|
+
const isHoldingResources = model.isOpen || model.animation.transitionState !== 'Idle';
|
|
161
|
+
if (isHoldingResources) {
|
|
162
|
+
const nextModel = evo(model, {
|
|
163
|
+
isOpen: () => false,
|
|
164
|
+
animation: () => animationInit({ id: `${model.id}-panel` }),
|
|
165
|
+
});
|
|
166
|
+
return [
|
|
167
|
+
nextModel,
|
|
168
|
+
[ReleaseDialogResources({ id: model.id })],
|
|
169
|
+
Option.none(),
|
|
170
|
+
];
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
return [model, [], Option.none()];
|
|
174
|
+
}
|
|
175
|
+
},
|
|
143
176
|
CompletedShowDialog: () => [model, [], Option.none()],
|
|
144
177
|
CompletedCloseDialog: () => [model, [], Option.none()],
|
|
178
|
+
CompletedReleaseDialogResources: () => [model, [], Option.none()],
|
|
145
179
|
}));
|
|
146
180
|
/** Programmatically opens the dialog. */
|
|
147
181
|
export const open = (model) => update(model, RequestedOpen());
|
|
@@ -193,7 +227,9 @@ export const view = defineView((model, viewInputs) => {
|
|
|
193
227
|
? { position: 'fixed', inset: '0', zIndex: '2147483600' }
|
|
194
228
|
: {}),
|
|
195
229
|
}),
|
|
196
|
-
...(isVisible
|
|
230
|
+
...(isVisible
|
|
231
|
+
? [h.DataAttribute('open', ''), h.OnUnmount(Unmounted())]
|
|
232
|
+
: []),
|
|
197
233
|
];
|
|
198
234
|
const backdropAttributes = [
|
|
199
235
|
h.Style({ minHeight: '100vh' }),
|
package/dist/dialog/public.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { init, update, open, close, view, titleId, descriptionId, Model, Message, OutMessage, Opened, Closed, RequestedOpen, RequestedClose, CompletedShowDialog, CompletedCloseDialog, GotAnimationMessage, ShowDialog, CloseDialog, } from './index.js';
|
|
1
|
+
export { init, update, open, close, view, titleId, descriptionId, Model, Message, OutMessage, Opened, Closed, RequestedOpen, RequestedClose, CompletedShowDialog, CompletedCloseDialog, Unmounted, CompletedReleaseDialogResources, GotAnimationMessage, ShowDialog, CloseDialog, ReleaseDialogResources, } from './index.js';
|
|
2
2
|
export type { InitConfig, ViewInputs, RenderInfo } from './index.js';
|
|
3
3
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/dialog/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,MAAM,EACN,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/dialog/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,MAAM,EACN,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,+BAA+B,EAC/B,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,sBAAsB,GACvB,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/dialog/public.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { init, update, open, close, view, titleId, descriptionId, Model, Message, OutMessage, Opened, Closed, RequestedOpen, RequestedClose, CompletedShowDialog, CompletedCloseDialog, GotAnimationMessage, ShowDialog, CloseDialog, } from './index.js';
|
|
1
|
+
export { init, update, open, close, view, titleId, descriptionId, Model, Message, OutMessage, Opened, Closed, RequestedOpen, RequestedClose, CompletedShowDialog, CompletedCloseDialog, Unmounted, CompletedReleaseDialogResources, GotAnimationMessage, ShowDialog, CloseDialog, ReleaseDialogResources, } from './index.js';
|
|
@@ -72,6 +72,15 @@ export declare const reflectOpenState: Reflect<Model, boolean>;
|
|
|
72
72
|
export type DisclosureAttributes = Readonly<{
|
|
73
73
|
button: ReadonlyArray<ChildAttribute>;
|
|
74
74
|
panel: ReadonlyArray<ChildAttribute>;
|
|
75
|
+
/** Wraps panel content in a CSS-grid container that smoothly animates
|
|
76
|
+
* height (`grid-template-rows: 0fr → 1fr` with `overflow: hidden`) as
|
|
77
|
+
* the disclosure opens and closes. Unlike the bare conditional render,
|
|
78
|
+
* the panel stays mounted while collapsed, so the transition has
|
|
79
|
+
* something to animate from and to. Spread the `panel` bundle onto the
|
|
80
|
+
* element you pass in, and render it unconditionally rather than gating
|
|
81
|
+
* on `isOpen`. The collapsed content is marked `aria-hidden`. Mirrors the
|
|
82
|
+
* `Ui.Animation` `animateSize` flag. */
|
|
83
|
+
animatePanel: (content: Html) => Html;
|
|
75
84
|
}>;
|
|
76
85
|
/** Per-render view inputs passed to `view` via `h.submodel`'s `viewInputs` field.
|
|
77
86
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/disclosure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1E,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EAGV,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,kBAAkB,CAAA;AAM3D,kGAAkG;AAClG,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,iFAAiF;AACjF,eAAO,MAAM,OAAO,8DAAe,CAAA;AACnC,gFAAgF;AAChF,eAAO,MAAM,MAAM,6DAAc,CAAA;AACjC,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,2EAA4B,CAAA;AAE7D,kEAAkE;AAClE,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAC3B;IAAC,OAAO,OAAO;IAAE,OAAO,MAAM;IAAE,OAAO,oBAAoB;CAAC,CACV,CAAA;AAEpD,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,4RAA4R;AAC5R,eAAO,MAAM,gBAAgB;;EAA+C,CAAA;AAE5E,eAAO,MAAM,UAAU;;IAA8B,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAI3D,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,qDAAqD;AACrD,eAAO,MAAM,WAAW;;;;iBASvB,CAAA;AAED,KAAK,YAAY,GAAG,SAAS;IAC3B,KAAK;IACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAC1B,CAAA;AAGD,oGAAoG;AACpG,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAkCrD,CAAA;AAEH;2DAC2D;AAC3D,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,KAAG,YAAwC,CAAA;AAE9E;4EAC4E;AAC5E,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,KAAG,YAAuC,CAAA;AAE5E;;;;;yDAKyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAIpD,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/disclosure/index.ts"],"names":[],"mappings":"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"}
|
package/dist/disclosure/index.js
CHANGED
|
@@ -74,6 +74,8 @@ export const close = (model) => update(model, Closed());
|
|
|
74
74
|
* *choices* and emit `ToggledOpenState`. Returns the model directly
|
|
75
75
|
* because it produces no commands and no OutMessage. */
|
|
76
76
|
export const reflectOpenState = Function.dual(2, (model, isOpen) => evo(model, { isOpen: () => isOpen }));
|
|
77
|
+
// VIEW
|
|
78
|
+
const panelSizeTransition = 'grid-template-rows 200ms ease-out';
|
|
77
79
|
/** Renders a headless disclosure component with accessible ARIA
|
|
78
80
|
* attributes and keyboard support. The consumer composes the layout
|
|
79
81
|
* through the `toView` slot, spreading the published `button` and
|
|
@@ -105,8 +107,22 @@ export const view = defineView((model, viewInputs) => {
|
|
|
105
107
|
h.Id(panelId(id)),
|
|
106
108
|
...(isOpen ? [h.DataAttribute('open', '')] : []),
|
|
107
109
|
];
|
|
110
|
+
const animatePanel = (content) => h.div([
|
|
111
|
+
h.Style({
|
|
112
|
+
display: 'grid',
|
|
113
|
+
gridTemplateRows: isOpen ? '1fr' : '0fr',
|
|
114
|
+
transition: panelSizeTransition,
|
|
115
|
+
overflow: 'hidden',
|
|
116
|
+
}),
|
|
117
|
+
], [
|
|
118
|
+
h.div([
|
|
119
|
+
h.Style({ minHeight: '0px', overflow: 'hidden' }),
|
|
120
|
+
...(isOpen ? [] : [h.AriaHidden(true)]),
|
|
121
|
+
], [content]),
|
|
122
|
+
]);
|
|
108
123
|
return toView({
|
|
109
124
|
button: childAttributes(buttonAttributes),
|
|
110
125
|
panel: childAttributes(panelAttributes),
|
|
126
|
+
animatePanel,
|
|
111
127
|
});
|
|
112
128
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiPublic.d.ts","sourceRoot":"","sources":["../../src/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
|
+
{"version":3,"file":"multiPublic.d.ts","sourceRoot":"","sources":["../../src/listbox/multiPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/listbox/public.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { init, create, Model } from './single.js';
|
|
2
|
+
export { buttonId } from './shared.js';
|
|
2
3
|
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
4
|
export type { ActivationTrigger, Opened, Closed, BlurredItems, ActivatedItem, DeactivatedItem, MovedPointerOverItem, RequestedItemClick, Searched, PressedPointerOnButton, IgnoredMouseClick, SuppressedSpaceScroll, ItemConfig, GroupHeading, } from './shared.js';
|
|
4
5
|
export type { InitConfig, ViewInputs } from './single.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/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
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/listbox/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,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"}
|
package/dist/listbox/public.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { init, create, Model } from './single.js';
|
|
2
|
+
export { buttonId } from './shared.js';
|
|
2
3
|
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
4
|
export * as Multi from './multiPublic.js';
|
package/dist/listbox/shared.d.ts
CHANGED
|
@@ -179,6 +179,12 @@ export type OutMessage<Value extends string = string> = Selected<Value>;
|
|
|
179
179
|
export declare const SEARCH_DEBOUNCE_MILLISECONDS = 350;
|
|
180
180
|
export declare const LEFT_MOUSE_BUTTON = 0;
|
|
181
181
|
export declare const buttonSelector: (id: string) => string;
|
|
182
|
+
/** Returns the bare DOM id of the listbox trigger button, derived from the
|
|
183
|
+
* listbox's base id. Use this to associate an external label with the
|
|
184
|
+
* trigger via a native `<label for={Listbox.buttonId(id)}>` or an
|
|
185
|
+
* `aria-labelledby` reference. Mirrors `buttonSelector`, which returns the
|
|
186
|
+
* CSS selector form (`#${id}-button`) rather than the bare id. */
|
|
187
|
+
export declare const buttonId: (id: string) => string;
|
|
182
188
|
export declare const itemsSelector: (id: string) => string;
|
|
183
189
|
export declare const itemSelector: (id: string, index: number) => string;
|
|
184
190
|
export declare const itemId: (id: string, index: number) => string;
|
|
@@ -405,6 +411,8 @@ type BaseViewInputsCommon<Item> = Readonly<{
|
|
|
405
411
|
form?: string;
|
|
406
412
|
isDisabled?: boolean;
|
|
407
413
|
isInvalid?: boolean;
|
|
414
|
+
ariaLabel?: string;
|
|
415
|
+
ariaLabelledBy?: string;
|
|
408
416
|
}>;
|
|
409
417
|
/** Per-render view inputs for a Listbox view. The `itemToValue` extractor
|
|
410
418
|
* is optional when `Item` is itself a string (the default returns the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/listbox/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/listbox/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/listbox/shared.js
CHANGED
|
@@ -161,6 +161,12 @@ export const SEARCH_DEBOUNCE_MILLISECONDS = 350;
|
|
|
161
161
|
export const LEFT_MOUSE_BUTTON = 0;
|
|
162
162
|
// SELECTORS
|
|
163
163
|
export const buttonSelector = (id) => idSelector(`${id}-button`);
|
|
164
|
+
/** Returns the bare DOM id of the listbox trigger button, derived from the
|
|
165
|
+
* listbox's base id. Use this to associate an external label with the
|
|
166
|
+
* trigger via a native `<label for={Listbox.buttonId(id)}>` or an
|
|
167
|
+
* `aria-labelledby` reference. Mirrors `buttonSelector`, which returns the
|
|
168
|
+
* CSS selector form (`#${id}-button`) rather than the bare id. */
|
|
169
|
+
export const buttonId = (id) => `${id}-button`;
|
|
164
170
|
export const itemsSelector = (id) => idSelector(`${id}-items`);
|
|
165
171
|
export const itemSelector = (id, index) => idSelector(`${id}-item-${index}`);
|
|
166
172
|
export const itemId = (id, index) => `${id}-item-${index}`;
|
|
@@ -398,7 +404,7 @@ export const makeView = (behavior) => {
|
|
|
398
404
|
const impl = defineView((model, viewInputs) => {
|
|
399
405
|
const h = html();
|
|
400
406
|
const { id, isOpen, orientation, animation: { transitionState }, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, } = model;
|
|
401
|
-
const { items, itemToConfig, isItemDisabled, isButtonDisabled, buttonContent, buttonClassName, buttonAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor = {}, name, form, isDisabled, isInvalid, } = viewInputs;
|
|
407
|
+
const { items, itemToConfig, isItemDisabled, isButtonDisabled, buttonContent, buttonClassName, buttonAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor = {}, name, form, isDisabled, isInvalid, ariaLabel, ariaLabelledBy, } = viewInputs;
|
|
402
408
|
const itemToValue = viewInputs.itemToValue ?? ((item) => String(item));
|
|
403
409
|
const itemToSearchText = viewInputs.itemToSearchText ?? ((item) => itemToValue(item));
|
|
404
410
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
@@ -474,12 +480,25 @@ export const makeView = (behavior) => {
|
|
|
474
480
|
index: resolveActiveIndex(key),
|
|
475
481
|
activationTrigger: 'Keyboard',
|
|
476
482
|
}))), M.when(isPrintableKey, () => searchForKey(key)), M.orElse(() => Option.none()));
|
|
483
|
+
const resolveButtonLabel = () => {
|
|
484
|
+
if (Predicate.isNotUndefined(ariaLabel)) {
|
|
485
|
+
return [h.AriaLabel(ariaLabel)];
|
|
486
|
+
}
|
|
487
|
+
else if (Predicate.isNotUndefined(ariaLabelledBy)) {
|
|
488
|
+
return [h.AriaLabelledBy(ariaLabelledBy)];
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
return [];
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
const buttonLabelAttributes = resolveButtonLabel();
|
|
477
495
|
const resolvedButtonAttributes = [
|
|
478
496
|
h.Id(`${id}-button`),
|
|
479
497
|
h.Type('button'),
|
|
480
498
|
h.AriaHasPopup('listbox'),
|
|
481
499
|
h.AriaExpanded(isVisible),
|
|
482
500
|
h.AriaControls(`${id}-items`),
|
|
501
|
+
...buttonLabelAttributes,
|
|
483
502
|
...(isButtonEffectivelyDisabled
|
|
484
503
|
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
485
504
|
: [
|
|
@@ -19,12 +19,12 @@ export type Model = typeof Model.Type;
|
|
|
19
19
|
export declare const ClickedToggle: import("foldkit/schema").CallableTaggedStruct<"ClickedToggle", {}>;
|
|
20
20
|
export declare const ClickedSubmit: import("foldkit/schema").CallableTaggedStruct<"ClickedSubmit", {}>;
|
|
21
21
|
export declare const GotDialogMessage: import("foldkit/schema").CallableTaggedStruct<"GotDialogMessage", {
|
|
22
|
-
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"RequestedOpen", {}>, import("foldkit/schema").CallableTaggedStruct<"RequestedClose", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedShowDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedCloseDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
22
|
+
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"RequestedOpen", {}>, import("foldkit/schema").CallableTaggedStruct<"RequestedClose", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedShowDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedCloseDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"Unmounted", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedReleaseDialogResources", {}>, import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
23
23
|
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
24
24
|
}>]>;
|
|
25
25
|
}>;
|
|
26
26
|
export declare const Message: S.Union<readonly [import("foldkit/schema").CallableTaggedStruct<"ClickedToggle", {}>, import("foldkit/schema").CallableTaggedStruct<"ClickedSubmit", {}>, import("foldkit/schema").CallableTaggedStruct<"GotDialogMessage", {
|
|
27
|
-
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"RequestedOpen", {}>, import("foldkit/schema").CallableTaggedStruct<"RequestedClose", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedShowDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedCloseDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
27
|
+
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"RequestedOpen", {}>, import("foldkit/schema").CallableTaggedStruct<"RequestedClose", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedShowDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedCloseDialog", {}>, import("foldkit/schema").CallableTaggedStruct<"Unmounted", {}>, import("foldkit/schema").CallableTaggedStruct<"CompletedReleaseDialogResources", {}>, import("foldkit/schema").CallableTaggedStruct<"GotAnimationMessage", {
|
|
28
28
|
message: S.Union<[import("foldkit/schema").CallableTaggedStruct<"Showed", {}>, import("foldkit/schema").CallableTaggedStruct<"Hid", {}>, import("foldkit/schema").CallableTaggedStruct<"AdvancedAnimationFrame", {}>, import("foldkit/schema").CallableTaggedStruct<"EndedAnimation", {}>]>;
|
|
29
29
|
}>]>;
|
|
30
30
|
}>]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foldkit/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.120.0",
|
|
4
4
|
"description": "Headless, accessible UI components for Foldkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -124,9 +124,10 @@
|
|
|
124
124
|
"effect": "4.0.0-beta.88",
|
|
125
125
|
"happy-dom": "^20.10.4",
|
|
126
126
|
"rimraf": "^6.1.3",
|
|
127
|
+
"typedoc": "^0.28.19",
|
|
127
128
|
"typescript": "^6.0.3",
|
|
128
129
|
"vitest": "^4.1.9",
|
|
129
|
-
"foldkit": "0.
|
|
130
|
+
"foldkit": "0.120.0"
|
|
130
131
|
},
|
|
131
132
|
"keywords": [
|
|
132
133
|
"foldkit",
|
|
@@ -151,6 +152,7 @@
|
|
|
151
152
|
"scripts": {
|
|
152
153
|
"clean": "rimraf dist *.tsbuildinfo",
|
|
153
154
|
"build": "pnpm run clean && tsc -b tsconfig.build.json",
|
|
155
|
+
"docs": "typedoc",
|
|
154
156
|
"watch": "tsc -b tsconfig.build.json --watch",
|
|
155
157
|
"lint": "pnpm --filter @foldkit/oxlint-plugin build && oxlint src",
|
|
156
158
|
"typecheck": "tsc -b tsconfig.build.json --noEmit",
|