@octavius2929-personal/design-system 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -64,69 +64,132 @@ __export(index_exports, {
64
64
  Tooltip: () => Tooltip,
65
65
  TriangleAlertIcon: () => TriangleAlertIcon,
66
66
  XIcon: () => XIcon,
67
+ colorVars: () => colorVars,
67
68
  modeNames: () => modeNames,
68
69
  schemaNames: () => schemaNames,
69
70
  text: () => text,
70
71
  theme: () => vars,
71
72
  themes: () => themes,
73
+ usePrevious: () => usePrevious,
72
74
  useTheme: () => useTheme,
73
75
  useToggle: () => useToggle
74
76
  });
75
77
  module.exports = __toCommonJS(index_exports);
76
78
 
77
79
  // src/theme/theme.css.ts
80
+ var colorVars = { bg1: "var(--bg1__e3grur2c)", bg2: "var(--bg2__e3grur2d)", bg3: "var(--bg3__e3grur2e)", bgInset: "var(--bgInset__e3grur2f)", fg1: "var(--fg1__e3grur2g)", fg2: "var(--fg2__e3grur2h)", fg3: "var(--fg3__e3grur2i)", fgOnAccent: "var(--fgOnAccent__e3grur2j)", border1: "var(--border1__e3grur2k)", border2: "var(--border2__e3grur2l)", borderStrong: "var(--borderStrong__e3grur2m)", accent: "var(--accent__e3grur2n)", accentHover: "var(--accentHover__e3grur2o)", accentSoft: "var(--accentSoft__e3grur2p)", ok: "var(--ok__e3grur2q)", warn: "var(--warn__e3grur2r)", danger: "var(--danger__e3grur2s)", info: "var(--info__e3grur2t)", focus: "var(--focus__e3grur2u)", scrim: "var(--scrim__e3grur2v)" };
78
81
  var modeNames = ["light", "dark", "sepia", "contrast"];
79
82
  var schemaNames = ["tinta"];
