@lab206/ui 0.1.2 → 0.1.4
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 +15 -2
- package/dist/components/Combobox.d.ts +5 -0
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +5 -1
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/Drawer.d.ts.map +1 -1
- package/dist/components/Drawer.js +4 -3
- package/dist/components/Drawer.js.map +1 -1
- package/dist/components/Menu.d.ts.map +1 -1
- package/dist/components/Menu.js +1 -1
- package/dist/components/Menu.js.map +1 -1
- package/dist/components/Popover.d.ts +4 -0
- package/dist/components/Popover.d.ts.map +1 -1
- package/dist/components/Popover.js +22 -5
- package/dist/components/Popover.js.map +1 -1
- package/package.json +4 -5
- package/src/components/Combobox.tsx +9 -2
- package/src/components/Drawer.tsx +7 -2
- package/src/components/Menu.tsx +1 -0
- package/src/components/Popover.tsx +28 -5
package/README.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# @lab206/ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Powers design system — tokens, primitives, and utilities.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
```bash
|
|
6
|
+
pnpm create powers my-app
|
|
7
|
+
# or
|
|
8
|
+
pnpm add @lab206/core @lab206/dom @lab206/ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import "@lab206/ui/theme.css";
|
|
13
|
+
import { Button, createTheme } from "@lab206/ui";
|
|
14
|
+
|
|
15
|
+
createTheme("light").bind();
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
- Docs: https://lab206.com/docs
|
|
6
19
|
- License: BUSL-1.1 (source-available)
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { type Signal } from "@lab206/core";
|
|
1
2
|
import { type MaybeReactive } from "../reactive.js";
|
|
3
|
+
import type { Bindable } from "../form.js";
|
|
2
4
|
export type ComboboxOption = {
|
|
3
5
|
value: string;
|
|
4
6
|
label: string;
|
|
@@ -7,6 +9,8 @@ export type ComboboxOption = {
|
|
|
7
9
|
export type ComboboxProps = {
|
|
8
10
|
options: MaybeReactive<ComboboxOption[]>;
|
|
9
11
|
value?: MaybeReactive<string>;
|
|
12
|
+
/** Two-way bind a string signal — preferred over value + onChange. */
|
|
13
|
+
bind?: Bindable<string> | Signal<string>;
|
|
10
14
|
placeholder?: string;
|
|
11
15
|
disabled?: MaybeReactive<boolean>;
|
|
12
16
|
/**
|
|
@@ -33,6 +37,7 @@ export type ComboboxProps = {
|
|
|
33
37
|
export declare const Combobox: import("@lab206/dom").Component<{
|
|
34
38
|
options: MaybeReactive<ComboboxOption[]>;
|
|
35
39
|
value?: MaybeReactive<string>;
|
|
40
|
+
bind?: Bindable<string>;
|
|
36
41
|
placeholder?: string;
|
|
37
42
|
disabled?: MaybeReactive<boolean>;
|
|
38
43
|
loading?: MaybeReactive<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3D,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAsIF;;;GAGG;AACH,eAAO,MAAM,QAAQ;aAhKV,aAAa,CAAC,cAAc,EAAE,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC;;kBAGf,MAAM;eACT,aAAa,CAAC,OAAO,CAAC;cAKvB,aAAa,CAAC,OAAO,CAAC;gBAEpB,aAAa,CAAC,MAAM,CAAC;kBAEnB,aAAa,CAAC,MAAM,CAAC;eAExB,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;aAEzB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO;YAChD,aAAa,CAAC,MAAM,CAAC;SACxB,MAAM;mBACI,MAAM;EAyZrB,CAAC"}
|
|
@@ -145,6 +145,7 @@ export const Combobox = component((raw) => {
|
|
|
145
145
|
emptyText: "No matches",
|
|
146
146
|
loadingText: "Loading…",
|
|
147
147
|
}, raw);
|
|
148
|
+
const bound = raw.bind;
|
|
148
149
|
const open = signal(false);
|
|
149
150
|
const query = signal("");
|
|
150
151
|
const active = signal(0);
|
|
@@ -182,7 +183,9 @@ export const Combobox = component((raw) => {
|
|
|
182
183
|
listEl.style.left = `${Math.round(left)}px`;
|
|
183
184
|
};
|
|
184
185
|
const getOptions = () => readProp(props.options) ?? [];
|
|
185
|
-
const getValue = () =>
|
|
186
|
+
const getValue = () => bound
|
|
187
|
+
? (readProp(bound) ?? "")
|
|
188
|
+
: (readProp(props.value) ?? "");
|
|
186
189
|
const filtered = () => {
|
|
187
190
|
if (isLoading())
|
|
188
191
|
return [];
|
|
@@ -260,6 +263,7 @@ export const Combobox = component((raw) => {
|
|
|
260
263
|
const pick = (opt) => {
|
|
261
264
|
if (opt.disabled || isLoading())
|
|
262
265
|
return;
|
|
266
|
+
bound?.set(opt.value);
|
|
263
267
|
props.onChange?.(opt.value);
|
|
264
268
|
query.set(opt.label);
|
|
265
269
|
open.set(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/components/Drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmGF,gFAAgF;AAChF,eAAO,MAAM,MAAM;UA1GX,aAAa,CAAC,OAAO,CAAC;cAClB,MAAM,IAAI;YACZ,MAAM;WACP,MAAM,GAAG,OAAO;YACf,aAAa,CAAC,MAAM,CAAC;eAClB,OAAO;
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/components/Drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmGF,gFAAgF;AAChF,eAAO,MAAM,MAAM;UA1GX,aAAa,CAAC,OAAO,CAAC;cAClB,MAAM,IAAI;YACZ,MAAM;WACP,MAAM,GAAG,OAAO;YACf,aAAa,CAAC,MAAM,CAAC;eAClB,OAAO;EAsLlB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@lab206/dom/jsx-runtime";
|
|
2
2
|
import { effect } from "@lab206/core";
|
|
3
3
|
import { component, mergeProps } from "@lab206/dom";
|
|
4
|
-
import { cx } from "../utils.js";
|
|
4
|
+
import { cx, puId } from "../utils.js";
|
|
5
5
|
import { createStyleSheet } from "../styles.js";
|
|
6
6
|
import { attachOverlay } from "../overlay.js";
|
|
7
7
|
import { readBool } from "../reactive.js";
|
|
@@ -105,6 +105,7 @@ export const Drawer = component((raw) => {
|
|
|
105
105
|
const isOpen = () => readBool(props.open);
|
|
106
106
|
let rootEl = null;
|
|
107
107
|
let panelEl = null;
|
|
108
|
+
const titleId = puId("pu-drawer-title");
|
|
108
109
|
effect(() => {
|
|
109
110
|
if (!isOpen())
|
|
110
111
|
return;
|
|
@@ -124,8 +125,8 @@ export const Drawer = component((raw) => {
|
|
|
124
125
|
: props.class), "aria-hidden": () => (!isOpen() ? "true" : "false"), ref: (el) => {
|
|
125
126
|
rootEl = el;
|
|
126
127
|
ensure(el.ownerDocument);
|
|
127
|
-
}, children: [_jsx("div", { class: "pu-drawer-backdrop", onClick: () => props.onClose?.(), "aria-hidden": "true" }), _jsxs("div", { class: () => cx("pu-drawer-panel", `pu-drawer-panel--${props.side}`), role: "dialog", "aria-modal": "true", ref: (el) => {
|
|
128
|
+
}, children: [_jsx("div", { class: "pu-drawer-backdrop", onClick: () => props.onClose?.(), "aria-hidden": "true" }), _jsxs("div", { class: () => cx("pu-drawer-panel", `pu-drawer-panel--${props.side}`), role: "dialog", "aria-modal": "true", "aria-labelledby": props.title ? titleId : undefined, ref: (el) => {
|
|
128
129
|
panelEl = el;
|
|
129
|
-
}, children: [(props.title || props.onClose) && (_jsxs("div", { class: "pu-drawer__head", children: [props.title ? (_jsx("h2", { class: "pu-drawer__title", children: props.title })) : (_jsx("span", {})), props.onClose ? (_jsx("button", { type: "button", class: "pu-drawer__close", "aria-label": "Close", onClick: () => props.onClose?.(), children: "\u00D7" })) : null] })), _jsx("div", { class: "pu-drawer__body", children: props.children })] })] }));
|
|
130
|
+
}, children: [(props.title || props.onClose) && (_jsxs("div", { class: "pu-drawer__head", children: [props.title ? (_jsx("h2", { class: "pu-drawer__title", id: titleId, children: props.title })) : (_jsx("span", {})), props.onClose ? (_jsx("button", { type: "button", class: "pu-drawer__close", "aria-label": "Close", onClick: () => props.onClose?.(), children: "\u00D7" })) : null] })), _jsx("div", { class: "pu-drawer__body", children: props.children })] })] }));
|
|
130
131
|
});
|
|
131
132
|
//# sourceMappingURL=Drawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../src/components/Drawer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../src/components/Drawer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AAW9D,MAAM,MAAM,GAAG,gBAAgB,CAC7B,QAAQ,EACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FD,CACA,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,GAAgB,EAAE,EAAE;IACnD,MAAM,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,GAAG,CAEvD,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAC;IACpE,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,OAAO,GAAuB,IAAI,CAAC;IAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAExC,MAAM,CAAC,GAAG,EAAE;QACV,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;QACtB,OAAO,aAAa,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;YACrB,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO;YAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YAChC,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,eACE,KAAK,EAAE,GAAG,EAAE,CACV,EAAE,CACA,gBAAgB,EAChB,MAAM,EAAE,IAAI,sBAAsB,EAClC,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAC/B,CAAC,CAAE,KAAK,CAAC,KAAsB,EAAE;YACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAChB,iBAEU,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EACjD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;YACV,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC,aAED,cACE,KAAK,EAAC,oBAAoB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,iBACpB,MAAM,GAClB,EACF,eACE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,EACpE,IAAI,EAAC,QAAQ,gBACF,MAAM,qBACA,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAClD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC,aAEA,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CACjC,eAAK,KAAK,EAAC,iBAAiB,aACzB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,aAAI,KAAK,EAAC,kBAAkB,EAAC,EAAE,EAAE,OAAO,YACrC,KAAK,CAAC,KAAK,GACT,CACN,CAAC,CAAC,CAAC,CACF,gBAAQ,CACT,EACA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,iBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,kBAAkB,gBACb,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,uBAGzB,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,EACD,cAAK,KAAK,EAAC,iBAAiB,YAAE,KAAK,CAAC,QAAiB,GAAO,IACxD,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,8BAA8B;IAC9B,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;IACvC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACjC,CAAC;AAoEF;;;GAGG;AACH,eAAO,MAAM,IAAI;WA/ER,QAAQ,EAAE,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC;aAE7B,OAAO;eAEL,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;YACvB,OAAO,GAAG,QAAQ,GAAG,KAAK;YAC1B,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,8BAA8B;IAC9B,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;IACvC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACjC,CAAC;AAoEF;;;GAGG;AACH,eAAO,MAAM,IAAI;WA/ER,QAAQ,EAAE,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC;aAE7B,OAAO;eAEL,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;YACvB,OAAO,GAAG,QAAQ,GAAG,KAAK;YAC1B,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;EAyK/B,CAAC"}
|
package/dist/components/Menu.js
CHANGED
|
@@ -102,7 +102,7 @@ export const Menu = component((raw) => {
|
|
|
102
102
|
}, 0);
|
|
103
103
|
return () => window.clearTimeout(t);
|
|
104
104
|
});
|
|
105
|
-
return (_jsx("div", { class: () => cx("pu-menu-root", typeof props.class === "function" ? props.class() : props.class), ref: (el) => ensureStyles(el.ownerDocument), children: _jsx(Popover, { open: open, onOpenChange: (v) => open.set(v), align: props.align, trigger: props.trigger, children: _jsx("div", { class: "pu-menu", role: "menu", ref: (el) => {
|
|
105
|
+
return (_jsx("div", { class: () => cx("pu-menu-root", typeof props.class === "function" ? props.class() : props.class), ref: (el) => ensureStyles(el.ownerDocument), children: _jsx(Popover, { open: open, onOpenChange: (v) => open.set(v), align: props.align, haspopup: "menu", trigger: props.trigger, children: _jsx("div", { class: "pu-menu", role: "menu", ref: (el) => {
|
|
106
106
|
menuEl = el;
|
|
107
107
|
}, onKeyDown: (e) => {
|
|
108
108
|
if (!menuEl)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,14 @@ export type PopoverProps = {
|
|
|
9
9
|
children?: unknown;
|
|
10
10
|
/** Preferred alignment under the trigger */
|
|
11
11
|
align?: "start" | "center" | "end";
|
|
12
|
+
/** `aria-haspopup` on the trigger (Menu passes `"menu"`). */
|
|
13
|
+
haspopup?: "dialog" | "menu" | "true";
|
|
12
14
|
class?: MaybeReactive<string>;
|
|
13
15
|
};
|
|
14
16
|
/**
|
|
15
17
|
* Anchored floating panel. Control with `open` + `onOpenChange`.
|
|
16
18
|
* Escape + outside dismiss via shared `attachOverlay` (stacked with modals).
|
|
19
|
+
* Panel portals to `document.body` so nav overflow cannot clip it.
|
|
17
20
|
*/
|
|
18
21
|
export declare const Popover: import("@lab206/dom").Component<{
|
|
19
22
|
open: MaybeReactive<boolean>;
|
|
@@ -21,6 +24,7 @@ export declare const Popover: import("@lab206/dom").Component<{
|
|
|
21
24
|
trigger: unknown;
|
|
22
25
|
children?: unknown;
|
|
23
26
|
align?: "start" | "center" | "end";
|
|
27
|
+
haspopup?: "dialog" | "menu" | "true";
|
|
24
28
|
class?: MaybeReactive<string>;
|
|
25
29
|
}>;
|
|
26
30
|
//# sourceMappingURL=Popover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IACzB,2DAA2D;IAC3D,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IACzB,2DAA2D;IAC3D,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAmEF;;;;GAIG;AACH,eAAO,MAAM,OAAO;UAnFZ,aAAa,CAAC,OAAO,CAAC;mBACb,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;aAE7B,OAAO;eAEL,OAAO;YAEV,OAAO,GAAG,QAAQ,GAAG,KAAK;eAEvB,QAAQ,GAAG,MAAM,GAAG,MAAM;YAC7B,aAAa,CAAC,MAAM,CAAC;EA+N7B,CAAC"}
|
|
@@ -46,7 +46,8 @@ const styles = `
|
|
|
46
46
|
transform: translateY(-6px) scale(0.98);
|
|
47
47
|
transform-origin: bottom center;
|
|
48
48
|
}
|
|
49
|
-
.pu-popover--open .pu-popover__panel
|
|
49
|
+
.pu-popover--open .pu-popover__panel,
|
|
50
|
+
.pu-popover__panel.is-open {
|
|
50
51
|
opacity: 1;
|
|
51
52
|
visibility: visible;
|
|
52
53
|
pointer-events: auto;
|
|
@@ -54,7 +55,8 @@ const styles = `
|
|
|
54
55
|
}
|
|
55
56
|
@media (prefers-reduced-motion: reduce) {
|
|
56
57
|
.pu-popover__panel { transition: none; transform: none; }
|
|
57
|
-
.pu-popover--open .pu-popover__panel
|
|
58
|
+
.pu-popover--open .pu-popover__panel,
|
|
59
|
+
.pu-popover__panel.is-open { transform: none; }
|
|
58
60
|
}
|
|
59
61
|
`;
|
|
60
62
|
function ensureStyles(doc = document) {
|
|
@@ -70,10 +72,11 @@ function ensureStyles(doc = document) {
|
|
|
70
72
|
/**
|
|
71
73
|
* Anchored floating panel. Control with `open` + `onOpenChange`.
|
|
72
74
|
* Escape + outside dismiss via shared `attachOverlay` (stacked with modals).
|
|
75
|
+
* Panel portals to `document.body` so nav overflow cannot clip it.
|
|
73
76
|
*/
|
|
74
77
|
export const Popover = component((raw) => {
|
|
75
78
|
ensureStyles();
|
|
76
|
-
const props = mergeProps({ align: "start" }, raw);
|
|
79
|
+
const props = mergeProps({ align: "start", haspopup: "dialog" }, raw);
|
|
77
80
|
const isOpen = () => readBool(props.open);
|
|
78
81
|
let rootEl = null;
|
|
79
82
|
let panelEl = null;
|
|
@@ -122,15 +125,28 @@ export const Popover = component((raw) => {
|
|
|
122
125
|
panelEl.style.minWidth = `${Math.min(pw, Math.max(rect.width, 10.5 * 16))}px`;
|
|
123
126
|
};
|
|
124
127
|
effect(() => {
|
|
125
|
-
if (!isOpen())
|
|
128
|
+
if (!isOpen()) {
|
|
129
|
+
panelEl?.classList.remove("is-open");
|
|
126
130
|
return;
|
|
131
|
+
}
|
|
127
132
|
return attachOverlay({
|
|
128
133
|
getRoot: () => rootEl,
|
|
129
134
|
onClose: () => props.onOpenChange?.(false),
|
|
130
135
|
escape: true,
|
|
131
136
|
dismissOutside: true,
|
|
137
|
+
isInside: (node) => {
|
|
138
|
+
if (rootEl?.contains(node))
|
|
139
|
+
return true;
|
|
140
|
+
if (panelEl?.contains(node))
|
|
141
|
+
return true;
|
|
142
|
+
return false;
|
|
143
|
+
},
|
|
132
144
|
onAttach: ({ doc, win }) => {
|
|
133
145
|
ensureStyles(doc);
|
|
146
|
+
if (panelEl && panelEl.parentNode !== doc.body) {
|
|
147
|
+
doc.body.appendChild(panelEl);
|
|
148
|
+
}
|
|
149
|
+
panelEl?.classList.add("is-open");
|
|
134
150
|
const onReposition = () => placePanel();
|
|
135
151
|
const placeTimer = win.setTimeout(() => {
|
|
136
152
|
placePanel();
|
|
@@ -144,6 +160,7 @@ export const Popover = component((raw) => {
|
|
|
144
160
|
win.removeEventListener("resize", onReposition);
|
|
145
161
|
doc.removeEventListener("scroll", onReposition, true);
|
|
146
162
|
win.removeEventListener("scroll", onReposition, true);
|
|
163
|
+
panelEl?.classList.remove("is-open");
|
|
147
164
|
};
|
|
148
165
|
},
|
|
149
166
|
});
|
|
@@ -155,7 +172,7 @@ export const Popover = component((raw) => {
|
|
|
155
172
|
ensureStyles(el.ownerDocument);
|
|
156
173
|
}, children: [_jsx("div", { class: "pu-popover__trigger", ref: (el) => {
|
|
157
174
|
triggerEl = el;
|
|
158
|
-
}, onClick: (e) => {
|
|
175
|
+
}, "aria-haspopup": () => props.haspopup, "aria-expanded": () => (isOpen() ? "true" : "false"), onClick: (e) => {
|
|
159
176
|
e.stopPropagation();
|
|
160
177
|
props.onOpenChange?.(!isOpen());
|
|
161
178
|
}, children: props.trigger }), _jsx("div", { class: "pu-popover__panel", role: "dialog", "aria-modal": "false", "aria-hidden": () => (!isOpen() ? "true" : "false"), ref: (el) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AAiB9D,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDd,CAAC;AAEF,SAAS,YAAY,CAAC,MAAgB,QAAQ;IAC5C,IAAI,OAAO,GAAG,KAAK,WAAW;QAAE,OAAO;IACvC,IAAI,GAAG,CAAC,aAAa,CAAC,6BAA6B,CAAC;QAAE,OAAO;IAC7D,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;IACrD,YAAY,EAAE,CAAC;IACf,MAAM,KAAK,GAAG,UAAU,CACtB,EAAE,KAAK,EAAE,OAAgB,EAAE,QAAQ,EAAE,QAAiB,EAAE,EACxD,GAAG,CAGJ,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAC;IAEpE,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,IAAI,SAAS,GAAuB,IAAI,CAAC;IAEzC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC;QACtC,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC;QAE3B,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;QACrE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CACjB,OAAO,CAAC,WAAW,IAAI,GAAG,EAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAChC,CAAC;QAEF,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACxC,MAAM,UAAU,GACd,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC;QAElE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAElD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QAExD,IAAI,GAAW,CAAC;QAChB,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClC,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAEjE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAEnE,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,EAAE;QACV,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACd,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,OAAO,aAAa,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;YACrB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YAC1C,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,IAAI,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxC,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;gBACzB,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE;oBACrC,UAAU,EAAE,CAAC;oBACb,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC7C,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;gBACnD,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;gBACnD,OAAO,GAAG,EAAE;oBACV,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBAC7B,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAChD,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACtD,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACtD,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,eACE,KAAK,EAAE,GAAG,EAAE,CACV,EAAE,CACA,YAAY,EACZ,MAAM,EAAE,IAAI,kBAAkB,EAC9B,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAC/B,CAAC,CAAE,KAAK,CAAC,KAAsB,EAAE;YACjC,CAAC,CAAC,KAAK,CAAC,KAAK,CAChB,EAEH,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;YACV,MAAM,GAAG,EAAE,CAAC;YACZ,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC,aAED,cACE,KAAK,EAAC,qBAAqB,EAC3B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,SAAS,GAAG,EAAE,CAAC;gBACjB,CAAC,mBACc,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,mBACpB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAClD,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE;oBACzB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClC,CAAC,YAEA,KAAK,CAAC,OAAgB,GACnB,EACN,cACE,KAAK,EAAC,mBAAmB,EACzB,IAAI,EAAC,QAAQ,gBACF,OAAO,iBACL,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EACjD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC,YAEA,KAAK,CAAC,QAAiB,GACpB,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lab206/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Powers design system — tokens, primitives, and token-mapped utilities (batteries included).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "BUSL-1.1",
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
],
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
15
|
-
"types": "./
|
|
16
|
-
"development": "./src/index.ts",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
17
16
|
"import": "./dist/index.js",
|
|
18
17
|
"default": "./dist/index.js"
|
|
19
18
|
},
|
|
@@ -36,8 +35,8 @@
|
|
|
36
35
|
"!src/**/*.figma.ts"
|
|
37
36
|
],
|
|
38
37
|
"dependencies": {
|
|
39
|
-
"@lab206/core": "0.1.
|
|
40
|
-
"@lab206/dom": "0.1.
|
|
38
|
+
"@lab206/core": "0.1.4",
|
|
39
|
+
"@lab206/dom": "0.1.4"
|
|
41
40
|
},
|
|
42
41
|
"devDependencies": {
|
|
43
42
|
"esbuild": "^0.25.1",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { signal, effect } from "@lab206/core";
|
|
1
|
+
import { signal, effect, type Signal } from "@lab206/core";
|
|
2
2
|
import { For, Show, component, mergeProps, type ComponentProps } from "@lab206/dom";
|
|
3
3
|
import { cx } from "../utils.js";
|
|
4
4
|
import { attachOverlay } from "../overlay.js";
|
|
5
5
|
import { readBool, readProp, readStr, type MaybeReactive } from "../reactive.js";
|
|
6
|
+
import type { Bindable } from "../form.js";
|
|
6
7
|
|
|
7
8
|
export type ComboboxOption = {
|
|
8
9
|
value: string;
|
|
@@ -13,6 +14,8 @@ export type ComboboxOption = {
|
|
|
13
14
|
export type ComboboxProps = {
|
|
14
15
|
options: MaybeReactive<ComboboxOption[]>;
|
|
15
16
|
value?: MaybeReactive<string>;
|
|
17
|
+
/** Two-way bind a string signal — preferred over value + onChange. */
|
|
18
|
+
bind?: Bindable<string> | Signal<string>;
|
|
16
19
|
placeholder?: string;
|
|
17
20
|
disabled?: MaybeReactive<boolean>;
|
|
18
21
|
/**
|
|
@@ -185,6 +188,7 @@ export const Combobox = component((raw: ComboboxProps) => {
|
|
|
185
188
|
loadingText: string;
|
|
186
189
|
}
|
|
187
190
|
>;
|
|
191
|
+
const bound = raw.bind;
|
|
188
192
|
|
|
189
193
|
const open = signal(false);
|
|
190
194
|
const query = signal("");
|
|
@@ -230,7 +234,9 @@ export const Combobox = component((raw: ComboboxProps) => {
|
|
|
230
234
|
readProp(props.options as MaybeReactive<ComboboxOption[]>) ?? [];
|
|
231
235
|
|
|
232
236
|
const getValue = () =>
|
|
233
|
-
|
|
237
|
+
bound
|
|
238
|
+
? (readProp(bound as MaybeReactive<string>) ?? "")
|
|
239
|
+
: (readProp(props.value as MaybeReactive<string>) ?? "");
|
|
234
240
|
|
|
235
241
|
const filtered = () => {
|
|
236
242
|
if (isLoading()) return [] as ComboboxOption[];
|
|
@@ -308,6 +314,7 @@ export const Combobox = component((raw: ComboboxProps) => {
|
|
|
308
314
|
|
|
309
315
|
const pick = (opt: ComboboxOption) => {
|
|
310
316
|
if (opt.disabled || isLoading()) return;
|
|
317
|
+
bound?.set(opt.value);
|
|
311
318
|
props.onChange?.(opt.value);
|
|
312
319
|
query.set(opt.label);
|
|
313
320
|
open.set(false);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { effect } from "@lab206/core";
|
|
2
2
|
import { component, mergeProps, type ComponentProps } from "@lab206/dom";
|
|
3
|
-
import { cx } from "../utils.js";
|
|
3
|
+
import { cx, puId } from "../utils.js";
|
|
4
4
|
import { createStyleSheet } from "../styles.js";
|
|
5
5
|
import { attachOverlay } from "../overlay.js";
|
|
6
6
|
import { readBool, type MaybeReactive } from "../reactive.js";
|
|
@@ -121,6 +121,8 @@ export const Drawer = component((raw: DrawerProps) => {
|
|
|
121
121
|
let rootEl: HTMLElement | null = null;
|
|
122
122
|
let panelEl: HTMLElement | null = null;
|
|
123
123
|
|
|
124
|
+
const titleId = puId("pu-drawer-title");
|
|
125
|
+
|
|
124
126
|
effect(() => {
|
|
125
127
|
if (!isOpen()) return;
|
|
126
128
|
return attachOverlay({
|
|
@@ -161,6 +163,7 @@ export const Drawer = component((raw: DrawerProps) => {
|
|
|
161
163
|
class={() => cx("pu-drawer-panel", `pu-drawer-panel--${props.side}`)}
|
|
162
164
|
role="dialog"
|
|
163
165
|
aria-modal="true"
|
|
166
|
+
aria-labelledby={props.title ? titleId : undefined}
|
|
164
167
|
ref={(el) => {
|
|
165
168
|
panelEl = el;
|
|
166
169
|
}}
|
|
@@ -168,7 +171,9 @@ export const Drawer = component((raw: DrawerProps) => {
|
|
|
168
171
|
{(props.title || props.onClose) && (
|
|
169
172
|
<div class="pu-drawer__head">
|
|
170
173
|
{props.title ? (
|
|
171
|
-
<h2 class="pu-drawer__title"
|
|
174
|
+
<h2 class="pu-drawer__title" id={titleId}>
|
|
175
|
+
{props.title}
|
|
176
|
+
</h2>
|
|
172
177
|
) : (
|
|
173
178
|
<span />
|
|
174
179
|
)}
|
package/src/components/Menu.tsx
CHANGED
|
@@ -14,6 +14,8 @@ export type PopoverProps = {
|
|
|
14
14
|
children?: unknown;
|
|
15
15
|
/** Preferred alignment under the trigger */
|
|
16
16
|
align?: "start" | "center" | "end";
|
|
17
|
+
/** `aria-haspopup` on the trigger (Menu passes `"menu"`). */
|
|
18
|
+
haspopup?: "dialog" | "menu" | "true";
|
|
17
19
|
class?: MaybeReactive<string>;
|
|
18
20
|
};
|
|
19
21
|
|
|
@@ -59,7 +61,8 @@ const styles = `
|
|
|
59
61
|
transform: translateY(-6px) scale(0.98);
|
|
60
62
|
transform-origin: bottom center;
|
|
61
63
|
}
|
|
62
|
-
.pu-popover--open .pu-popover__panel
|
|
64
|
+
.pu-popover--open .pu-popover__panel,
|
|
65
|
+
.pu-popover__panel.is-open {
|
|
63
66
|
opacity: 1;
|
|
64
67
|
visibility: visible;
|
|
65
68
|
pointer-events: auto;
|
|
@@ -67,7 +70,8 @@ const styles = `
|
|
|
67
70
|
}
|
|
68
71
|
@media (prefers-reduced-motion: reduce) {
|
|
69
72
|
.pu-popover__panel { transition: none; transform: none; }
|
|
70
|
-
.pu-popover--open .pu-popover__panel
|
|
73
|
+
.pu-popover--open .pu-popover__panel,
|
|
74
|
+
.pu-popover__panel.is-open { transform: none; }
|
|
71
75
|
}
|
|
72
76
|
`;
|
|
73
77
|
|
|
@@ -83,11 +87,15 @@ function ensureStyles(doc: Document = document) {
|
|
|
83
87
|
/**
|
|
84
88
|
* Anchored floating panel. Control with `open` + `onOpenChange`.
|
|
85
89
|
* Escape + outside dismiss via shared `attachOverlay` (stacked with modals).
|
|
90
|
+
* Panel portals to `document.body` so nav overflow cannot clip it.
|
|
86
91
|
*/
|
|
87
92
|
export const Popover = component((raw: PopoverProps) => {
|
|
88
93
|
ensureStyles();
|
|
89
|
-
const props = mergeProps(
|
|
90
|
-
|
|
94
|
+
const props = mergeProps(
|
|
95
|
+
{ align: "start" as const, haspopup: "dialog" as const },
|
|
96
|
+
raw,
|
|
97
|
+
) as ComponentProps<
|
|
98
|
+
PopoverProps & { align: "start" | "center" | "end"; haspopup: "dialog" | "menu" | "true" }
|
|
91
99
|
>;
|
|
92
100
|
|
|
93
101
|
const isOpen = () => readBool(props.open as MaybeReactive<boolean>);
|
|
@@ -149,14 +157,26 @@ export const Popover = component((raw: PopoverProps) => {
|
|
|
149
157
|
};
|
|
150
158
|
|
|
151
159
|
effect(() => {
|
|
152
|
-
if (!isOpen())
|
|
160
|
+
if (!isOpen()) {
|
|
161
|
+
panelEl?.classList.remove("is-open");
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
153
164
|
return attachOverlay({
|
|
154
165
|
getRoot: () => rootEl,
|
|
155
166
|
onClose: () => props.onOpenChange?.(false),
|
|
156
167
|
escape: true,
|
|
157
168
|
dismissOutside: true,
|
|
169
|
+
isInside: (node) => {
|
|
170
|
+
if (rootEl?.contains(node)) return true;
|
|
171
|
+
if (panelEl?.contains(node)) return true;
|
|
172
|
+
return false;
|
|
173
|
+
},
|
|
158
174
|
onAttach: ({ doc, win }) => {
|
|
159
175
|
ensureStyles(doc);
|
|
176
|
+
if (panelEl && panelEl.parentNode !== doc.body) {
|
|
177
|
+
doc.body.appendChild(panelEl);
|
|
178
|
+
}
|
|
179
|
+
panelEl?.classList.add("is-open");
|
|
160
180
|
const onReposition = () => placePanel();
|
|
161
181
|
const placeTimer = win.setTimeout(() => {
|
|
162
182
|
placePanel();
|
|
@@ -170,6 +190,7 @@ export const Popover = component((raw: PopoverProps) => {
|
|
|
170
190
|
win.removeEventListener("resize", onReposition);
|
|
171
191
|
doc.removeEventListener("scroll", onReposition, true);
|
|
172
192
|
win.removeEventListener("scroll", onReposition, true);
|
|
193
|
+
panelEl?.classList.remove("is-open");
|
|
173
194
|
};
|
|
174
195
|
},
|
|
175
196
|
});
|
|
@@ -196,6 +217,8 @@ export const Popover = component((raw: PopoverProps) => {
|
|
|
196
217
|
ref={(el) => {
|
|
197
218
|
triggerEl = el;
|
|
198
219
|
}}
|
|
220
|
+
aria-haspopup={() => props.haspopup}
|
|
221
|
+
aria-expanded={() => (isOpen() ? "true" : "false")}
|
|
199
222
|
onClick={(e: MouseEvent) => {
|
|
200
223
|
e.stopPropagation();
|
|
201
224
|
props.onOpenChange?.(!isOpen());
|