@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 CHANGED
@@ -1,6 +1,19 @@
1
1
  # @lab206/ui
2
2
 
3
- Part of [Powers](https://github.com/spowers2/powers)fine-grained UI kit with a design system built in.
3
+ Powers design systemtokens, primitives, and utilities.
4
4
 
5
- - Docs: https://lab206.com/docs
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":"AAIA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEjF,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,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;aA9JV,aAAa,CAAC,cAAc,EAAE,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC;kBACf,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;EAqZrB,CAAC"}
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 = () => readProp(props.value) ?? "";
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;EAiLlB,CAAC"}
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":"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"}
1
+ {"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../src/components/Drawer.tsx"],"names":[],"mappings":"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"}
@@ -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;EAwK/B,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"}
@@ -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;AAiEF;;;GAGG;AACH,eAAO,MAAM,OAAO;UA9EZ,aAAa,CAAC,OAAO,CAAC;mBACb,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;aAE7B,OAAO;eAEL,OAAO;YAEV,OAAO,GAAG,QAAQ,GAAG,KAAK;YAC1B,aAAa,CAAC,MAAM,CAAC;EA0M7B,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 { transform: none; }
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":"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"}
1
+ {"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lab206/ui",
3
- "version": "0.1.2",
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": "./src/index.ts",
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.2",
40
- "@lab206/dom": "0.1.2"
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
- readProp(props.value as MaybeReactive<string>) ?? "";
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">{props.title}</h2>
174
+ <h2 class="pu-drawer__title" id={titleId}>
175
+ {props.title}
176
+ </h2>
172
177
  ) : (
173
178
  <span />
174
179
  )}
@@ -144,6 +144,7 @@ export const Menu = component((raw: MenuProps) => {
144
144
  open={open}
145
145
  onOpenChange={(v) => open.set(v)}
146
146
  align={props.align}
147
+ haspopup="menu"
147
148
  trigger={props.trigger}
148
149
  >
149
150
  <div
@@ -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 { transform: none; }
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({ align: "start" as const }, raw) as ComponentProps<
90
- PopoverProps & { align: "start" | "center" | "end" }
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()) return;
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());