80
- var themes = { tinta: { light: "theme_themes_tinta_light__e3grur2v", dark: "theme_themes_tinta_dark__e3grur2w", sepia: "theme_themes_tinta_sepia__e3grur2x", contrast: "theme_themes_tinta_contrast__e3grur2y" } };
81
- var vars = { font: { display: "var(--font-display__e3grur0)", text: "var(--font-text__e3grur1)", mono: "var(--font-mono__e3grur2)", black: "var(--font-black__e3grur3)" }, text: { eyebrow: { size: "var(--text-eyebrow-size__e3grur4)", lineHeight: "var(--text-eyebrow-lineHeight__e3grur5)", weight: "var(--text-eyebrow-weight__e3grur6)", letterSpacing: "var(--text-eyebrow-letterSpacing__e3grur7)" }, display: { size: "var(--text-display-size__e3grur8)", lineHeight: "var(--text-display-lineHeight__e3grur9)", weight: "var(--text-display-weight__e3grura)", letterSpacing: "var(--text-display-letterSpacing__e3grurb)" }, h1: { size: "var(--text-h1-size__e3grurc)", lineHeight: "var(--text-h1-lineHeight__e3grurd)", weight: "var(--text-h1-weight__e3grure)", letterSpacing: "var(--text-h1-letterSpacing__e3grurf)" }, h2: { size: "var(--text-h2-size__e3grurg)", lineHeight: "var(--text-h2-lineHeight__e3grurh)", weight: "var(--text-h2-weight__e3gruri)", letterSpacing: "var(--text-h2-letterSpacing__e3grurj)" }, h3: { size: "var(--text-h3-size__e3grurk)", lineHeight: "var(--text-h3-lineHeight__e3grurl)", weight: "var(--text-h3-weight__e3grurm)", letterSpacing: "var(--text-h3-letterSpacing__e3grurn)" }, h4: { size: "var(--text-h4-size__e3gruro)", lineHeight: "var(--text-h4-lineHeight__e3grurp)", weight: "var(--text-h4-weight__e3grurq)", letterSpacing: "var(--text-h4-letterSpacing__e3grurr)" }, body: { size: "var(--text-body-size__e3grurs)", lineHeight: "var(--text-body-lineHeight__e3grurt)", weight: "var(--text-body-weight__e3gruru)", letterSpacing: "var(--text-body-letterSpacing__e3grurv)" }, lead: { size: "var(--text-lead-size__e3grurw)", lineHeight: "var(--text-lead-lineHeight__e3grurx)", weight: "var(--text-lead-weight__e3grury)", letterSpacing: "var(--text-lead-letterSpacing__e3grurz)" }, small: { size: "var(--text-small-size__e3grur10)", lineHeight: "var(--text-small-lineHeight__e3grur11)", weight: "var(--text-small-weight__e3grur12)", letterSpacing: "var(--text-small-letterSpacing__e3grur13)" }, caption: { size: "var(--text-caption-size__e3grur14)", lineHeight: "var(--text-caption-lineHeight__e3grur15)", weight: "var(--text-caption-weight__e3grur16)", letterSpacing: "var(--text-caption-letterSpacing__e3grur17)" } }, space: { none: "var(--space-none__e3grur18)", xs: "var(--space-xs__e3grur19)", sm: "var(--space-sm__e3grur1a)", md: "var(--space-md__e3grur1b)", lg: "var(--space-lg__e3grur1c)", xl: "var(--space-xl__e3grur1d)", "2xl": "var(--space-2xl__e3grur1e)", "3xl": "var(--space-3xl__e3grur1f)", "4xl": "var(--space-4xl__e3grur1g)", "5xl": "var(--space-5xl__e3grur1h)" }, radius: { none: "var(--radius-none__e3grur1i)", sm: "var(--radius-sm__e3grur1j)", md: "var(--radius-md__e3grur1k)", lg: "var(--radius-lg__e3grur1l)", base: "var(--radius-base__e3grur1m)", full: "var(--radius-full__e3grur1n)" }, border: { hair: "var(--border-hair__e3grur1o)", rule: "var(--border-rule__e3grur1p)", heavy: "var(--border-heavy__e3grur1q)" }, tracking: { tight: "var(--tracking-tight__e3grur1r)", normal: "var(--tracking-normal__e3grur1s)", wide: "var(--tracking-wide__e3grur1t)", wider: "var(--tracking-wider__e3grur1u)", widest: "var(--tracking-widest__e3grur1v)" }, leading: { tight: "var(--leading-tight__e3grur1w)", snug: "var(--leading-snug__e3grur1x)", normal: "var(--leading-normal__e3grur1y)", relaxed: "var(--leading-relaxed__e3grur1z)" }, weight: { light: "var(--weight-light__e3grur20)", regular: "var(--weight-regular__e3grur21)", medium: "var(--weight-medium__e3grur22)", semibold: "var(--weight-semibold__e3grur23)", bold: "var(--weight-bold__e3grur24)" }, dur: { fast: "var(--dur-fast__e3grur25)", base: "var(--dur-base__e3grur26)", slow: "var(--dur-slow__e3grur27)" }, ease: { ink: "var(--ease-ink__e3grur28)" }, shadow: { sm: "var(--shadow-sm__e3grur29)", md: "var(--shadow-md__e3grur2a)", lg: "var(--shadow-lg__e3grur2b)" }, color: { bg1: "var(--color-bg1__e3grur2c)", bg2: "var(--color-bg2__e3grur2d)", bg3: "var(--color-bg3__e3grur2e)", bgInset: "var(--color-bgInset__e3grur2f)", fg1: "var(--color-fg1__e3grur2g)", fg2: "var(--color-fg2__e3grur2h)", fg3: "var(--color-fg3__e3grur2i)", fgOnAccent: "var(--color-fgOnAccent__e3grur2j)", border1: "var(--color-border1__e3grur2k)", border2: "var(--color-border2__e3grur2l)", borderStrong: "var(--color-borderStrong__e3grur2m)", accent: "var(--color-accent__e3grur2n)", accentHover: "var(--color-accentHover__e3grur2o)", accentSoft: "var(--color-accentSoft__e3grur2p)", ok: "var(--color-ok__e3grur2q)", warn: "var(--color-warn__e3grur2r)", danger: "var(--color-danger__e3grur2s)", info: "var(--color-info__e3grur2t)", scrim: "var(--color-scrim__e3grur2u)" } };
83
+ var themes = { tinta: { light: "theme_themes_tinta_light__e3grur2w", dark: "theme_themes_tinta_dark__e3grur2x", sepia: "theme_themes_tinta_sepia__e3grur2y", contrast: "theme_themes_tinta_contrast__e3grur2z" } };
84
+ var vars = { font: { display: "var(--font-display__e3grur0)", text: "var(--font-text__e3grur1)", mono: "var(--font-mono__e3grur2)", black: "var(--font-black__e3grur3)" }, text: { eyebrow: { size: "var(--text-eyebrow-size__e3grur4)", lineHeight: "var(--text-eyebrow-lineHeight__e3grur5)", weight: "var(--text-eyebrow-weight__e3grur6)", letterSpacing: "var(--text-eyebrow-letterSpacing__e3grur7)" }, display: { size: "var(--text-display-size__e3grur8)", lineHeight: "var(--text-display-lineHeight__e3grur9)", weight: "var(--text-display-weight__e3grura)", letterSpacing: "var(--text-display-letterSpacing__e3grurb)" }, h1: { size: "var(--text-h1-size__e3grurc)", lineHeight: "var(--text-h1-lineHeight__e3grurd)", weight: "var(--text-h1-weight__e3grure)", letterSpacing: "var(--text-h1-letterSpacing__e3grurf)" }, h2: { size: "var(--text-h2-size__e3grurg)", lineHeight: "var(--text-h2-lineHeight__e3grurh)", weight: "var(--text-h2-weight__e3gruri)", letterSpacing: "var(--text-h2-letterSpacing__e3grurj)" }, h3: { size: "var(--text-h3-size__e3grurk)", lineHeight: "var(--text-h3-lineHeight__e3grurl)", weight: "var(--text-h3-weight__e3grurm)", letterSpacing: "var(--text-h3-letterSpacing__e3grurn)" }, h4: { size: "var(--text-h4-size__e3gruro)", lineHeight: "var(--text-h4-lineHeight__e3grurp)", weight: "var(--text-h4-weight__e3grurq)", letterSpacing: "var(--text-h4-letterSpacing__e3grurr)" }, body: { size: "var(--text-body-size__e3grurs)", lineHeight: "var(--text-body-lineHeight__e3grurt)", weight: "var(--text-body-weight__e3gruru)", letterSpacing: "var(--text-body-letterSpacing__e3grurv)" }, lead: { size: "var(--text-lead-size__e3grurw)", lineHeight: "var(--text-lead-lineHeight__e3grurx)", weight: "var(--text-lead-weight__e3grury)", letterSpacing: "var(--text-lead-letterSpacing__e3grurz)" }, small: { size: "var(--text-small-size__e3grur10)", lineHeight: "var(--text-small-lineHeight__e3grur11)", weight: "var(--text-small-weight__e3grur12)", letterSpacing: "var(--text-small-letterSpacing__e3grur13)" }, caption: { size: "var(--text-caption-size__e3grur14)", lineHeight: "var(--text-caption-lineHeight__e3grur15)", weight: "var(--text-caption-weight__e3grur16)", letterSpacing: "var(--text-caption-letterSpacing__e3grur17)" } }, space: { none: "var(--space-none__e3grur18)", xs: "var(--space-xs__e3grur19)", sm: "var(--space-sm__e3grur1a)", md: "var(--space-md__e3grur1b)", lg: "var(--space-lg__e3grur1c)", xl: "var(--space-xl__e3grur1d)", "2xl": "var(--space-2xl__e3grur1e)", "3xl": "var(--space-3xl__e3grur1f)", "4xl": "var(--space-4xl__e3grur1g)", "5xl": "var(--space-5xl__e3grur1h)" }, radius: { none: "var(--radius-none__e3grur1i)", sm: "var(--radius-sm__e3grur1j)", md: "var(--radius-md__e3grur1k)", lg: "var(--radius-lg__e3grur1l)", base: "var(--radius-base__e3grur1m)", full: "var(--radius-full__e3grur1n)" }, border: { hair: "var(--border-hair__e3grur1o)", rule: "var(--border-rule__e3grur1p)", heavy: "var(--border-heavy__e3grur1q)" }, tracking: { tight: "var(--tracking-tight__e3grur1r)", normal: "var(--tracking-normal__e3grur1s)", wide: "var(--tracking-wide__e3grur1t)", wider: "var(--tracking-wider__e3grur1u)", widest: "var(--tracking-widest__e3grur1v)" }, leading: { tight: "var(--leading-tight__e3grur1w)", snug: "var(--leading-snug__e3grur1x)", normal: "var(--leading-normal__e3grur1y)", relaxed: "var(--leading-relaxed__e3grur1z)" }, weight: { light: "var(--weight-light__e3grur20)", regular: "var(--weight-regular__e3grur21)", medium: "var(--weight-medium__e3grur22)", semibold: "var(--weight-semibold__e3grur23)", bold: "var(--weight-bold__e3grur24)" }, dur: { fast: "var(--dur-fast__e3grur25)", base: "var(--dur-base__e3grur26)", slow: "var(--dur-slow__e3grur27)" }, ease: { ink: "var(--ease-ink__e3grur28)" }, shadow: { sm: "var(--shadow-sm__e3grur29)", md: "var(--shadow-md__e3grur2a)", lg: "var(--shadow-lg__e3grur2b)" }, color: colorVars };
82
85
 
83
- // src/hooks/use-toggle/index.ts
86
+ // src/hooks/use-previous/index.ts
84
87
  var import_react = require("react");
88
+ function usePrevious(value, initial) {
89
+ const ref = (0, import_react.useRef)(initial);
90
+ (0, import_react.useEffect)(() => {
91
+ ref.current = value;
92
+ }, [value]);
93
+ return ref.current;
94
+ }
95
+
96
+ // src/hooks/use-toggle/index.ts
97
+ var import_react2 = require("react");
85
98
  function useToggle(initial = false) {
86
- const [on, setOn] = (0, import_react.useState)(initial);
87
- const toggle = (0, import_react.useCallback)(() => setOn((value) => !value), []);
99
+ const [on, setOn] = (0, import_react2.useState)(initial);
100
+ const toggle = (0, import_react2.useCallback)(() => setOn((value) => !value), []);
88
101
  return [on, toggle, setOn];
89
102
  }
90
103
 
91
104
  // src/components/button/use-styles.ts
