@cascivo/react 0.16.1 → 0.17.1

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.
Files changed (62) hide show
  1. package/README.md +14 -13
  2. package/dist/accordion/accordion.js +5 -4
  3. package/dist/app-shell/app-shell.css +1 -1
  4. package/dist/app-shell/app-shell.js +28 -26
  5. package/dist/app-shell/app-shell.module.js +8 -8
  6. package/dist/breadcrumb/breadcrumb.js +1 -1
  7. package/dist/button/button.css +1 -1
  8. package/dist/button/button.js +4 -1
  9. package/dist/button/button.module.js +4 -1
  10. package/dist/calendar/calendar.js +67 -63
  11. package/dist/card/card.css +1 -1
  12. package/dist/card/card.module.js +8 -8
  13. package/dist/checkbox/checkbox.css +1 -1
  14. package/dist/checkbox/checkbox.module.js +4 -4
  15. package/dist/code-snippet/code-snippet.js +31 -26
  16. package/dist/combobox/combobox.js +55 -54
  17. package/dist/data-table/data-table.css +1 -1
  18. package/dist/data-table/data-table.js +155 -160
  19. package/dist/data-table/data-table.module.js +29 -29
  20. package/dist/date-picker/date-picker.js +90 -89
  21. package/dist/dock/dock.js +1 -1
  22. package/dist/field/field.css +1 -1
  23. package/dist/field/field.module.js +3 -3
  24. package/dist/index.d.ts +157 -10
  25. package/dist/large-title-header/large-title-header.js +1 -1
  26. package/dist/layouts/src/grid/grid.css +1 -1
  27. package/dist/layouts/src/grid/grid.module.js +3 -3
  28. package/dist/node/accordion/accordion.js +5 -4
  29. package/dist/node/app-shell/app-shell.js +28 -26
  30. package/dist/node/app-shell/app-shell.module.js +8 -8
  31. package/dist/node/breadcrumb/breadcrumb.js +1 -1
  32. package/dist/node/button/button.js +4 -1
  33. package/dist/node/button/button.module.js +4 -1
  34. package/dist/node/calendar/calendar.js +67 -63
  35. package/dist/node/card/card.module.js +8 -8
  36. package/dist/node/checkbox/checkbox.module.js +4 -4
  37. package/dist/node/code-snippet/code-snippet.js +31 -26
  38. package/dist/node/combobox/combobox.js +55 -54
  39. package/dist/node/data-table/data-table.js +155 -160
  40. package/dist/node/data-table/data-table.module.js +29 -29
  41. package/dist/node/date-picker/date-picker.js +90 -89
  42. package/dist/node/dock/dock.js +1 -1
  43. package/dist/node/field/field.module.js +3 -3
  44. package/dist/node/large-title-header/large-title-header.js +1 -1
  45. package/dist/node/layouts/src/grid/grid.module.js +3 -3
  46. package/dist/node/search/search.js +5 -4
  47. package/dist/node/side-nav/side-nav.js +90 -89
  48. package/dist/node/swap/swap.js +4 -3
  49. package/dist/node/switcher/switcher.js +1 -1
  50. package/dist/node/tabs/tabs.js +5 -4
  51. package/dist/node/toc/toc.js +5 -4
  52. package/dist/search/search.js +5 -4
  53. package/dist/side-nav/side-nav.js +90 -89
  54. package/dist/styles.css +7 -7
  55. package/dist/swap/swap.js +4 -3
  56. package/dist/switcher/switcher.js +1 -1
  57. package/dist/tabs/tabs.js +5 -4
  58. package/dist/toc/toc.js +5 -4
  59. package/dist/types.d.ts +21 -0
  60. package/dist/types.js +1 -0
  61. package/package.json +11 -4
  62. package/readme.body.md +14 -13
package/README.md CHANGED
@@ -73,26 +73,27 @@ RSC without any extra wrapper.
73
73
 
74
74
  > **No bundler? (CDN, import maps, plain `<link>`)** Import the aggregate sheet
75
75
  > `@cascivo/react/styles.css` — every component's CSS **plus the tokens and the
76
- > light & dark themes** in one file (~305 KB / ~40 KB gzip, not tree-shaken). It is
76
+ > light & dark themes** in one file (~328 KB / ~47 KB gzip, not tree-shaken). It is
77
77
  > self-contained: this single import gives you a fully-colored app with no separate
78
- > `@cascivo/themes` import. With a bundler (CSR) you don't need it; import it only if
79
- > you prefer one explicit stylesheet over per-component tree-shaking, or for Vite SSR
80
- > (below), where it is required.
78
+ > `@cascivo/themes` import. On **any** bundler CSR, SSR or RSC alike you don't
79
+ > need it, and importing it costs you the per-component tree-shaking; reach for it
80
+ > only when nothing walks the module graph.
81
81
 
