@octavius2929-personal/design-system 0.1.0 → 0.3.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 +111 -99
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +27 -16
- package/package.json +13 -7
package/dist/index.cjs
CHANGED
|
@@ -69,6 +69,7 @@ __export(index_exports, {
|
|
|
69
69
|
text: () => text,
|
|
70
70
|
theme: () => vars,
|
|
71
71
|
themes: () => themes,
|
|
72
|
+
usePrevious: () => usePrevious,
|
|
72
73
|
useTheme: () => useTheme,
|
|
73
74
|
useToggle: () => useToggle
|
|
74
75
|
});
|
|
@@ -80,19 +81,29 @@ var schemaNames = ["tinta"];
|
|
|
80
81
|
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
82
|
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)" } };
|
|
82
83
|
|
|
83
|
-
// src/hooks/use-
|
|
84
|
+
// src/hooks/use-previous/index.ts
|
|
84
85
|
var import_react = require("react");
|
|
86
|
+
function usePrevious(value, initial) {
|
|
87
|
+
const ref = (0, import_react.useRef)(initial);
|
|
88
|
+
(0, import_react.useEffect)(() => {
|
|
89
|
+
ref.current = value;
|
|
90
|
+
}, [value]);
|
|
91
|
+
return ref.current;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/hooks/use-toggle/index.ts
|
|
95
|
+
var import_react2 = require("react");
|
|
85
96
|
function useToggle(initial = false) {
|
|
86
|
-
const [on, setOn] = (0,
|
|
87
|
-
const toggle = (0,
|
|
97
|
+
const [on, setOn] = (0, import_react2.useState)(initial);
|
|
98
|
+
const toggle = (0, import_react2.useCallback)(() => setOn((value) => !value), []);
|
|
88
99
|
return [on, toggle, setOn];
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
// src/components/button/use-styles.ts
|
|
92
|
-
var
|
|
103
|
+
var import_react4 = require("react");
|
|
93
104
|
|
|
94
105
|
// src/theme/context/theme-context.tsx
|
|
95
|
-
var
|
|
106
|
+
var import_react3 = require("react");
|
|
96
107
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
97
108
|
var noop = () => {
|
|
98
109
|
};
|
|
@@ -104,15 +115,15 @@ var DEFAULT_VALUE = {
|
|
|
104
115
|
setMode: noop,
|
|
105
116
|
toggleMode: noop
|
|
106
117
|
};
|
|
107
|
-
var ThemeContext = (0,
|
|
118
|
+
var ThemeContext = (0, import_react3.createContext)(null);
|
|
108
119
|
function ThemeProvider({
|
|
109
120
|
children,
|
|
110
121
|
defaultSchema = "tinta",
|
|
111
122
|
defaultMode = "light"
|
|
112
123
|
}) {
|
|
113
|
-
const [schema, setSchema] = (0,
|
|
114
|
-
const [mode, setMode] = (0,
|
|
115
|
-
const value = (0,
|
|
124
|
+
const [schema, setSchema] = (0, import_react3.useState)(defaultSchema);
|
|
125
|
+
const [mode, setMode] = (0, import_react3.useState)(defaultMode);
|
|
126
|
+
const value = (0, import_react3.useMemo)(
|
|
116
127
|
() => ({
|
|
117
128
|
schema,
|
|
118
129
|
mode,
|
|
@@ -126,7 +137,7 @@ function ThemeProvider({
|
|
|
126
137
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, { value, children });
|
|
127
138
|
}
|
|
128
139
|
function useTheme() {
|
|
129
|
-
return (0,
|
|
140
|
+
return (0, import_react3.useContext)(ThemeContext) ?? DEFAULT_VALUE;
|
|
130
141
|
}
|
|
131
142
|
|
|
132
143
|
// src/components/button/use-styles.css.ts
|
|
@@ -147,7 +158,7 @@ function useStyles({
|
|
|
147
158
|
className
|
|
148
159
|
}) {
|
|
149
160
|
const { themeClass } = useTheme();
|
|
150
|
-
const container = (0,
|
|
161
|
+
const container = (0, import_react4.useMemo)(
|
|
151
162
|
() => [
|
|
152
163
|
themeClass,
|
|
153
164
|
root,
|
|
@@ -185,7 +196,7 @@ function Button({
|
|
|
185
196
|
}
|
|
186
197
|
|
|
187
198
|
// src/components/divider/use-styles.ts
|
|
188
|
-
var
|
|
199
|
+
var import_react5 = require("react");
|
|
189
200
|
|
|
190
201
|
// src/components/divider/use-styles.css.ts
|
|
191
202
|
var horizontal = "use-styles_horizontal__1n7v7yj1";
|
|
@@ -198,7 +209,7 @@ var vertical = "use-styles_vertical__1n7v7yj2";
|
|
|
198
209
|
// src/components/divider/use-styles.ts
|
|
199
210
|
function useStyles2({ vertical: vertical2, hasLabel }) {
|
|
200
211
|
const { themeClass } = useTheme();
|
|
201
|
-
const root24 = (0,
|
|
212
|
+
const root24 = (0, import_react5.useMemo)(
|
|
202
213
|
() => [
|
|
203
214
|
themeClass,
|
|
204
215
|
root2,
|
|
@@ -225,7 +236,7 @@ function Divider({ vertical: vertical2, label: label7, ...rest }) {
|
|
|
225
236
|
}
|
|
226
237
|
|
|
227
238
|
// src/components/avatar/use-styles.ts
|
|
228
|
-
var
|
|
239
|
+
var import_react6 = require("react");
|
|
229
240
|
|
|
230
241
|
// src/components/avatar/use-styles.css.ts
|
|
231
242
|
var root3 = "use-styles_root__1mn1rmu0";
|
|
@@ -239,7 +250,7 @@ function useStyles3({
|
|
|
239
250
|
className
|
|
240
251
|
}) {
|
|
241
252
|
const { themeClass } = useTheme();
|
|
242
|
-
const root24 = (0,
|
|
253
|
+
const root24 = (0, import_react6.useMemo)(
|
|
243
254
|
() => [
|
|
244
255
|
themeClass,
|
|
245
256
|
root3,
|
|
@@ -260,7 +271,7 @@ function Avatar({ size: size3, filled, className, children, ...rest }) {
|
|
|
260
271
|
}
|
|
261
272
|
|
|
262
273
|
// src/components/badge/use-styles.ts
|
|
263
|
-
var
|
|
274
|
+
var import_react7 = require("react");
|
|
264
275
|
|
|
265
276
|
// src/components/badge/use-styles.css.ts
|
|
266
277
|
var dot = "use-styles_dot__1wpei6p1";
|
|
@@ -270,11 +281,11 @@ var tone2 = { ink: "use-styles_tone_ink__1wpei6p2", accent: "use-styles_tone_acc
|
|
|
270
281
|
// src/components/badge/use-styles.ts
|
|
271
282
|
function useStyles4({ tone: tone4 = "ink", className }) {
|
|
272
283
|
const { themeClass } = useTheme();
|
|
273
|
-
const root24 = (0,
|
|
284
|
+
const root24 = (0, import_react7.useMemo)(
|
|
274
285
|
() => [themeClass, root4, className].filter(Boolean).join(" "),
|
|
275
286
|
[themeClass, className]
|
|
276
287
|
);
|
|
277
|
-
const dot3 = (0,
|
|
288
|
+
const dot3 = (0, import_react7.useMemo)(() => [dot, tone2[tone4]].join(" "), [tone4]);
|
|
278
289
|
return { root: root24, dot: dot3 };
|
|
279
290
|
}
|
|
280
291
|
|
|
@@ -289,7 +300,7 @@ function Badge({ count, tone: tone4, className, children, ...rest }) {
|
|
|
289
300
|
}
|
|
290
301
|
|
|
291
302
|
// src/components/progress/use-styles.ts
|
|
292
|
-
var
|
|
303
|
+
var import_react8 = require("react");
|
|
293
304
|
|
|
294
305
|
// src/components/progress/use-styles.css.ts
|
|
295
306
|
var bar = "use-styles_bar__kbop7v3";
|
|
@@ -305,7 +316,7 @@ function useStyles5({
|
|
|
305
316
|
}) {
|
|
306
317
|
const { themeClass } = useTheme();
|
|
307
318
|
const indeterminate2 = value === void 0;
|
|
308
|
-
return (0,
|
|
319
|
+
return (0, import_react8.useMemo)(() => {
|
|
309
320
|
const root24 = (...classes) => [themeClass, ...classes, className].filter(Boolean).join(" ");
|
|
310
321
|
if (variant2 === "circular") {
|
|
311
322
|
return { track: "", bar: "", spinner: root24(spinner) };
|
|
@@ -383,7 +394,7 @@ function XIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
383
394
|
}
|
|
384
395
|
|
|
385
396
|
// src/components/chip/use-styles.ts
|
|
386
|
-
var
|
|
397
|
+
var import_react9 = require("react");
|
|
387
398
|
|
|
388
399
|
// src/components/chip/use-styles.css.ts
|
|
389
400
|
var clickable = "use-styles_clickable__1axilf44";
|
|
@@ -399,7 +410,7 @@ function useStyles6({
|
|
|
399
410
|
clickable: clickable2
|
|
400
411
|
}) {
|
|
401
412
|
const { themeClass } = useTheme();
|
|
402
|
-
const root24 = (0,
|
|
413
|
+
const root24 = (0, import_react9.useMemo)(
|
|
403
414
|
() => [
|
|
404
415
|
themeClass,
|
|
405
416
|
root5,
|
|
@@ -449,7 +460,7 @@ function CheckIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
449
460
|
}
|
|
450
461
|
|
|
451
462
|
// src/components/checkbox/use-styles.ts
|
|
452
|
-
var
|
|
463
|
+
var import_react10 = require("react");
|
|
453
464
|
|
|
454
465
|
// src/components/checkbox/use-styles.css.ts
|
|
455
466
|
var box = "use-styles_box__9zoga92";
|
|
@@ -462,11 +473,11 @@ var root6 = "use-styles_root__9zoga90";
|
|
|
462
473
|
// src/components/checkbox/use-styles.ts
|
|
463
474
|
function useStyles7({ checked, disabled: disabled3 }) {
|
|
464
475
|
const { themeClass } = useTheme();
|
|
465
|
-
const root24 = (0,
|
|
476
|
+
const root24 = (0, import_react10.useMemo)(
|
|
466
477
|
() => [themeClass, root6, disabled3 && disabled].filter(Boolean).join(" "),
|
|
467
478
|
[themeClass, disabled3]
|
|
468
479
|
);
|
|
469
|
-
const box2 = (0,
|
|
480
|
+
const box2 = (0, import_react10.useMemo)(
|
|
470
481
|
() => [box, checked && boxChecked].filter(Boolean).join(" "),
|
|
471
482
|
[checked]
|
|
472
483
|
);
|
|
@@ -505,7 +516,7 @@ function Checkbox({
|
|
|
505
516
|
}
|
|
506
517
|
|
|
507
518
|
// src/components/radio/use-styles.ts
|
|
508
|
-
var
|
|
519
|
+
var import_react11 = require("react");
|
|
509
520
|
|
|
510
521
|
// src/components/radio/use-styles.css.ts
|
|
511
522
|
var circle = "use-styles_circle__vy61b43";
|
|
@@ -521,7 +532,7 @@ function useStyles8({
|
|
|
521
532
|
className
|
|
522
533
|
}) {
|
|
523
534
|
const { themeClass } = useTheme();
|
|
524
|
-
const root24 = (0,
|
|
535
|
+
const root24 = (0, import_react11.useMemo)(
|
|
525
536
|
() => [themeClass, root7, disabled3 && disabled2, className].filter(Boolean).join(" "),
|
|
526
537
|
[themeClass, disabled3, className]
|
|
527
538
|
);
|
|
@@ -557,7 +568,7 @@ function Radio({ checked, onChange, label: label7, name, value, disabled: disabl
|
|
|
557
568
|
}
|
|
558
569
|
|
|
559
570
|
// src/components/switch/use-styles.ts
|
|
560
|
-
var
|
|
571
|
+
var import_react12 = require("react");
|
|
561
572
|
|
|
562
573
|
// src/components/switch/use-styles.css.ts
|
|
563
574
|
var input3 = "use-styles_input__1r6kem71";
|
|
@@ -571,7 +582,7 @@ var trackChecked = "use-styles_trackChecked__1r6kem73";
|
|
|
571
582
|
// src/components/switch/use-styles.ts
|
|
572
583
|
function useStyles9({ checked }) {
|
|
573
584
|
const { themeClass } = useTheme();
|
|
574
|
-
return (0,
|
|
585
|
+
return (0, import_react12.useMemo)(
|
|
575
586
|
() => ({
|
|
576
587
|
root: [themeClass, root8].filter(Boolean).join(" "),
|
|
577
588
|
input: input3,
|
|
@@ -609,7 +620,7 @@ function Switch({ checked = false, onChange, label: label7, disabled: disabled3
|
|
|
609
620
|
}
|
|
610
621
|
|
|
611
622
|
// src/components/text-field/index.tsx
|
|
612
|
-
var
|
|
623
|
+
var import_react14 = require("react");
|
|
613
624
|
|
|
614
625
|
// src/components/icons/eye/index.tsx
|
|
615
626
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
@@ -664,7 +675,7 @@ function EyeOffIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
664
675
|
}
|
|
665
676
|
|
|
666
677
|
// src/components/text-field/use-styles.ts
|
|
667
|
-
var
|
|
678
|
+
var import_react13 = require("react");
|
|
668
679
|
|
|
669
680
|
// src/components/text-field/use-styles.css.ts
|
|
670
681
|
var field = "use-styles_field__vat8gv3";
|
|
@@ -683,7 +694,7 @@ var startIcon = "use-styles_startIcon__vat8gva";
|
|
|
683
694
|
// src/components/text-field/use-styles.ts
|
|
684
695
|
function useStyles10({ error, hasStartIcon, hasReveal, className }) {
|
|
685
696
|
const { themeClass } = useTheme();
|
|
686
|
-
return (0,
|
|
697
|
+
return (0, import_react13.useMemo)(() => {
|
|
687
698
|
const root24 = [themeClass, root9].filter(Boolean).join(" ");
|
|
688
699
|
const labelText2 = [labelText, error && labelTextError].filter(Boolean).join(" ");
|
|
689
700
|
const input6 = [
|
|
@@ -721,11 +732,11 @@ function TextField({
|
|
|
721
732
|
id,
|
|
722
733
|
...rest
|
|
723
734
|
}) {
|
|
724
|
-
const [reveal, setReveal] = (0,
|
|
735
|
+
const [reveal, setReveal] = (0, import_react14.useState)(false);
|
|
725
736
|
const isPassword = type === "password";
|
|
726
737
|
const hasReveal = isPassword;
|
|
727
738
|
const effectiveType = isPassword ? reveal ? "text" : "password" : type;
|
|
728
|
-
const autoId = (0,
|
|
739
|
+
const autoId = (0, import_react14.useId)();
|
|
729
740
|
const controlId = id ?? autoId;
|
|
730
741
|
const classes = useStyles10({
|
|
731
742
|
error,
|
|
@@ -783,7 +794,7 @@ function TextField({
|
|
|
783
794
|
}
|
|
784
795
|
|
|
785
796
|
// src/components/icon-button/use-styles.ts
|
|
786
|
-
var
|
|
797
|
+
var import_react15 = require("react");
|
|
787
798
|
|
|
788
799
|
// src/components/icon-button/use-styles.css.ts
|
|
789
800
|
var accent = "use-styles_accent__18np0q02";
|
|
@@ -796,7 +807,7 @@ function useStyles11({
|
|
|
796
807
|
tone: tone4 = "ink"
|
|
797
808
|
}) {
|
|
798
809
|
const { themeClass } = useTheme();
|
|
799
|
-
const root24 = (0,
|
|
810
|
+
const root24 = (0, import_react15.useMemo)(
|
|
800
811
|
() => [themeClass, root10, tone4 === "accent" && accent, active2 && active].filter(Boolean).join(" "),
|
|
801
812
|
[themeClass, active2, tone4]
|
|
802
813
|
);
|
|
@@ -811,7 +822,7 @@ function IconButton({ icon: Icon, active: active2, tone: tone4, title, ...rest }
|
|
|
811
822
|
}
|
|
812
823
|
|
|
813
824
|
// src/components/card/use-styles.ts
|
|
814
|
-
var
|
|
825
|
+
var import_react16 = require("react");
|
|
815
826
|
|
|
816
827
|
// src/components/card/use-styles.css.ts
|
|
817
828
|
var body = "use-styles_body__1fuvd022";
|
|
@@ -822,7 +833,7 @@ var root11 = "use-styles_root__1fuvd020";
|
|
|
822
833
|
// src/components/card/use-styles.ts
|
|
823
834
|
function useStyles12() {
|
|
824
835
|
const { themeClass } = useTheme();
|
|
825
|
-
const root24 = (0,
|
|
836
|
+
const root24 = (0, import_react16.useMemo)(() => `${themeClass} ${root11}`, [themeClass]);
|
|
826
837
|
return { root: root24, header, body, footer };
|
|
827
838
|
}
|
|
828
839
|
|
|
@@ -958,7 +969,7 @@ function TriangleAlertIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
958
969
|
}
|
|
959
970
|
|
|
960
971
|
// src/components/alert/use-styles.ts
|
|
961
|
-
var
|
|
972
|
+
var import_react17 = require("react");
|
|
962
973
|
|
|
963
974
|
// src/components/alert/use-styles.css.ts
|
|
964
975
|
var body2 = "use-styles_body__ivsh6u8";
|
|
@@ -974,7 +985,7 @@ function useStyles13({
|
|
|
974
985
|
className
|
|
975
986
|
}) {
|
|
976
987
|
const { themeClass } = useTheme();
|
|
977
|
-
const root24 = (0,
|
|
988
|
+
const root24 = (0, import_react17.useMemo)(
|
|
978
989
|
() => [themeClass, root12, severity[severity2], className].filter(Boolean).join(" "),
|
|
979
990
|
[themeClass, severity2, className]
|
|
980
991
|
);
|
|
@@ -1015,10 +1026,10 @@ function Alert({
|
|
|
1015
1026
|
}
|
|
1016
1027
|
|
|
1017
1028
|
// src/components/tooltip/index.tsx
|
|
1018
|
-
var
|
|
1029
|
+
var import_react19 = require("react");
|
|
1019
1030
|
|
|
1020
1031
|
// src/components/tooltip/use-styles.ts
|
|
1021
|
-
var
|
|
1032
|
+
var import_react18 = require("react");
|
|
1022
1033
|
|
|
1023
1034
|
// src/components/tooltip/use-styles.css.ts
|
|
1024
1035
|
var bubble = "use-styles_bubble__h9kvh1";
|
|
@@ -1028,11 +1039,11 @@ var wrapper = "use-styles_wrapper__h9kvh0";
|
|
|
1028
1039
|
// src/components/tooltip/use-styles.ts
|
|
1029
1040
|
function useStyles14({ placement: placement2 = "top" }) {
|
|
1030
1041
|
const { themeClass } = useTheme();
|
|
1031
|
-
const wrapper4 = (0,
|
|
1042
|
+
const wrapper4 = (0, import_react18.useMemo)(
|
|
1032
1043
|
() => [themeClass, wrapper].filter(Boolean).join(" "),
|
|
1033
1044
|
[themeClass]
|
|
1034
1045
|
);
|
|
1035
|
-
const bubble2 = (0,
|
|
1046
|
+
const bubble2 = (0, import_react18.useMemo)(
|
|
1036
1047
|
() => [bubble, placement[placement2]].filter(Boolean).join(" "),
|
|
1037
1048
|
[placement2]
|
|
1038
1049
|
);
|
|
@@ -1042,14 +1053,14 @@ function useStyles14({ placement: placement2 = "top" }) {
|
|
|
1042
1053
|
// src/components/tooltip/index.tsx
|
|
1043
1054
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1044
1055
|
function Tooltip({ label: label7, children, placement: placement2 }) {
|
|
1045
|
-
const [open, setOpen] = (0,
|
|
1046
|
-
const tooltipId = (0,
|
|
1056
|
+
const [open, setOpen] = (0, import_react19.useState)(false);
|
|
1057
|
+
const tooltipId = (0, import_react19.useId)();
|
|
1047
1058
|
const { wrapper: wrapper4, bubble: bubble2 } = useStyles14({ placement: placement2 });
|
|
1048
1059
|
const show = () => setOpen(true);
|
|
1049
1060
|
const hide = () => setOpen(false);
|
|
1050
1061
|
const previousDescribedBy = children.props["aria-describedby"];
|
|
1051
1062
|
const describedBy = open ? [previousDescribedBy, tooltipId].filter(Boolean).join(" ") : previousDescribedBy;
|
|
1052
|
-
const trigger2 = (0,
|
|
1063
|
+
const trigger2 = (0, import_react19.cloneElement)(children, { "aria-describedby": describedBy });
|
|
1053
1064
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: wrapper4, onMouseEnter: show, onMouseLeave: hide, onFocus: show, onBlur: hide, children: [
|
|
1054
1065
|
trigger2,
|
|
1055
1066
|
open && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { id: tooltipId, role: "tooltip", className: bubble2, children: label7 })
|
|
@@ -1057,7 +1068,7 @@ function Tooltip({ label: label7, children, placement: placement2 }) {
|
|
|
1057
1068
|
}
|
|
1058
1069
|
|
|
1059
1070
|
// src/components/select/index.tsx
|
|
1060
|
-
var
|
|
1071
|
+
var import_react21 = require("react");
|
|
1061
1072
|
|
|
1062
1073
|
// src/components/icons/chevron-down/index.tsx
|
|
1063
1074
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
@@ -1082,7 +1093,7 @@ function ChevronDownIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
1082
1093
|
}
|
|
1083
1094
|
|
|
1084
1095
|
// src/components/select/use-styles.ts
|
|
1085
|
-
var
|
|
1096
|
+
var import_react20 = require("react");
|
|
1086
1097
|
|
|
1087
1098
|
// src/components/select/use-styles.css.ts
|
|
1088
1099
|
var chevron = "use-styles_chevron__1w1czpb4";
|
|
@@ -1101,7 +1112,7 @@ function useStyles15({
|
|
|
1101
1112
|
open = false
|
|
1102
1113
|
}) {
|
|
1103
1114
|
const { themeClass } = useTheme();
|
|
1104
|
-
return (0,
|
|
1115
|
+
return (0, import_react20.useMemo)(() => {
|
|
1105
1116
|
const chevron3 = [chevron, open && chevronOpen].filter(Boolean).join(" ");
|
|
1106
1117
|
return {
|
|
1107
1118
|
root: [themeClass, root13].filter(Boolean).join(" "),
|
|
@@ -1118,10 +1129,10 @@ function useStyles15({
|
|
|
1118
1129
|
// src/components/select/index.tsx
|
|
1119
1130
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1120
1131
|
function Select({ options, value, onChange, placeholder: placeholder2, label: label7, disabled: disabled3 }) {
|
|
1121
|
-
const [open, setOpen] = (0,
|
|
1122
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
1123
|
-
const rootRef = (0,
|
|
1124
|
-
const baseId = (0,
|
|
1132
|
+
const [open, setOpen] = (0, import_react21.useState)(false);
|
|
1133
|
+
const [activeIndex, setActiveIndex] = (0, import_react21.useState)(0);
|
|
1134
|
+
const rootRef = (0, import_react21.useRef)(null);
|
|
1135
|
+
const baseId = (0, import_react21.useId)();
|
|
1125
1136
|
const labelId = `${baseId}-label`;
|
|
1126
1137
|
const optionId = (index) => `${baseId}-option-${index}`;
|
|
1127
1138
|
const {
|
|
@@ -1133,7 +1144,7 @@ function Select({ options, value, onChange, placeholder: placeholder2, label: la
|
|
|
1133
1144
|
menu: menu2,
|
|
1134
1145
|
optionClass
|
|
1135
1146
|
} = useStyles15({ open });
|
|
1136
|
-
(0,
|
|
1147
|
+
(0, import_react21.useEffect)(() => {
|
|
1137
1148
|
if (!open) return;
|
|
1138
1149
|
const onPointerDown = (event) => {
|
|
1139
1150
|
if (rootRef.current && !rootRef.current.contains(event.target)) {
|
|
@@ -1244,7 +1255,7 @@ function Select({ options, value, onChange, placeholder: placeholder2, label: la
|
|
|
1244
1255
|
}
|
|
1245
1256
|
|
|
1246
1257
|
// src/components/slider/use-styles.ts
|
|
1247
|
-
var
|
|
1258
|
+
var import_react22 = require("react");
|
|
1248
1259
|
|
|
1249
1260
|
// src/components/slider/use-styles.css.ts
|
|
1250
1261
|
var input5 = "use-styles_input__okw59n3";
|
|
@@ -1258,7 +1269,7 @@ var wrapper2 = "use-styles_wrapper__okw59n6";
|
|
|
1258
1269
|
// src/components/slider/use-styles.ts
|
|
1259
1270
|
function useStyles16() {
|
|
1260
1271
|
const { themeClass } = useTheme();
|
|
1261
|
-
return (0,
|
|
1272
|
+
return (0, import_react22.useMemo)(() => {
|
|
1262
1273
|
const root24 = [themeClass, root14].filter(Boolean).join(" ");
|
|
1263
1274
|
return {
|
|
1264
1275
|
wrapper: wrapper2,
|
|
@@ -1314,10 +1325,10 @@ function Slider({
|
|
|
1314
1325
|
}
|
|
1315
1326
|
|
|
1316
1327
|
// src/components/accordion/index.tsx
|
|
1317
|
-
var
|
|
1328
|
+
var import_react24 = require("react");
|
|
1318
1329
|
|
|
1319
1330
|
// src/components/accordion/use-styles.ts
|
|
1320
|
-
var
|
|
1331
|
+
var import_react23 = require("react");
|
|
1321
1332
|
|
|
1322
1333
|
// src/components/accordion/use-styles.css.ts
|
|
1323
1334
|
var chevron2 = "use-styles_chevron__1cjrdh93";
|
|
@@ -1330,7 +1341,7 @@ var root15 = "use-styles_root__1cjrdh90";
|
|
|
1330
1341
|
// src/components/accordion/use-styles.ts
|
|
1331
1342
|
function useStyles17({ className }) {
|
|
1332
1343
|
const { themeClass } = useTheme();
|
|
1333
|
-
return (0,
|
|
1344
|
+
return (0, import_react23.useMemo)(
|
|
1334
1345
|
() => ({
|
|
1335
1346
|
root: [themeClass, root15, className].filter(Boolean).join(" "),
|
|
1336
1347
|
item,
|
|
@@ -1350,7 +1361,7 @@ function Accordion({
|
|
|
1350
1361
|
defaultOpen = [],
|
|
1351
1362
|
className
|
|
1352
1363
|
}) {
|
|
1353
|
-
const [open, setOpen] = (0,
|
|
1364
|
+
const [open, setOpen] = (0, import_react24.useState)(defaultOpen);
|
|
1354
1365
|
const { root: root24, item: item3, header: header3, chevronFor, panel: panel2 } = useStyles17({ className });
|
|
1355
1366
|
const toggle = (id) => {
|
|
1356
1367
|
setOpen((current2) => {
|
|
@@ -1385,7 +1396,7 @@ function Accordion({
|
|
|
1385
1396
|
}
|
|
1386
1397
|
|
|
1387
1398
|
// src/components/breadcrumbs/index.tsx
|
|
1388
|
-
var
|
|
1399
|
+
var import_react26 = require("react");
|
|
1389
1400
|
|
|
1390
1401
|
// src/components/icons/chevron-right/index.tsx
|
|
1391
1402
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
@@ -1410,7 +1421,7 @@ function ChevronRightIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
1410
1421
|
}
|
|
1411
1422
|
|
|
1412
1423
|
// src/components/breadcrumbs/use-styles.ts
|
|
1413
|
-
var
|
|
1424
|
+
var import_react25 = require("react");
|
|
1414
1425
|
|
|
1415
1426
|
// src/components/breadcrumbs/use-styles.css.ts
|
|
1416
1427
|
var crumb = "use-styles_crumb__7u0du61";
|
|
@@ -1421,7 +1432,7 @@ var separator = "use-styles_separator__7u0du63";
|
|
|
1421
1432
|
// src/components/breadcrumbs/use-styles.ts
|
|
1422
1433
|
function useStyles18({ className }) {
|
|
1423
1434
|
const { themeClass } = useTheme();
|
|
1424
|
-
const root24 = (0,
|
|
1435
|
+
const root24 = (0, import_react25.useMemo)(
|
|
1425
1436
|
() => [themeClass, root16, className].filter(Boolean).join(" "),
|
|
1426
1437
|
[themeClass, className]
|
|
1427
1438
|
);
|
|
@@ -1435,7 +1446,7 @@ function Breadcrumbs({ items, className, ...rest }) {
|
|
|
1435
1446
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("nav", { "aria-label": "Breadcrumb", className: root24, ...rest, children: items.map((item3, index) => {
|
|
1436
1447
|
const isLast = index === items.length - 1;
|
|
1437
1448
|
const key = index;
|
|
1438
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react26.Fragment, { children: [
|
|
1439
1450
|
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
1451
|
!isLast && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: separator2, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ChevronRightIcon, { size: 14 }) })
|
|
1441
1452
|
] }, key);
|
|
@@ -1465,7 +1476,7 @@ function ChevronLeftIcon({ size: size3 = 20, strokeWidth = 1.75, ...rest }) {
|
|
|
1465
1476
|
}
|
|
1466
1477
|
|
|
1467
1478
|
// src/components/pagination/use-styles.ts
|
|
1468
|
-
var
|
|
1479
|
+
var import_react27 = require("react");
|
|
1469
1480
|
|
|
1470
1481
|
// src/components/pagination/use-styles.css.ts
|
|
1471
1482
|
var ellipsis = "use-styles_ellipsis__1azgzoh3";
|
|
@@ -1477,7 +1488,7 @@ var root17 = "use-styles_root__1azgzoh0";
|
|
|
1477
1488
|
// src/components/pagination/use-styles.ts
|
|
1478
1489
|
function useStyles19() {
|
|
1479
1490
|
const { themeClass } = useTheme();
|
|
1480
|
-
return (0,
|
|
1491
|
+
return (0, import_react27.useMemo)(
|
|
1481
1492
|
() => ({
|
|
1482
1493
|
root: [themeClass, root17].filter(Boolean).join(" "),
|
|
1483
1494
|
pageBtnFor: (active2) => [pageBtn, active2 && pageActive].filter(Boolean).join(" "),
|
|
@@ -1552,10 +1563,10 @@ function Pagination({ count, page = 1, onChange, siblingCount = 1 }) {
|
|
|
1552
1563
|
}
|
|
1553
1564
|
|
|
1554
1565
|
// src/components/stepper/index.tsx
|
|
1555
|
-
var
|
|
1566
|
+
var import_react29 = require("react");
|
|
1556
1567
|
|
|
1557
1568
|
// src/components/stepper/use-styles.ts
|
|
1558
|
-
var
|
|
1569
|
+
var import_react28 = require("react");
|
|
1559
1570
|
|
|
1560
1571
|
// src/components/stepper/use-styles.css.ts
|
|
1561
1572
|
var connector = "use-styles_connector__79pt4e7";
|
|
@@ -1570,7 +1581,7 @@ var step = "use-styles_step__79pt4e1";
|
|
|
1570
1581
|
// src/components/stepper/use-styles.ts
|
|
1571
1582
|
function useStyles20({ className }) {
|
|
1572
1583
|
const { themeClass } = useTheme();
|
|
1573
|
-
return (0,
|
|
1584
|
+
return (0, import_react28.useMemo)(() => {
|
|
1574
1585
|
const root24 = [themeClass, root18, className].filter(Boolean).join(" ");
|
|
1575
1586
|
const markerFor = (state) => [
|
|
1576
1587
|
marker,
|
|
@@ -1591,7 +1602,7 @@ function Stepper({ steps, active: active2 = 0, className, ...rest }) {
|
|
|
1591
1602
|
const isActive = state === "active";
|
|
1592
1603
|
return (
|
|
1593
1604
|
// biome-ignore lint/suspicious/noArrayIndexKey: steps are a static, ordered list with no stable id.
|
|
1594
|
-
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
1605
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react29.Fragment, { children: [
|
|
1595
1606
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: step2, "aria-current": isActive ? "step" : void 0, children: [
|
|
1596
1607
|
/* @__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
1608
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: labelFor(isActive), children: s.label })
|
|
@@ -1603,7 +1614,7 @@ function Stepper({ steps, active: active2 = 0, className, ...rest }) {
|
|
|
1603
1614
|
}
|
|
1604
1615
|
|
|
1605
1616
|
// src/components/tabs/use-styles.ts
|
|
1606
|
-
var
|
|
1617
|
+
var import_react30 = require("react");
|
|
1607
1618
|
|
|
1608
1619
|
// src/components/tabs/use-styles.css.ts
|
|
1609
1620
|
var root19 = "use-styles_root__1l4m7t40";
|
|
@@ -1613,7 +1624,7 @@ var tabActive = "use-styles_tabActive__1l4m7t42";
|
|
|
1613
1624
|
// src/components/tabs/use-styles.ts
|
|
1614
1625
|
function useStyles21() {
|
|
1615
1626
|
const { themeClass } = useTheme();
|
|
1616
|
-
return (0,
|
|
1627
|
+
return (0, import_react30.useMemo)(() => {
|
|
1617
1628
|
const root24 = [themeClass, root19].filter(Boolean).join(" ");
|
|
1618
1629
|
const tabClass = (active2) => [tab, active2 && tabActive].filter(Boolean).join(" ");
|
|
1619
1630
|
return { root: root24, tab, tabClass };
|
|
@@ -1642,10 +1653,10 @@ function Tabs({ items, value, onChange }) {
|
|
|
1642
1653
|
}
|
|
1643
1654
|
|
|
1644
1655
|
// src/components/menu/index.tsx
|
|
1645
|
-
var
|
|
1656
|
+
var import_react32 = require("react");
|
|
1646
1657
|
|
|
1647
1658
|
// src/components/menu/use-styles.ts
|
|
1648
|
-
var
|
|
1659
|
+
var import_react31 = require("react");
|
|
1649
1660
|
|
|
1650
1661
|
// src/components/menu/use-styles.css.ts
|
|
1651
1662
|
var danger = "use-styles_danger__1uyxaj3";
|
|
@@ -1656,7 +1667,7 @@ var wrapper3 = "use-styles_wrapper__1uyxaj0";
|
|
|
1656
1667
|
// src/components/menu/use-styles.ts
|
|
1657
1668
|
function useStyles22() {
|
|
1658
1669
|
const { themeClass } = useTheme();
|
|
1659
|
-
return (0,
|
|
1670
|
+
return (0, import_react31.useMemo)(
|
|
1660
1671
|
() => ({
|
|
1661
1672
|
wrapper: [themeClass, wrapper3].filter(Boolean).join(" "),
|
|
1662
1673
|
list,
|
|
@@ -1675,10 +1686,10 @@ function assignRef(ref, value) {
|
|
|
1675
1686
|
}
|
|
1676
1687
|
function Menu({ trigger: trigger2, items }) {
|
|
1677
1688
|
const { wrapper: wrapper4, list: list2, item: item3, dangerItem } = useStyles22();
|
|
1678
|
-
const [open, setOpen] = (0,
|
|
1679
|
-
const rootRef = (0,
|
|
1680
|
-
const listRef = (0,
|
|
1681
|
-
const triggerRef = (0,
|
|
1689
|
+
const [open, setOpen] = (0, import_react32.useState)(false);
|
|
1690
|
+
const rootRef = (0, import_react32.useRef)(null);
|
|
1691
|
+
const listRef = (0, import_react32.useRef)(null);
|
|
1692
|
+
const triggerRef = (0, import_react32.useRef)(null);
|
|
1682
1693
|
const getMenuItems = () => Array.from(listRef.current?.querySelectorAll('[role="menuitem"]') ?? []);
|
|
1683
1694
|
const focusItemAt = (index) => {
|
|
1684
1695
|
const menuItems = getMenuItems();
|
|
@@ -1690,7 +1701,7 @@ function Menu({ trigger: trigger2, items }) {
|
|
|
1690
1701
|
setOpen(false);
|
|
1691
1702
|
triggerRef.current?.focus();
|
|
1692
1703
|
};
|
|
1693
|
-
(0,
|
|
1704
|
+
(0, import_react32.useEffect)(() => {
|
|
1694
1705
|
if (!open) return;
|
|
1695
1706
|
listRef.current?.querySelector('[role="menuitem"]')?.focus();
|
|
1696
1707
|
const onDocMouseDown = (event) => {
|
|
@@ -1746,7 +1757,7 @@ function Menu({ trigger: trigger2, items }) {
|
|
|
1746
1757
|
triggerRef.current = node;
|
|
1747
1758
|
assignRef(consumerRef, node);
|
|
1748
1759
|
};
|
|
1749
|
-
const clonedTrigger = (0,
|
|
1760
|
+
const clonedTrigger = (0, import_react32.cloneElement)(trigger2, {
|
|
1750
1761
|
ref: mergedTriggerRef,
|
|
1751
1762
|
"aria-haspopup": "menu",
|
|
1752
1763
|
"aria-expanded": open,
|
|
@@ -1776,10 +1787,10 @@ function Menu({ trigger: trigger2, items }) {
|
|
|
1776
1787
|
}
|
|
1777
1788
|
|
|
1778
1789
|
// src/components/dialog/index.tsx
|
|
1779
|
-
var
|
|
1790
|
+
var import_react34 = require("react");
|
|
1780
1791
|
|
|
1781
1792
|
// src/components/dialog/use-styles.ts
|
|
1782
|
-
var
|
|
1793
|
+
var import_react33 = require("react");
|
|
1783
1794
|
|
|
1784
1795
|
// src/components/dialog/use-styles.css.ts
|
|
1785
1796
|
var actions = "use-styles_actions__5tstu84";
|
|
@@ -1791,7 +1802,7 @@ var titleText2 = "use-styles_titleText__5tstu82";
|
|
|
1791
1802
|
// src/components/dialog/use-styles.ts
|
|
1792
1803
|
function useStyles23() {
|
|
1793
1804
|
const { themeClass } = useTheme();
|
|
1794
|
-
return (0,
|
|
1805
|
+
return (0, import_react33.useMemo)(
|
|
1795
1806
|
() => ({
|
|
1796
1807
|
overlay: [themeClass, overlay].filter(Boolean).join(" "),
|
|
1797
1808
|
surface,
|
|
@@ -1808,11 +1819,11 @@ var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
|
1808
1819
|
var FOCUSABLE = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
1809
1820
|
function Dialog({ open, onClose, title, actions: actions3, children }) {
|
|
1810
1821
|
const { overlay: overlay2, surface: surface2, titleText: titleText3, body: body4, actions: actionsClass } = useStyles23();
|
|
1811
|
-
const surfaceRef = (0,
|
|
1812
|
-
const previouslyFocused = (0,
|
|
1813
|
-
const generatedId = (0,
|
|
1822
|
+
const surfaceRef = (0, import_react34.useRef)(null);
|
|
1823
|
+
const previouslyFocused = (0, import_react34.useRef)(null);
|
|
1824
|
+
const generatedId = (0, import_react34.useId)();
|
|
1814
1825
|
const titleId = title != null ? generatedId : void 0;
|
|
1815
|
-
(0,
|
|
1826
|
+
(0, import_react34.useEffect)(() => {
|
|
1816
1827
|
if (!open) return;
|
|
1817
1828
|
const onKeyDown = (event) => {
|
|
1818
1829
|
if (event.key === "Escape") onClose();
|
|
@@ -1820,13 +1831,13 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
|
|
|
1820
1831
|
document.addEventListener("keydown", onKeyDown);
|
|
1821
1832
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
1822
1833
|
}, [open, onClose]);
|
|
1823
|
-
(0,
|
|
1834
|
+
(0, import_react34.useEffect)(() => {
|
|
1824
1835
|
if (!open) return;
|
|
1825
1836
|
previouslyFocused.current = document.activeElement;
|
|
1826
1837
|
surfaceRef.current?.focus();
|
|
1827
1838
|
return () => previouslyFocused.current?.focus?.();
|
|
1828
1839
|
}, [open]);
|
|
1829
|
-
(0,
|
|
1840
|
+
(0, import_react34.useEffect)(() => {
|
|
1830
1841
|
if (!open) return;
|
|
1831
1842
|
const previousOverflow = document.body.style.overflow;
|
|
1832
1843
|
document.body.style.overflow = "hidden";
|
|
@@ -1885,7 +1896,7 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
|
|
|
1885
1896
|
}
|
|
1886
1897
|
|
|
1887
1898
|
// src/components/snackbar/use-styles.ts
|
|
1888
|
-
var
|
|
1899
|
+
var import_react35 = require("react");
|
|
1889
1900
|
|
|
1890
1901
|
// src/components/snackbar/use-styles.css.ts
|
|
1891
1902
|
var closeBtn = "use-styles_closeBtn__ihzsep2";
|
|
@@ -1895,7 +1906,7 @@ var root20 = "use-styles_root__ihzsep0";
|
|
|
1895
1906
|
// src/components/snackbar/use-styles.ts
|
|
1896
1907
|
function useStyles24() {
|
|
1897
1908
|
const { themeClass } = useTheme();
|
|
1898
|
-
return (0,
|
|
1909
|
+
return (0, import_react35.useMemo)(
|
|
1899
1910
|
() => ({
|
|
1900
1911
|
root: [themeClass, root20].filter(Boolean).join(" "),
|
|
1901
1912
|
message,
|
|
@@ -1918,7 +1929,7 @@ function Snackbar({ open, message: message2, action, onClose }) {
|
|
|
1918
1929
|
}
|
|
1919
1930
|
|
|
1920
1931
|
// src/components/table/use-styles.ts
|
|
1921
|
-
var
|
|
1932
|
+
var import_react36 = require("react");
|
|
1922
1933
|
|
|
1923
1934
|
// src/components/table/use-styles.css.ts
|
|
1924
1935
|
var alignRight = "use-styles_alignRight__1n2cz6i3";
|
|
@@ -1929,7 +1940,7 @@ var th = "use-styles_th__1n2cz6i1";
|
|
|
1929
1940
|
// src/components/table/use-styles.ts
|
|
1930
1941
|
function useStyles25({ className }) {
|
|
1931
1942
|
const { themeClass } = useTheme();
|
|
1932
|
-
const root24 = (0,
|
|
1943
|
+
const root24 = (0, import_react36.useMemo)(
|
|
1933
1944
|
() => [themeClass, root21, className].filter(Boolean).join(" "),
|
|
1934
1945
|
[themeClass, className]
|
|
1935
1946
|
);
|
|
@@ -1955,7 +1966,7 @@ function Table({
|
|
|
1955
1966
|
}
|
|
1956
1967
|
|
|
1957
1968
|
// src/components/app-bar/use-styles.ts
|
|
1958
|
-
var
|
|
1969
|
+
var import_react37 = require("react");
|
|
1959
1970
|
|
|
1960
1971
|
// src/components/app-bar/use-styles.css.ts
|
|
1961
1972
|
var actions2 = "use-styles_actions__1h133nh2";
|
|
@@ -1965,7 +1976,7 @@ var root22 = "use-styles_root__1h133nh0";
|
|
|
1965
1976
|
// src/components/app-bar/use-styles.ts
|
|
1966
1977
|
function useStyles26({ className }) {
|
|
1967
1978
|
const { themeClass } = useTheme();
|
|
1968
|
-
const root24 = (0,
|
|
1979
|
+
const root24 = (0, import_react37.useMemo)(
|
|
1969
1980
|
() => [themeClass, root22, className].filter(Boolean).join(" "),
|
|
1970
1981
|
[themeClass, className]
|
|
1971
1982
|
);
|
|
@@ -1984,7 +1995,7 @@ function AppBar({ brand: brand2, actions: actions3, className, children, ...rest
|
|
|
1984
1995
|
}
|
|
1985
1996
|
|
|
1986
1997
|
// src/components/list-item/use-styles.ts
|
|
1987
|
-
var
|
|
1998
|
+
var import_react38 = require("react");
|
|
1988
1999
|
|
|
1989
2000
|
// src/components/list-item/use-styles.css.ts
|
|
1990
2001
|
var content2 = "use-styles_content__kbreq13";
|
|
@@ -1996,7 +2007,7 @@ var trailing = "use-styles_trailing__kbreq14";
|
|
|
1996
2007
|
// src/components/list-item/use-styles.ts
|
|
1997
2008
|
function useStyles27({ selected: selected3, className }) {
|
|
1998
2009
|
const { themeClass } = useTheme();
|
|
1999
|
-
const root24 = (0,
|
|
2010
|
+
const root24 = (0, import_react38.useMemo)(
|
|
2000
2011
|
() => [themeClass, root23, selected3 && selected2, className].filter(Boolean).join(" "),
|
|
2001
2012
|
[themeClass, selected3, className]
|
|
2002
2013
|
);
|
|
@@ -2194,6 +2205,7 @@ var text = { eyebrow: "typography_text_eyebrow__1wmlzy0", display: "typography_t
|
|
|
2194
2205
|
text,
|
|
2195
2206
|
theme,
|
|
2196
2207
|
themes,
|
|
2208
|
+
usePrevious,
|
|
2197
2209
|
useTheme,
|
|
2198
2210
|
useToggle
|
|
2199
2211
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -156,6 +156,9 @@ declare const themes: Record<SchemaName, Record<Mode, string>>;
|
|
|
156
156
|
declare const schemaNames: readonly SchemaName[];
|
|
157
157
|
declare const modeNames: readonly Mode[];
|
|
158
158
|
|
|
159
|
+
declare function usePrevious<T>(value: T, initial: T): T;
|
|
160
|
+
declare function usePrevious<T>(value: T, initial?: T): T | undefined;
|
|
161
|
+
|
|
159
162
|
declare function useToggle(initial?: boolean): readonly [boolean, () => void, (value: boolean) => void];
|
|
160
163
|
|
|
161
164
|
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
@@ -509,4 +512,4 @@ interface ThemeProviderProps {
|
|
|
509
512
|
declare function ThemeProvider({ children, defaultSchema, defaultMode, }: ThemeProviderProps): react.JSX.Element;
|
|
510
513
|
declare function useTheme(): ThemeContextValue;
|
|
511
514
|
|
|
512
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, modeNames, schemaNames, text, vars as theme, themes, useTheme, useToggle };
|
|
515
|
+
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, modeNames, schemaNames, text, vars as theme, themes, usePrevious, useTheme, useToggle };
|
package/dist/index.d.ts
CHANGED
|
@@ -156,6 +156,9 @@ declare const themes: Record<SchemaName, Record<Mode, string>>;
|
|
|
156
156
|
declare const schemaNames: readonly SchemaName[];
|
|
157
157
|
declare const modeNames: readonly Mode[];
|
|
158
158
|
|
|
159
|
+
declare function usePrevious<T>(value: T, initial: T): T;
|
|
160
|
+
declare function usePrevious<T>(value: T, initial?: T): T | undefined;
|
|
161
|
+
|
|
159
162
|
declare function useToggle(initial?: boolean): readonly [boolean, () => void, (value: boolean) => void];
|
|
160
163
|
|
|
161
164
|
interface IconProps extends SVGProps<SVGSVGElement> {
|
|
@@ -509,4 +512,4 @@ interface ThemeProviderProps {
|
|
|
509
512
|
declare function ThemeProvider({ children, defaultSchema, defaultMode, }: ThemeProviderProps): react.JSX.Element;
|
|
510
513
|
declare function useTheme(): ThemeContextValue;
|
|
511
514
|
|
|
512
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, modeNames, schemaNames, text, vars as theme, themes, useTheme, useToggle };
|
|
515
|
+
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeTone, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant, Card, type CardProps, type CardSectionProps, CheckIcon, Checkbox, type CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Chip, type ChipProps, type ChipTone, CircleCheckIcon, CircleXIcon, type Crumb, Dialog, type DialogProps, Divider, type DividerProps, EyeIcon, EyeOffIcon, type Icon, IconButton, type IconButtonProps, type IconButtonTone, type IconProps, InfoIcon, ListItem, type ListItemProps, Menu, type MenuItemDef, type MenuProps, MinusIcon, type Mode, MoreHorizontalIcon, Pagination, type PaginationProps, PlusIcon, Progress, type ProgressProps, type ProgressVariant, Radio, type RadioProps, type SchemaName, SearchIcon, Select, type SelectOption, type SelectProps, Slider, type SliderProps, Snackbar, type SnackbarProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, type TabItem, Table, type TableColumn, type TableProps, Tabs, type TabsProps, TextField, type TextFieldProps, ThemeProvider, type ThemeProviderProps, Tooltip, type TooltipPlacement, type TooltipProps, TriangleAlertIcon, XIcon, modeNames, schemaNames, text, vars as theme, themes, usePrevious, useTheme, useToggle };
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,16 @@ var schemaNames = ["tinta"];
|
|
|
4
4
|
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" } };
|
|
5
5
|
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)" } };
|
|
6
6
|
|
|
7
|
+
// src/hooks/use-previous/index.ts
|
|
8
|
+
import { useEffect, useRef } from "react";
|
|
9
|
+
function usePrevious(value, initial) {
|
|
10
|
+
const ref = useRef(initial);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
ref.current = value;
|
|
13
|
+
}, [value]);
|
|
14
|
+
return ref.current;
|
|
15
|
+
}
|
|
16
|
+
|
|
7
17
|
// src/hooks/use-toggle/index.ts
|
|
8
18
|
import { useCallback, useState } from "react";
|
|
9
19
|
function useToggle(initial = false) {
|
|
@@ -984,7 +994,7 @@ function Tooltip({ label: label7, children, placement: placement2 }) {
|
|
|
984
994
|
}
|
|
985
995
|
|
|
986
996
|
// src/components/select/index.tsx
|
|
987
|
-
import { useEffect, useId as useId3, useRef, useState as useState5 } from "react";
|
|
997
|
+
import { useEffect as useEffect2, useId as useId3, useRef as useRef2, useState as useState5 } from "react";
|
|
988
998
|
|
|
989
999
|
// src/components/icons/chevron-down/index.tsx
|
|
990
1000
|
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
@@ -1047,7 +1057,7 @@ import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
|
1047
1057
|
function Select({ options, value, onChange, placeholder: placeholder2, label: label7, disabled: disabled3 }) {
|
|
1048
1058
|
const [open, setOpen] = useState5(false);
|
|
1049
1059
|
const [activeIndex, setActiveIndex] = useState5(0);
|
|
1050
|
-
const rootRef =
|
|
1060
|
+
const rootRef = useRef2(null);
|
|
1051
1061
|
const baseId = useId3();
|
|
1052
1062
|
const labelId = `${baseId}-label`;
|
|
1053
1063
|
const optionId = (index) => `${baseId}-option-${index}`;
|
|
@@ -1060,7 +1070,7 @@ function Select({ options, value, onChange, placeholder: placeholder2, label: la
|
|
|
1060
1070
|
menu: menu2,
|
|
1061
1071
|
optionClass
|
|
1062
1072
|
} = useStyles15({ open });
|
|
1063
|
-
|
|
1073
|
+
useEffect2(() => {
|
|
1064
1074
|
if (!open) return;
|
|
1065
1075
|
const onPointerDown = (event) => {
|
|
1066
1076
|
if (rootRef.current && !rootRef.current.contains(event.target)) {
|
|
@@ -1571,8 +1581,8 @@ function Tabs({ items, value, onChange }) {
|
|
|
1571
1581
|
// src/components/menu/index.tsx
|
|
1572
1582
|
import {
|
|
1573
1583
|
cloneElement as cloneElement2,
|
|
1574
|
-
useEffect as
|
|
1575
|
-
useRef as
|
|
1584
|
+
useEffect as useEffect3,
|
|
1585
|
+
useRef as useRef3,
|
|
1576
1586
|
useState as useState7
|
|
1577
1587
|
} from "react";
|
|
1578
1588
|
|
|
@@ -1608,9 +1618,9 @@ function assignRef(ref, value) {
|
|
|
1608
1618
|
function Menu({ trigger: trigger2, items }) {
|
|
1609
1619
|
const { wrapper: wrapper4, list: list2, item: item3, dangerItem } = useStyles22();
|
|
1610
1620
|
const [open, setOpen] = useState7(false);
|
|
1611
|
-
const rootRef =
|
|
1612
|
-
const listRef =
|
|
1613
|
-
const triggerRef =
|
|
1621
|
+
const rootRef = useRef3(null);
|
|
1622
|
+
const listRef = useRef3(null);
|
|
1623
|
+
const triggerRef = useRef3(null);
|
|
1614
1624
|
const getMenuItems = () => Array.from(listRef.current?.querySelectorAll('[role="menuitem"]') ?? []);
|
|
1615
1625
|
const focusItemAt = (index) => {
|
|
1616
1626
|
const menuItems = getMenuItems();
|
|
@@ -1622,7 +1632,7 @@ function Menu({ trigger: trigger2, items }) {
|
|
|
1622
1632
|
setOpen(false);
|
|
1623
1633
|
triggerRef.current?.focus();
|
|
1624
1634
|
};
|
|
1625
|
-
|
|
1635
|
+
useEffect3(() => {
|
|
1626
1636
|
if (!open) return;
|
|
1627
1637
|
listRef.current?.querySelector('[role="menuitem"]')?.focus();
|
|
1628
1638
|
const onDocMouseDown = (event) => {
|
|
@@ -1709,9 +1719,9 @@ function Menu({ trigger: trigger2, items }) {
|
|
|
1709
1719
|
|
|
1710
1720
|
// src/components/dialog/index.tsx
|
|
1711
1721
|
import {
|
|
1712
|
-
useEffect as
|
|
1722
|
+
useEffect as useEffect4,
|
|
1713
1723
|
useId as useId4,
|
|
1714
|
-
useRef as
|
|
1724
|
+
useRef as useRef4
|
|
1715
1725
|
} from "react";
|
|
1716
1726
|
|
|
1717
1727
|
// src/components/dialog/use-styles.ts
|
|
@@ -1744,11 +1754,11 @@ import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
|
1744
1754
|
var FOCUSABLE = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
1745
1755
|
function Dialog({ open, onClose, title, actions: actions3, children }) {
|
|
1746
1756
|
const { overlay: overlay2, surface: surface2, titleText: titleText3, body: body4, actions: actionsClass } = useStyles23();
|
|
1747
|
-
const surfaceRef =
|
|
1748
|
-
const previouslyFocused =
|
|
1757
|
+
const surfaceRef = useRef4(null);
|
|
1758
|
+
const previouslyFocused = useRef4(null);
|
|
1749
1759
|
const generatedId = useId4();
|
|
1750
1760
|
const titleId = title != null ? generatedId : void 0;
|
|
1751
|
-
|
|
1761
|
+
useEffect4(() => {
|
|
1752
1762
|
if (!open) return;
|
|
1753
1763
|
const onKeyDown = (event) => {
|
|
1754
1764
|
if (event.key === "Escape") onClose();
|
|
@@ -1756,13 +1766,13 @@ function Dialog({ open, onClose, title, actions: actions3, children }) {
|
|
|
1756
1766
|
document.addEventListener("keydown", onKeyDown);
|
|
1757
1767
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
1758
1768
|
}, [open, onClose]);
|
|
1759
|
-
|
|
1769
|
+
useEffect4(() => {
|
|
1760
1770
|
if (!open) return;
|
|
1761
1771
|
previouslyFocused.current = document.activeElement;
|
|
1762
1772
|
surfaceRef.current?.focus();
|
|
1763
1773
|
return () => previouslyFocused.current?.focus?.();
|
|
1764
1774
|
}, [open]);
|
|
1765
|
-
|
|
1775
|
+
useEffect4(() => {
|
|
1766
1776
|
if (!open) return;
|
|
1767
1777
|
const previousOverflow = document.body.style.overflow;
|
|
1768
1778
|
document.body.style.overflow = "hidden";
|
|
@@ -2129,6 +2139,7 @@ export {
|
|
|
2129
2139
|
text,
|
|
2130
2140
|
vars as theme,
|
|
2131
2141
|
themes,
|
|
2142
|
+
usePrevious,
|
|
2132
2143
|
useTheme,
|
|
2133
2144
|
useToggle
|
|
2134
2145
|
};
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@octavius2929-personal/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Librería de componentes React con estilos en TypeScript (vanilla-extract) y theming por schema × modo (light/dark/sepia/contrast).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "justinoctavius <justinoctavio2001@gmail.com>",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/proyectos-octavio/design-system.git"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://github.com/
|
|
12
|
-
"bugs": "https://github.com/
|
|
11
|
+
"homepage": "https://github.com/proyectos-octavio/design-system#readme",
|
|
12
|
+
"bugs": "https://github.com/proyectos-octavio/design-system/issues",
|
|
13
13
|
"keywords": [
|
|
14
14
|
"react",
|
|
15
15
|
"components",
|
|
@@ -36,8 +36,13 @@
|
|
|
36
36
|
},
|
|
37
37
|
"./styles.css": "./dist/index.css"
|
|
38
38
|
},
|
|
39
|
-
"sideEffects": [
|
|
40
|
-
|
|
39
|
+
"sideEffects": [
|
|
40
|
+
"**/*.css",
|
|
41
|
+
"**/*.css.ts"
|
|
42
|
+
],
|
|
43
|
+
"files": [
|
|
44
|
+
"dist"
|
|
45
|
+
],
|
|
41
46
|
"publishConfig": {
|
|
42
47
|
"access": "public"
|
|
43
48
|
},
|
|
@@ -52,7 +57,7 @@
|
|
|
52
57
|
"lint:fix": "biome check --write .",
|
|
53
58
|
"storybook": "storybook dev -p 6006",
|
|
54
59
|
"storybook:build": "storybook build",
|
|
55
|
-
"prepublishOnly": "npm run
|
|
60
|
+
"prepublishOnly": "npm run typecheck && npm test && npm run build",
|
|
56
61
|
"prepare": "husky"
|
|
57
62
|
},
|
|
58
63
|
"lint-staged": {
|
|
@@ -85,6 +90,7 @@
|
|
|
85
90
|
"lint-staged": "^15.2.0",
|
|
86
91
|
"react": "^18.3.0",
|
|
87
92
|
"react-dom": "^18.3.0",
|
|
93
|
+
"semantic-release": "^24.0.0",
|
|
88
94
|
"storybook": "^8.6.18",
|
|
89
95
|
"tsup": "^8.0.0",
|
|
90
96
|
"typescript": "^5.5.0",
|