@foldkit/ui 0.168.0-canary.2b6d8dd23cdc → 0.168.0-canary.49a14cc0865c
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/anchor/anchor.d.ts
CHANGED
|
@@ -31,14 +31,15 @@ export type AnchorConfig = typeof AnchorConfig.Type;
|
|
|
31
31
|
* that removes it again. Inside a `<dialog>`, the portal root is a div
|
|
32
32
|
* appended to that dialog, so the element stays above the dialog's content
|
|
33
33
|
* and interactive while a modal dialog makes everything outside it inert.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
34
|
+
* Otherwise the portal root is the shared `foldkit-portal-root` div within
|
|
35
|
+
* the element's containing root: the shadow root when mounted inside one,
|
|
36
|
+
* otherwise `document.body`. Either way the element escapes the clipping
|
|
37
|
+
* and stacking contexts of the ancestors it leaves, and keeps its root's
|
|
38
|
+
* scoped styles. The cleanup removes the portal root once it is empty, so
|
|
39
|
+
* the next open creates a fresh one. Use `portalBackdrop` for a
|
|
40
|
+
* click-outside backdrop. Designed to be called from inside an `OnMount`
|
|
41
|
+
* action: the consumer wraps the call in `Effect.sync` and stashes the
|
|
42
|
+
* returned cleanup in the `Mount` result. */
|
|
42
43
|
export declare const portalToContainingRoot: (element: Element) => (() => void);
|
|
43
44
|
/** Relocates a click-outside backdrop and returns a cleanup function that
|
|
44
45
|
* removes it again. Outside a `<dialog>`, it does what
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor/anchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,EAAgB,MAAM,QAAQ,CAAA;AAatE;mFACmF;AACnF,eAAO,MAAM,SAAS,0KAapB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;+DAC+D;AAC/D,eAAO,MAAM,OAAO;;;;;IAQlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,oGAAoG;AACpG,eAAO,MAAM,YAAY;;;;;;;;;;;;EAOvB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor/anchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,EAAgB,MAAM,QAAQ,CAAA;AAatE;mFACmF;AACnF,eAAO,MAAM,SAAS,0KAapB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;+DAC+D;AAC/D,eAAO,MAAM,OAAO;;;;;IAQlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,oGAAoG;AACpG,eAAO,MAAM,YAAY;;;;;;;;;;;;EAOvB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAqEnD;;;;;;;;;;;;8CAY8C;AAC9C,eAAO,MAAM,sBAAsB,YAAa,OAAO,KAAG,CAAC,MAAM,IAAI,CAuBpE,CAAA;AAWD;;;;;;;;;;;;;;;;;;;qCAmBqC;AACrC,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,CAAC,MAAM,IAAI,CAczD,CAAA;AAUJ;;;;;;;;;;;;;;;;;;;;;0BAqB0B;AAC1B,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAsBF;;;;;;;;;;;;;;;;;;;;;;;gFAuBgF;AAChF,eAAO,MAAM,WAAW,YACb,OAAO,UACR,WAAW,KAClB,CAAC,MAAM,IAAI,CAkQb,CAAA"}
|
package/dist/anchor/anchor.js
CHANGED
|
@@ -78,7 +78,6 @@ const getOrCreateDialogPortalRoot = (dialog) => {
|
|
|
78
78
|
dialog.append(portalRoot);
|
|
79
79
|
return __foldkitBrandViewResult((portalRoot), "@foldkit/ui/anchor/anchor.js#getOrCreateDialogPortalRoot");
|
|
80
80
|
};
|
|
81
|
-
const isDialogPortalRoot = (element) => __foldkitBrandViewResult((element.hasAttribute(DIALOG_PORTAL_ROOT_ATTRIBUTE)), "@foldkit/ui/anchor/anchor.js#isDialogPortalRoot");
|
|
82
81
|
// NOTE: a dialog is its own stacking level (`Dom.showDialog` gives it a
|
|
83
82
|
// near-maximal z-index, `showModal()` puts it in the top layer) and the only
|
|
84
83
|
// subtree a modal dialog leaves interactive. An element portaled out of it is
|
|
@@ -93,14 +92,15 @@ const getOrCreatePortalRoot = (element) => __foldkitBrandViewResult((Option.matc
|
|
|
93
92
|
* that removes it again. Inside a `<dialog>`, the portal root is a div
|
|
94
93
|
* appended to that dialog, so the element stays above the dialog's content
|
|
95
94
|
* and interactive while a modal dialog makes everything outside it inert.
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
95
|
+
* Otherwise the portal root is the shared `foldkit-portal-root` div within
|
|
96
|
+
* the element's containing root: the shadow root when mounted inside one,
|
|
97
|
+
* otherwise `document.body`. Either way the element escapes the clipping
|
|
98
|
+
* and stacking contexts of the ancestors it leaves, and keeps its root's
|
|
99
|
+
* scoped styles. The cleanup removes the portal root once it is empty, so
|
|
100
|
+
* the next open creates a fresh one. Use `portalBackdrop` for a
|
|
101
|
+
* click-outside backdrop. Designed to be called from inside an `OnMount`
|
|
102
|
+
* action: the consumer wraps the call in `Effect.sync` and stashes the
|
|
103
|
+
* returned cleanup in the `Mount` result. */
|
|
104
104
|
export const portalToContainingRoot = (element) => {
|
|
105
105
|
const portalRoot = getOrCreatePortalRoot(element);
|
|
106
106
|
portalRoot.appendChild(element);
|
|
@@ -113,12 +113,13 @@ export const portalToContainingRoot = (element) => {
|
|
|
113
113
|
// so the remove() call can throw on a node that's already been removed.
|
|
114
114
|
// Swallow the error.
|
|
115
115
|
}
|
|
116
|
-
// NOTE: a
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
|
|
116
|
+
// NOTE: a modal overlay isolates siblings before its Mount portals the
|
|
117
|
+
// panel. An empty shared root would become inert, then receive the panel.
|
|
118
|
+
// Removing empty roots lets the next open create one after isolation.
|
|
119
|
+
// Dialog roots must also be removed so a reopened dialog appends its portal
|
|
120
|
+
// root after the newly rendered content. Occupied shared roots are retained;
|
|
121
|
+
// opening a modal overlay while one exists can still make its panel inert.
|
|
122
|
+
if (!portalRoot.hasChildNodes()) {
|
|
122
123
|
portalRoot.remove();
|
|
123
124
|
}
|
|
124
125
|
}), "@foldkit/ui/anchor/anchor.js#portalToContainingRoot");
|
package/dist/popover/index.d.ts
CHANGED
|
@@ -72,7 +72,15 @@ export declare const OutMessage: import("foldkit/message").MessageUnion<{
|
|
|
72
72
|
export type OutMessage = typeof OutMessage.Type;
|
|
73
73
|
export type Opened = typeof OutMessage.Opened.Type;
|
|
74
74
|
export type Closed = typeof OutMessage.Closed.Type;
|
|
75
|
-
/** Configuration for creating a
|
|
75
|
+
/** Configuration for creating a Popover Model with `init`.
|
|
76
|
+
*
|
|
77
|
+
* `isAnimated` enables animation coordination. `isModal` locks page scroll
|
|
78
|
+
* and marks other elements inert while the Popover is open. Both default to
|
|
79
|
+
* `false`.
|
|
80
|
+
*
|
|
81
|
+
* With `contentFocus: true`, the panel has no tab stop and focus leaving
|
|
82
|
+
* it does not close the Popover. Focus a descendant when opening and
|
|
83
|
+
* handle focus leaving the content in the application. Defaults to `false`. */
|
|
76
84
|
export type InitConfig = Readonly<{
|
|
77
85
|
id: string;
|
|
78
86
|
isAnimated?: boolean;
|
|
@@ -254,7 +262,7 @@ export declare const close: (model: Model) => UpdateReturn;
|
|
|
254
262
|
* - `button`: attribute bundle for the trigger button.
|
|
255
263
|
* - `panel`: attribute bundle for the floating panel. Includes the
|
|
256
264
|
* anchor Mount that positions the panel via Floating UI, ARIA
|
|
257
|
-
* linkage to the button, and panel keydown
|
|
265
|
+
* linkage to the button, and panel keydown and focus-leave handlers.
|
|
258
266
|
* - `backdrop`: attribute bundle for the modal backdrop. Includes the
|
|
259
267
|
* portal Mount that moves the backdrop to document.body. Inside a
|
|
260
268
|
* `<dialog>`, it moves the backdrop to directly before the element it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,EAEP,MAAM,QAAQ,CAAA;AACf,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAmB,MAAM,cAAc,CAAA;AAE9E,OAAO,KAAK,KAAK,MAAM,eAAe,CAAA;AAGtC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAE,YAAY,EAA+B,MAAM,oBAAoB,CAAA;AAe9E,qGAAqG;AACrG,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAQhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,+DAA+D;AAC/D,eAAO,MAAM,OAAO;;;;;QAKhB,WAAW;QACX,MAAM;;;;;;;;;;;;;;QAae,OAAO;;;;;;;;;;;EAC9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAA;AAC7D,MAAM,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAA;AAC3D,MAAM,MAAM,sBAAsB,GAAG,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAA;AAC/E,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAA;AACrE,MAAM,MAAM,qBAAqB,GAAG,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAA;AAE7E,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC;;iCAEiC;AACjC,eAAO,MAAM,UAAU;;;EAGrB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,MAAM,MAAM,MAAM,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA;AAClD,MAAM,MAAM,MAAM,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA;AAMlD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popover/index.ts"],"names":[],"mappings":"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"}
|
package/dist/popover/index.js
CHANGED
|
@@ -389,7 +389,7 @@ export const view = defineView((model, viewInputs, h) => {
|
|
|
389
389
|
? []
|
|
390
390
|
: [
|
|
391
391
|
h.OnKeyDownPreventDefault(handlePanelKeyDown),
|
|
392
|
-
...(contentFocus ? [] : [h.
|
|
392
|
+
...(contentFocus ? [] : [h.OnFocusLeave(Message.BlurredPanel())]),
|
|
393
393
|
]),
|
|
394
394
|
];
|
|
395
395
|
const backdropAttributes = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foldkit/ui",
|
|
3
|
-
"version": "0.168.0-canary.
|
|
3
|
+
"version": "0.168.0-canary.49a14cc0865c",
|
|
4
4
|
"description": "Headless, accessible UI components for Foldkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -134,16 +134,16 @@
|
|
|
134
134
|
],
|
|
135
135
|
"peerDependencies": {
|
|
136
136
|
"effect": "4.0.0",
|
|
137
|
-
"foldkit": "0.168.0-canary.
|
|
137
|
+
"foldkit": "0.168.0-canary.49a14cc0865c"
|
|
138
138
|
},
|
|
139
139
|
"dependencies": {
|
|
140
140
|
"@floating-ui/dom": "^1.8.0"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|
|
143
143
|
"@effect/vitest": "4.0.0",
|
|
144
|
-
"@foldkit/vite-plugin": "0.27.1-canary.
|
|
144
|
+
"@foldkit/vite-plugin": "0.27.1-canary.49a14cc0865c",
|
|
145
145
|
"effect": "4.0.0",
|
|
146
|
-
"foldkit": "0.168.0-canary.
|
|
146
|
+
"foldkit": "0.168.0-canary.49a14cc0865c",
|
|
147
147
|
"happy-dom": "^20.14.5",
|
|
148
148
|
"rimraf": "^6.1.3",
|
|
149
149
|
"typescript": "^7.0.2",
|