@brijbyte/agentic-ui 0.0.2 → 0.0.3

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 (60) hide show
  1. package/dist/accordion/accordion.d.ts +1 -1
  2. package/dist/accordion/accordion.js +1 -1
  3. package/dist/accordion/parts.d.ts +1 -1
  4. package/dist/accordion/parts.js +2 -2
  5. package/dist/alert-dialog/alert-dialog.d.ts +1 -1
  6. package/dist/alert-dialog/alert-dialog.js +1 -1
  7. package/dist/alert-dialog/parts.d.ts +1 -1
  8. package/dist/alert-dialog/parts.js +2 -2
  9. package/dist/badge/badge.d.ts +1 -1
  10. package/dist/button/button.css +22 -8
  11. package/dist/button/button.d.ts +7 -7
  12. package/dist/button/button.js +1 -1
  13. package/dist/button/button.js.map +1 -1
  14. package/dist/button/button.module.js.map +1 -1
  15. package/dist/card/card.d.ts +1 -1
  16. package/dist/checkbox/checkbox.d.ts +1 -1
  17. package/dist/checkbox/checkbox.js +1 -1
  18. package/dist/checkbox/parts.js +1 -1
  19. package/dist/collapsible/collapsible.d.ts +1 -1
  20. package/dist/collapsible/parts.js +1 -1
  21. package/dist/context-menu/context-menu.d.ts +1 -1
  22. package/dist/context-menu/parts.js +1 -1
  23. package/dist/dialog/dialog.d.ts +1 -1
  24. package/dist/dialog/parts.js +1 -1
  25. package/dist/drawer/drawer.d.ts +1 -1
  26. package/dist/drawer/parts.d.ts +1 -1
  27. package/dist/drawer/parts.js +1 -1
  28. package/dist/index.css +1290 -1263
  29. package/dist/index.d.ts +18 -18
  30. package/dist/index.js +37 -37
  31. package/dist/input/input.js +1 -1
  32. package/dist/menu/menu.d.ts +1 -1
  33. package/dist/menu/menuitemshortcut.js +1 -1
  34. package/dist/menu/parts.js +1 -1
  35. package/dist/number-field/number-field.d.ts +1 -1
  36. package/dist/number-field/number-field.js +1 -1
  37. package/dist/number-field/parts.js +1 -1
  38. package/dist/progress/parts.js +1 -1
  39. package/dist/select/parts.js +1 -1
  40. package/dist/select/select.d.ts +1 -1
  41. package/dist/select/select.js +1 -1
  42. package/dist/separator/separator.js +1 -1
  43. package/dist/slider/parts.js +1 -1
  44. package/dist/slider/slider.d.ts +1 -1
  45. package/dist/styles/tokens.css +21 -8
  46. package/dist/switch/parts.js +1 -1
  47. package/dist/switch/switch.d.ts +1 -1
  48. package/dist/switch/switch.js +1 -1
  49. package/dist/tabs/parts.js +1 -1
  50. package/dist/tabs/tabs.d.ts +1 -1
  51. package/dist/toast/parts.js +1 -1
  52. package/dist/toast/toast.d.ts +1 -1
  53. package/dist/tokens.css +23 -11
  54. package/dist/tooltip/parts.js +1 -1
  55. package/dist/tooltip/tooltip.d.ts +1 -1
  56. package/package.json +2 -1
  57. package/src/button/button.module.css +29 -13
  58. package/src/button/button.tsx +7 -7
  59. package/src/index.ts +21 -233
  60. package/src/styles/tokens.css +23 -11
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
  import styles from "./accordion.module.css";
4
4
 
5
5
  //#region src/accordion/accordion.d.ts
@@ -1,6 +1,6 @@
1
1
  import accordion_module_default from "./accordion.module.js";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import { Accordion } from "@base-ui/react/accordion";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/accordion/accordion.tsx
