@cytario/design 8.0.0 → 9.1.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.js CHANGED
@@ -1,12 +1,62 @@
1
1
  "use client";
2
2
 
3
- // src/colors.ts
4
- var ColorTeal500 = "#35b7b8";
5
- var ColorPurple700 = "#5c2483";
6
-
7
3
  // src/index.ts
8
4
  import { RouterProvider } from "react-aria-components";
9
5
 
6
+ // src/components/Logo/Logo.tsx
7
+ import { jsx } from "react/jsx-runtime";
8
+ var W = 56;
9
+ var H = 20;
10
+ var paths = {
11
+ c: "M7.043,15.648C7.043,15.744 7.025,15.781 6.949,15.799C6.347,16.046 5.593,16.103 4.859,16.103C1.808,16.103 0,14.002 0,11.279C0,8.479 2.072,6.398 5.179,6.398C6.121,6.398 6.629,6.493 6.949,6.606C7.025,6.644 7.043,6.7 7.043,6.814L7.025,8.497C7.025,8.63 6.949,8.63 6.874,8.612C6.479,8.46 5.989,8.365 5.255,8.365C3.54,8.365 2.335,9.387 2.335,11.203C2.335,13.266 3.823,14.059 5.273,14.059C5.951,14.059 6.535,14.002 6.912,13.87C7.006,13.833 7.043,13.89 7.043,13.965L7.043,15.648Z",
12
+ y: "M9.919,6.588C9.994,6.588 10.051,6.606 10.088,6.701C11.313,10.238 11.953,12.282 12.197,13.208C12.819,11.297 13.479,9.349 14.326,6.701C14.364,6.625 14.42,6.588 14.533,6.588L16.473,6.588C16.586,6.588 16.605,6.644 16.586,6.738C15.23,10.919 13.071,16.185 11.546,19.684C11.508,19.76 11.452,19.817 11.301,19.817L9.238,20C9.125,20 9.099,19.938 9.144,19.849C9.71,18.713 10.427,17.181 11.03,15.744C11.068,15.63 11.086,15.573 11.048,15.44C10.54,14.192 8.732,9.69 7.602,6.72C7.564,6.644 7.62,6.588 7.715,6.588L9.919,6.588Z",
13
+ t: "M22.706,15.61C22.706,15.725 22.688,15.8 22.593,15.838C22.085,16.027 21.614,16.102 20.992,16.102C19.448,16.102 18.525,15.346 18.525,13.473L18.525,8.498L17.338,8.498C17.244,8.48 17.206,8.441 17.206,8.328L17.206,6.738C17.206,6.625 17.244,6.587 17.357,6.587L18.525,6.583C18.543,5.921 18.525,4.912 18.525,4.26C18.543,4.166 18.581,4.109 18.675,4.09L20.674,3.912C20.764,3.904 20.806,3.912 20.806,4.007L20.806,6.583L22.65,6.587C22.744,6.587 22.781,6.625 22.781,6.72L22.781,8.365C22.781,8.46 22.744,8.498 22.65,8.498L20.804,8.498L20.804,12.981C20.804,13.813 21.067,14.211 21.878,14.211C22.122,14.211 22.33,14.193 22.593,14.135C22.65,14.116 22.706,14.135 22.706,14.248L22.706,15.61Z",
14
+ a: "M28.959,11.752C28.676,11.714 28.356,11.695 27.923,11.695C26.435,11.695 25.776,12.186 25.776,13C25.776,13.7 26.265,14.305 27.621,14.305C28.111,14.305 28.544,14.248 28.959,14.079L28.959,11.752ZM31.162,13.984C31.162,14.4 31.162,14.778 31.2,15.176C31.2,15.213 31.2,15.232 31.162,15.252C29.618,15.913 28.526,16.102 27.244,16.102C25.192,16.102 23.553,15.138 23.553,13C23.553,10.995 25.342,9.992 27.791,9.992C28.356,9.992 28.789,10.011 28.959,10.03L28.959,9.803C28.959,9.368 28.714,8.384 27.056,8.384C26.115,8.384 25.286,8.574 24.588,8.914C24.532,8.933 24.438,8.914 24.438,8.801L24.438,7.155C24.438,7.06 24.457,7.022 24.551,6.966C25.361,6.587 26.397,6.397 27.415,6.397C30.032,6.397 31.162,8.044 31.162,10.144L31.162,13.984Z",
15
+ r: "M34.267,6.588C34.381,6.588 34.438,6.625 34.475,6.738C34.569,6.984 34.644,7.458 34.663,7.874C35.304,7.079 36.327,6.398 37.627,6.398C37.739,6.398 37.827,6.453 37.827,6.594L37.827,8.535C37.827,8.63 37.789,8.668 37.658,8.668C36.321,8.63 35.21,9.103 34.776,9.671L34.776,15.762C34.776,15.876 34.72,15.913 34.606,15.913L32.648,15.913C32.516,15.913 32.478,15.856 32.478,15.762C32.478,15.762 32.485,7.369 32.485,6.701C32.485,6.606 32.504,6.588 32.598,6.588L34.267,6.588Z",
16
+ i: "M38.777,6.55C38.777,6.466 38.845,6.398 38.929,6.398C40.114,6.398 41.075,7.362 41.075,8.553L41.075,15.764C41.075,15.877 41.036,15.915 40.905,15.915L38.966,15.915C38.834,15.915 38.777,15.858 38.777,15.745L38.777,6.55Z",
17
+ o: "M47.169,14.138C45.576,14.123 44.297,12.814 44.311,11.214C44.326,9.615 45.629,8.329 47.222,8.344C48.815,8.359 50.094,9.668 50.079,11.268C50.065,12.868 48.761,14.153 47.169,14.138M47.876,6.482C47.119,6.369 46.014,6.446 45.46,6.41C43.518,6.279 42.185,4.377 42.182,2.485C42.181,1.047 41.374,0.235 40.308,0.039C39.63,-0.088 38.97,0.105 38.471,0.501C37.984,0.908 37.658,1.518 37.642,2.21C37.612,3.297 38.236,4.259 39.637,4.556C41.479,4.951 43.056,6.656 42.782,8.591C42.702,9.142 42.392,10.273 42.346,11.04C42.18,13.708 44.321,16.035 47.032,16.093C48.225,16.119 49.332,15.719 50.191,15.02C51.049,14.322 51.682,13.32 51.889,12.138C52.369,9.509 50.569,6.882 47.876,6.482",
18
+ "\xAE": "M54.243,7.684C54.243,7.493 54.104,7.355 53.837,7.355L53.499,7.355L53.499,8.006L53.837,8.006C54.104,8.006 54.243,7.884 54.243,7.684M53.499,8.224L53.499,8.893L53.257,8.893L53.257,7.137L53.837,7.137C54.235,7.137 54.494,7.346 54.494,7.676C54.494,7.937 54.33,8.11 54.088,8.18L54.581,8.893L54.295,8.893L53.845,8.224L53.499,8.224ZM55.212,8.015C55.212,7.207 54.65,6.633 53.837,6.633C53.023,6.633 52.452,7.207 52.452,8.015C52.452,8.832 53.023,9.405 53.837,9.405C54.65,9.405 55.212,8.832 55.212,8.015M52.21,8.015C52.21,7.085 52.894,6.398 53.837,6.398C54.78,6.398 55.463,7.085 55.463,8.015C55.463,8.954 54.78,9.64 53.837,9.64C52.894,9.64 52.21,8.954 52.21,8.015"
19
+ };
20
+ function Logo({
21
+ color,
22
+ highlightColor,
23
+ scale = 1,
24
+ className
25
+ }) {
26
+ const width = W * scale;
27
+ const height = H * scale;
28
+ const style = {
29
+ fill: "var(--logo-fill)",
30
+ ...color && { "--logo-fill": color },
31
+ ...highlightColor && { "--logo-highlight": highlightColor }
32
+ };
33
+ return /* @__PURE__ */ jsx(
34
+ "svg",
35
+ {
36
+ role: "img",
37
+ "aria-label": "Cytario Logo",
38
+ width,
39
+ height,
40
+ viewBox: `0 0 ${W} ${H}`,
41
+ className,
42
+ style,
43
+ children: Object.entries(paths).map(([key, d], i) => /* @__PURE__ */ jsx(
44
+ "path",
45
+ {
46
+ d,
47
+ "aria-hidden": "true",
48
+ style: {
49
+ fill: key === "o" ? "var(--logo-highlight)" : void 0,
50
+ animation: "logo-fade-in 0.4s ease-out both",
51
+ animationDelay: `${i * 0.06}s`
52
+ }
53
+ },
54
+ key
55
+ ))
56
+ }
57
+ );
58
+ }
59
+
10
60
  // src/components/Button/Button.tsx