92
- var import_react3 = require("react");
105
+ var import_react4 = require("react");
93
106
 
94
107
  // src/theme/context/theme-context.tsx
95
- var import_react2 = require("react");
108
+ var import_react3 = require("react");
96
109
  var import_jsx_runtime = require("react/jsx-runtime");
97
110
  var noop = () => {
98
111
  };
99
112
  var DEFAULT_VALUE = {
100
113
  schema: "tinta",
101
114
  mode: "light",
115
+ preference: "light",
102
116
  themeClass: themes.tinta.light,
103
117
  setSchema: noop,
104
118
  setMode: noop,
105
- toggleMode: noop
119
+ toggleMode: noop,
120
+ cycleMode: noop
106
121
  };
107
- var ThemeContext = (0, import_react2.createContext)(null);
122
+ var ThemeContext = (0, import_react3.createContext)(null);
123
+ function resolveSystemMode() {
124
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return "light";
125
+ if (window.matchMedia("(prefers-contrast: more)").matches) return "contrast";
126
+ if (window.matchMedia("(prefers-color-scheme: dark)").matches) return "dark";
127
+ return "light";
128
+ }
129
+ function readStored(key) {
130
+ if (typeof window === "undefined") return null;
131
+ try {
132
+ const raw = window.localStorage.getItem(key);
133
+ return raw ? JSON.parse(raw) : null;
134
+ } catch {
135
+ return null;
136
+ }
137
+ }
138
+ function writeStored(key, value) {
139
+ if (typeof window === "undefined") return;
140
+ try {
141
+ window.localStorage.setItem(key, JSON.stringify(value));
142
+ } catch {
143
+ }
144
+ }
108
145
  function ThemeProvider({
109
146
  children,
110
147
  defaultSchema = "tinta",
111
- defaultMode = "light"
148
+ defaultMode = "light",
149
+ storageKey = "ds-theme",
150
+ persist = true
112
151
  }) {
113
- const [schema, setSchema] = (0, import_react2.useState)(defaultSchema);
114
- const [mode, setMode] = (0, import_react2.useState)(defaultMode);
115
- const value = (0, import_react2.useMemo)(
152
+ const [schema, setSchema] = (0, import_react3.useState)(
153
+ () => persist && readStored(storageKey)?.schema || defaultSchema
154
+ );
155
+ const [preference, setPreference] = (0, import_react3.useState)(
156
+ () => (persist ? readStored(storageKey)?.preference : null) ?? defaultMode
157
+ );
158
+ const [systemMode, setSystemMode] = (0, import_react3.useState)(resolveSystemMode);
159
+ (0, import_react3.useEffect)(() => {
160
+ if (preference !== "system") return;
161
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
162
+ const mqls = ["(prefers-contrast: more)", "(prefers-color-scheme: dark)"].map(
163
+ (q) => window.matchMedia(q)
164
+ );
165
+ const onChange = () => setSystemMode(resolveSystemMode());
166
+ onChange();
167
+ for (const mql of mqls) mql.addEventListener?.("change", onChange);
168
+ return () => {
169
+ for (const mql of mqls) mql.removeEventListener?.("change", onChange);
170
+ };
171
+ }, [preference]);
172
+ const mode = preference === "system" ? systemMode : preference;
173
+ (0, import_react3.useEffect)(() => {
174
+ if (persist) writeStored(storageKey, { schema, preference });
175
+ }, [schema, preference, persist, storageKey]);
176
+ const value = (0, import_react3.useMemo)(
116
177
  () => ({
117
178
  schema,
118
179
  mode,
180
+ preference,
119
181
  themeClass: themes[schema][mode],
120
182
  setSchema,
121
- setMode,
122
- toggleMode: () => setMode((current2) => current2 === "dark" ? "light" : "dark")
183
+ setMode: setPreference,
184
+ toggleMode: () => setPreference(mode === "dark" ? "light" : "dark"),
185
+ cycleMode: () => setPreference(modeNames[(modeNames.indexOf(mode) + 1) % modeNames.length])
123
186
  }),
124
- [schema, mode]
187
+ [schema, mode, preference]
125
188
  );
126
189
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, { value, children });
127
190
  }
128
191
  function useTheme() {
129
- return (0, import_react2.useContext)(ThemeContext) ?? DEFAULT_VALUE;
192
+ return (0, import_react3.useContext)(ThemeContext) ?? DEFAULT_VALUE;
130
193
  }
131
194
 
132
195
  // src/components/button/use-styles.css.ts