5
5
  function ChevronIcon() {
6
6
  return /* @__PURE__ */ jsx("svg", {
@@ -1,6 +1,6 @@
1
+ import { Accordion } from "@base-ui/react/accordion";
1
2
  import * as react from "react";
2
3
  import { ComponentPropsWithoutRef } from "react";
3
- import { Accordion } from "@base-ui/react/accordion";
4
4
 
5
5
  //#region src/accordion/parts.d.ts
6
6
  type BaseItemProps = ComponentPropsWithoutRef<typeof Accordion.Item>;
@@ -1,7 +1,7 @@
1
1
  import accordion_module_default from "./accordion.module.js";
2
- import { forwardRef } from "react";
3
- import { jsx } from "react/jsx-runtime";
4
2
  import { Accordion } from "@base-ui/react/accordion";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { forwardRef } from "react";
5
5
  //#region src/accordion/parts.tsx
6
6
  /**
7
7
  * Styled primitives for Accordion.
@@ -1,5 +1,5 @@
1
- import { ReactElement, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  import styles from "./alert-dialog.module.css";
4
4
 
5
5
  //#region src/alert-dialog/alert-dialog.d.ts
@@ -1,7 +1,7 @@
1
1
  import { Button } from "../button/button.js";
2
2
  import alert_dialog_module_default from "./alert-dialog.module.js";
3
- import { AlertDialog } from "@base-ui/react/alert-dialog";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { AlertDialog } from "@base-ui/react/alert-dialog";
5
5
  //#region src/alert-dialog/alert-dialog.tsx
6
6
  function AlertDialog$1({ trigger, icon, title, description, actions, className, onOpenChange, ...props }) {
7
7
  return /* @__PURE__ */ jsxs(AlertDialog.Root, {
@@ -1,6 +1,6 @@
1
- import { AlertDialog } from "@base-ui/react/alert-dialog";
2
1
  import * as react from "react";
3
2
  import { ComponentPropsWithoutRef } from "react";
3
+ import { AlertDialog } from "@base-ui/react/alert-dialog";
4
4
 
5
5
  //#region src/alert-dialog/parts.d.ts
6
6
  type BaseBackdropProps = ComponentPropsWithoutRef<typeof AlertDialog.Backdrop>;
@@ -1,7 +1,7 @@
1
1
  import alert_dialog_module_default from "./alert-dialog.module.js";
2
- import { AlertDialog } from "@base-ui/react/alert-dialog";
3
- import { forwardRef } from "react";
4
2
  import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import { AlertDialog } from "@base-ui/react/alert-dialog";
5
5
  //#region src/alert-dialog/parts.tsx
6
6
  /**
7
7
  * Styled primitives for AlertDialog.
@@ -1,5 +1,5 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ComponentPropsWithoutRef } from "react";
3
3
  import styles from "./badge.module.css";
4
4
 
5
5
  //#region src/badge/badge.d.ts
@@ -86,9 +86,10 @@
86
86
  }
87
87
 
88
88
  .tone-primary_4j5AgW {
89
- --btn-color: var(--color-accent);
89
+ --btn-color: var(--color-accent-solid);
90
90
  --btn-color-hover: var(--color-accent-hover);
91
91
  --btn-color-pressed: var(--color-accent-pressed);
92
+ --btn-text-color: var(--color-accent-text);
92
93
  --btn-tint: var(--color-accent-tint);
93
94
  --btn-tint-hover: var(--color-accent-tint-hover);
94
95
  --btn-on-color: var(--color-on-accent);
@@ -98,6 +99,7 @@
98
99
  --btn-color: var(--color-secondary);
99
100
  --btn-color-hover: var(--color-primary);
100
101
  --btn-color-pressed: var(--color-primary);
102
+ --btn-text-color: var(--color-secondary);
101
103
  --btn-tint: var(--color-hover);
102
104
  --btn-tint-hover: var(--color-active);
103
105
  --btn-on-color: var(--color-canvas);
@@ -107,27 +109,30 @@
107
109
  --btn-color: var(--color-error-solid);
108
110
  --btn-color-hover: var(--color-error-solid);
109
111
  --btn-color-pressed: var(--color-error-solid);
112
+ --btn-text-color: var(--color-error-text);
110
113
  --btn-tint: var(--color-error-bg);
111
114
  --btn-tint-hover: var(--color-error-bg);
112
- --btn-on-color: #fff;
115
+ --btn-on-color: var(--color-error-on-solid);
113
116
  }
114
117
 
115
118
  .tone-success_4j5AgW {
116
119
  --btn-color: var(--color-success-solid);
117
120
  --btn-color-hover: var(--color-success-solid);
118
121
  --btn-color-pressed: var(--color-success-solid);
122
+ --btn-text-color: var(--color-success-text);
119
123
  --btn-tint: var(--color-success-bg);
120
124
  --btn-tint-hover: var(--color-success-bg);
121
- --btn-on-color: #fff;
125
+ --btn-on-color: var(--color-success-on-solid);
122
126
  }
123
127
 
124
128
  .tone-warning_4j5AgW {
125
129
  --btn-color: var(--color-warning-solid);
126
130
  --btn-color-hover: var(--color-warning-solid);
127
131
  --btn-color-pressed: var(--color-warning-solid);
132
+ --btn-text-color: var(--color-warning-text);
128
133
  --btn-tint: var(--color-warning-bg);
129
134
  --btn-tint-hover: var(--color-warning-bg);
130
- --btn-on-color: #fff;
135
+ --btn-on-color: var(--color-warning-on-solid);
131
136
  }
132
137
 
133
138
  .variant-solid_4j5AgW {
@@ -162,7 +167,7 @@
162
167
 
163
168
  .variant-soft_4j5AgW {
164
169
  background-color: var(--btn-tint);
165
- color: var(--btn-color);
170
+ color: var(--btn-text-color);
166
171
  border-color: #0000;
167
172
  }
168
173
 
@@ -181,10 +186,15 @@
181
186
  background-color: #0000;
182
187
  }
183
188
 
189
+ .variant-outline_4j5AgW:not(.tone-secondary_4j5AgW) {
190
+ border-color: var(--btn-text-color);
191
+ color: var(--btn-text-color);
192
+ }
193
+
184
194
  .variant-outline_4j5AgW:hover:not([data-disabled]) {
185
195
  background-color: var(--color-hover);
186
- border-color: var(--btn-color);
187
- color: var(--btn-color);
196
+ border-color: var(--btn-text-color);
197
+ color: var(--btn-text-color);
188
198
  }
189
199
 
190
200
  .variant-outline_4j5AgW:active:not([data-disabled]), .variant-outline_4j5AgW[data-pressed]:not([data-disabled]) {
@@ -197,9 +207,13 @@
197
207
  border-color: #0000;
198
208
  }
199
209
 
210
+ .variant-ghost_4j5AgW:not(.tone-secondary_4j5AgW) {
211
+ color: var(--btn-text-color);
212
+ }
213
+
200
214
  .variant-ghost_4j5AgW:hover:not([data-disabled]) {
201
215
  background-color: var(--color-hover);
202
- color: var(--btn-color);
216
+ color: var(--btn-text-color);
203
217
  }
204
218
 
205
219
  .variant-ghost_4j5AgW:active:not([data-disabled]), .variant-ghost_4j5AgW[data-pressed]:not([data-disabled]) {
@@ -9,18 +9,18 @@ type ButtonSize = "xs" | "sm" | "md" | "lg";
9
9
  interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
10
10
  variant?: ButtonVariant;
11
11
  /** Semantic color. Defaults to "primary". */
12
- tone?: ButtonTone;
13
- size?: ButtonSize;
14
- loading?: boolean;
12
+ tone?: ButtonTone | undefined;
13
+ size?: ButtonSize | undefined;
14
+ loading?: boolean | undefined;
15
15
  /**
16
16
  * Text shown in place of children while loading.
17
17
  * When provided the button width adapts to this text (variable width).
18
18
  * When omitted, children stay rendered invisibly — width stays stable.
19
19
  */
20
- loadingText?: string;
21
- iconOnly?: boolean;
22
- render?: ReactElement;
23
- nativeButton?: boolean;
20
+ loadingText?: string | undefined;
21
+ iconOnly?: boolean | undefined;
22
+ render?: ReactElement | undefined;
23
+ nativeButton?: boolean | undefined;
24
24
  }
25
25
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
26
26
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import button_module_default from "./button.module.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { forwardRef } from "react";
3
4
  import { Button } from "@base-ui/react/button";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/button/button.tsx
6
6
  const Button$1 = forwardRef(function Button$2({ variant = "solid", tone = "primary", size = "md", loading = false, loadingText, iconOnly = false, nativeButton = true, disabled, className, children, render, ...props }, ref) {
7
7
  return /* @__PURE__ */ jsxs(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["Button","BaseButton","styles"],"sources":["../../src/button/button.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactElement } from \"react\";\nimport { Button as BaseButton } from \"@base-ui/react/button\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant = \"solid\" | \"soft\" | \"outline\" | \"ghost\";\nexport type ButtonTone = \"primary\" | \"secondary\" | \"destructive\" | \"success\" | \"warning\";\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n variant?: ButtonVariant;\n /** Semantic color. Defaults to \"primary\". */\n tone?: ButtonTone;\n size?: ButtonSize;\n loading?: boolean;\n /**\n * Text shown in place of children while loading.\n * When provided the button width adapts to this text (variable width).\n * When omitted, children stay rendered invisibly — width stays stable.\n */\n loadingText?: string;\n iconOnly?: boolean;\n render?: ReactElement;\n nativeButton?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n tone = \"primary\",\n size = \"md\",\n loading = false,\n loadingText,\n iconOnly = false,\n nativeButton = true,\n disabled,\n className,\n children,\n render,\n ...props\n },\n ref,\n) {\n const classes = [\n styles.root,\n styles[`variant-${variant}`],\n styles[`tone-${tone}`],\n styles[`size-${size}`],\n iconOnly ? styles[\"icon-only\"] : \"\",\n className ?? \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <BaseButton ref={ref} className={classes} disabled={disabled ?? loading} render={render} nativeButton={nativeButton} {...props}>\n <span className={`${styles.loader} ${loading && !loadingText ? styles[\"loader-visible\"] : \"\"}`} aria-hidden=\"true\">\n <span className={styles.spinner} />\n </span>\n <span className={loading && !loadingText ? styles[\"content-loading\"] : undefined}>\n {loading && loadingText ? loadingText : children}\n </span>\n </BaseButton>\n );\n});\n\nexport { styles as ButtonStyles };\n"],"mappings":";;;;;AA0BA,MAAaA,WAAS,WAA2C,SAASA,SACxE,EACE,UAAU,SACV,OAAO,WACP,OAAO,MACP,UAAU,OACV,aACA,WAAW,OACX,eAAe,MACf,UACA,WACA,UACA,QACA,GAAG,SAEL,KACA;AAYA,QACE,qBAACC,QAAD;EAAiB;EAAK,WAZR;GACdC,sBAAO;GACPA,sBAAO,WAAW;GAClBA,sBAAO,QAAQ;GACfA,sBAAO,QAAQ;GACf,WAAWA,sBAAO,eAAe;GACjC,aAAa;GACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EAGgC,UAAU,YAAY;EAAiB;EAAsB;EAAc,GAAI;YAAzH,CACE,oBAAC,QAAD;GAAM,WAAW,GAAGA,sBAAO,OAAO,GAAG,WAAW,CAAC,cAAcA,sBAAO,oBAAoB;GAAM,eAAY;aAC1G,oBAAC,QAAD,EAAM,WAAWA,sBAAO,SAAW,CAAA;GAC9B,CAAA,EACP,oBAAC,QAAD;GAAM,WAAW,WAAW,CAAC,cAAcA,sBAAO,qBAAqB,KAAA;aACpE,WAAW,cAAc,cAAc;GACnC,CAAA,CACI;;EAEf"}
1
+ {"version":3,"file":"button.js","names":["Button","BaseButton","styles"],"sources":["../../src/button/button.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactElement } from \"react\";\nimport { Button as BaseButton } from \"@base-ui/react/button\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant = \"solid\" | \"soft\" | \"outline\" | \"ghost\";\nexport type ButtonTone = \"primary\" | \"secondary\" | \"destructive\" | \"success\" | \"warning\";\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n variant?: ButtonVariant;\n /** Semantic color. Defaults to \"primary\". */\n tone?: ButtonTone | undefined;\n size?: ButtonSize | undefined;\n loading?: boolean | undefined;\n /**\n * Text shown in place of children while loading.\n * When provided the button width adapts to this text (variable width).\n * When omitted, children stay rendered invisibly — width stays stable.\n */\n loadingText?: string | undefined;\n iconOnly?: boolean | undefined;\n render?: ReactElement | undefined;\n nativeButton?: boolean | undefined;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n tone = \"primary\",\n size = \"md\",\n loading = false,\n loadingText,\n iconOnly = false,\n nativeButton = true,\n disabled,\n className,\n children,\n render,\n ...props\n },\n ref,\n) {\n const classes = [\n styles.root,\n styles[`variant-${variant}`],\n styles[`tone-${tone}`],\n styles[`size-${size}`],\n iconOnly ? styles[\"icon-only\"] : \"\",\n className ?? \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <BaseButton ref={ref} className={classes} disabled={disabled ?? loading} render={render} nativeButton={nativeButton} {...props}>\n <span className={`${styles.loader} ${loading && !loadingText ? styles[\"loader-visible\"] : \"\"}`} aria-hidden=\"true\">\n <span className={styles.spinner} />\n </span>\n <span className={loading && !loadingText ? styles[\"content-loading\"] : undefined}>\n {loading && loadingText ? loadingText : children}\n </span>\n </BaseButton>\n );\n});\n\nexport { styles as ButtonStyles };\n"],"mappings":";;;;;AA0BA,MAAaA,WAAS,WAA2C,SAASA,SACxE,EACE,UAAU,SACV,OAAO,WACP,OAAO,MACP,UAAU,OACV,aACA,WAAW,OACX,eAAe,MACf,UACA,WACA,UACA,QACA,GAAG,SAEL,KACA;AAYA,QACE,qBAACC,QAAD;EAAiB;EAAK,WAZR;GACdC,sBAAO;GACPA,sBAAO,WAAW;GAClBA,sBAAO,QAAQ;GACfA,sBAAO,QAAQ;GACf,WAAWA,sBAAO,eAAe;GACjC,aAAa;GACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EAGgC,UAAU,YAAY;EAAiB;EAAsB;EAAc,GAAI;YAAzH,CACE,oBAAC,QAAD;GAAM,WAAW,GAAGA,sBAAO,OAAO,GAAG,WAAW,CAAC,cAAcA,sBAAO,oBAAoB;GAAM,eAAY;aAC1G,oBAAC,QAAD,EAAM,WAAWA,sBAAO,SAAW,CAAA;GAC9B,CAAA,EACP,oBAAC,QAAD;GAAM,WAAW,WAAW,CAAC,cAAcA,sBAAO,qBAAqB,KAAA;aACpE,WAAW,cAAc,cAAc;GACnC,CAAA,CACI;;EAEf"}
@@ -1 +1 @@
1
- {"version":3,"file":"button.module.js","names":[],"sources":["../../src/button/button.module.css"],"sourcesContent":["@layer components {\n .root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--space-1-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-normal);\n line-height: 1;\n border-radius: var(--radius-md);\n border: var(--border-width-base) solid transparent;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n white-space: nowrap;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard),\n opacity var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n outline: none;\n position: relative;\n }\n .root:active:not([data-disabled]) {\n transform: scale(0.97);\n }\n .root:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n .root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.44;\n pointer-events: none;\n }\n /* ─── Sizes ──────────────────────────────────────────────────────── */\n .size-xs {\n height: 22px;\n padding-inline: var(--space-2);\n font-size: var(--font-size-xs);\n border-radius: var(--radius-sm);\n }\n .size-sm {\n height: 26px;\n padding-inline: var(--space-2-5);\n font-size: var(--font-size-sm);\n }\n .size-md {\n height: 30px;\n padding-inline: var(--space-3);\n font-size: var(--font-size-md);\n }\n .size-lg {\n height: 36px;\n padding-inline: var(--space-4);\n font-size: var(--font-size-lg);\n border-radius: var(--radius-lg);\n }\n /* Icon-only */\n .icon-only.size-xs {\n width: 22px;\n padding-inline: 0;\n }\n .icon-only.size-sm {\n width: 26px;\n padding-inline: 0;\n }\n .icon-only.size-md {\n width: 30px;\n padding-inline: 0;\n }\n .icon-only.size-lg {\n width: 36px;\n padding-inline: 0;\n }\n /* ─── Tones — set scoped color tokens ────────────────────────────── */\n /*\n * Each tone exposes four custom properties consumed by the variants below:\n * --btn-color solid bg / soft text / outline+ghost hover text\n * --btn-color-hover solid bg hover\n * --btn-color-pressed solid bg pressed\n * --btn-tint soft bg\n * --btn-tint-hover soft bg hover\n * --btn-on-color text on solid bg\n */\n .tone-primary {\n --btn-color: var(--color-accent);\n --btn-color-hover: var(--color-accent-hover);\n --btn-color-pressed: var(--color-accent-pressed);\n --btn-tint: var(--color-accent-tint);\n --btn-tint-hover: var(--color-accent-tint-hover);\n --btn-on-color: var(--color-on-accent);\n }\n .tone-secondary {\n --btn-color: var(--color-secondary);\n --btn-color-hover: var(--color-primary);\n --btn-color-pressed: var(--color-primary);\n --btn-tint: var(--color-hover);\n --btn-tint-hover: var(--color-active);\n --btn-on-color: var(--color-canvas);\n }\n .tone-destructive {\n --btn-color: var(--color-error-solid);\n --btn-color-hover: var(--color-error-solid);\n --btn-color-pressed: var(--color-error-solid);\n --btn-tint: var(--color-error-bg);\n --btn-tint-hover: var(--color-error-bg);\n --btn-on-color: #ffffff;\n }\n .tone-success {\n --btn-color: var(--color-success-solid);\n --btn-color-hover: var(--color-success-solid);\n --btn-color-pressed: var(--color-success-solid);\n --btn-tint: var(--color-success-bg);\n --btn-tint-hover: var(--color-success-bg);\n --btn-on-color: #ffffff;\n }\n .tone-warning {\n --btn-color: var(--color-warning-solid);\n --btn-color-hover: var(--color-warning-solid);\n --btn-color-pressed: var(--color-warning-solid);\n --btn-tint: var(--color-warning-bg);\n --btn-tint-hover: var(--color-warning-bg);\n --btn-on-color: #ffffff;\n }\n /* ─── Variants — consume tone tokens ────────────────────────────── */\n .variant-solid {\n background-color: var(--btn-color);\n border-color: var(--btn-color);\n color: var(--btn-on-color);\n }\n .variant-solid:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: brightness(0.92);\n }\n .variant-solid:active:not([data-disabled]),\n .variant-solid[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: brightness(0.84);\n }\n /* primary solid gets its own hover tokens instead of filter */\n .variant-solid.tone-primary:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: none;\n }\n .variant-solid.tone-primary:active:not([data-disabled]),\n .variant-solid.tone-primary[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: none;\n }\n .variant-soft {\n background-color: var(--btn-tint);\n border-color: transparent;\n color: var(--btn-color);\n }\n .variant-soft:hover:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n }\n .variant-soft:active:not([data-disabled]),\n .variant-soft[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n filter: brightness(0.95);\n }\n .variant-outline {\n background-color: transparent;\n border-color: var(--color-line-strong);\n color: var(--color-primary);\n }\n .variant-outline:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n border-color: var(--btn-color);\n color: var(--btn-color);\n }\n .variant-outline:active:not([data-disabled]),\n .variant-outline[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n .variant-ghost {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-secondary);\n }\n .variant-ghost:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n color: var(--btn-color);\n }\n .variant-ghost:active:not([data-disabled]),\n .variant-ghost[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n /* ─── Loader ─────────────────────────────────────────────────────── */\n /* Always in the DOM, always position:absolute so it never affects layout */\n .loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n pointer-events: none;\n }\n .loader-visible {\n opacity: 1;\n }\n .content-loading {\n visibility: hidden;\n }\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner {\n width: 12px;\n height: 12px;\n border: 1.5px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n opacity: 0.7;\n }\n}\n"],"mappings":";AAwCA,IAAA,wBAAY;CAAI,mBAAA;CAAA,aAAA;CAAA,UAAA;CAAA,kBAAA;CAAA,QAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,QAAA;CAAA,WAAA;CAAA,oBAAA;CAAA,gBAAA;CAAA,kBAAA;CAAA,gBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA,mBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA"}
1
+ {"version":3,"file":"button.module.js","names":[],"sources":["../../src/button/button.module.css"],"sourcesContent":["@layer components {\n .root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--space-1-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-normal);\n line-height: 1;\n border-radius: var(--radius-md);\n border: var(--border-width-base) solid transparent;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n white-space: nowrap;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard),\n opacity var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n outline: none;\n position: relative;\n }\n .root:active:not([data-disabled]) {\n transform: scale(0.97);\n }\n .root:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n .root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.44;\n pointer-events: none;\n }\n /* ─── Sizes ──────────────────────────────────────────────────────── */\n .size-xs {\n height: 22px;\n padding-inline: var(--space-2);\n font-size: var(--font-size-xs);\n border-radius: var(--radius-sm);\n }\n .size-sm {\n height: 26px;\n padding-inline: var(--space-2-5);\n font-size: var(--font-size-sm);\n }\n .size-md {\n height: 30px;\n padding-inline: var(--space-3);\n font-size: var(--font-size-md);\n }\n .size-lg {\n height: 36px;\n padding-inline: var(--space-4);\n font-size: var(--font-size-lg);\n border-radius: var(--radius-lg);\n }\n /* Icon-only */\n .icon-only.size-xs {\n width: 22px;\n padding-inline: 0;\n }\n .icon-only.size-sm {\n width: 26px;\n padding-inline: 0;\n }\n .icon-only.size-md {\n width: 30px;\n padding-inline: 0;\n }\n .icon-only.size-lg {\n width: 36px;\n padding-inline: 0;\n }\n /* ─── Tones — set scoped color tokens ────────────────────────────── */\n /*\n * Each tone exposes scoped custom properties consumed by the variants below:\n * --btn-color solid bg color\n * --btn-color-hover solid bg on hover\n * --btn-color-pressed solid bg on press\n * --btn-text-color text color for soft / outline / ghost variants\n * (may differ from --btn-color for contrast on tinted surfaces)\n * --btn-tint soft bg\n * --btn-tint-hover soft bg on hover\n * --btn-on-color text on solid bg\n */\n .tone-primary {\n --btn-color: var(--color-accent-solid);\n --btn-color-hover: var(--color-accent-hover);\n --btn-color-pressed: var(--color-accent-pressed);\n --btn-text-color: var(--color-accent-text);\n --btn-tint: var(--color-accent-tint);\n --btn-tint-hover: var(--color-accent-tint-hover);\n --btn-on-color: var(--color-on-accent);\n }\n .tone-secondary {\n --btn-color: var(--color-secondary);\n --btn-color-hover: var(--color-primary);\n --btn-color-pressed: var(--color-primary);\n --btn-text-color: var(--color-secondary);\n --btn-tint: var(--color-hover);\n --btn-tint-hover: var(--color-active);\n --btn-on-color: var(--color-canvas);\n }\n .tone-destructive {\n --btn-color: var(--color-error-solid);\n --btn-color-hover: var(--color-error-solid);\n --btn-color-pressed: var(--color-error-solid);\n --btn-text-color: var(--color-error-text);\n --btn-tint: var(--color-error-bg);\n --btn-tint-hover: var(--color-error-bg);\n --btn-on-color: var(--color-error-on-solid);\n }\n .tone-success {\n --btn-color: var(--color-success-solid);\n --btn-color-hover: var(--color-success-solid);\n --btn-color-pressed: var(--color-success-solid);\n --btn-text-color: var(--color-success-text);\n --btn-tint: var(--color-success-bg);\n --btn-tint-hover: var(--color-success-bg);\n --btn-on-color: var(--color-success-on-solid);\n }\n .tone-warning {\n --btn-color: var(--color-warning-solid);\n --btn-color-hover: var(--color-warning-solid);\n --btn-color-pressed: var(--color-warning-solid);\n --btn-text-color: var(--color-warning-text);\n --btn-tint: var(--color-warning-bg);\n --btn-tint-hover: var(--color-warning-bg);\n --btn-on-color: var(--color-warning-on-solid);\n }\n /* ─── Variants — consume tone tokens ────────────────────────────── */\n .variant-solid {\n background-color: var(--btn-color);\n border-color: var(--btn-color);\n color: var(--btn-on-color);\n }\n .variant-solid:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: brightness(0.92);\n }\n .variant-solid:active:not([data-disabled]),\n .variant-solid[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: brightness(0.84);\n }\n /* primary solid gets its own hover tokens instead of filter */\n .variant-solid.tone-primary:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: none;\n }\n .variant-solid.tone-primary:active:not([data-disabled]),\n .variant-solid.tone-primary[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: none;\n }\n .variant-soft {\n background-color: var(--btn-tint);\n border-color: transparent;\n color: var(--btn-text-color);\n }\n .variant-soft:hover:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n }\n .variant-soft:active:not([data-disabled]),\n .variant-soft[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n filter: brightness(0.95);\n }\n .variant-outline {\n background-color: transparent;\n border-color: var(--color-line-strong);\n color: var(--color-primary);\n }\n /* Non-secondary tones show their tone color at rest */\n .variant-outline:not(.tone-secondary) {\n border-color: var(--btn-text-color);\n color: var(--btn-text-color);\n }\n .variant-outline:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n border-color: var(--btn-text-color);\n color: var(--btn-text-color);\n }\n .variant-outline:active:not([data-disabled]),\n .variant-outline[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n .variant-ghost {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-secondary);\n }\n /* Non-secondary tones show their tone color at rest */\n .variant-ghost:not(.tone-secondary) {\n color: var(--btn-text-color);\n }\n .variant-ghost:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n color: var(--btn-text-color);\n }\n .variant-ghost:active:not([data-disabled]),\n .variant-ghost[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n /* ─── Loader ─────────────────────────────────────────────────────── */\n /* Always in the DOM, always position:absolute so it never affects layout */\n .loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n pointer-events: none;\n }\n .loader-visible {\n opacity: 1;\n }\n .content-loading {\n visibility: hidden;\n }\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner {\n width: 12px;\n height: 12px;\n border: 1.5px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n opacity: 0.7;\n }\n}\n"],"mappings":";AAwCA,IAAA,wBAAY;CAAI,mBAAA;CAAA,aAAA;CAAA,UAAA;CAAA,kBAAA;CAAA,QAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,QAAA;CAAA,WAAA;CAAA,oBAAA;CAAA,gBAAA;CAAA,kBAAA;CAAA,gBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA,mBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA"}
@@ -1,5 +1,5 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
3
3
  import styles from "./card.module.css";
4
4
 
5
5
  //#region src/card/card.d.ts
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
  import styles from "./checkbox.module.css";
4
4
 
5
5
  //#region src/checkbox/checkbox.d.ts
@@ -1,6 +1,6 @@
1
1
  import checkbox_module_default from "./checkbox.module.js";
2
- import { useId } from "react";
3
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useId } from "react";
4
4
  import { Checkbox } from "@base-ui/react/checkbox";
5
5
  //#region src/checkbox/checkbox.tsx
6
6
  function Checkbox$1({ children, id, className, onCheckedChange, ...props }) {
@@ -1,6 +1,6 @@
1
1
  import checkbox_module_default from "./checkbox.module.js";
2
- import { forwardRef } from "react";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
4
  import { Checkbox } from "@base-ui/react/checkbox";
5
5
  //#region src/checkbox/parts.tsx
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
  import styles from "./collapsible.module.css";
4
4
 
5
5
  //#region src/collapsible/collapsible.d.ts
@@ -1,6 +1,6 @@
1
1
  import collapsible_module_default from "./collapsible.module.js";
2
- import { forwardRef } from "react";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
4
  import { Collapsible } from "@base-ui/react/collapsible";
5
5
  //#region src/collapsible/parts.tsx
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { ReactElement, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  import styles from "./context-menu.module.css";
4
4
 
5
5
  //#region src/context-menu/context-menu.d.ts
@@ -1,6 +1,6 @@
1
1
  import context_menu_module_default from "./context-menu.module.js";
2
- import { forwardRef } from "react";
3
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
4
  import { ContextMenu } from "@base-ui/react/context-menu";
5
5
  //#region src/context-menu/parts.tsx
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { ReactElement, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  import styles from "./dialog.module.css";
4
4
 
5
5
  //#region src/dialog/dialog.d.ts
@@ -1,6 +1,6 @@
1
1
  import dialog_module_default from "./dialog.module.js";
2
- import { forwardRef } from "react";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
4
  import { Dialog } from "@base-ui/react/dialog";
5
5
  //#region src/dialog/parts.tsx
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { ReactElement, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  import styles from "./drawer.module.css";
4
4
 
5
5
  //#region src/drawer/drawer.d.ts
@@ -1,7 +1,7 @@
1
1
  import { DrawerSide } from "./drawer.js";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
3
  import * as react from "react";
3
4
  import { ComponentPropsWithoutRef } from "react";
4
- import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { Drawer } from "@base-ui/react/drawer";
6
6
 
7
7
  //#region src/drawer/parts.d.ts
@@ -1,6 +1,6 @@
1
1
  import drawer_module_default from "./drawer.module.js";
2
- import { forwardRef } from "react";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
4
  import { Drawer } from "@base-ui/react/drawer";
5
5
  //#region src/drawer/parts.tsx
6
6
  /**