11
61
  import {
12
62
  Button as AriaButton,
@@ -93,6 +143,7 @@ import {
93
143
  AlignRight,
94
144
  Archive,
95
145
  ArrowDown,
146
+ ArrowLeft,
96
147
  ArrowRight,
97
148
  ArrowUp,
98
149
  ArrowUpRight,
@@ -101,6 +152,7 @@ import {
101
152
  BookmarkCheck,
102
153
  Braces,
103
154
  Building2,
155
+ Calendar,
104
156
  Check,
105
157
  CheckCircle,
106
158
  CheckCircle2,
@@ -150,6 +202,7 @@ import {
150
202
  Mail,
151
203
  MapPin,
152
204
  Maximize,
205
+ Menu,
153
206
  Microscope,
154
207
  Minus,
155
208
  MoreVertical,
@@ -191,6 +244,54 @@ import {
191
244
  ZoomIn,
192
245
  ZoomOut
193
246
  } from "lucide-react";
247
+
248
+ // src/components/Icon/icons/LinkedinIcon.tsx
249
+ import { forwardRef } from "react";
250
+ import { jsx as jsx2 } from "react/jsx-runtime";
251
+ var LinkedinIcon = forwardRef(
252
+ function LinkedinIcon2({ size = 24, className, ...props }, ref) {
253
+ return /* @__PURE__ */ jsx2(
254
+ "svg",
255
+ {
256
+ ref,
257
+ width: size,
258
+ height: size,
259
+ viewBox: "0 0 24 24",
260
+ fill: "currentColor",
261
+ className,
262
+ "aria-hidden": "true",
263
+ focusable: false,
264
+ ...props,
265
+ children: /* @__PURE__ */ jsx2("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.063 2.063 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" })
266
+ }
267
+ );
268
+ }
269
+ );
270
+
271
+ // src/components/Icon/icons/GithubIcon.tsx
272
+ import { forwardRef as forwardRef2 } from "react";
273
+ import { jsx as jsx3 } from "react/jsx-runtime";
274
+ var GithubIcon = forwardRef2(
275
+ function GithubIcon2({ size = 24, className, ...props }, ref) {
276
+ return /* @__PURE__ */ jsx3(
277
+ "svg",
278
+ {
279
+ ref,
280
+ width: size,
281
+ height: size,
282
+ viewBox: "0 0 24 24",
283
+ fill: "currentColor",
284
+ className,
285
+ "aria-hidden": "true",
286
+ focusable: false,
287
+ ...props,
288
+ children: /* @__PURE__ */ jsx3("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })
289
+ }
290
+ );
291
+ }
292
+ );
293
+
294
+ // src/components/Icon/icon-registry.ts
194
295
  var iconRegistry = {
195
296
  AlertCircle,
196
297
  AlertTriangle,
@@ -199,6 +300,7 @@ var iconRegistry = {
199
300
  AlignRight,
200
301
  Archive,
201
302
  ArrowDown,
303
+ ArrowLeft,
202
304
  ArrowRight,
203
305
  ArrowUp,
204
306
  ArrowUpRight,
@@ -207,6 +309,7 @@ var iconRegistry = {
207
309
  BookmarkCheck,
208
310
  Braces,
209
311
  Building2,
312
+ Calendar,
210
313
  Check,
211
314
  CheckCircle,
212
315
  CheckCircle2,
@@ -237,6 +340,7 @@ var iconRegistry = {
237
340
  FolderPlus,
238
341
  FolderTree,
239
342
  Fullscreen,
343
+ Github: GithubIcon,
240
344
  Grid2x2,
241
345
  Grid3x3,
242
346
  Heart,
@@ -250,12 +354,14 @@ var iconRegistry = {
250
354
  Layers2,
251
355
  LayoutDashboard,
252
356
  LayoutGrid,
357
+ Linkedin: LinkedinIcon,
253
358
  List,
254
359
  ListFilter,
255
360
  LogOut,
256
361
  Mail,
257
362
  MapPin,
258
363
  Maximize,
364
+ Menu,
259
365
  Microscope,
260
366
  Minus,
261
367
  MoreVertical,
@@ -299,7 +405,7 @@ var iconRegistry = {
299
405
  };
300
406
 
301
407
  // src/components/Icon/Icon.tsx
302
- import { jsx } from "react/jsx-runtime";
408
+ import { jsx as jsx4 } from "react/jsx-runtime";
303
409
  var sizeMap = {
304
410
  xs: 14,
305
411
  sm: 16,
@@ -314,7 +420,7 @@ function Icon({
314
420
  className
315
421
  }) {
316
422
  const Component = typeof icon === "string" ? iconRegistry[icon] : icon;
317
- return /* @__PURE__ */ jsx(
423
+ return /* @__PURE__ */ jsx4(
318
424
  Component,
319
425
  {
320
426
  size: sizeMap[size],
@@ -328,7 +434,7 @@ function Icon({
328
434
 
329
435
  // src/components/Spinner/Spinner.tsx
330
436
  import { twMerge as twMerge2 } from "tailwind-merge";
331
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
437
+ import { jsx as jsx5, jsxs } from "react/jsx-runtime";
332
438
  function Spinner({
333
439
  size = "md",
334
440
  "aria-label": ariaLabel,
@@ -347,7 +453,7 @@ function Spinner({
347
453
  width: sizeMap[size],
348
454
  height: sizeMap[size],
349
455
  children: [
350
- /* @__PURE__ */ jsx2(
456
+ /* @__PURE__ */ jsx5(
351
457
  "circle",
352
458
  {
353
459
  className: "opacity-25",
@@ -358,7 +464,7 @@ function Spinner({
358
464
  strokeWidth: "4"
359
465
  }
360
466
  ),
361
- /* @__PURE__ */ jsx2(
467
+ /* @__PURE__ */ jsx5(
362
468
  "path",
363
469
  {
364
470
  className: "opacity-75",
@@ -372,7 +478,7 @@ function Spinner({
372
478
  }
373
479
 
374
480
  // src/components/Button/Button.tsx
375
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
481
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
376
482
  var buttonBaseClass = `
377
483
  inline-flex items-center justify-center gap-2 shrink-0 cursor-pointer
378
484
  rounded-full
@@ -402,19 +508,126 @@ function ButtonBase({
402
508
  className
403
509
  );
404
510
  return /* @__PURE__ */ jsxs2(Component, { ...props, isDisabled: isDisabled || isLoading, className: cx, children: [
405
- isLoading && /* @__PURE__ */ jsx3(Spinner, { size }),
406
- !isLoading && iconLeft && /* @__PURE__ */ jsx3(Icon, { icon: iconLeft, size }),
511
+ isLoading && /* @__PURE__ */ jsx6(Spinner, { size }),
512
+ !isLoading && iconLeft && /* @__PURE__ */ jsx6(Icon, { icon: iconLeft, size }),
407
513
  children,
408
- !isLoading && iconRight && /* @__PURE__ */ jsx3(Icon, { icon: iconRight, size })
514
+ !isLoading && iconRight && /* @__PURE__ */ jsx6(Icon, { icon: iconRight, size })
409
515
  ] });
410
516
  }
411
517
  function Button(props) {
412
- return /* @__PURE__ */ jsx3(ButtonBase, { as: AriaButton, ...props });
518
+ return /* @__PURE__ */ jsx6(ButtonBase, { as: AriaButton, ...props });
413
519
  }
414
520
  function ButtonLink(props) {
415
- return /* @__PURE__ */ jsx3(ButtonBase, { as: AriaLink, ...props });
521
+ return /* @__PURE__ */ jsx6(ButtonBase, { as: AriaLink, ...props });
416
522
  }
417
523
 
524
+ // src/components/Heading/Heading.tsx
525
+ import { forwardRef as forwardRef3 } from "react";
526
+ import { twMerge as twMerge4 } from "tailwind-merge";
527
+ import { jsx as jsx7 } from "react/jsx-runtime";
528
+ var sizeMap2 = {
529
+ h1: "text-4xl sm:text-5xl leading-tight font-bold",
530
+ h2: "text-2xl sm:text-3xl leading-tight font-bold",
531
+ h3: "text-lg sm:text-xl leading-snug font-bold",
532
+ h4: "text-base sm:text-lg font-semibold",
533
+ h5: "text-sm sm:text-base font-semibold",
534
+ h6: "text-sm font-semibold",
535
+ hero: "text-4xl sm:text-5xl lg:text-6xl leading-tight font-bold"
536
+ };
537
+ var Heading = forwardRef3(
538
+ function Heading2({ as: Tag2 = "h2", size, className, children, ...rest }, ref) {
539
+ const resolvedSize = size ?? Tag2;
540
+ const cx = twMerge4("text-inherit mb-4", sizeMap2[resolvedSize], className);
541
+ return /* @__PURE__ */ jsx7(Tag2, { ref, className: cx, ...rest, children });
542
+ }
543
+ );
544
+ var H1 = forwardRef3(
545
+ function H12(props, ref) {
546
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h1" });
547
+ }
548
+ );
549
+ var H2 = forwardRef3(
550
+ function H22(props, ref) {
551
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h2" });
552
+ }
553
+ );
554
+ var H3 = forwardRef3(
555
+ function H32(props, ref) {
556
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h3" });
557
+ }
558
+ );
559
+ var H4 = forwardRef3(
560
+ function H42(props, ref) {
561
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h4" });
562
+ }
563
+ );
564
+ var H5 = forwardRef3(
565
+ function H52(props, ref) {
566
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h5" });
567
+ }
568
+ );
569
+ var H6 = forwardRef3(
570
+ function H62(props, ref) {
571
+ return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h6" });
572
+ }
573
+ );
574
+
575
+ // src/components/Prose/Prose.tsx
576
+ import { forwardRef as forwardRef4 } from "react";
577
+ import { twMerge as twMerge5 } from "tailwind-merge";
578
+ import { jsx as jsx8 } from "react/jsx-runtime";
579
+ var sizeClasses = {
580
+ sm: "prose-sm",
581
+ default: "prose",
582
+ lg: "prose-lg",
583
+ xl: "prose-xl"
584
+ };
585
+ var Prose = forwardRef4(function Prose2({ size = "default", invert = false, className, children, ...rest }, ref) {
586
+ return /* @__PURE__ */ jsx8(
587
+ "div",
588
+ {
589
+ ref,
590
+ className: twMerge5(
591
+ "prose",
592
+ sizeClasses[size],
593
+ invert && "prose-invert",
594
+ "max-w-none",
595
+ className
596
+ ),
597
+ ...rest,
598
+ children
599
+ }
600
+ );
601
+ });
602
+
603
+ // src/components/Description/Description.tsx
604
+ import { forwardRef as forwardRef5 } from "react";
605
+ import { twMerge as twMerge6 } from "tailwind-merge";
606
+ import { jsx as jsx9 } from "react/jsx-runtime";
607
+ var sizeClasses2 = {
608
+ sm: "text-sm md:text-base",
609
+ md: "text-base md:text-lg",
610
+ lg: "text-lg md:text-xl",
611
+ xl: "text-xl md:text-2xl"
612
+ };
613
+ var Description = forwardRef5(
614
+ function Description2({ size = "md", className, children, ...rest }, ref) {
615
+ return /* @__PURE__ */ jsx9(
616
+ "p",
617
+ {
618
+ ref,
619
+ className: twMerge6(
620
+ "text-pretty text-muted-foreground mb-4",
621
+ sizeClasses2[size],
622
+ className
623
+ ),
624
+ ...rest,
625
+ children
626
+ }
627
+ );
628
+ }
629
+ );
630
+
418
631
  // src/components/Tooltip/Tooltip.tsx
419
632
  import {
420
633
  useEffect,
@@ -423,7 +636,7 @@ import {
423
636
  useState
424
637
  } from "react";
425
638
  import { createPortal } from "react-dom";
426
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
639
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
427
640
  var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
428
641
  var offsetThreshold = 5;
429
642
  var tooltipDelay = 500;
@@ -516,7 +729,7 @@ function Tooltip({ content, children }) {
516
729
  if (timerRef.current) clearTimeout(timerRef.current);
517
730
  };
518
731
  }, []);
519
- const tooltipContent = isVisible && content != null ? /* @__PURE__ */ jsx4(
732
+ const tooltipContent = isVisible && content != null ? /* @__PURE__ */ jsx10(
520
733
  "div",
521
734
  {
522
735
  ref: tooltipRef,
@@ -636,7 +849,7 @@ function useOverflowDetection(ref) {
636
849
  }
637
850
 
638
851
  // src/components/TruncatedText/TruncatedText.tsx
639
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
852
+ import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
640
853
  var spanCx = "truncate overflow-hidden whitespace-nowrap block min-w-0 w-full";
641
854
  var copyCx = "hover:bg-accent transition-colors rounded cursor-pointer";
642
855
  var leftStyle = { direction: "rtl", textAlign: "left" };
@@ -649,7 +862,7 @@ var handleCopyKeyDown = (handleClick) => (e) => {
649
862
  handleClick();
650
863
  }
651
864
  };
652
- var CopiedOverlay = () => /* @__PURE__ */ jsx5(
865
+ var CopiedOverlay = () => /* @__PURE__ */ jsx11(
653
866
  "span",
654
867
  {
655
868
  role: "status",
@@ -665,7 +878,7 @@ var RightEllipsis = ({ children, copyValue }) => {
665
878
  const isCopyable = copyValue != null;
666
879
  const baseCx = isCopyable ? `${spanCx} ${copyCx} relative` : spanCx;
667
880
  const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
668
- return /* @__PURE__ */ jsx5(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
881
+ return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
669
882
  "span",
670
883
  {
671
884
  ref,
@@ -677,7 +890,7 @@ var RightEllipsis = ({ children, copyValue }) => {
677
890
  tabIndex: isCopyable ? 0 : void 0,
678
891
  children: [
679
892
  children,
680
- isCopied && /* @__PURE__ */ jsx5(CopiedOverlay, {})
893
+ isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
681
894
  ]
682
895
  }
683
896
  ) });
@@ -689,7 +902,7 @@ var LeftEllipsis = ({ children, copyValue }) => {
689
902
  const isCopyable = copyValue != null;
690
903
  const baseCx = isCopyable ? `${spanCx} ${copyCx} relative` : spanCx;
691
904
  const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
692
- return /* @__PURE__ */ jsx5(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
905
+ return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
693
906
  "span",
694
907
  {
695
908
  ref,
@@ -701,8 +914,8 @@ var LeftEllipsis = ({ children, copyValue }) => {
701
914
  role: isCopyable ? "button" : void 0,
702
915
  tabIndex: isCopyable ? 0 : void 0,
703
916
  children: [
704
- /* @__PURE__ */ jsx5("bdi", { children }),
705
- isCopied && /* @__PURE__ */ jsx5(CopiedOverlay, {})
917
+ /* @__PURE__ */ jsx11("bdi", { children }),
918
+ isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
706
919
  ]
707
920
  }
708
921
  ) });
@@ -716,7 +929,7 @@ var MiddleEllipsisString = ({ text, copyValue }) => {
716
929
  const isCopyable = copyValue != null;
717
930
  const baseCx = isCopyable ? `${middleCx} ${copyCx} relative` : middleCx;
718
931
  const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
719
- return /* @__PURE__ */ jsx5(Tooltip, { content: isTruncated ? text : null, children: /* @__PURE__ */ jsxs4(
932
+ return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? text : null, children: /* @__PURE__ */ jsxs4(
720
933
  "span",
721
934
  {
722
935
  ref,
@@ -729,16 +942,16 @@ var MiddleEllipsisString = ({ text, copyValue }) => {
729
942
  tabIndex: isCopyable ? 0 : void 0,
730
943
  children: [
731
944
  displayed,
732
- isCopied && /* @__PURE__ */ jsx5(CopiedOverlay, {})
945
+ isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
733
946
  ]
734
947
  }
735
948
  ) });
736
949
  };
737
950
  var TruncatedText = ({ children, ellipsis = "right", copyValue }) => {
738
- if (ellipsis === "left") return /* @__PURE__ */ jsx5(LeftEllipsis, { copyValue, children });
951
+ if (ellipsis === "left") return /* @__PURE__ */ jsx11(LeftEllipsis, { copyValue, children });
739
952
  if (ellipsis === "middle" && typeof children === "string")
740
- return /* @__PURE__ */ jsx5(MiddleEllipsisString, { text: children, copyValue });
741
- return /* @__PURE__ */ jsx5(RightEllipsis, { copyValue, children });
953
+ return /* @__PURE__ */ jsx11(MiddleEllipsisString, { text: children, copyValue });
954
+ return /* @__PURE__ */ jsx11(RightEllipsis, { copyValue, children });
742
955
  };
743
956
 
744
957
  // src/components/IconButton/IconButton.tsx
@@ -747,8 +960,8 @@ import {
747
960
  Link as AriaLink2,
748
961
  ToggleButton as AriaToggleButton
749
962
  } from "react-aria-components";
750
- import { twMerge as twMerge4 } from "tailwind-merge";
751
- import { jsx as jsx6 } from "react/jsx-runtime";
963
+ import { twMerge as twMerge7 } from "tailwind-merge";
964
+ import { jsx as jsx12 } from "react/jsx-runtime";
752
965
  var squareSizeStyles = {
753
966
  xs: "h-7 w-7",
754
967
  // 28px
@@ -771,7 +984,7 @@ function IconButtonBase({
771
984
  ref,
772
985
  ...props
773
986
  }) {
774
- const cx = twMerge4(
987
+ const cx = twMerge7(
775
988
  buttonBaseClass,
776
989
  isLoading ? "pointer-events-none" : "",
777
990
  variantStyles[variant],
@@ -780,7 +993,7 @@ function IconButtonBase({
780
993
  squareSizeStyles[size],
781
994
  className
782
995
  );
783
- return /* @__PURE__ */ jsx6(Tooltip, { content: label, children: /* @__PURE__ */ jsx6(
996
+ return /* @__PURE__ */ jsx12(Tooltip, { content: label, children: /* @__PURE__ */ jsx12(
784
997
  Component,
785
998
  {
786
999
  ...props,
@@ -788,18 +1001,18 @@ function IconButtonBase({
788
1001
  "aria-label": label,
789
1002
  isDisabled: isDisabled || isLoading,
790
1003
  className: cx,
791
- children: isLoading ? /* @__PURE__ */ jsx6(Spinner, { size }) : /* @__PURE__ */ jsx6(Icon, { icon, size })
1004
+ children: isLoading ? /* @__PURE__ */ jsx12(Spinner, { size }) : /* @__PURE__ */ jsx12(Icon, { icon, size })
792
1005
  }
793
1006
  ) });
794
1007
  }
795
1008
  function IconButton(props) {
796
- return /* @__PURE__ */ jsx6(IconButtonBase, { as: AriaButton2, ...props });
1009
+ return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaButton2, ...props });
797
1010
  }
798
1011
  function IconButtonLink(props) {
799
- return /* @__PURE__ */ jsx6(IconButtonBase, { as: AriaLink2, ...props });
1012
+ return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaLink2, ...props });
800
1013
  }
801
1014
  function IconButtonToggle(props) {
802
- return /* @__PURE__ */ jsx6(IconButtonBase, { as: AriaToggleButton, ...props });
1015
+ return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaToggleButton, ...props });
803
1016
  }
804
1017
 
805
1018
  // src/components/Form/Input/Input.tsx
@@ -808,13 +1021,13 @@ import {
808
1021
  Input as AriaInput,
809
1022
  Text
810
1023
  } from "react-aria-components";
811
- import { twMerge as twMerge5 } from "tailwind-merge";
1024
+ import { twMerge as twMerge8 } from "tailwind-merge";
812
1025
 
813
1026
  // src/components/Form/Label/Label.tsx
814
1027
  import {
815
1028
  Label as AriaLabel
816
1029
  } from "react-aria-components";
817
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
1030
+ import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
818
1031
  function Label({ isRequired, children, className, ...props }) {
819
1032
  return /* @__PURE__ */ jsxs5(
820
1033
  AriaLabel,
@@ -828,7 +1041,7 @@ function Label({ isRequired, children, className, ...props }) {
828
1041
  ].filter(Boolean).join(" "),
829
1042
  children: [
830
1043
  children,
831
- isRequired && /* @__PURE__ */ jsx7(
1044
+ isRequired && /* @__PURE__ */ jsx13(
832
1045
  "span",
833
1046
  {
834
1047
  "aria-hidden": "true",
@@ -842,7 +1055,7 @@ function Label({ isRequired, children, className, ...props }) {
842
1055
  }
843
1056
 
844
1057
  // src/components/Form/Input/Input.tsx
845
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1058
+ import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
846
1059
  var alignClasses = {
847
1060
  left: "text-left",
848
1061
  center: "text-center",
@@ -875,13 +1088,13 @@ function Input({
875
1088
  isDisabled,
876
1089
  isRequired,
877
1090
  isInvalid,
878
- className: twMerge5("flex w-full flex-col gap-1", className),
1091
+ className: twMerge8("flex w-full flex-col gap-1", className),
879
1092
  children: [
880
- label && /* @__PURE__ */ jsx8(Label, { isRequired, children: label }),
1093
+ label && /* @__PURE__ */ jsx14(Label, { isRequired, children: label }),
881
1094
  prefix ? /* @__PURE__ */ jsxs6(
882
1095
  "div",
883
1096
  {
884
- className: twMerge5(
1097
+ className: twMerge8(
885
1098
  "flex items-center overflow-hidden",
886
1099
  radiusClass,
887
1100
  "border",
@@ -892,10 +1105,10 @@ function Input({
892
1105
  isDisabled && "opacity-50 pointer-events-none"
893
1106
  ),
894
1107
  children: [
895
- /* @__PURE__ */ jsx8(
1108
+ /* @__PURE__ */ jsx14(
896
1109
  "span",
897
1110
  {
898
- className: twMerge5(
1111
+ className: twMerge8(
899
1112
  "self-stretch flex items-center shrink-0 select-none",
900
1113
  "bg-card",
901
1114
  "border-r border-r-border",
@@ -905,11 +1118,11 @@ function Input({
905
1118
  children: prefix
906
1119
  }
907
1120
  ),
908
- /* @__PURE__ */ jsx8(
1121
+ /* @__PURE__ */ jsx14(
909
1122
  AriaInput,
910
1123
  {
911
1124
  placeholder,
912
- className: twMerge5(
1125
+ className: twMerge8(
913
1126
  "w-full bg-transparent",
914
1127
  sizeStyles[size],
915
1128
  alignClasses[align],
@@ -921,11 +1134,11 @@ function Input({
921
1134
  )
922
1135
  ]
923
1136
  }
924
- ) : /* @__PURE__ */ jsx8(
1137
+ ) : /* @__PURE__ */ jsx14(
925
1138
  AriaInput,
926
1139
  {
927
1140
  placeholder,
928
- className: twMerge5(
1141
+ className: twMerge8(
929
1142
  "w-full",
930
1143
  sizeStyles[size],
931
1144
  alignClasses[align],
@@ -941,8 +1154,8 @@ function Input({
941
1154
  )
942
1155
  }
943
1156
  ),
944
- description && /* @__PURE__ */ jsx8(Text, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
945
- isInvalid && /* @__PURE__ */ jsx8(
1157
+ description && /* @__PURE__ */ jsx14(Text, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
1158
+ isInvalid && /* @__PURE__ */ jsx14(
946
1159
  Text,
947
1160
  {
948
1161
  slot: "errorMessage",
@@ -957,11 +1170,11 @@ function Input({
957
1170
  }
958
1171
 
959
1172
  // src/components/Form/InputPassword/InputPassword.tsx
960
- import { forwardRef, useId, useState as useState5 } from "react";
1173
+ import { forwardRef as forwardRef6, useId, useState as useState5 } from "react";
961
1174
  import { Eye as Eye2, EyeOff as EyeOff2 } from "lucide-react";
962
- import { twMerge as twMerge6 } from "tailwind-merge";
963
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
964
- var InputPassword = forwardRef(
1175
+ import { twMerge as twMerge9 } from "tailwind-merge";
1176
+ import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
1177
+ var InputPassword = forwardRef6(
965
1178
  function InputPassword2({
966
1179
  label,
967
1180
  description,
@@ -986,7 +1199,7 @@ var InputPassword = forwardRef(
986
1199
  const errId = isInvalid ? `${inputId}-error` : void 0;
987
1200
  const describedBy = [descId, errId, ariaDescribedByProp].filter(Boolean).join(" ") || void 0;
988
1201
  const toggleDisabled = isToggleDisabled ?? isDisabled;
989
- return /* @__PURE__ */ jsxs7("div", { className: twMerge6("flex w-full flex-col gap-1", className), children: [
1202
+ return /* @__PURE__ */ jsxs7("div", { className: twMerge9("flex w-full flex-col gap-1", className), children: [
990
1203
  label && /* @__PURE__ */ jsxs7(
991
1204
  "label",
992
1205
  {
@@ -994,14 +1207,14 @@ var InputPassword = forwardRef(
994
1207
  className: "text-sm font-medium text-foreground",
995
1208
  children: [
996
1209
  label,
997
- isRequired && /* @__PURE__ */ jsx9("span", { "aria-hidden": "true", className: "ml-0.5 text-destructive", children: "*" })
1210
+ isRequired && /* @__PURE__ */ jsx15("span", { "aria-hidden": "true", className: "ml-0.5 text-destructive", children: "*" })
998
1211
  ]
999
1212
  }
1000
1213
  ),
1001
1214
  /* @__PURE__ */ jsxs7(
1002
1215
  "div",
1003
1216
  {
1004
- className: twMerge6(
1217
+ className: twMerge9(
1005
1218
  "flex items-center overflow-hidden rounded-md border bg-background",
1006
1219
  "outline-none transition-colors",
1007
1220
  isInvalid ? "border-destructive-border" : "border-border",
@@ -1009,7 +1222,7 @@ var InputPassword = forwardRef(
1009
1222
  isDisabled && "opacity-50 pointer-events-none"
1010
1223
  ),
1011
1224
  children: [
1012
- /* @__PURE__ */ jsx9(
1225
+ /* @__PURE__ */ jsx15(
1013
1226
  "input",
1014
1227
  {
1015
1228
  ...inputProps,
@@ -1020,7 +1233,7 @@ var InputPassword = forwardRef(
1020
1233
  disabled: isDisabled,
1021
1234
  "aria-invalid": isInvalid || ariaInvalidProp,
1022
1235
  "aria-describedby": describedBy,
1023
- className: twMerge6(
1236
+ className: twMerge9(
1024
1237
  "w-full bg-transparent text-foreground",
1025
1238
  "placeholder:text-muted-foreground",
1026
1239
  "outline-none border-none",
@@ -1028,7 +1241,7 @@ var InputPassword = forwardRef(
1028
1241
  )
1029
1242
  }
1030
1243
  ),
1031
- /* @__PURE__ */ jsx9(
1244
+ /* @__PURE__ */ jsx15(
1032
1245
  "button",
1033
1246
  {
1034
1247
  type: "button",
@@ -1036,20 +1249,20 @@ var InputPassword = forwardRef(
1036
1249
  disabled: toggleDisabled,
1037
1250
  tabIndex: toggleDisabled ? -1 : void 0,
1038
1251
  onClick: () => setVisible((v) => !v),
1039
- className: twMerge6(
1252
+ className: twMerge9(
1040
1253
  "flex items-center justify-center shrink-0 self-stretch px-3 cursor-pointer",
1041
1254
  "text-muted-foreground hover:text-foreground transition-colors",
1042
1255
  "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",
1043
1256
  "disabled:cursor-not-allowed disabled:opacity-50"
1044
1257
  ),
1045
- children: /* @__PURE__ */ jsx9(Icon, { icon: visible ? EyeOff2 : Eye2, size: "sm" })
1258
+ children: /* @__PURE__ */ jsx15(Icon, { icon: visible ? EyeOff2 : Eye2, size: "sm" })
1046
1259
  }
1047
1260
  )
1048
1261
  ]
1049
1262
  }
1050
1263
  ),
1051
- description && /* @__PURE__ */ jsx9("p", { id: descId, className: "text-sm text-muted-foreground", children: description }),
1052
- isInvalid && /* @__PURE__ */ jsx9("p", { id: errId, role: "alert", className: "text-sm text-destructive", children: errorMessage })
1264
+ description && /* @__PURE__ */ jsx15("p", { id: descId, className: "text-sm text-muted-foreground", children: description }),
1265
+ isInvalid && /* @__PURE__ */ jsx15("p", { id: errId, role: "alert", className: "text-sm text-destructive", children: errorMessage })
1053
1266
  ] });
1054
1267
  }
1055
1268
  );
@@ -1065,8 +1278,8 @@ import {
1065
1278
  SelectValue,
1066
1279
  Text as Text2
1067
1280
  } from "react-aria-components";
1068
- import { twMerge as twMerge7 } from "tailwind-merge";
1069
- import { Fragment, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
1281
+ import { twMerge as twMerge10 } from "tailwind-merge";
1282
+ import { Fragment, jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1070
1283
  function Select({
1071
1284
  label,
1072
1285
  items,
@@ -1088,14 +1301,14 @@ function Select({
1088
1301
  isDisabled,
1089
1302
  isRequired,
1090
1303
  isInvalid: hasError,
1091
- className: twMerge7("flex flex-col gap-1", className),
1304
+ className: twMerge10("flex flex-col gap-1", className),
1092
1305
  children: [
1093
- label && /* @__PURE__ */ jsx10(Label, { isRequired, children: label }),
1306
+ label && /* @__PURE__ */ jsx16(Label, { isRequired, children: label }),
1094
1307
  /* @__PURE__ */ jsxs8(
1095
1308
  Button2,
1096
1309
  {
1097
1310
  "aria-required": isRequired || void 0,
1098
- className: twMerge7(
1311
+ className: twMerge10(
1099
1312
  `
1100
1313
  inline-flex items-center justify-between
1101
1314
  w-full rounded-md
@@ -1109,10 +1322,10 @@ function Select({
1109
1322
  hasError ? "border-destructive-border" : "border-border"
1110
1323
  ),
1111
1324
  children: [
1112
- /* @__PURE__ */ jsx10(
1325
+ /* @__PURE__ */ jsx16(
1113
1326
  SelectValue,
1114
1327
  {
1115
- className: twMerge7(
1328
+ className: twMerge10(
1116
1329
  renderItem ? "min-w-0" : "truncate",
1117
1330
  "data-placeholder:text-muted-foreground"
1118
1331
  ),
@@ -1123,11 +1336,11 @@ function Select({
1123
1336
  }
1124
1337
  }
1125
1338
  ),
1126
- /* @__PURE__ */ jsx10(
1339
+ /* @__PURE__ */ jsx16(
1127
1340
  ChevronDown2,
1128
1341
  {
1129
1342
  "aria-hidden": true,
1130
- className: twMerge7(
1343
+ className: twMerge10(
1131
1344
  "shrink-0 text-muted-foreground",
1132
1345
  size === "sm" ? "h-3.5 w-3.5" : "h-4 w-4"
1133
1346
  )
@@ -1136,8 +1349,8 @@ function Select({
1136
1349
  ]
1137
1350
  }
1138
1351
  ),
1139
- description && /* @__PURE__ */ jsx10(Text2, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
1140
- hasError && /* @__PURE__ */ jsx10(
1352
+ description && /* @__PURE__ */ jsx16(Text2, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
1353
+ hasError && /* @__PURE__ */ jsx16(
1141
1354
  Text2,
1142
1355
  {
1143
1356
  slot: "errorMessage",
@@ -1146,10 +1359,10 @@ function Select({
1146
1359
  children: errorMessage
1147
1360
  }
1148
1361
  ),
1149
- /* @__PURE__ */ jsx10(
1362
+ /* @__PURE__ */ jsx16(
1150
1363
  Popover,
1151
1364
  {
1152
- className: twMerge7(
1365
+ className: twMerge10(
1153
1366
  "w-(--trigger-width)",
1154
1367
  "rounded-md",
1155
1368
  "border border-border",
@@ -1159,12 +1372,12 @@ function Select({
1159
1372
  "entering:animate-in entering:fade-in",
1160
1373
  "exiting:animate-out exiting:fade-out"
1161
1374
  ),
1162
- children: /* @__PURE__ */ jsx10(ListBox, { className: "p-1 outline-none", items, children: (item) => /* @__PURE__ */ jsx10(
1375
+ children: /* @__PURE__ */ jsx16(ListBox, { className: "p-1 outline-none", items, children: (item) => /* @__PURE__ */ jsx16(
1163
1376
  ListBoxItem,
1164
1377
  {
1165
1378
  id: item.id,
1166
1379
  textValue: item.name,
1167
- className: twMerge7(
1380
+ className: twMerge10(
1168
1381
  `
1169
1382
  flex items-center justify-between gap-2
1170
1383
  rounded-sm
@@ -1177,8 +1390,8 @@ function Select({
1177
1390
  sizeStyles[size]
1178
1391
  ),
1179
1392
  children: ({ isSelected }) => /* @__PURE__ */ jsxs8(Fragment, { children: [
1180
- /* @__PURE__ */ jsx10("span", { className: renderItem ? "min-w-0 flex-1" : "truncate", children: renderItem ? renderItem(item) : item.name }),
1181
- isSelected && /* @__PURE__ */ jsx10(Check2, { className: "h-4 w-4 shrink-0 text-primary" })
1393
+ /* @__PURE__ */ jsx16("span", { className: renderItem ? "min-w-0 flex-1" : "truncate", children: renderItem ? renderItem(item) : item.name }),
1394
+ isSelected && /* @__PURE__ */ jsx16(Check2, { className: "h-4 w-4 shrink-0 text-primary" })
1182
1395
  ] })
1183
1396
  }
1184
1397
  ) })
@@ -1198,75 +1411,88 @@ import {
1198
1411
  TableBody as AriaTableBody,
1199
1412
  TableHeader as AriaTableHeader
1200
1413
  } from "react-aria-components";
1201
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
1414
+ import { twMerge as twMerge11 } from "tailwind-merge";
1415
+ import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1202
1416
  var tableSizeClass = {
1203
1417
  compact: "[--table-row-py:theme(spacing.1)]",
1204
1418
  comfortable: "[--table-row-py:theme(spacing.3)]"
1205
1419
  };
1206
- function Table2({ size = "comfortable", className, ...props }) {
1207
- return /* @__PURE__ */ jsx11(
1420
+ function Table2({
1421
+ size = "comfortable",
1422
+ className,
1423
+ ...props
1424
+ }) {
1425
+ return /* @__PURE__ */ jsx17(
1208
1426
  AriaTable,
1209
1427
  {
1210
1428
  ...props,
1211
- className: [
1212
- "w-full border-collapse text-(--font-size-sm) text-foreground",
1429
+ className: twMerge11(
1430
+ "w-full border-collapse text-sm text-foreground",
1213
1431
  tableSizeClass[size],
1214
1432
  className
1215
- ].filter(Boolean).join(" ")
1433
+ )
1216
1434
  }
1217
1435
  );
1218
1436
  }
1219
1437
  function TableHeader(props) {
1220
- return /* @__PURE__ */ jsx11(AriaTableHeader, { ...props });
1438
+ return /* @__PURE__ */ jsx17(AriaTableHeader, { ...props });
1221
1439
  }
1222
- function Column(props) {
1223
- return /* @__PURE__ */ jsx11(
1440
+ function Column({ className, ...props }) {
1441
+ return /* @__PURE__ */ jsx17(
1224
1442
  AriaColumn,
1225
1443
  {
1226
1444
  ...props,
1227
- className: [
1445
+ className: twMerge11(
1228
1446
  "px-3 py-2 text-left font-semibold text-muted-foreground",
1229
1447
  "border-b-2 border-border",
1230
1448
  "cursor-default select-none outline-none",
1231
- "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]"
1232
- ].join(" "),
1449
+ "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
1450
+ className
1451
+ ),
1233
1452
  children: ({ allowsSorting, sortDirection }) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-1", children: [
1234
1453
  props.children,
1235
- allowsSorting && /* @__PURE__ */ jsx11("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
1454
+ allowsSorting && /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
1236
1455
  ] })
1237
1456
  }
1238
1457
  );
1239
1458
  }
1240
1459
  function TableBody(props) {
1241
- return /* @__PURE__ */ jsx11(AriaTableBody, { ...props });
1460
+ return /* @__PURE__ */ jsx17(AriaTableBody, { ...props });
1242
1461
  }
1243
- function Row(props) {
1244
- return /* @__PURE__ */ jsx11(
1462
+ function Row({
1463
+ className,
1464
+ ...props
1465
+ }) {
1466
+ return /* @__PURE__ */ jsx17(
1245
1467
  AriaRow,
1246
1468
  {
1247
1469
  ...props,
1248
- className: [
1470
+ className: twMerge11(
1249
1471
  "border-b border-border",
1250
1472
  "even:bg-card",
1251
1473
  "hover:bg-muted",
1474
+ "data-[selected]:bg-accent",
1475
+ "data-[selected]:ring-2 data-[selected]:ring-ring data-[selected]:ring-inset",
1252
1476
  "outline-none",
1253
1477
  "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
1254
- "transition-colors"
1255
- ].join(" ")
1478
+ "transition-colors",
1479
+ className
1480
+ )
1256
1481
  }
1257
1482
  );
1258
1483
  }
1259
- function Cell(props) {
1260
- return /* @__PURE__ */ jsx11(
1484
+ function Cell({ className, ...props }) {
1485
+ return /* @__PURE__ */ jsx17(
1261
1486
  AriaCell,
1262
1487
  {
1263
1488
  ...props,
1264
- className: [
1489
+ className: twMerge11(
1265
1490
  "px-3 py-(--table-row-py)",
1266
1491
  "text-foreground",
1267
1492
  "outline-none",
1268
- "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]"
1269
- ].join(" ")
1493
+ "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
1494
+ className
1495
+ )
1270
1496
  }
1271
1497
  );
1272
1498
  }
@@ -1276,10 +1502,10 @@ import {
1276
1502
  Modal,
1277
1503
  ModalOverlay,
1278
1504
  Dialog as AriaDialog,
1279
- Heading
1505
+ Heading as Heading3
1280
1506
  } from "react-aria-components";
1281
1507
  import { X as X2 } from "lucide-react";
1282
- import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1508
+ import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1283
1509
  var sizeStyles2 = {
1284
1510
  sm: "max-w-md",
1285
1511
  md: "max-w-lg",
@@ -1295,7 +1521,7 @@ function Dialog({
1295
1521
  children,
1296
1522
  className
1297
1523
  }) {
1298
- return /* @__PURE__ */ jsx12(
1524
+ return /* @__PURE__ */ jsx18(
1299
1525
  ModalOverlay,
1300
1526
  {
1301
1527
  isOpen,
@@ -1307,7 +1533,7 @@ function Dialog({
1307
1533
  "entering:animate-in entering:fade-in",
1308
1534
  "exiting:animate-out exiting:fade-out"
1309
1535
  ].join(" "),
1310
- children: /* @__PURE__ */ jsx12(
1536
+ children: /* @__PURE__ */ jsx18(
1311
1537
  Modal,
1312
1538
  {
1313
1539
  className: [
@@ -1318,17 +1544,17 @@ function Dialog({
1318
1544
  "exiting:animate-out exiting:zoom-out-95 exiting:fade-out",
1319
1545
  className
1320
1546
  ].filter(Boolean).join(" "),
1321
- children: /* @__PURE__ */ jsx12(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
1547
+ children: /* @__PURE__ */ jsx18(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
1322
1548
  /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border", children: [
1323
- /* @__PURE__ */ jsx12(
1324
- Heading,
1549
+ /* @__PURE__ */ jsx18(
1550
+ Heading3,
1325
1551
  {
1326
1552
  slot: "title",
1327
1553
  className: "text-lg font-semibold text-foreground",
1328
1554
  children: title
1329
1555
  }
1330
1556
  ),
1331
- /* @__PURE__ */ jsx12(
1557
+ /* @__PURE__ */ jsx18(
1332
1558
  "button",
1333
1559
  {
1334
1560
  type: "button",
@@ -1340,11 +1566,11 @@ function Dialog({
1340
1566
  "transition-colors"
1341
1567
  ].join(" "),
1342
1568
  "aria-label": "Close",
1343
- children: /* @__PURE__ */ jsx12(X2, { size: 20, "aria-hidden": "true" })
1569
+ children: /* @__PURE__ */ jsx18(X2, { size: 20, "aria-hidden": "true" })
1344
1570
  }
1345
1571
  )
1346
1572
  ] }),
1347
- /* @__PURE__ */ jsx12("div", { className: "px-6 py-4 overflow-y-auto", children })
1573
+ /* @__PURE__ */ jsx18("div", { className: "px-6 py-4 overflow-y-auto", children })
1348
1574
  ] }) })
1349
1575
  }
1350
1576
  )
@@ -1353,7 +1579,7 @@ function Dialog({
1353
1579
  }
1354
1580
 
1355
1581
  // src/components/Dialog/DialogFooter.tsx
1356
- import { jsx as jsx13 } from "react/jsx-runtime";
1582
+ import { jsx as jsx19 } from "react/jsx-runtime";
1357
1583
 
1358
1584
  // src/components/Toast/Toast.tsx
1359
1585
  import {
@@ -1366,7 +1592,7 @@ import {
1366
1592
  } from "react";
1367
1593
  import { createPortal as createPortal2 } from "react-dom";
1368
1594
  import { CheckCircle as CheckCircle3, XCircle as XCircle2, Info as Info2, X as X3 } from "lucide-react";
1369
- import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
1595
+ import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1370
1596
  var ToastContext = createContext(null);
1371
1597
  var toastCounter = 0;
1372
1598
  var defaultDuration = {
@@ -1437,16 +1663,16 @@ function ToastItem({
1437
1663
  config.containerClass
1438
1664
  ].join(" "),
1439
1665
  children: [
1440
- /* @__PURE__ */ jsx14(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
1441
- /* @__PURE__ */ jsx14("p", { className: "flex-1 text-sm font-medium", children: toast.message }),
1442
- /* @__PURE__ */ jsx14(
1666
+ /* @__PURE__ */ jsx20(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
1667
+ /* @__PURE__ */ jsx20("p", { className: "flex-1 text-sm font-medium", children: toast.message }),
1668
+ /* @__PURE__ */ jsx20(
1443
1669
  "button",
1444
1670
  {
1445
1671
  type: "button",
1446
1672
  onClick: dismiss,
1447
1673
  className: "shrink-0 rounded-sm p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
1448
1674
  "aria-label": "Dismiss",
1449
- children: /* @__PURE__ */ jsx14(X3, { size: 16, "aria-hidden": "true" })
1675
+ children: /* @__PURE__ */ jsx20(X3, { size: 16, "aria-hidden": "true" })
1450
1676
  }
1451
1677
  )
1452
1678
  ]
@@ -1466,7 +1692,7 @@ function ToastContainer({
1466
1692
  }) {
1467
1693
  if (toasts.length === 0) return null;
1468
1694
  return createPortal2(
1469
- /* @__PURE__ */ jsx14(PlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx14("div", { className: containerPositionStyles[placement], children: toasts.map((toast) => /* @__PURE__ */ jsx14(ToastItem, { toast, onRemove: removeToast }, toast.id)) }) }),
1695
+ /* @__PURE__ */ jsx20(PlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx20("div", { className: containerPositionStyles[placement], children: toasts.map((toast) => /* @__PURE__ */ jsx20(ToastItem, { toast, onRemove: removeToast }, toast.id)) }) }),
1470
1696
  document.body
1471
1697
  );
1472
1698
  }
@@ -1499,7 +1725,7 @@ function ToastProvider({ children, bridge, placement = "bottom-right" }) {
1499
1725
  }, [bridge, addToast]);
1500
1726
  return /* @__PURE__ */ jsxs11(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
1501
1727
  children,
1502
- /* @__PURE__ */ jsx14(ToastContainer, { toasts, removeToast, placement })
1728
+ /* @__PURE__ */ jsx20(ToastContainer, { toasts, removeToast, placement })
1503
1729
  ] });
1504
1730
  }
1505
1731
  function useToast() {
@@ -1515,7 +1741,7 @@ function useToast() {
1515
1741
  }
1516
1742
 
1517
1743
  // src/components/EmptyState/EmptyState.tsx
1518
- import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1744
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1519
1745
  function EmptyState({
1520
1746
  icon,
1521
1747
  title,
@@ -1531,10 +1757,10 @@ function EmptyState({
1531
1757
  className
1532
1758
  ].filter(Boolean).join(" "),
1533
1759
  children: [
1534
- icon && /* @__PURE__ */ jsx15(Icon, { icon, size: "xl", className: "text-muted-foreground" }),
1535
- /* @__PURE__ */ jsx15("h3", { className: "text-lg font-semibold text-foreground mt-4", children: title }),
1536
- description && /* @__PURE__ */ jsx15("p", { className: "text-sm text-muted-foreground mt-2 max-w-sm", children: description }),
1537
- action && /* @__PURE__ */ jsx15("div", { className: "mt-6", children: action })
1760
+ icon && /* @__PURE__ */ jsx21(Icon, { icon, size: "xl", className: "text-muted-foreground" }),
1761
+ /* @__PURE__ */ jsx21("h3", { className: "text-lg font-semibold text-foreground mt-4", children: title }),
1762
+ description && /* @__PURE__ */ jsx21("p", { className: "text-sm text-muted-foreground mt-2 max-w-sm", children: description }),
1763
+ action && /* @__PURE__ */ jsx21("div", { className: "mt-6", children: action })
1538
1764
  ]
1539
1765
  }
1540
1766
  );
@@ -1545,9 +1771,9 @@ import {
1545
1771
  Checkbox as AriaCheckbox
1546
1772
  } from "react-aria-components";
1547
1773
  import { Check as Check3 } from "lucide-react";
1548
- import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
1774
+ import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
1549
1775
  function Checkbox({ children, className, ...props }) {
1550
- return /* @__PURE__ */ jsx16(
1776
+ return /* @__PURE__ */ jsx22(
1551
1777
  AriaCheckbox,
1552
1778
  {
1553
1779
  ...props,
@@ -1567,12 +1793,12 @@ function Checkbox({ children, className, ...props }) {
1567
1793
  isSelected || isIndeterminate ? "bg-primary border-primary" : "bg-background border-border group-hover:border-border"
1568
1794
  ].join(" "),
1569
1795
  children: [
1570
- isSelected && /* @__PURE__ */ jsx16(Check3, { className: "w-4 h-4 text-primary-foreground", strokeWidth: 3 }),
1571
- isIndeterminate && /* @__PURE__ */ jsx16("div", { className: "w-3 h-0.5 bg-primary-foreground rounded-full" })
1796
+ isSelected && /* @__PURE__ */ jsx22(Check3, { className: "w-4 h-4 text-primary-foreground", strokeWidth: 3 }),
1797
+ isIndeterminate && /* @__PURE__ */ jsx22("div", { className: "w-3 h-0.5 bg-primary-foreground rounded-full" })
1572
1798
  ]
1573
1799
  }
1574
1800
  ),
1575
- children && /* @__PURE__ */ jsx16("span", { children })
1801
+ children && /* @__PURE__ */ jsx22("span", { children })
1576
1802
  ] })
1577
1803
  }
1578
1804
  );
@@ -1582,7 +1808,7 @@ function Checkbox({ children, className, ...props }) {
1582
1808
  import {
1583
1809
  Switch as AriaSwitch
1584
1810
  } from "react-aria-components";
1585
- import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
1811
+ import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
1586
1812
  var trackColorMap = {
1587
1813
  primary: "bg-primary",
1588
1814
  success: "bg-success",
@@ -1599,7 +1825,7 @@ function Switch({
1599
1825
  ...props
1600
1826
  }) {
1601
1827
  const isPreset = isPresetColor(color);
1602
- return /* @__PURE__ */ jsx17(
1828
+ return /* @__PURE__ */ jsx23(
1603
1829
  AriaSwitch,
1604
1830
  {
1605
1831
  ...props,
@@ -1609,7 +1835,7 @@ function Switch({
1609
1835
  className
1610
1836
  ].filter(Boolean).join(" "),
1611
1837
  children: ({ isSelected }) => /* @__PURE__ */ jsxs14(Fragment4, { children: [
1612
- /* @__PURE__ */ jsx17(
1838
+ /* @__PURE__ */ jsx23(
1613
1839
  "div",
1614
1840
  {
1615
1841
  className: [
@@ -1618,7 +1844,7 @@ function Switch({
1618
1844
  isSelected && isPreset ? trackColorMap[color] : !isSelected ? "bg-border" : ""
1619
1845
  ].join(" "),
1620
1846
  style: isSelected && !isPreset ? { backgroundColor: color } : void 0,
1621
- children: /* @__PURE__ */ jsx17(
1847
+ children: /* @__PURE__ */ jsx23(
1622
1848
  "div",
1623
1849
  {
1624
1850
  className: [
@@ -1629,7 +1855,7 @@ function Switch({
1629
1855
  )
1630
1856
  }
1631
1857
  ),
1632
- children && /* @__PURE__ */ jsx17("span", { children })
1858
+ children && /* @__PURE__ */ jsx23("span", { children })
1633
1859
  ] })
1634
1860
  }
1635
1861
  );
@@ -1640,9 +1866,9 @@ import {
1640
1866
  RadioGroup as AriaRadioGroup,
1641
1867
  Radio as AriaRadio
1642
1868
  } from "react-aria-components";
1643
- import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
1869
+ import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
1644
1870
  function RadioGroup({ children, className, ...props }) {
1645
- return /* @__PURE__ */ jsx18(
1871
+ return /* @__PURE__ */ jsx24(
1646
1872
  AriaRadioGroup,
1647
1873
  {
1648
1874
  ...props,
@@ -1656,7 +1882,7 @@ function RadioGroup({ children, className, ...props }) {
1656
1882
  );
1657
1883
  }
1658
1884
  function Radio({ children, className, ...props }) {
1659
- return /* @__PURE__ */ jsx18(
1885
+ return /* @__PURE__ */ jsx24(
1660
1886
  AriaRadio,
1661
1887
  {
1662
1888
  ...props,
@@ -1666,7 +1892,7 @@ function Radio({ children, className, ...props }) {
1666
1892
  className
1667
1893
  ].filter(Boolean).join(" "),
1668
1894
  children: ({ isSelected }) => /* @__PURE__ */ jsxs15(Fragment5, { children: [
1669
- /* @__PURE__ */ jsx18(
1895
+ /* @__PURE__ */ jsx24(
1670
1896
  "div",
1671
1897
  {
1672
1898
  className: [
@@ -1675,16 +1901,16 @@ function Radio({ children, className, ...props }) {
1675
1901
  "group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2",
1676
1902
  isSelected ? "border-primary" : "border-border group-hover:border-border"
1677
1903
  ].join(" "),
1678
- children: isSelected && /* @__PURE__ */ jsx18("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
1904
+ children: isSelected && /* @__PURE__ */ jsx24("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
1679
1905
  }
1680
1906
  ),
1681
- children && /* @__PURE__ */ jsx18("span", { children })
1907
+ children && /* @__PURE__ */ jsx24("span", { children })
1682
1908
  ] })
1683
1909
  }
1684
1910
  );
1685
1911
  }
1686
1912
  function RadioButton({ children, className, ...props }) {
1687
- return /* @__PURE__ */ jsx18(
1913
+ return /* @__PURE__ */ jsx24(
1688
1914
  AriaRadio,
1689
1915
  {
1690
1916
  ...props,
@@ -1693,7 +1919,7 @@ function RadioButton({ children, className, ...props }) {
1693
1919
  "disabled:opacity-50 disabled:cursor-default",
1694
1920
  className
1695
1921
  ].filter(Boolean).join(" "),
1696
- children: ({ isSelected }) => /* @__PURE__ */ jsx18(
1922
+ children: ({ isSelected }) => /* @__PURE__ */ jsx24(
1697
1923
  "div",
1698
1924
  {
1699
1925
  className: [
@@ -1710,7 +1936,7 @@ function RadioButton({ children, className, ...props }) {
1710
1936
  }
1711
1937
 
1712
1938
  // src/components/Form/Fieldset/Fieldset.tsx
1713
- import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
1939
+ import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
1714
1940
  function Fieldset({ legend, children, className }) {
1715
1941
  return /* @__PURE__ */ jsxs16(
1716
1942
  "fieldset",
@@ -1721,7 +1947,7 @@ function Fieldset({ legend, children, className }) {
1721
1947
  className
1722
1948
  ].filter(Boolean).join(" "),
1723
1949
  children: [
1724
- legend && /* @__PURE__ */ jsx19(
1950
+ legend && /* @__PURE__ */ jsx25(
1725
1951
  "legend",
1726
1952
  {
1727
1953
  className: [
@@ -1739,74 +1965,11 @@ function Fieldset({ legend, children, className }) {
1739
1965
  );
1740
1966
  }
1741
1967
 
1742
- // src/components/Heading/Heading.tsx
1743
- import { twMerge as twMerge8 } from "tailwind-merge";
1744
- import { jsx as jsx20 } from "react/jsx-runtime";
1745
- var defaultSizeMap = {
1746
- h1: "2xl",
1747
- h2: "xl",
1748
- h3: "lg",
1749
- h4: "md",
1750
- h5: "sm",
1751
- h6: "xs"
1752
- };
1753
- var sizeStyles3 = {
1754
- xs: "text-sm",
1755
- sm: "text-base",
1756
- md: "text-lg",
1757
- lg: "text-xl",
1758
- xl: "text-2xl",
1759
- "2xl": "text-3xl",
1760
- "3xl": "text-4xl"
1761
- };
1762
- var weightStyles = {
1763
- semibold: "font-semibold",
1764
- bold: "font-bold"
1765
- };
1766
- function Heading2({
1767
- as: Tag2 = "h2",
1768
- size,
1769
- weight = "semibold",
1770
- className,
1771
- children
1772
- }) {
1773
- const resolvedSize = size ?? defaultSizeMap[Tag2];
1774
- return /* @__PURE__ */ jsx20(
1775
- Tag2,
1776
- {
1777
- className: twMerge8(
1778
- weightStyles[weight],
1779
- "text-foreground",
1780
- sizeStyles3[resolvedSize],
1781
- className
1782
- ),
1783
- children
1784
- }
1785
- );
1786
- }
1787
- function H1(props) {
1788
- return /* @__PURE__ */ jsx20(
1789
- Heading2,
1790
- {
1791
- ...props,
1792
- as: "h1",
1793
- size: props.size ?? "2xl",
1794
- weight: props.weight ?? "bold"
1795
- }
1796
- );
1797
- }
1798
- function H2(props) {
1799
- return /* @__PURE__ */ jsx20(Heading2, { ...props, as: "h2", size: props.size ?? "xl" });
1800
- }
1801
- function H3(props) {
1802
- return /* @__PURE__ */ jsx20(Heading2, { ...props, as: "h3", size: props.size ?? "lg" });
1803
- }
1804
-
1805
1968
  // src/components/Link/Link.tsx
1806
1969
  import {
1807
1970
  Link as AriaLink3
1808
1971
  } from "react-aria-components";
1809
- import { jsx as jsx21 } from "react/jsx-runtime";
1972
+ import { jsx as jsx26 } from "react/jsx-runtime";
1810
1973
  var variantStyles2 = {
1811
1974
  default: [
1812
1975
  "text-teal-700 underline",
@@ -1822,7 +1985,7 @@ function Link({
1822
1985
  className,
1823
1986
  ...props
1824
1987
  }) {
1825
- return /* @__PURE__ */ jsx21(
1988
+ return /* @__PURE__ */ jsx26(
1826
1989
  AriaLink3,
1827
1990
  {
1828
1991
  ...props,
@@ -1843,20 +2006,20 @@ import {
1843
2006
  Link as Link2
1844
2007
  } from "react-aria-components";
1845
2008
  import { ChevronRight as ChevronRight2 } from "lucide-react";
1846
- import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
2009
+ import { Fragment as Fragment6, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
1847
2010
  function Breadcrumbs({ items, className }) {
1848
- return /* @__PURE__ */ jsx22(
2011
+ return /* @__PURE__ */ jsx27(
1849
2012
  "nav",
1850
2013
  {
1851
2014
  "aria-label": "Breadcrumb",
1852
2015
  className,
1853
- children: /* @__PURE__ */ jsx22(
2016
+ children: /* @__PURE__ */ jsx27(
1854
2017
  AriaBreadcrumbs,
1855
2018
  {
1856
2019
  className: "flex items-center gap-1 text-sm min-w-0",
1857
2020
  children: items.map((item, index) => {
1858
2021
  const isLast = index === items.length - 1;
1859
- return /* @__PURE__ */ jsx22(
2022
+ return /* @__PURE__ */ jsx27(
1860
2023
  AriaBreadcrumb,
1861
2024
  {
1862
2025
  id: item.id,
@@ -1864,8 +2027,8 @@ function Breadcrumbs({ items, className }) {
1864
2027
  "flex items-center gap-1",
1865
2028
  isLast ? "min-w-0" : "shrink-0"
1866
2029
  ].join(" "),
1867
- children: isLast ? /* @__PURE__ */ jsx22("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
1868
- /* @__PURE__ */ jsx22(
2030
+ children: isLast ? /* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
2031
+ /* @__PURE__ */ jsx27(
1869
2032
  Link2,
1870
2033
  {
1871
2034
  href: item.href,
@@ -1873,7 +2036,7 @@ function Breadcrumbs({ items, className }) {
1873
2036
  children: item.label
1874
2037
  }
1875
2038
  ),
1876
- /* @__PURE__ */ jsx22(
2039
+ /* @__PURE__ */ jsx27(
1877
2040
  ChevronRight2,
1878
2041
  {
1879
2042
  className: "shrink-0 text-slate-400",
@@ -1896,8 +2059,8 @@ function Breadcrumbs({ items, className }) {
1896
2059
  import {
1897
2060
  ToggleButton as AriaToggleButton2
1898
2061
  } from "react-aria-components";
1899
- import { twMerge as twMerge9 } from "tailwind-merge";
1900
- import { jsx as jsx23 } from "react/jsx-runtime";
2062
+ import { twMerge as twMerge12 } from "tailwind-merge";
2063
+ import { jsx as jsx28 } from "react/jsx-runtime";
1901
2064
  var squareSizeStyles2 = {
1902
2065
  xs: "h-6 w-6 text-xs",
1903
2066
  sm: "h-7 w-7 text-sm",
@@ -1942,11 +2105,11 @@ function ToggleButton({
1942
2105
  ...props
1943
2106
  }) {
1944
2107
  const styles = variantStyles3[variant];
1945
- return /* @__PURE__ */ jsx23(
2108
+ return /* @__PURE__ */ jsx28(
1946
2109
  AriaToggleButton2,
1947
2110
  {
1948
2111
  ...props,
1949
- className: ({ isSelected }) => twMerge9(
2112
+ className: ({ isSelected }) => twMerge12(
1950
2113
  "inline-flex items-center justify-center gap-2 cursor-pointer",
1951
2114
  isSquare ? "rounded-none" : "rounded-md",
1952
2115
  "font-medium",
@@ -1969,7 +2132,7 @@ import {
1969
2132
  MenuItem as AriaMenuItem,
1970
2133
  Popover as Popover2
1971
2134
  } from "react-aria-components";
1972
- import { twMerge as twMerge10 } from "tailwind-merge";
2135
+ import { twMerge as twMerge13 } from "tailwind-merge";
1973
2136
 
1974
2137
  // src/components/Menu/menuStyles.ts
1975
2138
  var popoverStyles = `
@@ -1981,8 +2144,8 @@ var popoverStyles = `
1981
2144
  `;
1982
2145
 
1983
2146
  // src/components/Menu/Menu.tsx
1984
- import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
1985
- function Menu({
2147
+ import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
2148
+ function Menu2({
1986
2149
  items,
1987
2150
  content,
1988
2151
  children,
@@ -1996,7 +2159,7 @@ function Menu({
1996
2159
  const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
1997
2160
  return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
1998
2161
  children,
1999
- /* @__PURE__ */ jsx24(Popover2, { className: twMerge10(popoverStyles, className), children: items ? /* @__PURE__ */ jsx24(
2162
+ /* @__PURE__ */ jsx29(Popover2, { className: twMerge13(popoverStyles, className), children: items ? /* @__PURE__ */ jsx29(
2000
2163
  AriaMenu,
2001
2164
  {
2002
2165
  items,
@@ -2023,14 +2186,14 @@ function Menu({
2023
2186
  item.isDanger ? "text-destructive" : "text-foreground"
2024
2187
  ].filter(Boolean).join(" "),
2025
2188
  children: [
2026
- item.icon && /* @__PURE__ */ jsx24(Icon, { icon: item.icon, size: "sm" }),
2027
- /* @__PURE__ */ jsx24("span", { className: "flex-1", children: item.label }),
2028
- item.endContent && /* @__PURE__ */ jsx24("span", { className: "ml-auto flex items-center", children: item.endContent })
2189
+ item.icon && /* @__PURE__ */ jsx29(Icon, { icon: item.icon, size: "sm" }),
2190
+ /* @__PURE__ */ jsx29("span", { className: "flex-1", children: item.label }),
2191
+ item.endContent && /* @__PURE__ */ jsx29("span", { className: "ml-auto flex items-center", children: item.endContent })
2029
2192
  ]
2030
2193
  }
2031
2194
  )
2032
2195
  }
2033
- ) : /* @__PURE__ */ jsx24(
2196
+ ) : /* @__PURE__ */ jsx29(
2034
2197
  AriaMenu,
2035
2198
  {
2036
2199
  onAction: (key) => onAction?.(key),
@@ -2055,8 +2218,8 @@ import {
2055
2218
  Popover as Popover3,
2056
2219
  Pressable
2057
2220
  } from "react-aria-components";
2058
- import { twMerge as twMerge11 } from "tailwind-merge";
2059
- import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
2221
+ import { twMerge as twMerge14 } from "tailwind-merge";
2222
+ import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
2060
2223
  function useContextMenu({
2061
2224
  content,
2062
2225
  onAction,
@@ -2106,7 +2269,7 @@ function useContextMenu({
2106
2269
  if (!open) close();
2107
2270
  },
2108
2271
  children: [
2109
- /* @__PURE__ */ jsx25(Pressable, { children: /* @__PURE__ */ jsx25(
2272
+ /* @__PURE__ */ jsx30(Pressable, { children: /* @__PURE__ */ jsx30(
2110
2273
  "span",
2111
2274
  {
2112
2275
  ref: anchorRef,
@@ -2115,14 +2278,14 @@ function useContextMenu({
2115
2278
  style: { left: anchor?.x ?? 0, top: anchor?.y ?? 0 }
2116
2279
  }
2117
2280
  ) }),
2118
- /* @__PURE__ */ jsx25(
2281
+ /* @__PURE__ */ jsx30(
2119
2282
  Popover3,
2120
2283
  {
2121
2284
  isNonModal: true,
2122
2285
  placement: "bottom start",
2123
2286
  ref: popoverRef,
2124
- className: twMerge11(popoverStyles, className),
2125
- children: /* @__PURE__ */ jsx25(
2287
+ className: twMerge14(popoverStyles, className),
2288
+ children: /* @__PURE__ */ jsx30(
2126
2289
  AriaMenu2,
2127
2290
  {
2128
2291
  autoFocus: "first",
@@ -2150,7 +2313,7 @@ function useContextMenu({
2150
2313
 
2151
2314
  // src/components/Menu/MenuItem.tsx
2152
2315
  import { MenuItem as AriaMenuItem2 } from "react-aria-components";
2153
- import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
2316
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
2154
2317
  function MenuItem({
2155
2318
  id,
2156
2319
  children,
@@ -2183,9 +2346,9 @@ function MenuItem({
2183
2346
  className
2184
2347
  ].filter(Boolean).join(" "),
2185
2348
  children: [
2186
- icon && /* @__PURE__ */ jsx26(Icon, { icon, size: "sm" }),
2187
- /* @__PURE__ */ jsx26("span", { className: "flex-1", children }),
2188
- endContent && /* @__PURE__ */ jsx26("span", { className: "ml-auto flex items-center", children: endContent })
2349
+ icon && /* @__PURE__ */ jsx31(Icon, { icon, size: "sm" }),
2350
+ /* @__PURE__ */ jsx31("span", { className: "flex-1", children }),
2351
+ endContent && /* @__PURE__ */ jsx31("span", { className: "ml-auto flex items-center", children: endContent })
2189
2352
  ]
2190
2353
  }
2191
2354
  );
@@ -2194,7 +2357,7 @@ function MenuItem({
2194
2357
  // src/components/Menu/MenuCheckboxItem.tsx
2195
2358
  import { MenuItem as AriaMenuItem3 } from "react-aria-components";
2196
2359
  import { Check as Check4 } from "lucide-react";
2197
- import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
2360
+ import { Fragment as Fragment7, jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
2198
2361
  function MenuCheckboxItem({
2199
2362
  id,
2200
2363
  children,
@@ -2202,7 +2365,7 @@ function MenuCheckboxItem({
2202
2365
  isDisabled,
2203
2366
  className
2204
2367
  }) {
2205
- return /* @__PURE__ */ jsx27(
2368
+ return /* @__PURE__ */ jsx32(
2206
2369
  AriaMenuItem3,
2207
2370
  {
2208
2371
  id,
@@ -2219,8 +2382,8 @@ function MenuCheckboxItem({
2219
2382
  className
2220
2383
  ].filter(Boolean).join(" "),
2221
2384
  children: ({ isSelected }) => /* @__PURE__ */ jsxs21(Fragment7, { children: [
2222
- /* @__PURE__ */ jsx27("span", { className: "flex items-center justify-center w-4 h-4 shrink-0", children: isSelected && /* @__PURE__ */ jsx27(Check4, { size: 14, className: "text-primary", "aria-hidden": "true" }) }),
2223
- /* @__PURE__ */ jsx27("span", { className: "flex-1", children })
2385
+ /* @__PURE__ */ jsx32("span", { className: "flex items-center justify-center w-4 h-4 shrink-0", children: isSelected && /* @__PURE__ */ jsx32(Check4, { size: 14, className: "text-primary", "aria-hidden": "true" }) }),
2386
+ /* @__PURE__ */ jsx32("span", { className: "flex-1", children })
2224
2387
  ] })
2225
2388
  }
2226
2389
  );
@@ -2231,7 +2394,7 @@ import {
2231
2394
  MenuSection as AriaMenuSection,
2232
2395
  Header
2233
2396
  } from "react-aria-components";
2234
- import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
2397
+ import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
2235
2398
  function MenuSection({
2236
2399
  header,
2237
2400
  children,
@@ -2239,7 +2402,7 @@ function MenuSection({
2239
2402
  className
2240
2403
  }) {
2241
2404
  return /* @__PURE__ */ jsxs22(AriaMenuSection, { className, "aria-label": ariaLabel, children: [
2242
- header && /* @__PURE__ */ jsx28(
2405
+ header && /* @__PURE__ */ jsx33(
2243
2406
  Header,
2244
2407
  {
2245
2408
  className: [
@@ -2258,16 +2421,16 @@ function MenuSection({
2258
2421
 
2259
2422
  // src/components/Menu/MenuHeader.tsx
2260
2423
  import { Header as Header2 } from "react-aria-components";
2261
- import { jsx as jsx29 } from "react/jsx-runtime";
2424
+ import { jsx as jsx34 } from "react/jsx-runtime";
2262
2425
  function MenuHeader({ children, className }) {
2263
- return /* @__PURE__ */ jsx29(Header2, { className, children });
2426
+ return /* @__PURE__ */ jsx34(Header2, { className, children });
2264
2427
  }
2265
2428
 
2266
2429
  // src/components/Menu/MenuSeparator.tsx
2267
2430
  import { Separator } from "react-aria-components";
2268
- import { jsx as jsx30 } from "react/jsx-runtime";
2431
+ import { jsx as jsx35 } from "react/jsx-runtime";
2269
2432
  function MenuSeparator({ className }) {
2270
- return /* @__PURE__ */ jsx30(
2433
+ return /* @__PURE__ */ jsx35(
2271
2434
  Separator,
2272
2435
  {
2273
2436
  className: [
@@ -2284,17 +2447,17 @@ import {
2284
2447
  Popover as AriaPopover,
2285
2448
  Button as AriaButton3
2286
2449
  } from "react-aria-components";
2287
- import { twMerge as twMerge12 } from "tailwind-merge";
2288
- import { jsx as jsx31 } from "react/jsx-runtime";
2450
+ import { twMerge as twMerge15 } from "tailwind-merge";
2451
+ import { jsx as jsx36 } from "react/jsx-runtime";
2289
2452
  function Popover4({ children, isOpen, onOpenChange }) {
2290
- return /* @__PURE__ */ jsx31(DialogTrigger, { isOpen, onOpenChange, children });
2453
+ return /* @__PURE__ */ jsx36(DialogTrigger, { isOpen, onOpenChange, children });
2291
2454
  }
2292
2455
  function PopoverTrigger({ children, className }) {
2293
2456
  const cx = `
2294
2457
  inline-flex items-center bg-transparent border-none p-0 outline-none cursor-pointer
2295
2458
  focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm
2296
2459
  `;
2297
- return /* @__PURE__ */ jsx31(AriaButton3, { className: twMerge12(cx, className), children });
2460
+ return /* @__PURE__ */ jsx36(AriaButton3, { className: twMerge15(cx, className), children });
2298
2461
  }
2299
2462
  function PopoverContent({
2300
2463
  placement = "bottom",
@@ -2315,13 +2478,13 @@ function PopoverContent({
2315
2478
  entering:placement-left:slide-in-from-right-1
2316
2479
  entering:placement-right:slide-in-from-left-1
2317
2480
  `;
2318
- return /* @__PURE__ */ jsx31(
2481
+ return /* @__PURE__ */ jsx36(
2319
2482
  AriaPopover,
2320
2483
  {
2321
2484
  ...rest,
2322
2485
  placement,
2323
2486
  offset: offsetPx,
2324
- className: twMerge12(cx, className),
2487
+ className: twMerge15(cx, className),
2325
2488
  children
2326
2489
  }
2327
2490
  );
@@ -2329,19 +2492,19 @@ function PopoverContent({
2329
2492
 
2330
2493
  // src/components/Tabs/Tabs.tsx
2331
2494
  import { createContext as createContext2, useContext as useContext2 } from "react";
2332
- import { twMerge as twMerge13 } from "tailwind-merge";
2495
+ import { twMerge as twMerge16 } from "tailwind-merge";
2333
2496
  import {
2334
2497
  Tabs as AriaTabs,
2335
2498
  TabList as AriaTabList,
2336
2499
  Tab as AriaTab,
2337
2500
  TabPanel as AriaTabPanel
2338
2501
  } from "react-aria-components";
2339
- import { jsx as jsx32 } from "react/jsx-runtime";
2502
+ import { jsx as jsx37 } from "react/jsx-runtime";
2340
2503
  var TabsContext = createContext2({
2341
2504
  variant: "underline",
2342
2505
  size: "md"
2343
2506
  });
2344
- var sizeStyles4 = {
2507
+ var sizeStyles3 = {
2345
2508
  sm: "px-3 py-1.5 text-sm",
2346
2509
  md: "px-4 py-2 text-base",
2347
2510
  lg: "px-6 py-3 text-lg"
@@ -2354,12 +2517,12 @@ function Tabs({
2354
2517
  children,
2355
2518
  ...props
2356
2519
  }) {
2357
- return /* @__PURE__ */ jsx32(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx32(
2520
+ return /* @__PURE__ */ jsx37(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx37(
2358
2521
  AriaTabs,
2359
2522
  {
2360
2523
  ...props,
2361
2524
  orientation,
2362
- className: twMerge13(
2525
+ className: twMerge16(
2363
2526
  orientation === "vertical" ? "flex" : "",
2364
2527
  className
2365
2528
  ),
@@ -2374,11 +2537,11 @@ function TabList({
2374
2537
  const { variant } = useContext2(TabsContext);
2375
2538
  const baseStyles = variant === "unstyled" ? "flex items-center" : variant === "underline" ? "flex items-center border-b border-border" : "inline-flex items-center bg-muted rounded-lg p-1 gap-1";
2376
2539
  const verticalStyles = variant === "unstyled" ? "flex-col" : variant === "underline" ? "flex-col border-b-0 border-r border-border" : "flex-col";
2377
- return /* @__PURE__ */ jsx32(
2540
+ return /* @__PURE__ */ jsx37(
2378
2541
  AriaTabList,
2379
2542
  {
2380
2543
  ...props,
2381
- className: ({ orientation }) => twMerge13(
2544
+ className: ({ orientation }) => twMerge16(
2382
2545
  baseStyles,
2383
2546
  orientation === "vertical" ? verticalStyles : "",
2384
2547
  className
@@ -2388,20 +2551,20 @@ function TabList({
2388
2551
  }
2389
2552
  function Tab({ className, ...props }) {
2390
2553
  const { variant, size } = useContext2(TabsContext);
2391
- return /* @__PURE__ */ jsx32(
2554
+ return /* @__PURE__ */ jsx37(
2392
2555
  AriaTab,
2393
2556
  {
2394
2557
  ...props,
2395
2558
  className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
2396
2559
  if (variant === "unstyled") {
2397
- return twMerge13(
2560
+ return twMerge16(
2398
2561
  "cursor-pointer outline-none",
2399
2562
  "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2400
2563
  isDisabled ? "opacity-50 pointer-events-none" : "",
2401
2564
  className
2402
2565
  );
2403
2566
  }
2404
- return twMerge13(
2567
+ return twMerge16(
2405
2568
  // Base
2406
2569
  "cursor-pointer outline-none transition-colors",
2407
2570
  "font-medium",
@@ -2410,7 +2573,7 @@ function Tab({ className, ...props }) {
2410
2573
  // Disabled
2411
2574
  isDisabled ? "opacity-50 pointer-events-none" : "",
2412
2575
  // Size
2413
- sizeStyles4[size],
2576
+ sizeStyles3[size],
2414
2577
  ...getTabVariantStyles(variant, {
2415
2578
  isSelected,
2416
2579
  isHovered,
@@ -2445,11 +2608,11 @@ function getTabVariantStyles(variant, state) {
2445
2608
  }
2446
2609
  function TabPanel({ className, ...props }) {
2447
2610
  const { variant } = useContext2(TabsContext);
2448
- return /* @__PURE__ */ jsx32(
2611
+ return /* @__PURE__ */ jsx37(
2449
2612
  AriaTabPanel,
2450
2613
  {
2451
2614
  ...props,
2452
- className: twMerge13(
2615
+ className: twMerge16(
2453
2616
  variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
2454
2617
  className
2455
2618
  )
@@ -2467,16 +2630,16 @@ import {
2467
2630
 
2468
2631
  // src/components/SegmentedControl/SegmentedControl.tsx
2469
2632
  import { createContext as createContext3, useContext as useContext3 } from "react";
2470
- import { twMerge as twMerge14 } from "tailwind-merge";
2633
+ import { twMerge as twMerge17 } from "tailwind-merge";
2471
2634
  import {
2472
2635
  ToggleButtonGroup as AriaToggleButtonGroup,
2473
2636
  ToggleButton as AriaToggleButton3
2474
2637
  } from "react-aria-components";
2475
- import { jsx as jsx33 } from "react/jsx-runtime";
2638
+ import { jsx as jsx38 } from "react/jsx-runtime";
2476
2639
  var SegmentedControlContext = createContext3({
2477
2640
  size: "md"
2478
2641
  });
2479
- var sizeStyles5 = {
2642
+ var sizeStyles4 = {
2480
2643
  sm: "px-2.5 py-1 text-xs",
2481
2644
  md: "px-3 py-1.5 text-sm",
2482
2645
  lg: "px-4 py-2 text-base"
@@ -2492,7 +2655,7 @@ function SegmentedControl({
2492
2655
  ...props
2493
2656
  }) {
2494
2657
  const isNoneMode = selectionMode === "none";
2495
- return /* @__PURE__ */ jsx33(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx33(
2658
+ return /* @__PURE__ */ jsx38(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx38(
2496
2659
  AriaToggleButtonGroup,
2497
2660
  {
2498
2661
  ...props,
@@ -2500,7 +2663,7 @@ function SegmentedControl({
2500
2663
  selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
2501
2664
  defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
2502
2665
  onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
2503
- className: twMerge14(
2666
+ className: twMerge17(
2504
2667
  "inline-flex items-center rounded-lg border border-border bg-muted p-0.5 gap-0.5",
2505
2668
  className
2506
2669
  ),
@@ -2513,11 +2676,11 @@ function SegmentedControlItem({
2513
2676
  ...props
2514
2677
  }) {
2515
2678
  const { size } = useContext3(SegmentedControlContext);
2516
- return /* @__PURE__ */ jsx33(
2679
+ return /* @__PURE__ */ jsx38(
2517
2680
  AriaToggleButton3,
2518
2681
  {
2519
2682
  ...props,
2520
- className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge14(
2683
+ className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge17(
2521
2684
  // Base layout
2522
2685
  "inline-flex items-center justify-center",
2523
2686
  "rounded-md",
@@ -2528,7 +2691,7 @@ function SegmentedControlItem({
2528
2691
  // Disabled
2529
2692
  isDisabled && "opacity-50 pointer-events-none",
2530
2693
  // Size
2531
- sizeStyles5[size],
2694
+ sizeStyles4[size],
2532
2695
  // Selected state
2533
2696
  isSelected ? "bg-background text-foreground shadow-sm font-semibold" : isPressed ? "bg-card text-foreground" : isHovered ? "bg-card text-foreground" : "bg-transparent text-muted-foreground",
2534
2697
  className
@@ -2538,40 +2701,43 @@ function SegmentedControlItem({
2538
2701
  }
2539
2702
 
2540
2703
  // src/components/Badge/Badge.tsx
2541
- import { twMerge as twMerge15 } from "tailwind-merge";
2542
- import { jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
2543
- var variantStyles4 = {
2544
- neutral: "bg-badge-neutral-bg text-badge-neutral-text",
2545
- purple: "bg-badge-purple-bg text-badge-purple-text",
2546
- teal: "bg-badge-teal-bg text-badge-teal-text",
2547
- rose: "bg-badge-rose-bg text-badge-rose-text",
2548
- slate: "bg-badge-slate-bg text-badge-slate-text",
2549
- green: "bg-badge-green-bg text-badge-green-text",
2550
- amber: "bg-badge-amber-bg text-badge-amber-text"
2704
+ import { twMerge as twMerge18 } from "tailwind-merge";
2705
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
2706
+ var colorStyles = {
2707
+ purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
2708
+ teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
2709
+ rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
2710
+ slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20",
2711
+ green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
2712
+ amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
2551
2713
  };
2552
- var sizeStyles6 = {
2553
- sm: "px-1.5 py-0.5",
2554
- md: "px-2 py-0.5"
2714
+ var sizeStyles5 = {
2715
+ xs: "px-1 py-0 text-[10px]",
2716
+ sm: "px-1.5 py-0.5 text-xs",
2717
+ md: "px-2 py-0.5 text-xs",
2718
+ lg: "px-2.5 py-1 text-sm"
2555
2719
  };
2556
2720
  function Badge({
2557
2721
  children,
2558
- variant = "neutral",
2722
+ color = "slate",
2559
2723
  size = "sm",
2560
2724
  icon,
2561
- className
2725
+ className,
2726
+ ...rest
2562
2727
  }) {
2563
2728
  return /* @__PURE__ */ jsxs23(
2564
2729
  "span",
2565
2730
  {
2566
- className: twMerge15(
2567
- "inline-flex items-center gap-1 rounded-full",
2568
- "text-xs font-medium leading-tight tracking-wider tabular-nums",
2569
- variantStyles4[variant],
2570
- sizeStyles6[size],
2731
+ className: twMerge18(
2732
+ "inline-flex items-center gap-1 rounded-full border",
2733
+ "font-medium leading-tight tracking-wider tabular-nums",
2734
+ colorStyles[color],
2735
+ sizeStyles5[size],
2571
2736
  className
2572
2737
  ),
2738
+ ...rest,
2573
2739
  children: [
2574
- icon && /* @__PURE__ */ jsx34(Icon, { icon, size: "xs" }),
2740
+ icon && /* @__PURE__ */ jsx39(Icon, { icon, size: "xs" }),
2575
2741
  children
2576
2742
  ]
2577
2743
  }
@@ -2579,87 +2745,29 @@ function Badge({
2579
2745
  }
2580
2746
 
2581
2747
  // src/components/Card/Card.tsx
2582
- import { useCallback as useCallback4 } from "react";
2583
- import { twMerge as twMerge16 } from "tailwind-merge";
2584
- import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
2585
- var paddingStyles = {
2586
- none: "p-0",
2587
- sm: "p-3",
2588
- md: "p-4",
2589
- lg: "p-6"
2590
- };
2591
- function Card({
2592
- children,
2593
- header,
2594
- footer,
2595
- padding = "md",
2596
- href,
2597
- onPress,
2598
- interactive = false,
2599
- className
2600
- }) {
2601
- const isInteractive = interactive || !!href || !!onPress;
2602
- const containerClass = twMerge16(
2603
- "bg-background border border-border rounded-lg overflow-hidden shadow-sm",
2604
- isInteractive && "transition-all hover:shadow-md hover:border-ring cursor-pointer",
2605
- (href || onPress) && "block focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 outline-none",
2748
+ import { twMerge as twMerge19 } from "tailwind-merge";
2749
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
2750
+ function Card({ children, header, footer, className }) {
2751
+ const cx = twMerge19(
2752
+ `
2753
+ bg-card p-8
2754
+ border border-border
2755
+ rounded-lg
2756
+ shadow-sm
2757
+ `,
2606
2758
  className
2607
2759
  );
2608
- const handleKeyDown = useCallback4(
2609
- (e) => {
2610
- if (onPress && (e.key === "Enter" || e.key === " ")) {
2611
- e.preventDefault();
2612
- onPress();
2613
- }
2614
- },
2615
- [onPress]
2616
- );
2617
- const content = /* @__PURE__ */ jsxs24(Fragment8, { children: [
2618
- header && /* @__PURE__ */ jsx35(
2619
- "div",
2620
- {
2621
- className: twMerge16(
2622
- "border-b border-border",
2623
- paddingStyles[padding]
2624
- ),
2625
- children: header
2626
- }
2627
- ),
2628
- /* @__PURE__ */ jsx35("div", { className: paddingStyles[padding], children }),
2629
- footer && /* @__PURE__ */ jsx35(
2630
- "div",
2631
- {
2632
- className: twMerge16(
2633
- "border-t border-border",
2634
- paddingStyles[padding]
2635
- ),
2636
- children: footer
2637
- }
2638
- )
2760
+ return /* @__PURE__ */ jsxs24("div", { className: cx, children: [
2761
+ header && /* @__PURE__ */ jsx40("div", { className: "border-b border-border", children: header }),
2762
+ children,
2763
+ footer && /* @__PURE__ */ jsx40("div", { className: "border-t border-border", children: footer })
2639
2764
  ] });
2640
- if (href) {
2641
- return /* @__PURE__ */ jsx35("a", { href, className: containerClass, children: content });
2642
- }
2643
- if (onPress) {
2644
- return /* @__PURE__ */ jsx35(
2645
- "div",
2646
- {
2647
- role: "button",
2648
- tabIndex: 0,
2649
- className: containerClass,
2650
- onClick: onPress,
2651
- onKeyDown: handleKeyDown,
2652
- children: content
2653
- }
2654
- );
2655
- }
2656
- return /* @__PURE__ */ jsx35("div", { className: containerClass, children: content });
2657
2765
  }
2658
2766
 
2659
2767
  // src/components/DeltaIndicator/DeltaIndicator.tsx
2660
2768
  import { ArrowUp as ArrowUp2, ArrowDown as ArrowDown2, Minus as Minus2 } from "lucide-react";
2661
- import { twMerge as twMerge17 } from "tailwind-merge";
2662
- import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
2769
+ import { twMerge as twMerge20 } from "tailwind-merge";
2770
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
2663
2771
  function getDirection(current, previous) {
2664
2772
  const diff = current - previous;
2665
2773
  if (diff > 0) return "increase";
@@ -2715,13 +2823,13 @@ function DeltaIndicator({
2715
2823
  return /* @__PURE__ */ jsxs25(
2716
2824
  "span",
2717
2825
  {
2718
- className: twMerge17(
2826
+ className: twMerge20(
2719
2827
  "inline-flex items-center gap-1 font-medium",
2720
2828
  "text-muted-foreground",
2721
2829
  className
2722
2830
  ),
2723
2831
  children: [
2724
- label && /* @__PURE__ */ jsx36("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2832
+ label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2725
2833
  unavailableText
2726
2834
  ]
2727
2835
  }
@@ -2754,7 +2862,7 @@ function DeltaIndicator({
2754
2862
  return /* @__PURE__ */ jsxs25(
2755
2863
  "span",
2756
2864
  {
2757
- className: twMerge17(
2865
+ className: twMerge20(
2758
2866
  "inline-flex items-center gap-1 font-medium",
2759
2867
  colorStyles2,
2760
2868
  isPill && [
@@ -2765,8 +2873,8 @@ function DeltaIndicator({
2765
2873
  className
2766
2874
  ),
2767
2875
  children: [
2768
- label && /* @__PURE__ */ jsx36("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2769
- /* @__PURE__ */ jsx36(IconComponent, { size: 14, "aria-hidden": true }),
2876
+ label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2877
+ /* @__PURE__ */ jsx41(IconComponent, { size: 14, "aria-hidden": true }),
2770
2878
  valueText
2771
2879
  ]
2772
2880
  }
@@ -2774,8 +2882,8 @@ function DeltaIndicator({
2774
2882
  }
2775
2883
 
2776
2884
  // src/components/ProgressBar/ProgressBar.tsx
2777
- import { twMerge as twMerge18 } from "tailwind-merge";
2778
- import { jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
2885
+ import { twMerge as twMerge21 } from "tailwind-merge";
2886
+ import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
2779
2887
  var fillStyles = {
2780
2888
  brand: "bg-progress-fill",
2781
2889
  success: "bg-progress-fill-success",
@@ -2783,7 +2891,7 @@ var fillStyles = {
2783
2891
  danger: "bg-progress-fill-danger",
2784
2892
  neutral: "bg-muted-foreground"
2785
2893
  };
2786
- var sizeStyles7 = {
2894
+ var sizeStyles6 = {
2787
2895
  sm: "h-1.5",
2788
2896
  md: "h-3",
2789
2897
  lg: "h-4"
@@ -2798,12 +2906,12 @@ function ProgressBar({
2798
2906
  className
2799
2907
  }) {
2800
2908
  const clampedValue = Math.min(100, Math.max(0, value));
2801
- return /* @__PURE__ */ jsxs26("div", { className: twMerge18("w-full", className), children: [
2909
+ return /* @__PURE__ */ jsxs26("div", { className: twMerge21("w-full", className), children: [
2802
2910
  (label || description || showValue) && /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between mb-2", children: [
2803
- /* @__PURE__ */ jsx37("span", { className: "text-sm font-medium text-foreground", children: label }),
2804
- /* @__PURE__ */ jsx37("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
2911
+ /* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-foreground", children: label }),
2912
+ /* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
2805
2913
  ] }),
2806
- /* @__PURE__ */ jsx37(
2914
+ /* @__PURE__ */ jsx42(
2807
2915
  "div",
2808
2916
  {
2809
2917
  role: "progressbar",
@@ -2811,14 +2919,14 @@ function ProgressBar({
2811
2919
  "aria-valuemin": 0,
2812
2920
  "aria-valuemax": 100,
2813
2921
  "aria-label": label ?? "Progress",
2814
- className: twMerge18(
2922
+ className: twMerge21(
2815
2923
  "w-full rounded-full bg-progress-track",
2816
- sizeStyles7[size]
2924
+ sizeStyles6[size]
2817
2925
  ),
2818
- children: /* @__PURE__ */ jsx37(
2926
+ children: /* @__PURE__ */ jsx42(
2819
2927
  "div",
2820
2928
  {
2821
- className: twMerge18(
2929
+ className: twMerge21(
2822
2930
  "h-full rounded-full transition-all duration-300",
2823
2931
  fillStyles[variant]
2824
2932
  ),
@@ -2838,8 +2946,8 @@ import {
2838
2946
  AlertCircle as AlertCircle2,
2839
2947
  CheckCircle2 as CheckCircle22
2840
2948
  } from "lucide-react";
2841
- import { twMerge as twMerge19 } from "tailwind-merge";
2842
- import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
2949
+ import { twMerge as twMerge22 } from "tailwind-merge";
2950
+ import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
2843
2951
  var variantConfig2 = {
2844
2952
  info: {
2845
2953
  icon: Info3,
@@ -2887,19 +2995,19 @@ function Banner({
2887
2995
  "div",
2888
2996
  {
2889
2997
  role: config.role,
2890
- className: twMerge19(
2998
+ className: twMerge22(
2891
2999
  "flex items-start gap-3 rounded-lg border px-4 py-3",
2892
3000
  "text-sm",
2893
3001
  config.containerClass,
2894
3002
  className
2895
3003
  ),
2896
3004
  children: [
2897
- /* @__PURE__ */ jsx38(
3005
+ /* @__PURE__ */ jsx43(
2898
3006
  Icon,
2899
3007
  {
2900
3008
  icon: resolvedIcon,
2901
3009
  size: "md",
2902
- className: twMerge19("mt-0.5", config.iconClass)
3010
+ className: twMerge22("mt-0.5", config.iconClass)
2903
3011
  }
2904
3012
  ),
2905
3013
  /* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
@@ -2909,14 +3017,14 @@ function Banner({
2909
3017
  ] }),
2910
3018
  children
2911
3019
  ] }),
2912
- dismissible && /* @__PURE__ */ jsx38(
3020
+ dismissible && /* @__PURE__ */ jsx43(
2913
3021
  "button",
2914
3022
  {
2915
3023
  type: "button",
2916
3024
  onClick: handleDismiss,
2917
3025
  className: "shrink-0 rounded-sm p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
2918
3026
  "aria-label": "Dismiss",
2919
- children: /* @__PURE__ */ jsx38(Icon, { icon: "X", size: "sm" })
3027
+ children: /* @__PURE__ */ jsx43(Icon, { icon: "X", size: "sm" })
2920
3028
  }
2921
3029
  )
2922
3030
  ]
@@ -2925,8 +3033,8 @@ function Banner({
2925
3033
  }
2926
3034
 
2927
3035
  // src/components/MetricCard/MetricCard.tsx
2928
- import { twMerge as twMerge20 } from "tailwind-merge";
2929
- import { Fragment as Fragment9, jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
3036
+ import { twMerge as twMerge23 } from "tailwind-merge";
3037
+ import { Fragment as Fragment8, jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
2930
3038
  var sizeConfig = {
2931
3039
  sm: {
2932
3040
  padding: "p-3",
@@ -2948,101 +3056,119 @@ function MetricCard({
2948
3056
  className
2949
3057
  }) {
2950
3058
  const config = sizeConfig[size];
2951
- const containerClass = twMerge20(
3059
+ const containerClass = twMerge23(
2952
3060
  "bg-background border border-border rounded-lg shadow-sm",
2953
3061
  config.padding,
2954
3062
  href && "block transition-shadow hover:shadow-md hover:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 outline-none",
2955
3063
  className
2956
3064
  );
2957
- const content = /* @__PURE__ */ jsxs28(Fragment9, { children: [
2958
- /* @__PURE__ */ jsx39("div", { className: twMerge20(config.labelClass, "text-muted-foreground"), children: label }),
2959
- /* @__PURE__ */ jsx39(
3065
+ const content = /* @__PURE__ */ jsxs28(Fragment8, { children: [
3066
+ /* @__PURE__ */ jsx44("div", { className: twMerge23(config.labelClass, "text-muted-foreground"), children: label }),
3067
+ /* @__PURE__ */ jsx44(
2960
3068
  "div",
2961
3069
  {
2962
- className: twMerge20(
3070
+ className: twMerge23(
2963
3071
  config.valueClass,
2964
3072
  "font-semibold text-foreground mt-1 tabular-nums"
2965
3073
  ),
2966
3074
  children: value
2967
3075
  }
2968
3076
  ),
2969
- secondary && /* @__PURE__ */ jsx39("div", { className: "mt-1 text-sm", children: secondary })
3077
+ secondary && /* @__PURE__ */ jsx44("div", { className: "mt-1 text-sm", children: secondary })
2970
3078
  ] });
2971
3079
  if (href) {
2972
- return /* @__PURE__ */ jsx39("a", { href, className: containerClass, children: content });
3080
+ return /* @__PURE__ */ jsx44("a", { href, className: containerClass, children: content });
2973
3081
  }
2974
- return /* @__PURE__ */ jsx39("div", { className: containerClass, children: content });
3082
+ return /* @__PURE__ */ jsx44("div", { className: containerClass, children: content });
2975
3083
  }
2976
3084
 
2977
3085
  // src/components/SectionHeader/SectionHeader.tsx
2978
- import { twMerge as twMerge21 } from "tailwind-merge";
2979
- import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
2980
- function SectionHeader({
2981
- title,
3086
+ import { forwardRef as forwardRef7 } from "react";
3087
+ import { twMerge as twMerge24 } from "tailwind-merge";
3088
+ import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
3089
+ var SectionHeader = forwardRef7(
3090
+ function SectionHeader2({ title, as = "h2", children, className, ...rest }, ref) {
3091
+ return /* @__PURE__ */ jsxs29(
3092
+ "div",
3093
+ {
3094
+ ref,
3095
+ className: twMerge24(
3096
+ "flex flex-wrap items-center gap-3 pt-0 pb-4",
3097
+ className
3098
+ ),
3099
+ ...rest,
3100
+ children: [
3101
+ /* @__PURE__ */ jsx45(Heading, { as, children: title }),
3102
+ children && /* @__PURE__ */ jsx45("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
3103
+ ]
3104
+ }
3105
+ );
3106
+ }
3107
+ );
3108
+
3109
+ // src/components/DescriptionList/DescriptionList.tsx
3110
+ import { createContext as createContext4, useContext as useContext4 } from "react";
3111
+ import { Button as AriaButton4 } from "react-aria-components";
3112
+ import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
3113
+ var LayoutContext = createContext4("stacked");
3114
+ var listGapStyles = {
3115
+ stacked: "gap-4",
3116
+ horizontal: "gap-3"
3117
+ };
3118
+ function DescriptionList({
2982
3119
  children,
3120
+ layout = "stacked",
2983
3121
  className
2984
3122
  }) {
2985
- return /* @__PURE__ */ jsxs29(
2986
- "div",
3123
+ return /* @__PURE__ */ jsx46(LayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx46(
3124
+ "dl",
2987
3125
  {
2988
- className: twMerge21(
2989
- "flex flex-wrap items-center gap-3 py-4",
2990
- className
2991
- ),
2992
- children: [
2993
- /* @__PURE__ */ jsx40(H2, { children: title }),
2994
- children && /* @__PURE__ */ jsx40("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
2995
- ]
3126
+ className: ["flex flex-col", listGapStyles[layout], className].filter(Boolean).join(" "),
3127
+ children
2996
3128
  }
2997
- );
3129
+ ) });
2998
3130
  }
2999
-
3000
- // src/components/Pill/Pill.tsx
3001
- import { twMerge as twMerge22 } from "tailwind-merge";
3002
- import { jsx as jsx41 } from "react/jsx-runtime";
3003
- var hashColors = {
3004
- purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
3005
- teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
3006
- rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
3007
- green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
3008
- amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
3009
- };
3010
- var colorStyles = {
3011
- ...hashColors,
3012
- slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20"
3131
+ var itemLayoutStyles = {
3132
+ stacked: "flex flex-col gap-1",
3133
+ horizontal: "grid grid-cols-[140px_1fr] gap-x-(--spacing-4) items-baseline"
3013
3134
  };
3014
- var hashKeys = Object.keys(hashColors);
3135
+ var labelClasses = "text-sm font-medium text-foreground";
3136
+ function DescriptionListItem({
3137
+ label,
3138
+ children,
3139
+ muted = false,
3140
+ fullValue
3141
+ }) {
3142
+ const layout = useContext4(LayoutContext);
3143
+ const valueClasses = [
3144
+ "text-sm m-0",
3145
+ muted ? "text-muted-foreground" : "text-foreground"
3146
+ ].join(" ");
3147
+ const valueContent = /* @__PURE__ */ jsx46("dd", { className: valueClasses, children });
3148
+ return /* @__PURE__ */ jsxs30("div", { className: itemLayoutStyles[layout], children: [
3149
+ /* @__PURE__ */ jsx46("dt", { className: labelClasses, children: label }),
3150
+ fullValue ? /* @__PURE__ */ jsx46(Tooltip, { content: fullValue, children: /* @__PURE__ */ jsx46(AriaButton4, { className: "text-left outline-none cursor-default", children: valueContent }) }) : valueContent
3151
+ ] });
3152
+ }
3153
+ DescriptionList.Item = DescriptionListItem;
3154
+
3155
+ // src/components/PathPill/PathPill.tsx
3156
+ import { twMerge as twMerge25 } from "tailwind-merge";
3157
+ import { jsx as jsx47 } from "react/jsx-runtime";
3158
+ var hashColors = [
3159
+ "purple",
3160
+ "teal",
3161
+ "rose",
3162
+ "green",
3163
+ "amber"
3164
+ ];
3015
3165
  function pillColorFromName(name = "") {
3016
3166
  let hash = 0;
3017
3167
  for (let i = 0; i < name.length; i++) {
3018
3168
  hash = name.charCodeAt(i) + ((hash << 5) - hash);
3019
3169
  }
3020
- return hashKeys[Math.abs(hash) % hashKeys.length];
3170
+ return hashColors[Math.abs(hash) % hashColors.length];
3021
3171
  }
3022
- function Pill({
3023
- children,
3024
- color = pillColorFromName(children),
3025
- className,
3026
- ...rest
3027
- }) {
3028
- const cx = twMerge22(
3029
- `
3030
- inline-flex items-center
3031
- rounded-full
3032
- border
3033
- px-2 py-0.5
3034
- text-xs font-medium
3035
- leading-tight
3036
- `,
3037
- colorStyles[color],
3038
- className
3039
- );
3040
- return /* @__PURE__ */ jsx41("span", { className: cx, ...rest, children });
3041
- }
3042
-
3043
- // src/components/Pill/PathPill.tsx
3044
- import { twMerge as twMerge23 } from "tailwind-merge";
3045
- import { jsx as jsx42 } from "react/jsx-runtime";
3046
3172
  function PathPill({
3047
3173
  children,
3048
3174
  visibleCount,
@@ -3054,18 +3180,18 @@ function PathPill({
3054
3180
  const effectiveVisible = visibleCount ?? segments.length;
3055
3181
  const dotCount = Math.max(0, segments.length - effectiveVisible);
3056
3182
  const fullPath = segments.join(" / ");
3057
- return /* @__PURE__ */ jsx42(
3183
+ return /* @__PURE__ */ jsx47(
3058
3184
  "div",
3059
3185
  {
3060
- className: twMerge23("relative flex", className),
3186
+ className: twMerge25("relative flex", className),
3061
3187
  "aria-label": `Path: ${fullPath}`,
3062
3188
  children: segments.map((segment, i) => {
3063
3189
  const isCollapsed = i < dotCount;
3064
3190
  const isLast = i === segments.length - 1;
3065
- const cx = twMerge23(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
3191
+ const cx = twMerge25(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
3066
3192
  const color = colorFn ? colorFn(segment, i) : pillColorFromName(segment);
3067
- return /* @__PURE__ */ jsx42(
3068
- Pill,
3193
+ return /* @__PURE__ */ jsx47(
3194
+ Badge,
3069
3195
  {
3070
3196
  className: cx,
3071
3197
  color,
@@ -3080,9 +3206,9 @@ function PathPill({
3080
3206
  }
3081
3207
 
3082
3208
  // src/components/FormWizard/FormWizard.tsx
3083
- import { createContext as createContext4, useContext as useContext4, useCallback as useCallback5, useMemo } from "react";
3084
- import { jsx as jsx43 } from "react/jsx-runtime";
3085
- var FormWizardContext = createContext4({
3209
+ import { createContext as createContext5, useContext as useContext5, useCallback as useCallback4, useMemo } from "react";
3210
+ import { jsx as jsx48 } from "react/jsx-runtime";
3211
+ var FormWizardContext = createContext5({
3086
3212
  currentStep: 0,
3087
3213
  totalSteps: 1,
3088
3214
  canGoBack: false,
@@ -3091,7 +3217,7 @@ var FormWizardContext = createContext4({
3091
3217
  isLastStep: true
3092
3218
  });
3093
3219
  function useFormWizard() {
3094
- return useContext4(FormWizardContext);
3220
+ return useContext5(FormWizardContext);
3095
3221
  }
3096
3222
  function FormWizard({
3097
3223
  currentStep,
@@ -3101,7 +3227,7 @@ function FormWizard({
3101
3227
  }) {
3102
3228
  const canGoBack = currentStep > 0;
3103
3229
  const isLastStep = currentStep >= totalSteps - 1;
3104
- const goBack = useCallback5(() => {
3230
+ const goBack = useCallback4(() => {
3105
3231
  if (currentStep > 0) {
3106
3232
  onStepChange(currentStep - 1);
3107
3233
  }
@@ -3116,13 +3242,13 @@ function FormWizard({
3116
3242
  }),
3117
3243
  [currentStep, totalSteps, canGoBack, goBack, isLastStep]
3118
3244
  );
3119
- return /* @__PURE__ */ jsx43(FormWizardContext.Provider, { value, children });
3245
+ return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
3120
3246
  }
3121
3247
 
3122
3248
  // src/components/FormWizard/FormWizardProgress.tsx
3123
- import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
3249
+ import { jsx as jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
3124
3250
  function CheckIcon() {
3125
- return /* @__PURE__ */ jsx44(
3251
+ return /* @__PURE__ */ jsx49(
3126
3252
  "svg",
3127
3253
  {
3128
3254
  "aria-hidden": "true",
@@ -3133,24 +3259,24 @@ function CheckIcon() {
3133
3259
  strokeWidth: "2",
3134
3260
  strokeLinecap: "round",
3135
3261
  strokeLinejoin: "round",
3136
- children: /* @__PURE__ */ jsx44("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
3262
+ children: /* @__PURE__ */ jsx49("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
3137
3263
  }
3138
3264
  );
3139
3265
  }
3140
3266
  function FormWizardProgress({ labels }) {
3141
3267
  const { currentStep, totalSteps } = useFormWizard();
3142
- return /* @__PURE__ */ jsx44("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx44("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
3268
+ return /* @__PURE__ */ jsx49("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx49("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
3143
3269
  const isCompleted = index < currentStep;
3144
3270
  const isCurrent = index === currentStep;
3145
3271
  const isFuture = index > currentStep;
3146
- return /* @__PURE__ */ jsxs30(
3272
+ return /* @__PURE__ */ jsxs31(
3147
3273
  "li",
3148
3274
  {
3149
3275
  className: "flex flex-1 flex-col items-center",
3150
3276
  "aria-current": isCurrent ? "step" : void 0,
3151
3277
  children: [
3152
- /* @__PURE__ */ jsxs30("div", { className: "flex w-full items-center", children: [
3153
- index > 0 ? /* @__PURE__ */ jsx44(
3278
+ /* @__PURE__ */ jsxs31("div", { className: "flex w-full items-center", children: [
3279
+ index > 0 ? /* @__PURE__ */ jsx49(
3154
3280
  "div",
3155
3281
  {
3156
3282
  "aria-hidden": "true",
@@ -3159,8 +3285,8 @@ function FormWizardProgress({ labels }) {
3159
3285
  index <= currentStep ? "bg-primary" : "bg-border"
3160
3286
  ].join(" ")
3161
3287
  }
3162
- ) : /* @__PURE__ */ jsx44("div", { className: "flex-1", "aria-hidden": "true" }),
3163
- /* @__PURE__ */ jsx44(
3288
+ ) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" }),
3289
+ /* @__PURE__ */ jsx49(
3164
3290
  "div",
3165
3291
  {
3166
3292
  className: [
@@ -3172,10 +3298,10 @@ function FormWizardProgress({ labels }) {
3172
3298
  isFuture ? "border-2 border-border bg-background text-muted-foreground" : ""
3173
3299
  ].join(" "),
3174
3300
  "aria-hidden": "true",
3175
- children: isCompleted ? /* @__PURE__ */ jsx44(CheckIcon, {}) : index + 1
3301
+ children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon, {}) : index + 1
3176
3302
  }
3177
3303
  ),
3178
- index < totalSteps - 1 ? /* @__PURE__ */ jsx44(
3304
+ index < totalSteps - 1 ? /* @__PURE__ */ jsx49(
3179
3305
  "div",
3180
3306
  {
3181
3307
  "aria-hidden": "true",
@@ -3184,9 +3310,9 @@ function FormWizardProgress({ labels }) {
3184
3310
  index < currentStep ? "bg-primary" : "bg-border"
3185
3311
  ].join(" ")
3186
3312
  }
3187
- ) : /* @__PURE__ */ jsx44("div", { className: "flex-1", "aria-hidden": "true" })
3313
+ ) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
3188
3314
  ] }),
3189
- /* @__PURE__ */ jsx44(
3315
+ /* @__PURE__ */ jsx49(
3190
3316
  "span",
3191
3317
  {
3192
3318
  className: [
@@ -3204,15 +3330,15 @@ function FormWizardProgress({ labels }) {
3204
3330
  }
3205
3331
 
3206
3332
  // src/components/FormWizard/FormWizardNav.tsx
3207
- import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
3333
+ import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
3208
3334
  function FormWizardNav({
3209
3335
  onNext,
3210
3336
  isSubmitting = false,
3211
3337
  submitLabel = "Submit"
3212
3338
  }) {
3213
3339
  const { canGoBack, goBack, isLastStep } = useFormWizard();
3214
- return /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-end gap-3", children: [
3215
- canGoBack && /* @__PURE__ */ jsx45(
3340
+ return /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-end gap-3", children: [
3341
+ canGoBack && /* @__PURE__ */ jsx50(
3216
3342
  Button,
3217
3343
  {
3218
3344
  variant: "secondary",
@@ -3222,7 +3348,7 @@ function FormWizardNav({
3222
3348
  children: "Back"
3223
3349
  }
3224
3350
  ),
3225
- /* @__PURE__ */ jsx45(
3351
+ /* @__PURE__ */ jsx50(
3226
3352
  Button,
3227
3353
  {
3228
3354
  variant: "primary",
@@ -3243,10 +3369,10 @@ export {
3243
3369
  Card,
3244
3370
  Cell,
3245
3371
  Checkbox,
3246
- ColorPurple700,
3247
- ColorTeal500,
3248
3372
  Column,
3249
3373
  DeltaIndicator,
3374
+ Description,
3375
+ DescriptionList,
3250
3376
  Dialog,
3251
3377
  EmptyState,
3252
3378
  Fieldset,
@@ -3256,7 +3382,10 @@ export {
3256
3382
  H1,
3257
3383
  H2,
3258
3384
  H3,
3259
- Heading2 as Heading,
3385
+ H4,
3386
+ H5,
3387
+ H6,
3388
+ Heading,
3260
3389
  Icon,
3261
3390
  IconButton,
3262
3391
  IconButtonLink,
@@ -3265,7 +3394,8 @@ export {
3265
3394
  InputPassword,
3266
3395
  Label,
3267
3396
  Link,
3268
- Menu,
3397
+ Logo,
3398
+ Menu2 as Menu,
3269
3399
  MenuCheckboxItem,
3270
3400
  MenuHeader,
3271
3401
  MenuItem,
@@ -3273,11 +3403,11 @@ export {
3273
3403
  MenuSeparator,
3274
3404
  MetricCard,
3275
3405
  PathPill,
3276
- Pill,
3277
3406
  Popover4 as Popover,
3278
3407
  PopoverContent,
3279
3408
  PopoverTrigger,
3280
3409
  ProgressBar,
3410
+ Prose,
3281
3411
  Radio,
3282
3412
  RadioButton,
3283
3413
  RadioGroup,