@@ -147,7 +210,7 @@ function useStyles({
147
210
  className
148
211
  }) {
149
212
  const { themeClass } = useTheme();
150
- const container = (0, import_react3.useMemo)(
213
+ const container = (0, import_react4.useMemo)(
151
214
  () => [
152
215
  themeClass,
153
216
  root,
@@ -185,7 +248,7 @@ function Button({
185
248
  }
186
249
 
187
250
  // src/components/divider/use-styles.ts
188
- var import_react4 = require("react");
251
+ var import_react5 = require("react");
189
252
 
190
253
  // src/components/divider/use-styles.css.ts
191
254
  var horizontal = "use-styles_horizontal__1n7v7yj1";
@@ -198,7 +261,7 @@ var vertical = "use-styles_vertical__1n7v7yj2";
198
261
  // src/components/divider/use-styles.ts
199
262
  function useStyles2({ vertical: vertical2, hasLabel }) {
200
263
  const { themeClass } = useTheme();
201
- const root24 = (0, import_react4.useMemo)(
264
+ const root24 = (0, import_react5.useMemo)(
202
265
  () => [
203
266
  themeClass,
204
267
  root2,
@@ -225,7 +288,7 @@ function Divider({ vertical: vertical2, label: label7, ...rest }) {
225
288
  }
226
289
 
227
290
  // src/components/avatar/use-styles.ts
228
- var import_react5 = require("react");
291
+ var import_react6 = require("react");
229
292
 
230
293
  // src/components/avatar/use-styles.css.ts
231
294
  var root3 = "use-styles_root__1mn1rmu0";
@@ -239,7 +302,7 @@ function useStyles3({
239
302
  className
240
303
  }) {
241
304
  const { themeClass } = useTheme();
242
- const root24 = (0, import_react5.useMemo)(
305
+ const root24 = (0, import_react6.useMemo)(
243
306
  () => [
244
307
  themeClass,
245
308
  root3,
@@ -260,7 +323,7 @@ function Avatar({ size: size3, filled, className, children, ...rest }) {
260
323
  }
261
324
 
262
325
  // src/components/badge/use-styles.ts
263
- var import_react6 = require("react");
326
+ var import_react7 = require("react");
264
327
 
265
328
  // src/components/badge/use-styles.css.ts
266
329
  var dot = "use-styles_dot__1wpei6p1";
@@ -270,11 +333,11 @@ var tone2 = { ink: "use-styles_tone_ink__1wpei6p2", accent: "use-styles_tone_acc
270
333
  // src/components/badge/use-styles.ts
271
334
  function useStyles4({ tone: tone4 = "ink", className }) {
272
335
  const { themeClass } = useTheme();
273
- const root24 = (0, import_react6.useMemo)(
336
+ const root24 = (0, import_react7.useMemo)(
274
337
  () => [themeClass, root4, className].filter(Boolean).join(" "),
275
338
  [themeClass, className]
276
339
  );
277
- const dot3 = (0, import_react6.useMemo)(() => [dot, tone2[tone4]].join(" "), [tone4]);
340
+ const dot3 = (0, import_react7.useMemo)(() => [dot, tone2[tone4]].join(" "), [tone4]);
278
341
  return { root: root24, dot: dot3 };
279
342
  }
280
343
 
@@ -289,7 +352,7 @@ function Badge({ count, tone: tone4, className, children, ...rest }) {
289
352
  }
290
353
 
291
354
  // src/components/progress/use-styles.ts
292
- var import_react7 = require("react");
355
+ var import_react8 = require("react");
293
356
 
294
357
  // src/components/progress/use-styles.css.ts
295
358
  var bar = "use-styles_bar__kbop7v3";
@@ -305,7 +368,7 @@ function useStyles5({
305
368
  }) {
306
369
  const { themeClass } = useTheme();
307
370
  const indeterminate2 = value === void 0;
308
- return (0, import_react7.useMemo)(() => {
371
+ return (0, import_react8.useMemo)(() => {
309
372
  const root24 = (...classes) => [themeClass, ...classes, className].filter(Boolean).join(" ");
310
373
  if (variant2 === "circular") {
311
374
  return { track: "", bar: "", spinner: root24(spinner) };
@@ -383,7 +446,7 @@ function XIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
383
446
  }
384
447
 
385
448
  // src/components/chip/use-styles.ts
386
- var import_react8 = require("react");
449
+ var import_react9 = require("react");
387
450
 
388
451
  // src/components/chip/use-styles.css.ts
389
452
  var clickable = "use-styles_clickable__1axilf44";
@@ -399,7 +462,7 @@ function useStyles6({
399
462
  clickable: clickable2
400
463
  }) {
401
464
  const { themeClass } = useTheme();
402
- const root24 = (0, import_react8.useMemo)(
465
+ const root24 = (0, import_react9.useMemo)(
403
466
  () => [
404
467
  themeClass,
405
468
  root5,
@@ -449,7 +512,7 @@ function CheckIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
449
512
  }
450
513
 
451
514
  // src/components/checkbox/use-styles.ts
452
- var import_react9 = require("react");
515
+ var import_react10 = require("react");
453
516
 
454
517
  // src/components/checkbox/use-styles.css.ts
455
518
  var box = "use-styles_box__9zoga92";
@@ -462,11 +525,11 @@ var root6 = "use-styles_root__9zoga90";
462
525
  // src/components/checkbox/use-styles.ts
463
526
  function useStyles7({ checked, disabled: disabled3 }) {
464
527
  const { themeClass } = useTheme();
465
- const root24 = (0, import_react9.useMemo)(
528
+ const root24 = (0, import_react10.useMemo)(
466
529
  () => [themeClass, root6, disabled3 && disabled].filter(Boolean).join(" "),
467
530
  [themeClass, disabled3]
468
531
  );
469
- const box2 = (0, import_react9.useMemo)(
532
+ const box2 = (0, import_react10.useMemo)(
470
533
  () => [box, checked && boxChecked].filter(Boolean).join(" "),
471
534
  [checked]
472
535
  );
@@ -505,7 +568,7 @@ function Checkbox({
505
568
  }
506
569
 
507
570
  // src/components/radio/use-styles.ts
508
- var import_react10 = require("react");
571
+ var import_react11 = require("react");
509
572
 
510
573
  // src/components/radio/use-styles.css.ts
511
574
  var circle = "use-styles_circle__vy61b43";
@@ -521,7 +584,7 @@ function useStyles8({
521
584
  className
522
585
  }) {
523
586
  const { themeClass } = useTheme();
524
- const root24 = (0, import_react10.useMemo)(
587
+ const root24 = (0, import_react11.useMemo)(
525
588
  () => [themeClass, root7, disabled3 && disabled2, className].filter(Boolean).join(" "),
526
589
  [themeClass, disabled3, className]
527
590
  );
@@ -557,7 +620,7 @@ function Radio({ checked, onChange, label: label7, name, value, disabled: disabl
557
620
  }
558
621
 
559
622
  // src/components/switch/use-styles.ts
560
- var import_react11 = require("react");
623
+ var import_react12 = require("react");
561
624
 
562
625
  // src/components/switch/use-styles.css.ts
563
626
  var input3 = "use-styles_input__1r6kem71";
@@ -571,7 +634,7 @@ var trackChecked = "use-styles_trackChecked__1r6kem73";
571
634
  // src/components/switch/use-styles.ts
572
635
  function useStyles9({ checked }) {
573
636
  const { themeClass } = useTheme();
574
- return (0, import_react11.useMemo)(
637
+ return (0, import_react12.useMemo)(
575
638
  () => ({
576
639
  root: [themeClass, root8].filter(Boolean).join(" "),
577
640
  input: input3,
@@ -609,7 +672,7 @@ function Switch({ checked = false, onChange, label: label7, disabled: disabled3
609
672
  }
610
673
 
611
674
  // src/components/text-field/index.tsx
612
- var import_react13 = require("react");
675
+ var import_react14 = require("react");
613
676
 
614
677
  // src/components/icons/eye/index.tsx
615
678
  var import_jsx_runtime13 = require("react/jsx-runtime");
@@ -664,7 +727,7 @@ function EyeOffIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
664
727
  }
665
728
 
666
729
  // src/components/text-field/use-styles.ts
667
- var import_react12 = require("react");
730
+ var import_react13 = require("react");
668
731
 
669
732
  // src/components/text-field/use-styles.css.ts
670
733
  var field = "use-styles_field__vat8gv3";
@@ -683,7 +746,7 @@ var startIcon = "use-styles_startIcon__vat8gva";
683
746
  // src/components/text-field/use-styles.ts
684
747
  function useStyles10({ error, hasStartIcon, hasReveal, className }) {
685
748
  const { themeClass } = useTheme();
686
- return (0, import_react12.useMemo)(() => {
749
+ return (0, import_react13.useMemo)(() => {
687
750
  const root24 = [themeClass, root9].filter(Boolean).join(" ");
688
751
  const labelText2 = [labelText, error && labelTextError].filter(Boolean).join(" ");
689
752
  const input6 = [
@@ -721,11 +784,11 @@ function TextField({
721
784
  id,
722
785
  ...rest
723
786
  }) {
724
- const [reveal, setReveal] = (0, import_react13.useState)(false);
787
+ const [reveal, setReveal] = (0, import_react14.useState)(false);
725
788
  const isPassword = type === "password";
726
789
  const hasReveal = isPassword;
727
790
  const effectiveType = isPassword ? reveal ? "text" : "password" : type;
728
- const autoId = (0, import_react13.useId)();
791
+ const autoId = (0, import_react14.useId)();
729
792
  const controlId = id ?? autoId;
730
793
  const classes = useStyles10({
731
794
  error,
@@ -783,7 +846,7 @@ function TextField({
783
846
  }
784
847
 
785
848
  // src/components/icon-button/use-styles.ts
786
- var import_react14 = require("react");
849
+ var import_react15 = require("react");
787
850
 
788
851
  // src/components/icon-button/use-styles.css.ts
789
852
  var accent = "use-styles_accent__18np0q02";
@@ -796,7 +859,7 @@ function useStyles11({
796
859
  tone: tone4 = "ink"
797
860
  }) {
798
861
  const { themeClass } = useTheme();
799
- const root24 = (0, import_react14.useMemo)(
862
+ const root24 = (0, import_react15.useMemo)(
800
863
  () => [themeClass, root10, tone4 === "accent" && accent, active2 && active].filter(Boolean).join(" "),
801
864
  [themeClass, active2, tone4]
802
865
  );
@@ -811,7 +874,7 @@ function IconButton({ icon: Icon, active: active2, tone: tone4, title, ...rest }
811
874
  }
812
875
 
813
876
  // src/components/card/use-styles.ts
814
- var import_react15 = require("react");
877
+ var import_react16 = require("react");
815
878
 
816
879
  // src/components/card/use-styles.css.ts
817
880
  var body = "use-styles_body__1fuvd022";
@@ -822,7 +885,7 @@ var root11 = "use-styles_root__1fuvd020";
822
885
  // src/components/card/use-styles.ts
823
886
  function useStyles12() {
824
887
  const { themeClass } = useTheme();
825
- const root24 = (0, import_react15.useMemo)(() => `${themeClass} ${root11}`, [themeClass]);
888
+ const root24 = (0, import_react16.useMemo)(() => `${themeClass} ${root11}`, [themeClass]);
826
889
  return { root: root24, header, body, footer };
827
890
  }
828
891
 
@@ -958,7 +1021,7 @@ function TriangleAlertIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
958
1021
  }
959
1022
 
960
1023
  // src/components/alert/use-styles.ts
961
- var import_react16 = require("react");
1024
+ var import_react17 = require("react");
962
1025
 
963
1026
  // src/components/alert/use-styles.css.ts
964
1027
  var body2 = "use-styles_body__ivsh6u8";
@@ -974,7 +1037,7 @@ function useStyles13({
974
1037
  className
975
1038
  }) {
976
1039
  const { themeClass } = useTheme();
977
- const root24 = (0, import_react16.useMemo)(
1040
+ const root24 = (0, import_react17.useMemo)(
978
1041
  () => [themeClass, root12, severity[severity2], className].filter(Boolean).join(" "),
979
1042
  [themeClass, severity2, className]
980
1043
  );
@@ -1015,10 +1078,10 @@ function Alert({
1015
1078
  }
1016
1079
 
1017
1080
  // src/components/tooltip/index.tsx
1018
- var import_react18 = require("react");
1081
+ var import_react19 = require("react");
1019
1082
 
1020
1083
  // src/components/tooltip/use-styles.ts
1021
- var import_react17 = require("react");
1084
+ var import_react18 = require("react");
1022
1085
 
1023
1086
  // src/components/tooltip/use-styles.css.ts
1024
1087
  var bubble = "use-styles_bubble__h9kvh1";
@@ -1028,11 +1091,11 @@ var wrapper = "use-styles_wrapper__h9kvh0";
1028
1091
  // src/components/tooltip/use-styles.ts
1029
1092
  function useStyles14({ placement: placement2 = "top" }) {
1030
1093
  const { themeClass } = useTheme();
1031
- const wrapper4 = (0, import_react17.useMemo)(
1094
+ const wrapper4 = (0, import_react18.useMemo)(
1032
1095
  () => [themeClass, wrapper].filter(Boolean).join(" "),
1033
1096
  [themeClass]
1034
1097
  );
1035
- const bubble2 = (0, import_react17.useMemo)(
1098
+ const bubble2 = (0, import_react18.useMemo)(
1036
1099
  () => [bubble, placement[placement2]].filter(Boolean).join(" "),
1037
1100
  [placement2]
1038
1101
  );
@@ -1042,14 +1105,14 @@ function useStyles14({ placement: placement2 = "top" }) {
1042
1105
  // src/components/tooltip/index.tsx
1043
1106
  var import_jsx_runtime23 = require("react/jsx-runtime");
1044
1107
  function Tooltip({ label: label7, children, placement: placement2 }) {
1045
- const [open, setOpen] = (0, import_react18.useState)(false);
1046
- const tooltipId = (0, import_react18.useId)();
1108
+ const [open, setOpen] = (0, import_react19.useState)(false);
1109
+ const tooltipId = (0, import_react19.useId)();
1047
1110
  const { wrapper: wrapper4, bubble: bubble2 } = useStyles14({ placement: placement2 });
1048
1111
  const show = () => setOpen(true);
1049
1112
  const hide = () => setOpen(false);
1050
1113
  const previousDescribedBy = children.props["aria-describedby"];
1051
1114
  const describedBy = open ? [previousDescribedBy, tooltipId].filter(Boolean).join(" ") : previousDescribedBy;
1052
- const trigger2 = (0, import_react18.cloneElement)(children, { "aria-describedby": describedBy });
1115
+ const trigger2 = (0, import_react19.cloneElement)(children, { "aria-describedby": describedBy });
1053
1116
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: wrapper4, onMouseEnter: show, onMouseLeave: hide, onFocus: show, onBlur: hide, children: [
1054
1117
  trigger2,
1055
1118
  open && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { id: tooltipId, role: "tooltip", className: bubble2, children: label7 })
@@ -1057,7 +1120,7 @@ function Tooltip({ label: label7, children, placement: placement2 }) {
1057
1120
  }
1058
1121
 
1059
1122
  // src/components/select/index.tsx
1060
- var import_react20 = require("react");
1123
+ var import_react21 = require("react");
1061
1124
 
1062
1125
  // src/components/icons/chevron-down/index.tsx
1063
1126
  var import_jsx_runtime24 = require("react/jsx-runtime");
@@ -1082,7 +1145,7 @@ function ChevronDownIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
1082
1145
  }
1083
1146
 
1084
1147
  // src/components/select/use-styles.ts
1085
- var import_react19 = require("react");
1148
+ var import_react20 = require("react");
1086
1149
 
1087
1150
  // src/components/select/use-styles.css.ts
1088
1151
  var chevron = "use-styles_chevron__1w1czpb4";
@@ -1101,7 +1164,7 @@ function useStyles15({
1101
1164
  open = false
1102
1165
  }) {
1103
1166
  const { themeClass } = useTheme();
1104
- return (0, import_react19.useMemo)(() => {
1167
+ return (0, import_react20.useMemo)(() => {
1105
1168
  const chevron3 = [chevron, open && chevronOpen].filter(Boolean).join(" ");
1106
1169
  return {
1107
1170
  root: [themeClass, root13].filter(Boolean).join(" "),
@@ -1118,10 +1181,10 @@ function useStyles15({
1118
1181
  // src/components/select/index.tsx
1119
1182
  var import_jsx_runtime25 = require("react/jsx-runtime");
1120
1183
  function Select({ options, value, onChange, placeholder: placeholder2, label: label7, disabled: disabled3 }) {
1121
- const [open, setOpen] = (0, import_react20.useState)(false);
1122
- const [activeIndex, setActiveIndex] = (0, import_react20.useState)(0);
1123
- const rootRef = (0, import_react20.useRef)(null);
1124
- const baseId = (0, import_react20.useId)();
1184
+ const [open, setOpen] = (0, import_react21.useState)(false);
1185
+ const [activeIndex, setActiveIndex] = (0, import_react21.useState)(0);
1186
+ const rootRef = (0, import_react21.useRef)(null);
1187
+ const baseId = (0, import_react21.useId)();
1125
1188
  const labelId = `${baseId}-label`;
1126
1189
  const optionId = (index) => `${baseId}-option-${index}`;
1127
1190
  const {
@@ -1133,7 +1196,7 @@ function Select({ options, value, onChange, placeholder: placeholder2, label: la
1133
1196
  menu: menu2,
1134
1197
  optionClass
1135
1198
  } = useStyles15({ open });
1136
- (0, import_react20.useEffect)(() => {
1199
+ (0, import_react21.useEffect)(() => {
1137
1200
  if (!open) return;
1138
1201
  const onPointerDown = (event) => {
1139
1202
  if (rootRef.current && !rootRef.current.contains(event.target)) {
@@ -1244,7 +1307,7 @@ function Select({ options, value, onChange, placeholder: placeholder2, label: la
1244
1307
  }
1245
1308
 
1246
1309
  // src/components/slider/use-styles.ts
1247
- var import_react21 = require("react");
1310
+ var import_react22 = require("react");
1248
1311
 
1249
1312
  // src/components/slider/use-styles.css.ts
1250
1313
  var input5 = "use-styles_input__okw59n3";
@@ -1258,7 +1321,7 @@ var wrapper2 = "use-styles_wrapper__okw59n6";
1258
1321
  // src/components/slider/use-styles.ts
1259
1322
  function useStyles16() {
1260
1323
  const { themeClass } = useTheme();
1261
- return (0, import_react21.useMemo)(() => {
1324
+ return (0, import_react22.useMemo)(() => {
1262
1325
  const root24 = [themeClass, root14].filter(Boolean).join(" ");
1263
1326
  return {
1264
1327
  wrapper: wrapper2,
@@ -1314,10 +1377,10 @@ function Slider({
1314
1377
  }
1315
1378
 
1316
1379
  // src/components/accordion/index.tsx
1317
- var import_react23 = require("react");
1380
+ var import_react24 = require("react");
1318
1381
 
1319
1382
  // src/components/accordion/use-styles.ts
1320
- var import_react22 = require("react");
1383
+ var import_react23 = require("react");
1321
1384
 
1322
1385
  // src/components/accordion/use-styles.css.ts
1323
1386
  var chevron2 = "use-styles_chevron__1cjrdh93";
@@ -1330,7 +1393,7 @@ var root15 = "use-styles_root__1cjrdh90";
1330
1393
  // src/components/accordion/use-styles.ts
1331
1394
  function useStyles17({ className }) {
1332
1395
  const { themeClass } = useTheme();
1333
- return (0, import_react22.useMemo)(
1396
+ return (0, import_react23.useMemo)(
1334
1397
  () => ({
1335
1398
  root: [themeClass, root15, className].filter(Boolean).join(" "),
1336
1399
  item,
@@ -1350,7 +1413,7 @@ function Accordion({
1350
1413
  defaultOpen = [],
1351
1414
  className
1352
1415
  }) {
1353
- const [open, setOpen] = (0, import_react23.useState)(defaultOpen);
1416
+ const [open, setOpen] = (0, import_react24.useState)(defaultOpen);
1354
1417
  const { root: root24, item: item3, header: header3, chevronFor, panel: panel2 } = useStyles17({ className });
1355
1418
  const toggle = (id) => {
1356
1419
  setOpen((current2) => {
@@ -1385,7 +1448,7 @@ function Accordion({
1385
1448
  }
1386
1449
 
1387
1450
  // src/components/breadcrumbs/index.tsx
1388
- var import_react25 = require("react");
1451
+ var import_react26 = require("react");
1389
1452
 
1390
1453
  // src/components/icons/chevron-right/index.tsx
1391
1454
  var import_jsx_runtime28 = require("react/jsx-runtime");
@@ -1410,7 +1473,7 @@ function ChevronRightIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
1410
1473
  }
1411
1474
 
1412
1475
  // src/components/breadcrumbs/use-styles.ts
1413
- var import_react24 = require("react");
1476
+ var import_react25 = require("react");
1414
1477
 
1415
1478
  // src/components/breadcrumbs/use-styles.css.ts
1416
1479
  var crumb = "use-styles_crumb__7u0du61";
@@ -1421,7 +1484,7 @@ var separator = "use-styles_separator__7u0du63";
1421
1484
  // src/components/breadcrumbs/use-styles.ts
1422
1485
  function useStyles18({ className }) {
1423
1486
  const { themeClass } = useTheme();
1424
- const root24 = (0, import_react24.useMemo)(
1487
+ const root24 = (0, import_react25.useMemo)(
1425
1488
  () => [themeClass, root16, className].filter(Boolean).join(" "),
1426
1489
  [themeClass, className]
1427
1490
  );
@@ -1435,7 +1498,7 @@ function Breadcrumbs({ items, className, ...rest }) {
1435
1498
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("nav", { "aria-label": "Breadcrumb", className: root24, ...rest, children: items.map((item3, index) => {
1436
1499
  const isLast = index === items.length - 1;
1437
1500
  const key = index;
1438
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react25.Fragment, { children: [
1501
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react26.Fragment, { children: [
1439
1502
  isLast ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: current2, "aria-current": "page", children: item3.label }) : item3.href ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("a", { className: crumb2, href: item3.href, children: item3.label }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: crumb2, children: item3.label }),
1440
1503
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: separator2, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronRightIcon, { size: 14 }) })
1441
1504
  ] }, key);
@@ -1465,7 +1528,7 @@ function ChevronLeftIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
1465
1528
  }
1466
1529
 
1467
1530
  // src/components/pagination/use-styles.ts
1468
- var import_react26 = require("react");
1531
+ var import_react27 = require("react");
1469
1532
 
1470
1533
  // src/components/pagination/use-styles.css.ts
1471
1534
  var ellipsis = "use-styles_ellipsis__1azgzoh3";
@@ -1477,7 +1540,7 @@ var root17 = "use-styles_root__1azgzoh0";
1477
1540
  // src/components/pagination/use-styles.ts
1478
1541
  function useStyles19() {
1479
1542
  const { themeClass } = useTheme();
1480
- return (0, import_react26.useMemo)(
1543
+ return (0, import_react27.useMemo)(
1481
1544
  () => ({
1482
1545
  root: [themeClass, root17].filter(Boolean).join(" "),
1483
1546
  pageBtnFor: (active2) => [pageBtn, active2 && pageActive].filter(Boolean).join(" "),
@@ -1552,10 +1615,10 @@ function Pagination({ count, page = 1, onChange, siblingCount = 1 }) {
1552
1615
  }
1553
1616
 
1554
1617
  // src/components/stepper/index.tsx
1555
- var import_react28 = require("react");
1618
+ var import_react29 = require("react");
1556
1619
 
1557
1620
  // src/components/stepper/use-styles.ts
1558
- var import_react27 = require("react");
1621
+ var import_react28 = require("react");
1559
1622
 
1560
1623
  // src/components/stepper/use-styles.css.ts
1561
1624
  var connector = "use-styles_connector__79pt4e7";
@@ -1570,7 +1633,7 @@ var step = "use-styles_step__79pt4e1";
1570
1633
  // src/components/stepper/use-styles.ts
1571
1634
  function useStyles20({ className }) {
1572
1635
  const { themeClass } = useTheme();
1573
- return (0, import_react27.useMemo)(() => {
1636
+ return (0, import_react28.useMemo)(() => {
1574
1637
  const root24 = [themeClass, root18, className].filter(Boolean).join(" ");
1575
1638
  const markerFor = (state) => [
1576
1639
  marker,
@@ -1591,7 +1654,7 @@ function Stepper({ steps, active: active2 = 0, className, ...rest }) {
1591
1654
  const isActive = state === "active";
1592
1655
  return (
1593
1656
  // biome-ignore lint/suspicious/noArrayIndexKey: steps are a static, ordered list with no stable id.
1594
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react28.Fragment, { children: [
1657
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react29.Fragment, { children: [
1595
1658
  /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: step2, "aria-current": isActive ? "step" : void 0, children: [
1596
1659
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: markerFor(state), children: state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(CheckIcon, { size: 14 }) : index + 1 }),
1597
1660
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: labelFor(isActive), children: s.label })
@@ -1603,7 +1666,7 @@ function Stepper({ steps, active: active2 = 0, className, ...rest }) {
1603
1666
  }
1604
1667
 
1605
1668
  // src/components/tabs/use-styles.ts
1606
- var import_react29 = require("react");
1669
+ var import_react30 = require("react");
1607
1670
 
1608
1671
  // src/components/tabs/use-styles.css.ts
1609
1672
  var root19 = "use-styles_root__1l4m7t40";
@@ -1613,7 +1676,7 @@ var tabActive = "use-styles_tabActive__1l4m7t42";
1613
1676
  // src/components/tabs/use-styles.ts
1614
1677
  function useStyles21() {
1615
1678
  const { themeClass } = useTheme();
1616
- return (0, import_react29.useMemo)(() => {
1679
+ return (0, import_react30.useMemo)(() => {
1617
1680
  const root24 = [themeClass, root19].filter(Boolean).join(" ");
1618
1681
  const tabClass = (active2) => [tab, active2 && tabActive].filter(Boolean).join(" ");
1619
1682
  return { root: root24, tab, tabClass };
@@ -1642,10 +1705,10 @@ function Tabs({ items, value, onChange }) {
1642
1705
  }
1643
1706
 
1644
1707
  // src/components/menu/index.tsx
1645
- var import_react31 = require("react");
1708
+ var import_react32 = require("react");
1646
1709
 
1647
1710
  // src/components/menu/use-styles.ts
1648
- var import_react30 = require("react");
1711
+ var import_react31 = require("react");
1649
1712
 
1650
1713
  // src/components/menu/use-styles.css.ts
1651
1714
  var danger = "use-styles_danger__1uyxaj3";
@@ -1656,7 +1719,7 @@ var wrapper3 = "use-styles_wrapper__1uyxaj0";
1656
1719
  // src/components/menu/use-styles.ts
1657
1720
  function useStyles22() {
1658
1721
  const { themeClass } = useTheme();
1659
- return (0, import_react30.useMemo)(
1722
+ return (0, import_react31.useMemo)(
1660
1723
  () => ({
1661
1724
  wrapper: [themeClass, wrapper3].filter(Boolean).join(" "),
1662
1725
  list,
@@ -1675,10 +1738,10 @@ function assignRef(ref, value) {
1675
1738
  }
1676
1739
  function Menu({ trigger: trigger2, items }) {
1677
1740
  const { wrapper: wrapper4, list: list2, item: item3, dangerItem } = useStyles22();
1678
- const [open, setOpen] = (0, import_react31.useState)(false);
1679
- const rootRef = (0, import_react31.useRef)(null);
1680
- const listRef = (0, import_react31.useRef)(null);
1681
- const triggerRef = (0, import_react31.useRef)(null);
1741
+ const [open, setOpen] = (0, import_react32.useState)(false);
1742
+ const rootRef = (0, import_react32.useRef)(null);
1743
+ const listRef = (0, import_react32.useRef)(null);
1744
+ const triggerRef = (0, import_react32.useRef)(null);
1682
1745
  const getMenuItems = () => Array.from(listRef.current?.querySelectorAll('[role="menuitem"]') ?? []);
1683
1746
  const focusItemAt = (index) => {
1684
1747
  const menuItems = getMenuItems();
@@ -1690,7 +1753,7 @@ function Menu({ trigger: trigger2, items }) {
1690
1753
  setOpen(false);
1691
1754
  triggerRef.current?.focus();
1692
1755
  };
1693
- (0, import_react31.useEffect)(() => {
1756
+ (0, import_react32.useEffect)(() => {
1694
1757
  if (!open) return;
1695
1758
  listRef.current?.querySelector('[role="menuitem"]')?.focus();
1696
1759
  const onDocMouseDown = (event) => {
@@ -1746,7 +1809,7 @@ function Menu({ trigger: trigger2, items }) {
1746
1809
  triggerRef.current = node;
1747
1810
  assignRef(consumerRef, node);
1748
1811
  };
1749
- const clonedTrigger = (0, import_react31.cloneElement)(trigger2, {
1812
+ const clonedTrigger = (0, import_react32.cloneElement)(trigger2, {
1750
1813
  ref: mergedTriggerRef,
1751
1814
  "aria-haspopup": "menu",
1752
1815
  "aria-expanded": open,
@@ -1776,10 +1839,11 @@ function Menu({ trigger: trigger2, items }) {
1776
1839
  }
1777
1840
 
1778
1841
  // src/components/dialog/index.tsx
1779
- var import_react33 = require("react");
1842
+ var import_react34 = require("react");
1843
+ var import_react_dom = require("react-dom");
1780
1844
 
1781
1845
  // src/components/dialog/use-styles.ts
1782
- var import_react32 = require("react");
1846
+ var import_react33 = require("react");
1783
1847
 
1784
1848
  // src/components/dialog/use-styles.css.ts
1785
1849
  var actions = "use-styles_actions__5tstu84";
@@ -1791,7 +1855,7 @@ var titleText2 = "use-styles_titleText__5tstu82";
1791
1855
  // src/components/dialog/use-styles.ts
1792
1856
  function useStyles23() {
1793
1857
  const { themeClass } = useTheme();
1794
- return (0, import_react32.useMemo)(
1858
+ return (0, import_react33.useMemo)(
1795
1859
  () => ({
1796
1860
  overlay: [themeClass, overlay].filter(Boolean).join(" "),
1797
1861
  surface,
@@ -1808,11 +1872,11 @@ var import_jsx_runtime35 = require("react/jsx-runtime");
1808
1872
  var FOCUSABLE = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
1809
1873
  function Dialog({ open, onClose, title, actions: actions3, children }) {
1810
1874
  const { overlay: overlay2, surface: surface2, titleText: titleText3, body: body4, actions: actionsClass } = useStyles23();
1811
- const surfaceRef = (0, import_react33.useRef)(null);
1812
- const previouslyFocused = (0, import_react33.useRef)(null);
1813
- const generatedId = (0, import_react33.useId)();
1875
+ const surfaceRef = (0, import_react34.useRef)(null);
1876
+ const previouslyFocused = (0, import_react34.useRef)(null);
1877
+ const generatedId = (0, import_react34.useId)();
1814
1878
  const titleId = title != null ? generatedId : void 0;
1815
- (0, import_react33.useEffect)(() => {
1879
+ (0, import_react34.useEffect)(() => {
1816
1880
  if (!open) return;
1817
1881
  const onKeyDown = (event) => {
1818
1882
  if (event.key === "Escape") onClose();
@@ -1820,13 +1884,13 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
1820
1884
  document.addEventListener("keydown", onKeyDown);
1821
1885
  return () => document.removeEventListener("keydown", onKeyDown);
1822
1886
  }, [open, onClose]);
1823
- (0, import_react33.useEffect)(() => {
1887
+ (0, import_react34.useEffect)(() => {
1824
1888
  if (!open) return;
1825
1889
  previouslyFocused.current = document.activeElement;
1826
1890
  surfaceRef.current?.focus();
1827
1891
  return () => previouslyFocused.current?.focus?.();
1828
1892
  }, [open]);
1829
- (0, import_react33.useEffect)(() => {
1893
+ (0, import_react34.useEffect)(() => {
1830
1894
  if (!open) return;
1831
1895
  const previousOverflow = document.body.style.overflow;
1832
1896
  document.body.style.overflow = "hidden";
@@ -1834,7 +1898,7 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
1834
1898
  document.body.style.overflow = previousOverflow;
1835
1899
  };
1836
1900
  }, [open]);
1837
- if (!open) return null;
1901
+ if (!open || typeof document === "undefined") return null;
1838
1902
  const stop = (event) => event.stopPropagation();
1839
1903
  const onSurfaceKeyDown = (event) => {
1840
1904
  if (event.key !== "Tab") return;
@@ -1861,7 +1925,7 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
1861
1925
  first.focus();
1862
1926
  }
1863
1927
  };
1864
- return (
1928
+ return (0, import_react_dom.createPortal)(
1865
1929
  // biome-ignore lint/a11y/useKeyWithClickEvents: ESC handled by a document keydown listener.
1866
1930
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: overlay2, "data-testid": "dialog-overlay", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1867
1931
  "div",
@@ -1880,12 +1944,16 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
1880
1944
  actions3 != null && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: actionsClass, children: actions3 })
1881
1945
  ]
1882
1946
  }
1883
- ) })
1947
+ ) }),
1948
+ document.body
1884
1949
  );
1885
1950
  }
1886
1951
 
1952
+ // src/components/snackbar/index.tsx
1953
+ var import_react_dom2 = require("react-dom");
1954
+
1887
1955
  // src/components/snackbar/use-styles.ts
1888
- var import_react34 = require("react");
1956
+ var import_react35 = require("react");
1889
1957
 
1890
1958
  // src/components/snackbar/use-styles.css.ts
1891
1959
  var closeBtn = "use-styles_closeBtn__ihzsep2";
@@ -1895,7 +1963,7 @@ var root20 = "use-styles_root__ihzsep0";
1895
1963
  // src/components/snackbar/use-styles.ts
1896
1964
  function useStyles24() {
1897
1965
  const { themeClass } = useTheme();
1898
- return (0, import_react34.useMemo)(
1966
+ return (0, import_react35.useMemo)(
1899
1967
  () => ({
1900
1968
  root: [themeClass, root20].filter(Boolean).join(" "),
1901
1969
  message,
@@ -1909,16 +1977,19 @@ function useStyles24() {
1909
1977
  var import_jsx_runtime36 = require("react/jsx-runtime");
1910
1978
  function Snackbar({ open, message: message2, action, onClose }) {
1911
1979
  const { root: root24, message: messageClass, closeBtn: closeBtn2 } = useStyles24();
1912
- if (!open) return null;
1913
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { role: "status", className: root24, children: [
1914
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: messageClass, children: message2 }),
1915
- action,
1916
- onClose && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("button", { type: "button", "aria-label": "Close", className: closeBtn2, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(XIcon, { size: 18 }) })
1917
- ] });
1980
+ if (!open || typeof document === "undefined") return null;
1981
+ return (0, import_react_dom2.createPortal)(
1982
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { role: "status", className: root24, children: [
1983
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: messageClass, children: message2 }),
1984
+ action,
1985
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("button", { type: "button", "aria-label": "Close", className: closeBtn2, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(XIcon, { size: 18 }) })
1986
+ ] }),
1987
+ document.body
1988
+ );
1918
1989
  }
1919
1990
 
1920
1991
  // src/components/table/use-styles.ts
1921
- var import_react35 = require("react");
1992
+ var import_react36 = require("react");
1922
1993
 
1923
1994
  // src/components/table/use-styles.css.ts
1924
1995
  var alignRight = "use-styles_alignRight__1n2cz6i3";
@@ -1929,7 +2000,7 @@ var th = "use-styles_th__1n2cz6i1";
1929
2000
  // src/components/table/use-styles.ts
1930
2001
  function useStyles25({ className }) {
1931
2002
  const { themeClass } = useTheme();
1932
- const root24 = (0, import_react35.useMemo)(
2003
+ const root24 = (0, import_react36.useMemo)(
1933
2004
  () => [themeClass, root21, className].filter(Boolean).join(" "),
1934
2005
  [themeClass, className]
1935
2006
  );
@@ -1955,7 +2026,7 @@ function Table({
1955
2026
  }
1956
2027
 
1957
2028
  // src/components/app-bar/use-styles.ts
1958
- var import_react36 = require("react");
2029
+ var import_react37 = require("react");
1959
2030
 
1960
2031
  // src/components/app-bar/use-styles.css.ts
1961
2032
  var actions2 = "use-styles_actions__1h133nh2";
@@ -1965,7 +2036,7 @@ var root22 = "use-styles_root__1h133nh0";
1965
2036
  // src/components/app-bar/use-styles.ts
1966
2037
  function useStyles26({ className }) {
1967
2038
  const { themeClass } = useTheme();
1968
- const root24 = (0, import_react36.useMemo)(
2039
+ const root24 = (0, import_react37.useMemo)(
1969
2040
  () => [themeClass, root22, className].filter(Boolean).join(" "),
1970
2041
  [themeClass, className]
1971
2042
  );
@@ -1984,7 +2055,7 @@ function AppBar({ brand: brand2, actions: actions3, className, children, ...rest
1984
2055
  }
1985
2056
 
1986
2057
  // src/components/list-item/use-styles.ts
1987
- var import_react37 = require("react");
2058
+ var import_react38 = require("react");
1988
2059
 
1989
2060
  // src/components/list-item/use-styles.css.ts
1990
2061
  var content2 = "use-styles_content__kbreq13";
@@ -1996,7 +2067,7 @@ var trailing = "use-styles_trailing__kbreq14";
1996
2067
  // src/components/list-item/use-styles.ts
1997
2068
  function useStyles27({ selected: selected3, className }) {
1998
2069
  const { themeClass } = useTheme();
1999
- const root24 = (0, import_react37.useMemo)(
2070
+ const root24 = (0, import_react38.useMemo)(
2000
2071
  () => [themeClass, root23, selected3 && selected2, className].filter(Boolean).join(" "),
2001
2072
  [themeClass, selected3, className]
2002
2073
  );
@@ -2189,11 +2260,14 @@ var text = { eyebrow: "typography_text_eyebrow__1wmlzy0", display: "typography_t
2189
2260
  Tooltip,
2190
2261
  TriangleAlertIcon,
2191
2262
  XIcon,
2263
+ colorVars,
2192
2264
  modeNames,
2193
2265
  schemaNames,
2194
2266
  text,
2195
2267
  theme,
2196
2268
  themes,
2269
+ usePrevious,
2197
2270
  useTheme,
2198
2271
  useToggle
2199
2272
  });
2273
+ //# sourceMappingURL=index.cjs.map