82
82
  > **Vite SSR / TanStack Start / Remix / workerd?** The 4-line SSR checklist (full
83
83
  > recipe: [USING-WITH-VITE-SSR.md](https://github.com/cascivo/cascivo/blob/main/docs/USING-WITH-VITE-SSR.md)):
84
84
  >
85
- > 1. **`ssr: { noExternal: [/^@cascivo\//] }`** in `vite.config` (or the
86
- > `cascivoSsr()` plugin from `@cascivo/vite-plugin`). Without it a bare
87
- > server-side ESM loader can't resolve the per-component `.css` side-effect
88
- > imports and throws `Unknown file extension ".css"`.
85
+ > 1. **No Vite config needed** on 0.10+ — the `node` export condition ships a
86
+ > CSS-free server build a bare ESM loader can import. Pinned below 0.10? Add
87
+ > `ssr: { noExternal: [/^@cascivo\//] }` (or the `cascivoSsr()` plugin from
88
+ > `@cascivo/vite-plugin`), else the loader throws `Unknown file extension ".css"`.
89
89
  > 2. **`@preact/signals-react` 3.x** — on React 19 the 2.x line fails to load. The
90
90
  > peer range enforces `>=3`.
91
- > 3. **Import the CSS once** in your root entry: `@cascivo/react/styles.css` +
92
- > `@cascivo/themes/all` (+ `@cascivo/charts/styles.css` if you use charts). If you
93
- > typecheck (`tsc --noEmit`), these bare `.css` imports need ambient types — add
94
- > `src/vite-env.d.ts` with `/// <reference types="vite/client" />` or
95
- > `declare module '*.css'`, else TS2307/TS2882.
91
+ > 3. **Import a theme once** in your root entry: `@cascivo/themes/light-dark.css`
92
+ > (+ `@cascivo/charts/styles.css` if you use charts). Component CSS is automatic
93
+ > here too — don't add the aggregate. If you typecheck (`tsc --noEmit`), these
94
+ > bare `.css` imports need ambient types — add `src/vite-env.d.ts` with
95
+ > `/// <reference types="vite/client" />` or `declare module '*.css'`, else
96
+ > TS2307/TS2882.
96
97
  > 4. **Theme without a mismatch:** inline `themePreloadScript()` in `<head>` and add
97
98
  > `suppressHydrationWarning` to `<html>`, or hard-code `data-theme` for a fixed theme.
98
99
  >
@@ -2,7 +2,7 @@
2
2
 
3
3
  import e from "./accordion.module.js";
4
4
  import { createContext as t, forwardRef as n, useId as r, useRef as i } from "react";
5
- import { cn as a, useSignal as o, useSignalEffect as s, useSignals as c } from "@cascivo/core";
5
+ import { cn as a, useControllableSignal as o, useSignalEffect as s, useSignals as c } from "@cascivo/core";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  //#region ../components/src/accordion/accordion.tsx
8
8
  var d = t(null), f = t(null);
@@ -10,9 +10,10 @@ function p(e) {
10
10
  return e === void 0 ? [] : Array.isArray(e) ? e : [e];
11
11
  }
12
12
  function m({ type: t = "single", defaultValue: n, value: i, onValueChange: s, className: c, children: u }) {
13
- let f = r(), m = o(p(i ?? n));
14
- i !== void 0 && (m.value = p(i));
15
- let h = {
13
+ let f = r(), [m] = o({
14
+ value: i === void 0 ? void 0 : p(i),
15
+ defaultValue: p(n)
16
+ }), h = {
16
17
  open: m,
17
18
  baseId: f,
18
19
  type: t,
@@ -1 +1 @@
1
- @layer cascivo.component{._shell_1y4cv_4{box-sizing:border-box;block-size:100dvh;font-family:var(--cascivo-font-sans);color:var(--cascivo-color-foreground);background-color:var(--cascivo-color-background);flex-direction:column;display:flex;overflow:hidden}._header_1y4cv_16{z-index:var(--cascivo-z-raised);flex:none}._body_1y4cv_21{flex:auto;min-block-size:0;display:flex;position:relative}._navWrapper_1y4cv_32{z-index:var(--cascivo-z-overlay);block-size:100%;transition:transform var(--cascivo-motion-emphasis);position:absolute;inset-block:0;inset-inline-start:0;overflow:hidden;transform:translate(-100%)}._navWrapper_1y4cv_32[data-open=true]{transform:translate(0)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_1y4cv_32{transform:translate(100%)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_1y4cv_32[data-open=true]{transform:translate(0)}._navInner_1y4cv_58{block-size:100%;inline-size:var(--cascivo-shell-panel-inline-size,20rem);display:flex}._navInner_1y4cv_58>*{flex:auto;min-block-size:0}._scrim_1y4cv_70{z-index:var(--cascivo-z-dropdown);opacity:0;visibility:hidden;transition:opacity var(--cascivo-motion-emphasis), visibility var(--cascivo-motion-emphasis);background-color:oklch(0% 0 0/.4);position:absolute;inset:0}._scrim_1y4cv_70[data-open=true]{opacity:1;visibility:visible}._main_1y4cv_87{flex:auto;min-inline-size:0;overflow-y:auto}._footer_1y4cv_93{flex:none}@media (width>=64rem){._navWrapper_1y4cv_32{z-index:auto;inline-size:var(--cascivo-shell-aside-inline-size,18rem);transition:inline-size var(--cascivo-motion-emphasis);flex-shrink:0;position:static;transform:none}._navWrapper_1y4cv_32[data-open=false]{inline-size:0}._navInner_1y4cv_58{inline-size:var(--cascivo-shell-aside-inline-size,18rem)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_1y4cv_32{transform:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_1y4cv_32[data-open=true]{transform:none}._scrim_1y4cv_70{display:none}}}
1
+ @layer cascivo.component{._shell_pf33o_4{box-sizing:border-box;block-size:100dvh;font-family:var(--cascivo-font-sans);color:var(--cascivo-color-foreground);background-color:var(--cascivo-color-background);flex-direction:column;display:flex;overflow:hidden}._header_pf33o_16{z-index:var(--cascivo-z-raised);flex:none}._body_pf33o_21{flex:auto;min-block-size:0;display:flex;position:relative}._navWrapper_pf33o_32{z-index:var(--cascivo-z-overlay);block-size:100%;transition:transform var(--cascivo-motion-emphasis);position:absolute;inset-block:0;inset-inline-start:0;overflow:hidden;transform:translate(-100%)}._navWrapper_pf33o_32[data-open=true]{transform:translate(0)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_pf33o_32{transform:translate(100%)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_pf33o_32[data-open=true]{transform:translate(0)}._navInner_pf33o_58{block-size:100%;inline-size:var(--cascivo-shell-panel-inline-size,20rem);display:flex}._navInner_pf33o_58>*{flex:auto;min-block-size:0}._scrim_pf33o_70{z-index:var(--cascivo-z-dropdown);opacity:0;visibility:hidden;transition:opacity var(--cascivo-motion-emphasis), visibility var(--cascivo-motion-emphasis);background-color:oklch(0% 0 0/.4);position:absolute;inset:0}._scrim_pf33o_70[data-open=true]{opacity:1;visibility:visible}._main_pf33o_87{min-inline-size:0;padding:var(--cascivo-space-6);flex:auto;overflow-y:auto}._main_pf33o_87[data-padding=none]{padding:0}._main_pf33o_87[data-padding="1"]{padding:var(--cascivo-space-1)}._main_pf33o_87[data-padding="2"]{padding:var(--cascivo-space-2)}._main_pf33o_87[data-padding="3"]{padding:var(--cascivo-space-3)}._main_pf33o_87[data-padding="4"]{padding:var(--cascivo-space-4)}._main_pf33o_87[data-padding="5"]{padding:var(--cascivo-space-5)}._main_pf33o_87[data-padding="6"]{padding:var(--cascivo-space-6)}._main_pf33o_87[data-padding="8"]{padding:var(--cascivo-space-8)}._main_pf33o_87[data-padding="10"]{padding:var(--cascivo-space-10)}._main_pf33o_87[data-padding="12"]{padding:var(--cascivo-space-12)}._footer_pf33o_128{flex:none}@media (width>=64rem){._navWrapper_pf33o_32{z-index:auto;inline-size:var(--cascivo-shell-aside-inline-size,18rem);transition:inline-size var(--cascivo-motion-emphasis);flex-shrink:0;position:static;transform:none}._navWrapper_pf33o_32[data-open=false]{inline-size:0}._navInner_pf33o_58{inline-size:var(--cascivo-shell-aside-inline-size,18rem)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_pf33o_32{transform:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_pf33o_32[data-open=true]{transform:none}._scrim_pf33o_70{display:none}}}
@@ -2,56 +2,57 @@
2
2
 
3
3
  import e from "./app-shell.module.js";
4
4
  import { cloneElement as t, isValidElement as n, useRef as r } from "react";
5
- import { cn as i, useSignal as a, useSignalEffect as o, useSignals as s } from "@cascivo/core";
5
+ import { cn as i, useControllableSignal as a, useSignalEffect as o, useSignals as s } from "@cascivo/core";
6
6
  import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  //#region ../components/src/app-shell/app-shell.tsx
8
- function d({ header: d, nav: f, children: p, footer: m, open: h, defaultOpen: g, onOpenChange: _, className: v, ...y }) {
8
+ function d({ header: d, nav: f, children: p, footer: m, open: h, defaultOpen: g, onOpenChange: _, padding: v = 6, className: y, ...b }) {
9
9
  s();
10
- let b = h !== void 0, x = a(h ?? g ?? !0);
11
- b && (x.value = h);
12
- let S = r(null), C = r(null);
13
- function w(e) {
14
- b || (x.value = e), _?.(e);
10
+ let x = h !== void 0, [S] = a({
11
+ value: h,
12
+ defaultValue: g ?? !0
13
+ }), C = r(null), w = r(null);
14
+ function T(e) {
15
+ x || (S.value = e), _?.(e);
15
16
  }
16
- function T() {
17
- typeof document < "u" && (C.current = document.activeElement), w(!x.value);
17
+ function E() {
18
+ typeof document < "u" && (w.current = document.activeElement), T(!S.value);
18
19
  }
19
20
  o(() => {
20
- b || g !== void 0 || typeof window > "u" || typeof window.matchMedia != "function" || window.matchMedia("(max-width: 63.999rem)").matches && (x.value = !1);
21
+ x || g !== void 0 || typeof window > "u" || typeof window.matchMedia != "function" || window.matchMedia("(max-width: 63.999rem)").matches && (S.value = !1);
21
22
  }), o(() => {
22
- if (!x.value || typeof document > "u") return;
23
+ if (!S.value || typeof document > "u") return;
23
24
  let e = (e) => {
24
- e.key === "Escape" && w(!1);
25
+ e.key === "Escape" && T(!1);
25
26
  };
26
27
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
27
28
  }), o(() => {
28
- let e = S.current;
29
- if (e) if (x.value) e.removeAttribute("inert");
29
+ let e = C.current;
30
+ if (e) if (S.value) e.removeAttribute("inert");
30
31
  else {
31
32
  e.setAttribute("inert", "");
32
- let t = C.current;
33
+ let t = w.current;
33
34
  t && e.contains(document.activeElement) && t.focus();
34
35
  }
35
36
  });
36
- let E = n(d) && f ? t(d, {
37
- onMenuClick: T,
38
- menuExpanded: x.value
37
+ let D = n(d) && f ? t(d, {
38
+ onMenuClick: E,
39
+ menuExpanded: S.value
39
40
  }) : d;
40
41
  return /* @__PURE__ */ u("div", {
41
- className: i(e.shell, v),
42
- "data-open": x.value,
43
- ...y,
42
+ className: i(e.shell, y),
43
+ "data-open": S.value,
44
+ ...b,
44
45
  children: [
45
46
  /* @__PURE__ */ l("div", {
46
47
  className: e.header,
47
- children: E
48
+ children: D
48
49
  }),
49
50
  /* @__PURE__ */ u("div", {
50
51
  className: e.body,
51
52
  children: [f && /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l("div", {
52
- ref: S,
53
+ ref: C,
53
54
  className: e.navWrapper,
54
- "data-open": x.value,
55
+ "data-open": S.value,
55
56
  "data-testid": "app-shell-nav",
56
57
  "data-cascivo-appshell-nav": "",
57
58
  children: /* @__PURE__ */ l("div", {
@@ -60,15 +61,16 @@ function d({ header: d, nav: f, children: p, footer: m, open: h, defaultOpen: g,
60
61
  })
61
62
  }), /* @__PURE__ */ l("div", {
62
63
  className: e.scrim,
63
- "data-open": x.value,
64
+ "data-open": S.value,
64
65
  "data-testid": "app-shell-scrim",
65
66
  "aria-hidden": "true",
66
- onClick: () => w(!1)
67
+ onClick: () => T(!1)
67
68
  })] }), /* @__PURE__ */ l("main", {
68
69
  id: "cascade-main",
69
70
  tabIndex: -1,
70
71
  className: e.main,
71
72
  "data-cascivo-appshell-main": "",
73
+ "data-padding": v === "none" ? "none" : String(v),
72
74
  children: p
73
75
  })]
74
76
  }),
@@ -1,13 +1,13 @@
1
1
  import './app-shell.css';
2
2
  var e = {
3
- shell: "_shell_1y4cv_4",
4
- header: "_header_1y4cv_16",
5
- body: "_body_1y4cv_21",
6
- navWrapper: "_navWrapper_1y4cv_32",
7
- navInner: "_navInner_1y4cv_58",
8
- scrim: "_scrim_1y4cv_70",
9
- main: "_main_1y4cv_87",
10
- footer: "_footer_1y4cv_93"
3
+ shell: "_shell_pf33o_4",
4
+ header: "_header_pf33o_16",
5
+ body: "_body_pf33o_21",
6
+ navWrapper: "_navWrapper_pf33o_32",
7
+ navInner: "_navInner_pf33o_58",
8
+ scrim: "_scrim_pf33o_70",
9
+ main: "_main_pf33o_87",
10
+ footer: "_footer_pf33o_128"
11
11
  };
12
12
  //#endregion
13
13
  export { e as default };
@@ -21,7 +21,7 @@ function s({ items: s, maxVisible: c, className: l, ariaLabel: u }) {
21
21
  }) : e.href === void 0 ? /* @__PURE__ */ o("span", { children: e.label }) : /* @__PURE__ */ o(d, {
22
22
  href: e.href,
23
23
  children: e.label
24
- }) }, `${t}-${e.label}`)) })
24
+ }) }, e.id ?? `${t}-${e.label}`)) })
25
25
  });
26
26
  }
27
27
  //#endregion
@@ -1 +1 @@
1
- @layer cascivo.component{._button_131qn_2{justify-content:center;align-items:center;gap:var(--cascivo-space-2);font-family:var(--cascivo-font-sans);font-weight:var(--cascivo-font-medium);line-height:var(--cascivo-leading-none);white-space:nowrap;cursor:pointer;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);border-radius:var(--cascivo-button-radius,var(--cascivo-radius-control));border:1px solid #0000;text-decoration:none;display:inline-flex}._button_131qn_2:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._button_131qn_2:disabled,._button_131qn_2[aria-disabled=true]{opacity:.5;opacity:var(--cascivo-disabled-opacity,.5);cursor:not-allowed;pointer-events:none}._button_131qn_2[data-size=sm]{height:var(--cascivo-control-height-sm);padding-inline:var(--cascivo-space-3);font-size:var(--cascivo-text-ui)}._button_131qn_2[data-size=md]{height:var(--cascivo-control-height-md);padding-inline:var(--cascivo-space-4);padding-block:.5rem;padding-block:--cascivo-step(2);font-size:var(--cascivo-text-ui)}._button_131qn_2[data-size=lg]{height:var(--cascivo-control-height-lg);padding-inline:var(--cascivo-space-6);font-size:var(--cascivo-text-body)}@media (pointer:coarse){._button_131qn_2[data-size=sm],._button_131qn_2[data-size=md]{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._button_131qn_2[data-variant=primary]{background-color:var(--cascivo-color-primary);color:var(--cascivo-color-primary-fg)}._button_131qn_2[data-variant=primary]:hover:not(:disabled){background-color:var(--cascivo-color-primary-hover)}._button_131qn_2[data-variant=primary]:active:not(:disabled){background-color:var(--cascivo-color-primary-active)}._button_131qn_2[data-variant=secondary]{background-color:var(--cascivo-color-secondary);color:var(--cascivo-color-secondary-content)}._button_131qn_2[data-variant=secondary]:hover:not(:disabled){background-color:var(--cascivo-color-secondary-hover)}._button_131qn_2[data-variant=ghost]{color:var(--cascivo-color-text);background-color:#0000}._button_131qn_2[data-variant=ghost]:hover:not(:disabled){background-color:var(--cascivo-color-bg-subtle)}._button_131qn_2[data-variant=destructive]{background-color:var(--cascivo-color-destructive);color:var(--cascivo-color-text-on-destructive)}._button_131qn_2[data-variant=destructive]:hover:not(:disabled){background-color:var(--cascivo-color-destructive-hover)}}@media (forced-colors:active){._button_131qn_2{border:1px solid buttontext}._button_131qn_2:focus-visible{outline-offset:2px;outline:2px solid highlight}._button_131qn_2:disabled{color:graytext;border-color:graytext}}
1
+ @layer cascivo.component{._label_yace7_10{align-items:center;gap:inherit;display:inline-flex}._button_yace7_8{justify-content:center;align-items:center;gap:var(--cascivo-space-2);font-family:var(--cascivo-font-sans);font-weight:var(--cascivo-font-medium);line-height:var(--cascivo-leading-none);white-space:nowrap;cursor:pointer;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);border-radius:var(--cascivo-button-radius,var(--cascivo-radius-control));border:1px solid #0000;text-decoration:none;display:inline-flex}._button_yace7_8:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._button_yace7_8:disabled,._button_yace7_8[aria-disabled=true]{opacity:.5;opacity:var(--cascivo-disabled-opacity,.5);cursor:not-allowed;pointer-events:none}._button_yace7_8[data-size=sm]{height:var(--cascivo-control-height-sm);padding-inline:var(--cascivo-space-3);font-size:var(--cascivo-text-ui)}._button_yace7_8[data-size=md]{height:var(--cascivo-control-height-md);padding-inline:var(--cascivo-space-4);padding-block:.5rem;padding-block:--cascivo-step(2);font-size:var(--cascivo-text-ui)}._button_yace7_8[data-size=lg]{height:var(--cascivo-control-height-lg);padding-inline:var(--cascivo-space-6);font-size:var(--cascivo-text-body)}@media (pointer:coarse){._button_yace7_8[data-size=sm],._button_yace7_8[data-size=md]{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._button_yace7_8[data-variant=primary]{background-color:var(--cascivo-color-primary);color:var(--cascivo-color-primary-fg)}._button_yace7_8[data-variant=primary]:hover:not(:disabled){background-color:var(--cascivo-color-primary-hover)}._button_yace7_8[data-variant=primary]:active:not(:disabled){background-color:var(--cascivo-color-primary-active)}._button_yace7_8[data-variant=secondary]{background-color:var(--cascivo-color-secondary);color:var(--cascivo-color-secondary-content)}._button_yace7_8[data-variant=secondary]:hover:not(:disabled){background-color:var(--cascivo-color-secondary-hover)}._button_yace7_8[data-variant=ghost]{color:var(--cascivo-color-text);background-color:#0000}._button_yace7_8[data-variant=ghost]:hover:not(:disabled){background-color:var(--cascivo-color-bg-subtle)}._button_yace7_8[data-variant=destructive]{background-color:var(--cascivo-color-destructive);color:var(--cascivo-color-text-on-destructive)}._button_yace7_8[data-variant=destructive]:hover:not(:disabled){background-color:var(--cascivo-color-destructive-hover)}}@media (forced-colors:active){._button_yace7_8{border:1px solid buttontext}._button_yace7_8:focus-visible{outline-offset:2px;outline:2px solid highlight}._button_yace7_8:disabled{color:graytext;border-color:graytext}}
@@ -25,7 +25,10 @@ var s = i(function({ variant: i = "primary", size: s = "md", loading: c = !1, as
25
25
  children: [c && /* @__PURE__ */ a(e, {
26
26
  size: "sm",
27
27
  "aria-hidden": "true"
28
- }), /* @__PURE__ */ a("span", { children: f })]
28
+ }), /* @__PURE__ */ a("span", {
29
+ className: t.label,
30
+ children: f
31
+ })]
29
32
  });
30
33
  });
31
34
  //#endregion
@@ -1,4 +1,7 @@
1
1
  import './button.css';
2
- var e = { button: "_button_131qn_2" };
2
+ var e = {
3
+ label: "_label_yace7_10",
4
+ button: "_button_yace7_8"
5
+ };
3
6
  //#endregion
4
7
  export { e as default };
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
 
3
3
  import e from "./calendar.module.js";
4
- import { batch as t, cn as n, useSignal as r, useSignals as i } from "@cascivo/core";
5
- import { builtin as a, currentLocale as o, t as s } from "@cascivo/i18n";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ import { batch as t, cn as n, useControllableSignal as r, useSignal as i, useSignals as a } from "@cascivo/core";
5
+ import { builtin as o, currentLocale as s, t as c } from "@cascivo/i18n";
6
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  //#region ../components/src/calendar/calendar.tsx
8
- function u(e) {
8
+ function d(e) {
9
9
  try {
10
10
  let t = new Intl.Locale(e).weekInfo;
11
11
  if (t) return t.firstDay % 7;
12
12
  } catch {}
13
13
  return 1;
14
14
  }
15
- function d(e, t, n) {
15
+ function f(e, t, n) {
16
16
  let r = new Date(Date.UTC(e, t, 1)), i = new Date(Date.UTC(e, t + 1, 0)), a = (r.getUTCDay() - n + 7) % 7, o = [];
17
17
  for (let e = 0; e < a; e++) o.push(null);
18
18
  for (let n = 1; n <= i.getUTCDate(); n++) o.push(new Date(Date.UTC(e, t, n)));
@@ -21,22 +21,22 @@ function d(e, t, n) {
21
21
  for (let e = 0; e < o.length; e += 7) s.push(o.slice(e, e + 7));
22
22
  return s;
23
23
  }
24
- function f(e) {
24
+ function p(e) {
25
25
  return `${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`;
26
26
  }
27
- function p(e, t) {
28
- return !e || !t ? !1 : f(e) === f(t);
29
- }
30
27
  function m(e, t) {
31
- return new Date(Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate() + t));
28
+ return !e || !t ? !1 : p(e) === p(t);
32
29
  }
33
30
  function h(e, t) {
34
- return new Date(Date.UTC(e.getUTCFullYear(), e.getUTCMonth() + t, e.getUTCDate()));
31
+ return new Date(Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate() + t));
35
32
  }
36
33
  function g(e, t) {
37
- return m(e, -((e.getUTCDay() - t + 7) % 7));
34
+ return new Date(Date.UTC(e.getUTCFullYear(), e.getUTCMonth() + t, e.getUTCDate()));
35
+ }
36
+ function _(e, t) {
37
+ return h(e, -((e.getUTCDay() - t + 7) % 7));
38
38
  }
39
- function _(e, t, n) {
39
+ function v(e, t, n) {
40
40
  if (t) {
41
41
  let n = new Date(Date.UTC(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()));
42
42
  if (e.getTime() < n.getTime()) return !0;
@@ -47,96 +47,100 @@ function _(e, t, n) {
47
47
  }
48
48
  return !1;
49
49
  }
50
- function v({ value: f, defaultValue: v, onValueChange: y, min: b, max: x, disabled: S, locale: C, size: w = "md", labels: T, className: E, isInRange: D, isRangeStart: O, isRangeEnd: k, onDayHover: A, month: j, year: M, onViewChange: N, hideNav: P = !1 }) {
51
- i();
52
- let F = C ?? o(), I = T?.previousMonth ?? s(a.calendar.previousMonth), L = T?.nextMonth ?? s(a.calendar.nextMonth), R = f === void 0 ? v ?? null : f, z = /* @__PURE__ */ new Date(), B = R ?? v ?? z, V = r(B.getUTCFullYear()), H = r(B.getUTCMonth()), U = r(B);
53
- j !== void 0 && (H.value = j), M !== void 0 && (V.value = M);
54
- let W = u(F), G = d(V.value, H.value, W), K = new Intl.DateTimeFormat(F, { weekday: "short" }), q = Array.from({ length: 7 }, (e, t) => {
55
- let n = new Date(Date.UTC(2024, 0, 7 + W + t));
56
- return K.format(n);
57
- }), J = new Intl.DateTimeFormat(F, {
50
+ function y({ value: p, defaultValue: y, onValueChange: b, min: x, max: S, disabled: C, locale: w, size: T = "md", labels: E, className: D, isInRange: O, isRangeStart: k, isRangeEnd: A, onDayHover: j, month: M, year: N, onViewChange: P, hideNav: F = !1 }) {
51
+ a();
52
+ let I = w ?? s(), L = E?.previousMonth ?? c(o.calendar.previousMonth), R = E?.nextMonth ?? c(o.calendar.nextMonth), z = p === void 0 ? y ?? null : p, B = /* @__PURE__ */ new Date(), V = z ?? y ?? B, [H] = r({
53
+ value: N,
54
+ defaultValue: V.getUTCFullYear()
55
+ }), [U] = r({
56
+ value: M,
57
+ defaultValue: V.getUTCMonth()
58
+ }), W = i(V), G = d(I), K = f(H.value, U.value, G), q = new Intl.DateTimeFormat(I, { weekday: "short" }), J = Array.from({ length: 7 }, (e, t) => {
59
+ let n = new Date(Date.UTC(2024, 0, 7 + G + t));
60
+ return q.format(n);
61
+ }), ee = new Intl.DateTimeFormat(I, {
58
62
  weekday: "long",
59
63
  year: "numeric",
60
64
  month: "long",
61
65
  day: "numeric"
62
- }), Y = new Intl.DateTimeFormat(F, {
66
+ }), Y = new Intl.DateTimeFormat(I, {
63
67
  month: "long",
64
68
  year: "numeric"
65
- }).format(new Date(Date.UTC(V.value, H.value, 1))), X = (e) => _(e, b, x) || (S ? S(e) : !1), Z = j !== void 0 || M !== void 0, ee = (e) => {
66
- Z ? U.value = e : t(() => {
67
- V.value = e.getUTCFullYear(), H.value = e.getUTCMonth(), U.value = e;
68
- }), N?.({
69
+ }).format(new Date(Date.UTC(H.value, U.value, 1))), X = (e) => v(e, x, S) || (C ? C(e) : !1), Z = M !== void 0 || N !== void 0, te = (e) => {
70
+ Z ? W.value = e : t(() => {
71
+ H.value = e.getUTCFullYear(), U.value = e.getUTCMonth(), W.value = e;
72
+ }), P?.({
69
73
  month: e.getUTCMonth(),
70
74
  year: e.getUTCFullYear()
71
75
  });
72
76
  }, Q = (e) => {
73
- X(e) || y?.(e);
77
+ X(e) || b?.(e);
74
78
  }, $ = (e) => {
75
- let n = h(new Date(Date.UTC(V.value, H.value, 1)), e), r = n.getUTCMonth(), i = n.getUTCFullYear();
79
+ let n = g(new Date(Date.UTC(H.value, U.value, 1)), e), r = n.getUTCMonth(), i = n.getUTCFullYear();
76
80
  Z || t(() => {
77
- H.value = r, V.value = i;
78
- }), N?.({
81
+ U.value = r, H.value = i;
82
+ }), P?.({
79
83
  month: r,
80
84
  year: i
81
85
  });
82
86
  };
83
- return /* @__PURE__ */ l("div", {
84
- className: n(e.calendar, E),
85
- "data-size": w,
86
- onMouseLeave: () => A?.(null),
87
- children: [/* @__PURE__ */ l("div", {
87
+ return /* @__PURE__ */ u("div", {
88
+ className: n(e.calendar, D),
89
+ "data-size": T,
90
+ onMouseLeave: () => j?.(null),
91
+ children: [/* @__PURE__ */ u("div", {
88
92
  className: e.header,
89
93
  children: [
90
- P ? /* @__PURE__ */ c("span", { className: e.navSpacer }) : /* @__PURE__ */ c("button", {
94
+ F ? /* @__PURE__ */ l("span", { className: e.navSpacer }) : /* @__PURE__ */ l("button", {
91
95
  type: "button",
92
96
  className: e.navButton,
93
- "aria-label": I,
97
+ "aria-label": L,
94
98
  onClick: () => $(-1),
95
99
  children: "‹"
96
100
  }),
97
- /* @__PURE__ */ c("span", {
101
+ /* @__PURE__ */ l("span", {
98
102
  className: e.monthLabel,
99
103
  "aria-live": "polite",
100
104
  children: Y
101
105
  }),
102
- P ? /* @__PURE__ */ c("span", { className: e.navSpacer }) : /* @__PURE__ */ c("button", {
106
+ F ? /* @__PURE__ */ l("span", { className: e.navSpacer }) : /* @__PURE__ */ l("button", {
103
107
  type: "button",
104
108
  className: e.navButton,
105
- "aria-label": L,
109
+ "aria-label": R,
106
110
  onClick: () => $(1),
107
111
  children: "›"
108
112
  })
109
113
  ]
110
- }), /* @__PURE__ */ l("table", {
114
+ }), /* @__PURE__ */ u("table", {
111
115
  role: "grid",
112
116
  "aria-label": Y,
113
117
  className: e.grid,
114
118
  onKeyDown: (e) => {
115
- let t = U.value, n;
119
+ let t = W.value, n;
116
120
  switch (e.key) {
117
121
  case "ArrowRight":
118
- n = m(t, 1);
122
+ n = h(t, 1);
119
123
  break;
120
124
  case "ArrowLeft":
121
- n = m(t, -1);
125
+ n = h(t, -1);
122
126
  break;
123
127
  case "ArrowDown":
124
- n = m(t, 7);
128
+ n = h(t, 7);
125
129
  break;
126
130
  case "ArrowUp":
127
- n = m(t, -7);
131
+ n = h(t, -7);
128
132
  break;
129
133
  case "Home":
130
- n = g(t, W);
134
+ n = _(t, G);
131
135
  break;
132
136
  case "End":
133
- n = m(g(t, W), 6);
137
+ n = h(_(t, G), 6);
134
138
  break;
135
139
  case "PageUp":
136
- n = h(t, e.shiftKey ? -12 : -1);
140
+ n = g(t, e.shiftKey ? -12 : -1);
137
141
  break;
138
142
  case "PageDown":
139
- n = h(t, e.shiftKey ? 12 : 1);
143
+ n = g(t, e.shiftKey ? 12 : 1);
140
144
  break;
141
145
  case "Enter":
142
146
  case " ":
@@ -144,45 +148,45 @@ function v({ value: f, defaultValue: v, onValueChange: y, min: b, max: x, disabl
144
148
  return;
145
149
  default: return;
146
150
  }
147
- e.preventDefault(), ee(n), A?.(n);
151
+ e.preventDefault(), te(n), j?.(n);
148
152
  },
149
- children: [/* @__PURE__ */ c("thead", { children: /* @__PURE__ */ c("tr", {
153
+ children: [/* @__PURE__ */ l("thead", { children: /* @__PURE__ */ l("tr", {
150
154
  role: "row",
151
- children: q.map((t) => /* @__PURE__ */ c("th", {
155
+ children: J.map((t) => /* @__PURE__ */ l("th", {
152
156
  className: e.weekday,
153
157
  abbr: t,
154
158
  scope: "col",
155
159
  children: t
156
160
  }, t))
157
- }) }), /* @__PURE__ */ c("tbody", { children: G.map((t, n) => /* @__PURE__ */ c("tr", {
161
+ }) }), /* @__PURE__ */ l("tbody", { children: K.map((t, n) => /* @__PURE__ */ l("tr", {
158
162
  role: "row",
159
163
  children: t.map((t, n) => {
160
- if (!t) return /* @__PURE__ */ c("td", {
164
+ if (!t) return /* @__PURE__ */ l("td", {
161
165
  role: "gridcell",
162
166
  className: e.empty
163
167
  }, n);
164
- let r = p(t, R), i = p(t, z), a = p(t, U.value), o = X(t), s = D ? D(t) : !1, l = O ? O(t) : !1, u = k ? k(t) : !1;
165
- return /* @__PURE__ */ c("td", {
168
+ let r = m(t, z), i = m(t, B), a = m(t, W.value), o = X(t), s = O ? O(t) : !1, c = k ? k(t) : !1, u = A ? A(t) : !1;
169
+ return /* @__PURE__ */ l("td", {
166
170
  role: "gridcell",
167
171
  className: e.cell,
168
172
  "aria-selected": r,
169
- children: /* @__PURE__ */ c("button", {
173
+ children: /* @__PURE__ */ l("button", {
170
174
  type: "button",
171
175
  className: e.day,
172
176
  tabIndex: a ? 0 : -1,
173
- "aria-label": J.format(t),
177
+ "aria-label": ee.format(t),
174
178
  "aria-current": i ? "date" : void 0,
175
179
  "aria-disabled": o || void 0,
176
180
  "data-selected": r || void 0,
177
181
  "data-today": i || void 0,
178
182
  "data-in-range": s || void 0,
179
- "data-range-start": l || void 0,
183
+ "data-range-start": c || void 0,
180
184
  "data-range-end": u || void 0,
181
185
  onClick: () => Q(t),
182
186
  onFocus: () => {
183
- U.value = t;
187
+ W.value = t;
184
188
  },
185
- onMouseEnter: () => A?.(t),
189
+ onMouseEnter: () => j?.(t),
186
190
  children: t.getUTCDate()
187
191
  })
188
192
  }, n);
@@ -192,4 +196,4 @@ function v({ value: f, defaultValue: v, onValueChange: y, min: b, max: x, disabl
192
196
  });
193
197
  }
194
198
  //#endregion
195
- export { v as Calendar };
199
+ export { y as Calendar };
@@ -1 +1 @@
1
- @layer cascivo.component{._card_ssezx_2{background-color:var(--cascivo-color-surface);border-radius:var(--cascivo-radius-surface);padding:var(--_card-p,0);overflow:hidden}._card_ssezx_2:has(>._header_ssezx_12,>._content_ssezx_12,>._footer_ssezx_12){padding:0}._card_ssezx_2[data-padding=none]{--_card-p:0}._card_ssezx_2[data-padding=sm]{--_card-p:var(--cascivo-space-4);--_card-inner-p:var(--cascivo-space-4)}._card_ssezx_2[data-padding=md]{--_card-p:var(--cascivo-space-6);--_card-inner-p:var(--cascivo-space-6)}._card_ssezx_2[data-padding=lg]{--_card-p:var(--cascivo-space-8);--_card-inner-p:var(--cascivo-space-8)}._card_ssezx_2[data-variant=default]{border:1px solid var(--cascivo-color-border)}._card_ssezx_2[data-variant=outlined]{border:1.5px solid var(--cascivo-color-border-strong)}._card_ssezx_2[data-variant=elevated]{box-shadow:var(--cascivo-shadow-md);border:none}._header_ssezx_12{padding:var(--_card-inner-p,var(--cascivo-space-6));gap:var(--cascivo-space-1);flex-direction:column;min-inline-size:0;padding-block-end:0;display:flex}._headerRow_ssezx_67{justify-content:space-between;align-items:flex-start;gap:var(--cascivo-space-3);flex-direction:row}._headerRow_ssezx_67 ._headerMain_ssezx_75{gap:var(--cascivo-space-1);flex-direction:column;min-inline-size:0;display:flex}._headerRow_ssezx_67 ._headerActions_ssezx_82{align-items:center;gap:var(--cascivo-space-1);flex-shrink:0;display:flex}._title_ssezx_90{font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-lg);font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-tight);margin:0}._content_ssezx_12{padding:var(--_card-inner-p,var(--cascivo-space-6));color:var(--cascivo-color-text-subtle);font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-relaxed)}._footer_ssezx_12{padding:var(--_card-inner-p,var(--cascivo-space-6));align-items:center;gap:var(--cascivo-space-2);min-inline-size:0;padding-block-start:0;display:flex}._footer_ssezx_12>*{min-inline-size:0}}
1
+ @layer cascivo.component{._card_ipz9f_2{background-color:var(--cascivo-color-surface);border-radius:var(--cascivo-radius-surface);padding:var(--_card-p,0);position:relative;overflow:hidden}._card_ipz9f_2:has(>._header_ipz9f_19,>._content_ipz9f_19,>._footer_ipz9f_19){padding:0}._card_ipz9f_2[data-padding=none]{--_card-p:0}._card_ipz9f_2[data-padding=sm]{--_card-p:var(--cascivo-space-4);--_card-inner-p:var(--cascivo-space-4)}._card_ipz9f_2[data-padding=md]{--_card-p:var(--cascivo-space-6);--_card-inner-p:var(--cascivo-space-6)}._card_ipz9f_2[data-padding=lg]{--_card-p:var(--cascivo-space-8);--_card-inner-p:var(--cascivo-space-8)}._card_ipz9f_2[data-variant=default]{border:1px solid var(--cascivo-color-border)}._card_ipz9f_2[data-variant=outlined]{border:1.5px solid var(--cascivo-color-border-strong)}._card_ipz9f_2[data-variant=elevated]{box-shadow:var(--cascivo-shadow-md);border:none}._header_ipz9f_19{padding:var(--_card-inner-p,var(--cascivo-space-6));gap:var(--cascivo-space-1);flex-direction:column;min-inline-size:0;padding-block-end:0;display:flex}._headerRow_ipz9f_74{justify-content:space-between;align-items:flex-start;gap:var(--cascivo-space-3);flex-direction:row}._headerRow_ipz9f_74 ._headerMain_ipz9f_82{gap:var(--cascivo-space-1);flex-direction:column;min-inline-size:0;display:flex}._headerRow_ipz9f_74 ._headerActions_ipz9f_89{align-items:center;gap:var(--cascivo-space-1);flex-shrink:0;display:flex}._title_ipz9f_97{font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-lg);font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-tight);margin:0}._content_ipz9f_19{padding:var(--_card-inner-p,var(--cascivo-space-6));color:var(--cascivo-color-text-subtle);font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-relaxed)}._footer_ipz9f_19{padding:var(--_card-inner-p,var(--cascivo-space-6));align-items:center;gap:var(--cascivo-space-2);min-inline-size:0;padding-block-start:0;display:flex}._footer_ipz9f_19>*{min-inline-size:0}}
@@ -1,13 +1,13 @@
1
1
  import './card.css';
2
2
  var e = {
3
- card: "_card_ssezx_2",
4
- header: "_header_ssezx_12",
5
- content: "_content_ssezx_12",
6
- footer: "_footer_ssezx_12",
7
- headerRow: "_headerRow_ssezx_67",
8
- headerMain: "_headerMain_ssezx_75",
9
- headerActions: "_headerActions_ssezx_82",
10
- title: "_title_ssezx_90"
3
+ card: "_card_ipz9f_2",
4
+ header: "_header_ipz9f_19",
5
+ content: "_content_ipz9f_19",
6
+ footer: "_footer_ipz9f_19",
7
+ headerRow: "_headerRow_ipz9f_74",
8
+ headerMain: "_headerMain_ipz9f_82",
9
+ headerActions: "_headerActions_ipz9f_89",
10
+ title: "_title_ipz9f_97"
11
11
  };
12
12
  //#endregion
13
13
  export { e as default };
@@ -1 +1 @@
1
- @layer cascivo.component{._wrapper_tw120_2{align-items:center;gap:var(--cascivo-space-2);font-family:var(--cascivo-font-sans);cursor:pointer;display:inline-flex}._wrapper_tw120_2[data-disabled]{opacity:.5;cursor:not-allowed}._input_tw120_15{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._control_tw120_28{--_check-color:transparent;background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border-strong);border-radius:var(--cascivo-radius-indicator);block-size:1.125rem;inline-size:1.125rem;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);flex-shrink:0;display:inline-flex}._control_tw120_28:after{content:"";background-color:var(--_check-color);block-size:100%;inline-size:100%;-webkit-mask:var(--_check-icon,none) no-repeat center / .75rem;mask:var(--_check-icon,none) no-repeat center / .75rem}._input_tw120_15:checked+._control_tw120_28,._input_tw120_15:indeterminate+._control_tw120_28{--_check-color:var(--cascivo-color-text-on-accent);background-color:var(--cascivo-color-accent);border-color:var(--cascivo-color-accent)}._input_tw120_15:checked+._control_tw120_28{--_check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E")}._input_tw120_15:indeterminate+._control_tw120_28{--_check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' d='M4 8h8'/%3E%3C/svg%3E")}._input_tw120_15:focus-visible+._control_tw120_28{box-shadow:var(--cascivo-focus-ring);outline:none}._label_tw120_72{font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-snug)}}@media (forced-colors:active){._control_tw120_28{background-color:field;border:1px solid buttontext}._input_tw120_15:checked+._control_tw120_28,._input_tw120_15:indeterminate+._control_tw120_28{background-color:highlight;border-color:highlight}._input_tw120_15:focus-visible+._control_tw120_28{outline-offset:2px;outline:2px solid highlight}}
1
+ @layer cascivo.component{._wrapper_4zlmw_2{align-items:center;gap:var(--cascivo-space-2);font-family:var(--cascivo-font-sans);cursor:pointer;display:inline-flex}._wrapper_4zlmw_2[data-disabled]{opacity:.5;cursor:not-allowed}._input_4zlmw_15{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._control_4zlmw_28{--_check-color:transparent;pointer-events:none;background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border-strong);border-radius:var(--cascivo-radius-indicator);block-size:1.125rem;inline-size:1.125rem;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);flex-shrink:0;display:inline-flex}._control_4zlmw_28:after{content:"";background-color:var(--_check-color);block-size:100%;inline-size:100%;-webkit-mask:var(--_check-icon,none) no-repeat center / .75rem;mask:var(--_check-icon,none) no-repeat center / .75rem}._input_4zlmw_15:checked+._control_4zlmw_28,._input_4zlmw_15:indeterminate+._control_4zlmw_28{--_check-color:var(--cascivo-color-text-on-accent);background-color:var(--cascivo-color-accent);border-color:var(--cascivo-color-accent)}._input_4zlmw_15:checked+._control_4zlmw_28{--_check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E")}._input_4zlmw_15:indeterminate+._control_4zlmw_28{--_check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' d='M4 8h8'/%3E%3C/svg%3E")}._input_4zlmw_15:focus-visible+._control_4zlmw_28{box-shadow:var(--cascivo-focus-ring);outline:none}._label_4zlmw_78{font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-snug)}}@media (forced-colors:active){._control_4zlmw_28{background-color:field;border:1px solid buttontext}._input_4zlmw_15:checked+._control_4zlmw_28,._input_4zlmw_15:indeterminate+._control_4zlmw_28{background-color:highlight;border-color:highlight}._input_4zlmw_15:focus-visible+._control_4zlmw_28{outline-offset:2px;outline:2px solid highlight}}
@@ -1,9 +1,9 @@
1
1
  import './checkbox.css';
2
2
  var e = {
3
- wrapper: "_wrapper_tw120_2",
4
- input: "_input_tw120_15",
5
- control: "_control_tw120_28",
6
- label: "_label_tw120_72"
3
+ wrapper: "_wrapper_4zlmw_2",
4
+ input: "_input_4zlmw_15",
5
+ control: "_control_4zlmw_28",
6
+ label: "_label_4zlmw_78"
7
7
  };
8
8
  //#endregion
9
9
  export { e as default };