@cytario/design 8.0.0 → 9.0.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,18 +1411,22 @@ 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 { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1202
1415
  var tableSizeClass = {
1203
1416
  compact: "[--table-row-py:theme(spacing.1)]",
1204
1417
  comfortable: "[--table-row-py:theme(spacing.3)]"
1205
1418
  };
1206
- function Table2({ size = "comfortable", className, ...props }) {
1207
- return /* @__PURE__ */ jsx11(
1419
+ function Table2({
1420
+ size = "comfortable",
1421
+ className,
1422
+ ...props
1423
+ }) {
1424
+ return /* @__PURE__ */ jsx17(
1208
1425
  AriaTable,
1209
1426
  {
1210
1427
  ...props,
1211
1428
  className: [
1212
- "w-full border-collapse text-(--font-size-sm) text-foreground",
1429
+ "w-full border-collapse text-sm text-foreground",
1213
1430
  tableSizeClass[size],
1214
1431
  className
1215
1432
  ].filter(Boolean).join(" ")
@@ -1217,10 +1434,10 @@ function Table2({ size = "comfortable", className, ...props }) {
1217
1434
  );
1218
1435
  }
1219
1436
  function TableHeader(props) {
1220
- return /* @__PURE__ */ jsx11(AriaTableHeader, { ...props });
1437
+ return /* @__PURE__ */ jsx17(AriaTableHeader, { ...props });
1221
1438
  }
1222
1439
  function Column(props) {
1223
- return /* @__PURE__ */ jsx11(
1440
+ return /* @__PURE__ */ jsx17(
1224
1441
  AriaColumn,
1225
1442
  {
1226
1443
  ...props,
@@ -1232,16 +1449,16 @@ function Column(props) {
1232
1449
  ].join(" "),
1233
1450
  children: ({ allowsSorting, sortDirection }) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-1", children: [
1234
1451
  props.children,
1235
- allowsSorting && /* @__PURE__ */ jsx11("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
1452
+ allowsSorting && /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
1236
1453
  ] })
1237
1454
  }
1238
1455
  );
1239
1456
  }
1240
1457
  function TableBody(props) {
1241
- return /* @__PURE__ */ jsx11(AriaTableBody, { ...props });
1458
+ return /* @__PURE__ */ jsx17(AriaTableBody, { ...props });
1242
1459
  }
1243
1460
  function Row(props) {
1244
- return /* @__PURE__ */ jsx11(
1461
+ return /* @__PURE__ */ jsx17(
1245
1462
  AriaRow,
1246
1463
  {
1247
1464
  ...props,
@@ -1257,7 +1474,7 @@ function Row(props) {
1257
1474
  );
1258
1475
  }
1259
1476
  function Cell(props) {
1260
- return /* @__PURE__ */ jsx11(
1477
+ return /* @__PURE__ */ jsx17(
1261
1478
  AriaCell,
1262
1479
  {
1263
1480
  ...props,
@@ -1276,10 +1493,10 @@ import {
1276
1493
  Modal,
1277
1494
  ModalOverlay,
1278
1495
  Dialog as AriaDialog,
1279
- Heading
1496
+ Heading as Heading3
1280
1497
  } from "react-aria-components";
1281
1498
  import { X as X2 } from "lucide-react";
1282
- import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1499
+ import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1283
1500
  var sizeStyles2 = {
1284
1501
  sm: "max-w-md",
1285
1502
  md: "max-w-lg",
@@ -1295,7 +1512,7 @@ function Dialog({
1295
1512
  children,
1296
1513
  className
1297
1514
  }) {
1298
- return /* @__PURE__ */ jsx12(
1515
+ return /* @__PURE__ */ jsx18(
1299
1516
  ModalOverlay,
1300
1517
  {
1301
1518
  isOpen,
@@ -1307,7 +1524,7 @@ function Dialog({
1307
1524
  "entering:animate-in entering:fade-in",
1308
1525
  "exiting:animate-out exiting:fade-out"
1309
1526
  ].join(" "),
1310
- children: /* @__PURE__ */ jsx12(
1527
+ children: /* @__PURE__ */ jsx18(
1311
1528
  Modal,
1312
1529
  {
1313
1530
  className: [
@@ -1318,17 +1535,17 @@ function Dialog({
1318
1535
  "exiting:animate-out exiting:zoom-out-95 exiting:fade-out",
1319
1536
  className
1320
1537
  ].filter(Boolean).join(" "),
1321
- children: /* @__PURE__ */ jsx12(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
1538
+ children: /* @__PURE__ */ jsx18(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
1322
1539
  /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border", children: [
1323
- /* @__PURE__ */ jsx12(
1324
- Heading,
1540
+ /* @__PURE__ */ jsx18(
1541
+ Heading3,
1325
1542
  {
1326
1543
  slot: "title",
1327
1544
  className: "text-lg font-semibold text-foreground",
1328
1545
  children: title
1329
1546
  }
1330
1547
  ),
1331
- /* @__PURE__ */ jsx12(
1548
+ /* @__PURE__ */ jsx18(
1332
1549
  "button",
1333
1550
  {
1334
1551
  type: "button",
@@ -1340,11 +1557,11 @@ function Dialog({
1340
1557
  "transition-colors"
1341
1558
  ].join(" "),
1342
1559
  "aria-label": "Close",
1343
- children: /* @__PURE__ */ jsx12(X2, { size: 20, "aria-hidden": "true" })
1560
+ children: /* @__PURE__ */ jsx18(X2, { size: 20, "aria-hidden": "true" })
1344
1561
  }
1345
1562
  )
1346
1563
  ] }),
1347
- /* @__PURE__ */ jsx12("div", { className: "px-6 py-4 overflow-y-auto", children })
1564
+ /* @__PURE__ */ jsx18("div", { className: "px-6 py-4 overflow-y-auto", children })
1348
1565
  ] }) })
1349
1566
  }
1350
1567
  )
@@ -1353,7 +1570,7 @@ function Dialog({
1353
1570
  }
1354
1571
 
1355
1572
  // src/components/Dialog/DialogFooter.tsx
1356
- import { jsx as jsx13 } from "react/jsx-runtime";
1573
+ import { jsx as jsx19 } from "react/jsx-runtime";
1357
1574
 
1358
1575
  // src/components/Toast/Toast.tsx
1359
1576
  import {
@@ -1366,7 +1583,7 @@ import {
1366
1583
  } from "react";
1367
1584
  import { createPortal as createPortal2 } from "react-dom";
1368
1585
  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";
1586
+ import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1370
1587
  var ToastContext = createContext(null);
1371
1588
  var toastCounter = 0;
1372
1589
  var defaultDuration = {
@@ -1437,16 +1654,16 @@ function ToastItem({
1437
1654
  config.containerClass
1438
1655
  ].join(" "),
1439
1656
  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(
1657
+ /* @__PURE__ */ jsx20(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
1658
+ /* @__PURE__ */ jsx20("p", { className: "flex-1 text-sm font-medium", children: toast.message }),
1659
+ /* @__PURE__ */ jsx20(
1443
1660
  "button",
1444
1661
  {
1445
1662
  type: "button",
1446
1663
  onClick: dismiss,
1447
1664
  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
1665
  "aria-label": "Dismiss",
1449
- children: /* @__PURE__ */ jsx14(X3, { size: 16, "aria-hidden": "true" })
1666
+ children: /* @__PURE__ */ jsx20(X3, { size: 16, "aria-hidden": "true" })
1450
1667
  }
1451
1668
  )
1452
1669
  ]
@@ -1466,7 +1683,7 @@ function ToastContainer({
1466
1683
  }) {
1467
1684
  if (toasts.length === 0) return null;
1468
1685
  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)) }) }),
1686
+ /* @__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
1687
  document.body
1471
1688
  );
1472
1689
  }
@@ -1499,7 +1716,7 @@ function ToastProvider({ children, bridge, placement = "bottom-right" }) {
1499
1716
  }, [bridge, addToast]);
1500
1717
  return /* @__PURE__ */ jsxs11(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
1501
1718
  children,
1502
- /* @__PURE__ */ jsx14(ToastContainer, { toasts, removeToast, placement })
1719
+ /* @__PURE__ */ jsx20(ToastContainer, { toasts, removeToast, placement })
1503
1720
  ] });
1504
1721
  }
1505
1722
  function useToast() {
@@ -1515,7 +1732,7 @@ function useToast() {
1515
1732
  }
1516
1733
 
1517
1734
  // src/components/EmptyState/EmptyState.tsx
1518
- import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1735
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1519
1736
  function EmptyState({
1520
1737
  icon,
1521
1738
  title,
@@ -1531,10 +1748,10 @@ function EmptyState({
1531
1748
  className
1532
1749
  ].filter(Boolean).join(" "),
1533
1750
  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 })
1751
+ icon && /* @__PURE__ */ jsx21(Icon, { icon, size: "xl", className: "text-muted-foreground" }),
1752
+ /* @__PURE__ */ jsx21("h3", { className: "text-lg font-semibold text-foreground mt-4", children: title }),
1753
+ description && /* @__PURE__ */ jsx21("p", { className: "text-sm text-muted-foreground mt-2 max-w-sm", children: description }),
1754
+ action && /* @__PURE__ */ jsx21("div", { className: "mt-6", children: action })
1538
1755
  ]
1539
1756
  }
1540
1757
  );
@@ -1545,9 +1762,9 @@ import {
1545
1762
  Checkbox as AriaCheckbox
1546
1763
  } from "react-aria-components";
1547
1764
  import { Check as Check3 } from "lucide-react";
1548
- import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
1765
+ import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
1549
1766
  function Checkbox({ children, className, ...props }) {
1550
- return /* @__PURE__ */ jsx16(
1767
+ return /* @__PURE__ */ jsx22(
1551
1768
  AriaCheckbox,
1552
1769
  {
1553
1770
  ...props,
@@ -1567,12 +1784,12 @@ function Checkbox({ children, className, ...props }) {
1567
1784
  isSelected || isIndeterminate ? "bg-primary border-primary" : "bg-background border-border group-hover:border-border"
1568
1785
  ].join(" "),
1569
1786
  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" })
1787
+ isSelected && /* @__PURE__ */ jsx22(Check3, { className: "w-4 h-4 text-primary-foreground", strokeWidth: 3 }),
1788
+ isIndeterminate && /* @__PURE__ */ jsx22("div", { className: "w-3 h-0.5 bg-primary-foreground rounded-full" })
1572
1789
  ]
1573
1790
  }
1574
1791
  ),
1575
- children && /* @__PURE__ */ jsx16("span", { children })
1792
+ children && /* @__PURE__ */ jsx22("span", { children })
1576
1793
  ] })
1577
1794
  }
1578
1795
  );
@@ -1582,7 +1799,7 @@ function Checkbox({ children, className, ...props }) {
1582
1799
  import {
1583
1800
  Switch as AriaSwitch
1584
1801
  } from "react-aria-components";
1585
- import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
1802
+ import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
1586
1803
  var trackColorMap = {
1587
1804
  primary: "bg-primary",
1588
1805
  success: "bg-success",
@@ -1599,7 +1816,7 @@ function Switch({
1599
1816
  ...props
1600
1817
  }) {
1601
1818
  const isPreset = isPresetColor(color);
1602
- return /* @__PURE__ */ jsx17(
1819
+ return /* @__PURE__ */ jsx23(
1603
1820
  AriaSwitch,
1604
1821
  {
1605
1822
  ...props,
@@ -1609,7 +1826,7 @@ function Switch({
1609
1826
  className
1610
1827
  ].filter(Boolean).join(" "),
1611
1828
  children: ({ isSelected }) => /* @__PURE__ */ jsxs14(Fragment4, { children: [
1612
- /* @__PURE__ */ jsx17(
1829
+ /* @__PURE__ */ jsx23(
1613
1830
  "div",
1614
1831
  {
1615
1832
  className: [
@@ -1618,7 +1835,7 @@ function Switch({
1618
1835
  isSelected && isPreset ? trackColorMap[color] : !isSelected ? "bg-border" : ""
1619
1836
  ].join(" "),
1620
1837
  style: isSelected && !isPreset ? { backgroundColor: color } : void 0,
1621
- children: /* @__PURE__ */ jsx17(
1838
+ children: /* @__PURE__ */ jsx23(
1622
1839
  "div",
1623
1840
  {
1624
1841
  className: [
@@ -1629,7 +1846,7 @@ function Switch({
1629
1846
  )
1630
1847
  }
1631
1848
  ),
1632
- children && /* @__PURE__ */ jsx17("span", { children })
1849
+ children && /* @__PURE__ */ jsx23("span", { children })
1633
1850
  ] })
1634
1851
  }
1635
1852
  );
@@ -1640,9 +1857,9 @@ import {
1640
1857
  RadioGroup as AriaRadioGroup,
1641
1858
  Radio as AriaRadio
1642
1859
  } from "react-aria-components";
1643
- import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
1860
+ import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
1644
1861
  function RadioGroup({ children, className, ...props }) {
1645
- return /* @__PURE__ */ jsx18(
1862
+ return /* @__PURE__ */ jsx24(
1646
1863
  AriaRadioGroup,
1647
1864
  {
1648
1865
  ...props,
@@ -1656,7 +1873,7 @@ function RadioGroup({ children, className, ...props }) {
1656
1873
  );
1657
1874
  }
1658
1875
  function Radio({ children, className, ...props }) {
1659
- return /* @__PURE__ */ jsx18(
1876
+ return /* @__PURE__ */ jsx24(
1660
1877
  AriaRadio,
1661
1878
  {
1662
1879
  ...props,
@@ -1666,7 +1883,7 @@ function Radio({ children, className, ...props }) {
1666
1883
  className
1667
1884
  ].filter(Boolean).join(" "),
1668
1885
  children: ({ isSelected }) => /* @__PURE__ */ jsxs15(Fragment5, { children: [
1669
- /* @__PURE__ */ jsx18(
1886
+ /* @__PURE__ */ jsx24(
1670
1887
  "div",
1671
1888
  {
1672
1889
  className: [
@@ -1675,16 +1892,16 @@ function Radio({ children, className, ...props }) {
1675
1892
  "group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2",
1676
1893
  isSelected ? "border-primary" : "border-border group-hover:border-border"
1677
1894
  ].join(" "),
1678
- children: isSelected && /* @__PURE__ */ jsx18("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
1895
+ children: isSelected && /* @__PURE__ */ jsx24("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
1679
1896
  }
1680
1897
  ),
1681
- children && /* @__PURE__ */ jsx18("span", { children })
1898
+ children && /* @__PURE__ */ jsx24("span", { children })
1682
1899
  ] })
1683
1900
  }
1684
1901
  );
1685
1902
  }
1686
1903
  function RadioButton({ children, className, ...props }) {
1687
- return /* @__PURE__ */ jsx18(
1904
+ return /* @__PURE__ */ jsx24(
1688
1905
  AriaRadio,
1689
1906
  {
1690
1907
  ...props,
@@ -1693,7 +1910,7 @@ function RadioButton({ children, className, ...props }) {
1693
1910
  "disabled:opacity-50 disabled:cursor-default",
1694
1911
  className
1695
1912
  ].filter(Boolean).join(" "),
1696
- children: ({ isSelected }) => /* @__PURE__ */ jsx18(
1913
+ children: ({ isSelected }) => /* @__PURE__ */ jsx24(
1697
1914
  "div",
1698
1915
  {
1699
1916
  className: [
@@ -1710,7 +1927,7 @@ function RadioButton({ children, className, ...props }) {
1710
1927
  }
1711
1928
 
1712
1929
  // src/components/Form/Fieldset/Fieldset.tsx
1713
- import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
1930
+ import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
1714
1931
  function Fieldset({ legend, children, className }) {
1715
1932
  return /* @__PURE__ */ jsxs16(
1716
1933
  "fieldset",
@@ -1721,7 +1938,7 @@ function Fieldset({ legend, children, className }) {
1721
1938
  className
1722
1939
  ].filter(Boolean).join(" "),
1723
1940
  children: [
1724
- legend && /* @__PURE__ */ jsx19(
1941
+ legend && /* @__PURE__ */ jsx25(
1725
1942
  "legend",
1726
1943
  {
1727
1944
  className: [
@@ -1739,74 +1956,11 @@ function Fieldset({ legend, children, className }) {
1739
1956
  );
1740
1957
  }
1741
1958
 
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
1959
  // src/components/Link/Link.tsx
1806
1960
  import {
1807
1961
  Link as AriaLink3
1808
1962
  } from "react-aria-components";
1809
- import { jsx as jsx21 } from "react/jsx-runtime";
1963
+ import { jsx as jsx26 } from "react/jsx-runtime";
1810
1964
  var variantStyles2 = {
1811
1965
  default: [
1812
1966
  "text-teal-700 underline",
@@ -1822,7 +1976,7 @@ function Link({
1822
1976
  className,
1823
1977
  ...props
1824
1978
  }) {
1825
- return /* @__PURE__ */ jsx21(
1979
+ return /* @__PURE__ */ jsx26(
1826
1980
  AriaLink3,
1827
1981
  {
1828
1982
  ...props,
@@ -1843,20 +1997,20 @@ import {
1843
1997
  Link as Link2
1844
1998
  } from "react-aria-components";
1845
1999
  import { ChevronRight as ChevronRight2 } from "lucide-react";
1846
- import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
2000
+ import { Fragment as Fragment6, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
1847
2001
  function Breadcrumbs({ items, className }) {
1848
- return /* @__PURE__ */ jsx22(
2002
+ return /* @__PURE__ */ jsx27(
1849
2003
  "nav",
1850
2004
  {
1851
2005
  "aria-label": "Breadcrumb",
1852
2006
  className,
1853
- children: /* @__PURE__ */ jsx22(
2007
+ children: /* @__PURE__ */ jsx27(
1854
2008
  AriaBreadcrumbs,
1855
2009
  {
1856
2010
  className: "flex items-center gap-1 text-sm min-w-0",
1857
2011
  children: items.map((item, index) => {
1858
2012
  const isLast = index === items.length - 1;
1859
- return /* @__PURE__ */ jsx22(
2013
+ return /* @__PURE__ */ jsx27(
1860
2014
  AriaBreadcrumb,
1861
2015
  {
1862
2016
  id: item.id,
@@ -1864,8 +2018,8 @@ function Breadcrumbs({ items, className }) {
1864
2018
  "flex items-center gap-1",
1865
2019
  isLast ? "min-w-0" : "shrink-0"
1866
2020
  ].join(" "),
1867
- children: isLast ? /* @__PURE__ */ jsx22("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
1868
- /* @__PURE__ */ jsx22(
2021
+ children: isLast ? /* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
2022
+ /* @__PURE__ */ jsx27(
1869
2023
  Link2,
1870
2024
  {
1871
2025
  href: item.href,
@@ -1873,7 +2027,7 @@ function Breadcrumbs({ items, className }) {
1873
2027
  children: item.label
1874
2028
  }
1875
2029
  ),
1876
- /* @__PURE__ */ jsx22(
2030
+ /* @__PURE__ */ jsx27(
1877
2031
  ChevronRight2,
1878
2032
  {
1879
2033
  className: "shrink-0 text-slate-400",
@@ -1896,8 +2050,8 @@ function Breadcrumbs({ items, className }) {
1896
2050
  import {
1897
2051
  ToggleButton as AriaToggleButton2
1898
2052
  } from "react-aria-components";
1899
- import { twMerge as twMerge9 } from "tailwind-merge";
1900
- import { jsx as jsx23 } from "react/jsx-runtime";
2053
+ import { twMerge as twMerge11 } from "tailwind-merge";
2054
+ import { jsx as jsx28 } from "react/jsx-runtime";
1901
2055
  var squareSizeStyles2 = {
1902
2056
  xs: "h-6 w-6 text-xs",
1903
2057
  sm: "h-7 w-7 text-sm",
@@ -1942,11 +2096,11 @@ function ToggleButton({
1942
2096
  ...props
1943
2097
  }) {
1944
2098
  const styles = variantStyles3[variant];
1945
- return /* @__PURE__ */ jsx23(
2099
+ return /* @__PURE__ */ jsx28(
1946
2100
  AriaToggleButton2,
1947
2101
  {
1948
2102
  ...props,
1949
- className: ({ isSelected }) => twMerge9(
2103
+ className: ({ isSelected }) => twMerge11(
1950
2104
  "inline-flex items-center justify-center gap-2 cursor-pointer",
1951
2105
  isSquare ? "rounded-none" : "rounded-md",
1952
2106
  "font-medium",
@@ -1969,7 +2123,7 @@ import {
1969
2123
  MenuItem as AriaMenuItem,
1970
2124
  Popover as Popover2
1971
2125
  } from "react-aria-components";
1972
- import { twMerge as twMerge10 } from "tailwind-merge";
2126
+ import { twMerge as twMerge12 } from "tailwind-merge";
1973
2127
 
1974
2128
  // src/components/Menu/menuStyles.ts
1975
2129
  var popoverStyles = `
@@ -1981,8 +2135,8 @@ var popoverStyles = `
1981
2135
  `;
1982
2136
 
1983
2137
  // src/components/Menu/Menu.tsx
1984
- import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
1985
- function Menu({
2138
+ import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
2139
+ function Menu2({
1986
2140
  items,
1987
2141
  content,
1988
2142
  children,
@@ -1996,7 +2150,7 @@ function Menu({
1996
2150
  const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
1997
2151
  return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
1998
2152
  children,
1999
- /* @__PURE__ */ jsx24(Popover2, { className: twMerge10(popoverStyles, className), children: items ? /* @__PURE__ */ jsx24(
2153
+ /* @__PURE__ */ jsx29(Popover2, { className: twMerge12(popoverStyles, className), children: items ? /* @__PURE__ */ jsx29(
2000
2154
  AriaMenu,
2001
2155
  {
2002
2156
  items,
@@ -2023,14 +2177,14 @@ function Menu({
2023
2177
  item.isDanger ? "text-destructive" : "text-foreground"
2024
2178
  ].filter(Boolean).join(" "),
2025
2179
  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 })
2180
+ item.icon && /* @__PURE__ */ jsx29(Icon, { icon: item.icon, size: "sm" }),
2181
+ /* @__PURE__ */ jsx29("span", { className: "flex-1", children: item.label }),
2182
+ item.endContent && /* @__PURE__ */ jsx29("span", { className: "ml-auto flex items-center", children: item.endContent })
2029
2183
  ]
2030
2184
  }
2031
2185
  )
2032
2186
  }
2033
- ) : /* @__PURE__ */ jsx24(
2187
+ ) : /* @__PURE__ */ jsx29(
2034
2188
  AriaMenu,
2035
2189
  {
2036
2190
  onAction: (key) => onAction?.(key),
@@ -2055,8 +2209,8 @@ import {
2055
2209
  Popover as Popover3,
2056
2210
  Pressable
2057
2211
  } from "react-aria-components";
2058
- import { twMerge as twMerge11 } from "tailwind-merge";
2059
- import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
2212
+ import { twMerge as twMerge13 } from "tailwind-merge";
2213
+ import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
2060
2214
  function useContextMenu({
2061
2215
  content,
2062
2216
  onAction,
@@ -2106,7 +2260,7 @@ function useContextMenu({
2106
2260
  if (!open) close();
2107
2261
  },
2108
2262
  children: [
2109
- /* @__PURE__ */ jsx25(Pressable, { children: /* @__PURE__ */ jsx25(
2263
+ /* @__PURE__ */ jsx30(Pressable, { children: /* @__PURE__ */ jsx30(
2110
2264
  "span",
2111
2265
  {
2112
2266
  ref: anchorRef,
@@ -2115,14 +2269,14 @@ function useContextMenu({
2115
2269
  style: { left: anchor?.x ?? 0, top: anchor?.y ?? 0 }
2116
2270
  }
2117
2271
  ) }),
2118
- /* @__PURE__ */ jsx25(
2272
+ /* @__PURE__ */ jsx30(
2119
2273
  Popover3,
2120
2274
  {
2121
2275
  isNonModal: true,
2122
2276
  placement: "bottom start",
2123
2277
  ref: popoverRef,
2124
- className: twMerge11(popoverStyles, className),
2125
- children: /* @__PURE__ */ jsx25(
2278
+ className: twMerge13(popoverStyles, className),
2279
+ children: /* @__PURE__ */ jsx30(
2126
2280
  AriaMenu2,
2127
2281
  {
2128
2282
  autoFocus: "first",
@@ -2150,7 +2304,7 @@ function useContextMenu({
2150
2304
 
2151
2305
  // src/components/Menu/MenuItem.tsx
2152
2306
  import { MenuItem as AriaMenuItem2 } from "react-aria-components";
2153
- import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
2307
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
2154
2308
  function MenuItem({
2155
2309
  id,
2156
2310
  children,
@@ -2183,9 +2337,9 @@ function MenuItem({
2183
2337
  className
2184
2338
  ].filter(Boolean).join(" "),
2185
2339
  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 })
2340
+ icon && /* @__PURE__ */ jsx31(Icon, { icon, size: "sm" }),
2341
+ /* @__PURE__ */ jsx31("span", { className: "flex-1", children }),
2342
+ endContent && /* @__PURE__ */ jsx31("span", { className: "ml-auto flex items-center", children: endContent })
2189
2343
  ]
2190
2344
  }
2191
2345
  );
@@ -2194,7 +2348,7 @@ function MenuItem({
2194
2348
  // src/components/Menu/MenuCheckboxItem.tsx
2195
2349
  import { MenuItem as AriaMenuItem3 } from "react-aria-components";
2196
2350
  import { Check as Check4 } from "lucide-react";
2197
- import { Fragment as Fragment7, jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
2351
+ import { Fragment as Fragment7, jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
2198
2352
  function MenuCheckboxItem({
2199
2353
  id,
2200
2354
  children,
@@ -2202,7 +2356,7 @@ function MenuCheckboxItem({
2202
2356
  isDisabled,
2203
2357
  className
2204
2358
  }) {
2205
- return /* @__PURE__ */ jsx27(
2359
+ return /* @__PURE__ */ jsx32(
2206
2360
  AriaMenuItem3,
2207
2361
  {
2208
2362
  id,
@@ -2219,8 +2373,8 @@ function MenuCheckboxItem({
2219
2373
  className
2220
2374
  ].filter(Boolean).join(" "),
2221
2375
  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 })
2376
+ /* @__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" }) }),
2377
+ /* @__PURE__ */ jsx32("span", { className: "flex-1", children })
2224
2378
  ] })
2225
2379
  }
2226
2380
  );
@@ -2231,7 +2385,7 @@ import {
2231
2385
  MenuSection as AriaMenuSection,
2232
2386
  Header
2233
2387
  } from "react-aria-components";
2234
- import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
2388
+ import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
2235
2389
  function MenuSection({
2236
2390
  header,
2237
2391
  children,
@@ -2239,7 +2393,7 @@ function MenuSection({
2239
2393
  className
2240
2394
  }) {
2241
2395
  return /* @__PURE__ */ jsxs22(AriaMenuSection, { className, "aria-label": ariaLabel, children: [
2242
- header && /* @__PURE__ */ jsx28(
2396
+ header && /* @__PURE__ */ jsx33(
2243
2397
  Header,
2244
2398
  {
2245
2399
  className: [
@@ -2258,16 +2412,16 @@ function MenuSection({
2258
2412
 
2259
2413
  // src/components/Menu/MenuHeader.tsx
2260
2414
  import { Header as Header2 } from "react-aria-components";
2261
- import { jsx as jsx29 } from "react/jsx-runtime";
2415
+ import { jsx as jsx34 } from "react/jsx-runtime";
2262
2416
  function MenuHeader({ children, className }) {
2263
- return /* @__PURE__ */ jsx29(Header2, { className, children });
2417
+ return /* @__PURE__ */ jsx34(Header2, { className, children });
2264
2418
  }
2265
2419
 
2266
2420
  // src/components/Menu/MenuSeparator.tsx
2267
2421
  import { Separator } from "react-aria-components";
2268
- import { jsx as jsx30 } from "react/jsx-runtime";
2422
+ import { jsx as jsx35 } from "react/jsx-runtime";
2269
2423
  function MenuSeparator({ className }) {
2270
- return /* @__PURE__ */ jsx30(
2424
+ return /* @__PURE__ */ jsx35(
2271
2425
  Separator,
2272
2426
  {
2273
2427
  className: [
@@ -2284,17 +2438,17 @@ import {
2284
2438
  Popover as AriaPopover,
2285
2439
  Button as AriaButton3
2286
2440
  } from "react-aria-components";
2287
- import { twMerge as twMerge12 } from "tailwind-merge";
2288
- import { jsx as jsx31 } from "react/jsx-runtime";
2441
+ import { twMerge as twMerge14 } from "tailwind-merge";
2442
+ import { jsx as jsx36 } from "react/jsx-runtime";
2289
2443
  function Popover4({ children, isOpen, onOpenChange }) {
2290
- return /* @__PURE__ */ jsx31(DialogTrigger, { isOpen, onOpenChange, children });
2444
+ return /* @__PURE__ */ jsx36(DialogTrigger, { isOpen, onOpenChange, children });
2291
2445
  }
2292
2446
  function PopoverTrigger({ children, className }) {
2293
2447
  const cx = `
2294
2448
  inline-flex items-center bg-transparent border-none p-0 outline-none cursor-pointer
2295
2449
  focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm
2296
2450
  `;
2297
- return /* @__PURE__ */ jsx31(AriaButton3, { className: twMerge12(cx, className), children });
2451
+ return /* @__PURE__ */ jsx36(AriaButton3, { className: twMerge14(cx, className), children });
2298
2452
  }
2299
2453
  function PopoverContent({
2300
2454
  placement = "bottom",
@@ -2315,13 +2469,13 @@ function PopoverContent({
2315
2469
  entering:placement-left:slide-in-from-right-1
2316
2470
  entering:placement-right:slide-in-from-left-1
2317
2471
  `;
2318
- return /* @__PURE__ */ jsx31(
2472
+ return /* @__PURE__ */ jsx36(
2319
2473
  AriaPopover,
2320
2474
  {
2321
2475
  ...rest,
2322
2476
  placement,
2323
2477
  offset: offsetPx,
2324
- className: twMerge12(cx, className),
2478
+ className: twMerge14(cx, className),
2325
2479
  children
2326
2480
  }
2327
2481
  );
@@ -2329,19 +2483,19 @@ function PopoverContent({
2329
2483
 
2330
2484
  // src/components/Tabs/Tabs.tsx
2331
2485
  import { createContext as createContext2, useContext as useContext2 } from "react";
2332
- import { twMerge as twMerge13 } from "tailwind-merge";
2486
+ import { twMerge as twMerge15 } from "tailwind-merge";
2333
2487
  import {
2334
2488
  Tabs as AriaTabs,
2335
2489
  TabList as AriaTabList,
2336
2490
  Tab as AriaTab,
2337
2491
  TabPanel as AriaTabPanel
2338
2492
  } from "react-aria-components";
2339
- import { jsx as jsx32 } from "react/jsx-runtime";
2493
+ import { jsx as jsx37 } from "react/jsx-runtime";
2340
2494
  var TabsContext = createContext2({
2341
2495
  variant: "underline",
2342
2496
  size: "md"
2343
2497
  });
2344
- var sizeStyles4 = {
2498
+ var sizeStyles3 = {
2345
2499
  sm: "px-3 py-1.5 text-sm",
2346
2500
  md: "px-4 py-2 text-base",
2347
2501
  lg: "px-6 py-3 text-lg"
@@ -2354,12 +2508,12 @@ function Tabs({
2354
2508
  children,
2355
2509
  ...props
2356
2510
  }) {
2357
- return /* @__PURE__ */ jsx32(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx32(
2511
+ return /* @__PURE__ */ jsx37(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx37(
2358
2512
  AriaTabs,
2359
2513
  {
2360
2514
  ...props,
2361
2515
  orientation,
2362
- className: twMerge13(
2516
+ className: twMerge15(
2363
2517
  orientation === "vertical" ? "flex" : "",
2364
2518
  className
2365
2519
  ),
@@ -2374,11 +2528,11 @@ function TabList({
2374
2528
  const { variant } = useContext2(TabsContext);
2375
2529
  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
2530
  const verticalStyles = variant === "unstyled" ? "flex-col" : variant === "underline" ? "flex-col border-b-0 border-r border-border" : "flex-col";
2377
- return /* @__PURE__ */ jsx32(
2531
+ return /* @__PURE__ */ jsx37(
2378
2532
  AriaTabList,
2379
2533
  {
2380
2534
  ...props,
2381
- className: ({ orientation }) => twMerge13(
2535
+ className: ({ orientation }) => twMerge15(
2382
2536
  baseStyles,
2383
2537
  orientation === "vertical" ? verticalStyles : "",
2384
2538
  className
@@ -2388,20 +2542,20 @@ function TabList({
2388
2542
  }
2389
2543
  function Tab({ className, ...props }) {
2390
2544
  const { variant, size } = useContext2(TabsContext);
2391
- return /* @__PURE__ */ jsx32(
2545
+ return /* @__PURE__ */ jsx37(
2392
2546
  AriaTab,
2393
2547
  {
2394
2548
  ...props,
2395
2549
  className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
2396
2550
  if (variant === "unstyled") {
2397
- return twMerge13(
2551
+ return twMerge15(
2398
2552
  "cursor-pointer outline-none",
2399
2553
  "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2400
2554
  isDisabled ? "opacity-50 pointer-events-none" : "",
2401
2555
  className
2402
2556
  );
2403
2557
  }
2404
- return twMerge13(
2558
+ return twMerge15(
2405
2559
  // Base
2406
2560
  "cursor-pointer outline-none transition-colors",
2407
2561
  "font-medium",
@@ -2410,7 +2564,7 @@ function Tab({ className, ...props }) {
2410
2564
  // Disabled
2411
2565
  isDisabled ? "opacity-50 pointer-events-none" : "",
2412
2566
  // Size
2413
- sizeStyles4[size],
2567
+ sizeStyles3[size],
2414
2568
  ...getTabVariantStyles(variant, {
2415
2569
  isSelected,
2416
2570
  isHovered,
@@ -2445,11 +2599,11 @@ function getTabVariantStyles(variant, state) {
2445
2599
  }
2446
2600
  function TabPanel({ className, ...props }) {
2447
2601
  const { variant } = useContext2(TabsContext);
2448
- return /* @__PURE__ */ jsx32(
2602
+ return /* @__PURE__ */ jsx37(
2449
2603
  AriaTabPanel,
2450
2604
  {
2451
2605
  ...props,
2452
- className: twMerge13(
2606
+ className: twMerge15(
2453
2607
  variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
2454
2608
  className
2455
2609
  )
@@ -2467,16 +2621,16 @@ import {
2467
2621
 
2468
2622
  // src/components/SegmentedControl/SegmentedControl.tsx
2469
2623
  import { createContext as createContext3, useContext as useContext3 } from "react";
2470
- import { twMerge as twMerge14 } from "tailwind-merge";
2624
+ import { twMerge as twMerge16 } from "tailwind-merge";
2471
2625
  import {
2472
2626
  ToggleButtonGroup as AriaToggleButtonGroup,
2473
2627
  ToggleButton as AriaToggleButton3
2474
2628
  } from "react-aria-components";
2475
- import { jsx as jsx33 } from "react/jsx-runtime";
2629
+ import { jsx as jsx38 } from "react/jsx-runtime";
2476
2630
  var SegmentedControlContext = createContext3({
2477
2631
  size: "md"
2478
2632
  });
2479
- var sizeStyles5 = {
2633
+ var sizeStyles4 = {
2480
2634
  sm: "px-2.5 py-1 text-xs",
2481
2635
  md: "px-3 py-1.5 text-sm",
2482
2636
  lg: "px-4 py-2 text-base"
@@ -2492,7 +2646,7 @@ function SegmentedControl({
2492
2646
  ...props
2493
2647
  }) {
2494
2648
  const isNoneMode = selectionMode === "none";
2495
- return /* @__PURE__ */ jsx33(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx33(
2649
+ return /* @__PURE__ */ jsx38(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx38(
2496
2650
  AriaToggleButtonGroup,
2497
2651
  {
2498
2652
  ...props,
@@ -2500,7 +2654,7 @@ function SegmentedControl({
2500
2654
  selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
2501
2655
  defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
2502
2656
  onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
2503
- className: twMerge14(
2657
+ className: twMerge16(
2504
2658
  "inline-flex items-center rounded-lg border border-border bg-muted p-0.5 gap-0.5",
2505
2659
  className
2506
2660
  ),
@@ -2513,11 +2667,11 @@ function SegmentedControlItem({
2513
2667
  ...props
2514
2668
  }) {
2515
2669
  const { size } = useContext3(SegmentedControlContext);
2516
- return /* @__PURE__ */ jsx33(
2670
+ return /* @__PURE__ */ jsx38(
2517
2671
  AriaToggleButton3,
2518
2672
  {
2519
2673
  ...props,
2520
- className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge14(
2674
+ className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge16(
2521
2675
  // Base layout
2522
2676
  "inline-flex items-center justify-center",
2523
2677
  "rounded-md",
@@ -2528,7 +2682,7 @@ function SegmentedControlItem({
2528
2682
  // Disabled
2529
2683
  isDisabled && "opacity-50 pointer-events-none",
2530
2684
  // Size
2531
- sizeStyles5[size],
2685
+ sizeStyles4[size],
2532
2686
  // Selected state
2533
2687
  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
2688
  className
@@ -2538,40 +2692,43 @@ function SegmentedControlItem({
2538
2692
  }
2539
2693
 
2540
2694
  // 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"
2695
+ import { twMerge as twMerge17 } from "tailwind-merge";
2696
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
2697
+ var colorStyles = {
2698
+ purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
2699
+ teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
2700
+ rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
2701
+ slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20",
2702
+ green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
2703
+ amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
2551
2704
  };
2552
- var sizeStyles6 = {
2553
- sm: "px-1.5 py-0.5",
2554
- md: "px-2 py-0.5"
2705
+ var sizeStyles5 = {
2706
+ xs: "px-1 py-0 text-[10px]",
2707
+ sm: "px-1.5 py-0.5 text-xs",
2708
+ md: "px-2 py-0.5 text-xs",
2709
+ lg: "px-2.5 py-1 text-sm"
2555
2710
  };
2556
2711
  function Badge({
2557
2712
  children,
2558
- variant = "neutral",
2713
+ color = "slate",
2559
2714
  size = "sm",
2560
2715
  icon,
2561
- className
2716
+ className,
2717
+ ...rest
2562
2718
  }) {
2563
2719
  return /* @__PURE__ */ jsxs23(
2564
2720
  "span",
2565
2721
  {
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],
2722
+ className: twMerge17(
2723
+ "inline-flex items-center gap-1 rounded-full border",
2724
+ "font-medium leading-tight tracking-wider tabular-nums",
2725
+ colorStyles[color],
2726
+ sizeStyles5[size],
2571
2727
  className
2572
2728
  ),
2729
+ ...rest,
2573
2730
  children: [
2574
- icon && /* @__PURE__ */ jsx34(Icon, { icon, size: "xs" }),
2731
+ icon && /* @__PURE__ */ jsx39(Icon, { icon, size: "xs" }),
2575
2732
  children
2576
2733
  ]
2577
2734
  }
@@ -2579,87 +2736,29 @@ function Badge({
2579
2736
  }
2580
2737
 
2581
2738
  // 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",
2739
+ import { twMerge as twMerge18 } from "tailwind-merge";
2740
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
2741
+ function Card({ children, header, footer, className }) {
2742
+ const cx = twMerge18(
2743
+ `
2744
+ bg-card p-8
2745
+ border border-border
2746
+ rounded-lg
2747
+ shadow-sm
2748
+ `,
2606
2749
  className
2607
2750
  );
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
- )
2751
+ return /* @__PURE__ */ jsxs24("div", { className: cx, children: [
2752
+ header && /* @__PURE__ */ jsx40("div", { className: "border-b border-border", children: header }),
2753
+ children,
2754
+ footer && /* @__PURE__ */ jsx40("div", { className: "border-t border-border", children: footer })
2639
2755
  ] });
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
2756
  }
2658
2757
 
2659
2758
  // src/components/DeltaIndicator/DeltaIndicator.tsx
2660
2759
  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";
2760
+ import { twMerge as twMerge19 } from "tailwind-merge";
2761
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
2663
2762
  function getDirection(current, previous) {
2664
2763
  const diff = current - previous;
2665
2764
  if (diff > 0) return "increase";
@@ -2715,13 +2814,13 @@ function DeltaIndicator({
2715
2814
  return /* @__PURE__ */ jsxs25(
2716
2815
  "span",
2717
2816
  {
2718
- className: twMerge17(
2817
+ className: twMerge19(
2719
2818
  "inline-flex items-center gap-1 font-medium",
2720
2819
  "text-muted-foreground",
2721
2820
  className
2722
2821
  ),
2723
2822
  children: [
2724
- label && /* @__PURE__ */ jsx36("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2823
+ label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2725
2824
  unavailableText
2726
2825
  ]
2727
2826
  }
@@ -2754,7 +2853,7 @@ function DeltaIndicator({
2754
2853
  return /* @__PURE__ */ jsxs25(
2755
2854
  "span",
2756
2855
  {
2757
- className: twMerge17(
2856
+ className: twMerge19(
2758
2857
  "inline-flex items-center gap-1 font-medium",
2759
2858
  colorStyles2,
2760
2859
  isPill && [
@@ -2765,8 +2864,8 @@ function DeltaIndicator({
2765
2864
  className
2766
2865
  ),
2767
2866
  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 }),
2867
+ label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
2868
+ /* @__PURE__ */ jsx41(IconComponent, { size: 14, "aria-hidden": true }),
2770
2869
  valueText
2771
2870
  ]
2772
2871
  }
@@ -2774,8 +2873,8 @@ function DeltaIndicator({
2774
2873
  }
2775
2874
 
2776
2875
  // 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";
2876
+ import { twMerge as twMerge20 } from "tailwind-merge";
2877
+ import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
2779
2878
  var fillStyles = {
2780
2879
  brand: "bg-progress-fill",
2781
2880
  success: "bg-progress-fill-success",
@@ -2783,7 +2882,7 @@ var fillStyles = {
2783
2882
  danger: "bg-progress-fill-danger",
2784
2883
  neutral: "bg-muted-foreground"
2785
2884
  };
2786
- var sizeStyles7 = {
2885
+ var sizeStyles6 = {
2787
2886
  sm: "h-1.5",
2788
2887
  md: "h-3",
2789
2888
  lg: "h-4"
@@ -2798,12 +2897,12 @@ function ProgressBar({
2798
2897
  className
2799
2898
  }) {
2800
2899
  const clampedValue = Math.min(100, Math.max(0, value));
2801
- return /* @__PURE__ */ jsxs26("div", { className: twMerge18("w-full", className), children: [
2900
+ return /* @__PURE__ */ jsxs26("div", { className: twMerge20("w-full", className), children: [
2802
2901
  (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) })
2902
+ /* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-foreground", children: label }),
2903
+ /* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
2805
2904
  ] }),
2806
- /* @__PURE__ */ jsx37(
2905
+ /* @__PURE__ */ jsx42(
2807
2906
  "div",
2808
2907
  {
2809
2908
  role: "progressbar",
@@ -2811,14 +2910,14 @@ function ProgressBar({
2811
2910
  "aria-valuemin": 0,
2812
2911
  "aria-valuemax": 100,
2813
2912
  "aria-label": label ?? "Progress",
2814
- className: twMerge18(
2913
+ className: twMerge20(
2815
2914
  "w-full rounded-full bg-progress-track",
2816
- sizeStyles7[size]
2915
+ sizeStyles6[size]
2817
2916
  ),
2818
- children: /* @__PURE__ */ jsx37(
2917
+ children: /* @__PURE__ */ jsx42(
2819
2918
  "div",
2820
2919
  {
2821
- className: twMerge18(
2920
+ className: twMerge20(
2822
2921
  "h-full rounded-full transition-all duration-300",
2823
2922
  fillStyles[variant]
2824
2923
  ),
@@ -2838,8 +2937,8 @@ import {
2838
2937
  AlertCircle as AlertCircle2,
2839
2938
  CheckCircle2 as CheckCircle22
2840
2939
  } from "lucide-react";
2841
- import { twMerge as twMerge19 } from "tailwind-merge";
2842
- import { jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
2940
+ import { twMerge as twMerge21 } from "tailwind-merge";
2941
+ import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
2843
2942
  var variantConfig2 = {
2844
2943
  info: {
2845
2944
  icon: Info3,
@@ -2887,19 +2986,19 @@ function Banner({
2887
2986
  "div",
2888
2987
  {
2889
2988
  role: config.role,
2890
- className: twMerge19(
2989
+ className: twMerge21(
2891
2990
  "flex items-start gap-3 rounded-lg border px-4 py-3",
2892
2991
  "text-sm",
2893
2992
  config.containerClass,
2894
2993
  className
2895
2994
  ),
2896
2995
  children: [
2897
- /* @__PURE__ */ jsx38(
2996
+ /* @__PURE__ */ jsx43(
2898
2997
  Icon,
2899
2998
  {
2900
2999
  icon: resolvedIcon,
2901
3000
  size: "md",
2902
- className: twMerge19("mt-0.5", config.iconClass)
3001
+ className: twMerge21("mt-0.5", config.iconClass)
2903
3002
  }
2904
3003
  ),
2905
3004
  /* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
@@ -2909,14 +3008,14 @@ function Banner({
2909
3008
  ] }),
2910
3009
  children
2911
3010
  ] }),
2912
- dismissible && /* @__PURE__ */ jsx38(
3011
+ dismissible && /* @__PURE__ */ jsx43(
2913
3012
  "button",
2914
3013
  {
2915
3014
  type: "button",
2916
3015
  onClick: handleDismiss,
2917
3016
  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
3017
  "aria-label": "Dismiss",
2919
- children: /* @__PURE__ */ jsx38(Icon, { icon: "X", size: "sm" })
3018
+ children: /* @__PURE__ */ jsx43(Icon, { icon: "X", size: "sm" })
2920
3019
  }
2921
3020
  )
2922
3021
  ]
@@ -2925,8 +3024,8 @@ function Banner({
2925
3024
  }
2926
3025
 
2927
3026
  // 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";
3027
+ import { twMerge as twMerge22 } from "tailwind-merge";
3028
+ import { Fragment as Fragment8, jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
2930
3029
  var sizeConfig = {
2931
3030
  sm: {
2932
3031
  padding: "p-3",
@@ -2948,101 +3047,119 @@ function MetricCard({
2948
3047
  className
2949
3048
  }) {
2950
3049
  const config = sizeConfig[size];
2951
- const containerClass = twMerge20(
3050
+ const containerClass = twMerge22(
2952
3051
  "bg-background border border-border rounded-lg shadow-sm",
2953
3052
  config.padding,
2954
3053
  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
3054
  className
2956
3055
  );
2957
- const content = /* @__PURE__ */ jsxs28(Fragment9, { children: [
2958
- /* @__PURE__ */ jsx39("div", { className: twMerge20(config.labelClass, "text-muted-foreground"), children: label }),
2959
- /* @__PURE__ */ jsx39(
3056
+ const content = /* @__PURE__ */ jsxs28(Fragment8, { children: [
3057
+ /* @__PURE__ */ jsx44("div", { className: twMerge22(config.labelClass, "text-muted-foreground"), children: label }),
3058
+ /* @__PURE__ */ jsx44(
2960
3059
  "div",
2961
3060
  {
2962
- className: twMerge20(
3061
+ className: twMerge22(
2963
3062
  config.valueClass,
2964
3063
  "font-semibold text-foreground mt-1 tabular-nums"
2965
3064
  ),
2966
3065
  children: value
2967
3066
  }
2968
3067
  ),
2969
- secondary && /* @__PURE__ */ jsx39("div", { className: "mt-1 text-sm", children: secondary })
3068
+ secondary && /* @__PURE__ */ jsx44("div", { className: "mt-1 text-sm", children: secondary })
2970
3069
  ] });
2971
3070
  if (href) {
2972
- return /* @__PURE__ */ jsx39("a", { href, className: containerClass, children: content });
3071
+ return /* @__PURE__ */ jsx44("a", { href, className: containerClass, children: content });
2973
3072
  }
2974
- return /* @__PURE__ */ jsx39("div", { className: containerClass, children: content });
3073
+ return /* @__PURE__ */ jsx44("div", { className: containerClass, children: content });
2975
3074
  }
2976
3075
 
2977
3076
  // 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,
3077
+ import { forwardRef as forwardRef7 } from "react";
3078
+ import { twMerge as twMerge23 } from "tailwind-merge";
3079
+ import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
3080
+ var SectionHeader = forwardRef7(
3081
+ function SectionHeader2({ title, as = "h2", children, className, ...rest }, ref) {
3082
+ return /* @__PURE__ */ jsxs29(
3083
+ "div",
3084
+ {
3085
+ ref,
3086
+ className: twMerge23(
3087
+ "flex flex-wrap items-center gap-3 pt-0 pb-4",
3088
+ className
3089
+ ),
3090
+ ...rest,
3091
+ children: [
3092
+ /* @__PURE__ */ jsx45(Heading, { as, children: title }),
3093
+ children && /* @__PURE__ */ jsx45("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
3094
+ ]
3095
+ }
3096
+ );
3097
+ }
3098
+ );
3099
+
3100
+ // src/components/DescriptionList/DescriptionList.tsx
3101
+ import { createContext as createContext4, useContext as useContext4 } from "react";
3102
+ import { Button as AriaButton4 } from "react-aria-components";
3103
+ import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
3104
+ var LayoutContext = createContext4("stacked");
3105
+ var listGapStyles = {
3106
+ stacked: "gap-4",
3107
+ horizontal: "gap-3"
3108
+ };
3109
+ function DescriptionList({
2982
3110
  children,
3111
+ layout = "stacked",
2983
3112
  className
2984
3113
  }) {
2985
- return /* @__PURE__ */ jsxs29(
2986
- "div",
3114
+ return /* @__PURE__ */ jsx46(LayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx46(
3115
+ "dl",
2987
3116
  {
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
- ]
3117
+ className: ["flex flex-col", listGapStyles[layout], className].filter(Boolean).join(" "),
3118
+ children
2996
3119
  }
2997
- );
3120
+ ) });
2998
3121
  }
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"
3122
+ var itemLayoutStyles = {
3123
+ stacked: "flex flex-col gap-1",
3124
+ horizontal: "grid grid-cols-[140px_1fr] gap-x-(--spacing-4) items-baseline"
3009
3125
  };
3010
- var colorStyles = {
3011
- ...hashColors,
3012
- slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20"
3013
- };
3014
- var hashKeys = Object.keys(hashColors);
3126
+ var labelClasses = "text-sm font-medium text-foreground";
3127
+ function DescriptionListItem({
3128
+ label,
3129
+ children,
3130
+ muted = false,
3131
+ fullValue
3132
+ }) {
3133
+ const layout = useContext4(LayoutContext);
3134
+ const valueClasses = [
3135
+ "text-sm m-0",
3136
+ muted ? "text-muted-foreground" : "text-foreground"
3137
+ ].join(" ");
3138
+ const valueContent = /* @__PURE__ */ jsx46("dd", { className: valueClasses, children });
3139
+ return /* @__PURE__ */ jsxs30("div", { className: itemLayoutStyles[layout], children: [
3140
+ /* @__PURE__ */ jsx46("dt", { className: labelClasses, children: label }),
3141
+ fullValue ? /* @__PURE__ */ jsx46(Tooltip, { content: fullValue, children: /* @__PURE__ */ jsx46(AriaButton4, { className: "text-left outline-none cursor-default", children: valueContent }) }) : valueContent
3142
+ ] });
3143
+ }
3144
+ DescriptionList.Item = DescriptionListItem;
3145
+
3146
+ // src/components/PathPill/PathPill.tsx
3147
+ import { twMerge as twMerge24 } from "tailwind-merge";
3148
+ import { jsx as jsx47 } from "react/jsx-runtime";
3149
+ var hashColors = [
3150
+ "purple",
3151
+ "teal",
3152
+ "rose",
3153
+ "green",
3154
+ "amber"
3155
+ ];
3015
3156
  function pillColorFromName(name = "") {
3016
3157
  let hash = 0;
3017
3158
  for (let i = 0; i < name.length; i++) {
3018
3159
  hash = name.charCodeAt(i) + ((hash << 5) - hash);
3019
3160
  }
3020
- return hashKeys[Math.abs(hash) % hashKeys.length];
3021
- }
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 });
3161
+ return hashColors[Math.abs(hash) % hashColors.length];
3041
3162
  }
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
3163
  function PathPill({
3047
3164
  children,
3048
3165
  visibleCount,
@@ -3054,18 +3171,18 @@ function PathPill({
3054
3171
  const effectiveVisible = visibleCount ?? segments.length;
3055
3172
  const dotCount = Math.max(0, segments.length - effectiveVisible);
3056
3173
  const fullPath = segments.join(" / ");
3057
- return /* @__PURE__ */ jsx42(
3174
+ return /* @__PURE__ */ jsx47(
3058
3175
  "div",
3059
3176
  {
3060
- className: twMerge23("relative flex", className),
3177
+ className: twMerge24("relative flex", className),
3061
3178
  "aria-label": `Path: ${fullPath}`,
3062
3179
  children: segments.map((segment, i) => {
3063
3180
  const isCollapsed = i < dotCount;
3064
3181
  const isLast = i === segments.length - 1;
3065
- const cx = twMerge23(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
3182
+ const cx = twMerge24(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
3066
3183
  const color = colorFn ? colorFn(segment, i) : pillColorFromName(segment);
3067
- return /* @__PURE__ */ jsx42(
3068
- Pill,
3184
+ return /* @__PURE__ */ jsx47(
3185
+ Badge,
3069
3186
  {
3070
3187
  className: cx,
3071
3188
  color,
@@ -3080,9 +3197,9 @@ function PathPill({
3080
3197
  }
3081
3198
 
3082
3199
  // 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({
3200
+ import { createContext as createContext5, useContext as useContext5, useCallback as useCallback4, useMemo } from "react";
3201
+ import { jsx as jsx48 } from "react/jsx-runtime";
3202
+ var FormWizardContext = createContext5({
3086
3203
  currentStep: 0,
3087
3204
  totalSteps: 1,
3088
3205
  canGoBack: false,
@@ -3091,7 +3208,7 @@ var FormWizardContext = createContext4({
3091
3208
  isLastStep: true
3092
3209
  });
3093
3210
  function useFormWizard() {
3094
- return useContext4(FormWizardContext);
3211
+ return useContext5(FormWizardContext);
3095
3212
  }
3096
3213
  function FormWizard({
3097
3214
  currentStep,
@@ -3101,7 +3218,7 @@ function FormWizard({
3101
3218
  }) {
3102
3219
  const canGoBack = currentStep > 0;
3103
3220
  const isLastStep = currentStep >= totalSteps - 1;
3104
- const goBack = useCallback5(() => {
3221
+ const goBack = useCallback4(() => {
3105
3222
  if (currentStep > 0) {
3106
3223
  onStepChange(currentStep - 1);
3107
3224
  }
@@ -3116,13 +3233,13 @@ function FormWizard({
3116
3233
  }),
3117
3234
  [currentStep, totalSteps, canGoBack, goBack, isLastStep]
3118
3235
  );
3119
- return /* @__PURE__ */ jsx43(FormWizardContext.Provider, { value, children });
3236
+ return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
3120
3237
  }
3121
3238
 
3122
3239
  // src/components/FormWizard/FormWizardProgress.tsx
3123
- import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
3240
+ import { jsx as jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
3124
3241
  function CheckIcon() {
3125
- return /* @__PURE__ */ jsx44(
3242
+ return /* @__PURE__ */ jsx49(
3126
3243
  "svg",
3127
3244
  {
3128
3245
  "aria-hidden": "true",
@@ -3133,24 +3250,24 @@ function CheckIcon() {
3133
3250
  strokeWidth: "2",
3134
3251
  strokeLinecap: "round",
3135
3252
  strokeLinejoin: "round",
3136
- children: /* @__PURE__ */ jsx44("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
3253
+ children: /* @__PURE__ */ jsx49("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
3137
3254
  }
3138
3255
  );
3139
3256
  }
3140
3257
  function FormWizardProgress({ labels }) {
3141
3258
  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) => {
3259
+ return /* @__PURE__ */ jsx49("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx49("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
3143
3260
  const isCompleted = index < currentStep;
3144
3261
  const isCurrent = index === currentStep;
3145
3262
  const isFuture = index > currentStep;
3146
- return /* @__PURE__ */ jsxs30(
3263
+ return /* @__PURE__ */ jsxs31(
3147
3264
  "li",
3148
3265
  {
3149
3266
  className: "flex flex-1 flex-col items-center",
3150
3267
  "aria-current": isCurrent ? "step" : void 0,
3151
3268
  children: [
3152
- /* @__PURE__ */ jsxs30("div", { className: "flex w-full items-center", children: [
3153
- index > 0 ? /* @__PURE__ */ jsx44(
3269
+ /* @__PURE__ */ jsxs31("div", { className: "flex w-full items-center", children: [
3270
+ index > 0 ? /* @__PURE__ */ jsx49(
3154
3271
  "div",
3155
3272
  {
3156
3273
  "aria-hidden": "true",
@@ -3159,8 +3276,8 @@ function FormWizardProgress({ labels }) {
3159
3276
  index <= currentStep ? "bg-primary" : "bg-border"
3160
3277
  ].join(" ")
3161
3278
  }
3162
- ) : /* @__PURE__ */ jsx44("div", { className: "flex-1", "aria-hidden": "true" }),
3163
- /* @__PURE__ */ jsx44(
3279
+ ) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" }),
3280
+ /* @__PURE__ */ jsx49(
3164
3281
  "div",
3165
3282
  {
3166
3283
  className: [
@@ -3172,10 +3289,10 @@ function FormWizardProgress({ labels }) {
3172
3289
  isFuture ? "border-2 border-border bg-background text-muted-foreground" : ""
3173
3290
  ].join(" "),
3174
3291
  "aria-hidden": "true",
3175
- children: isCompleted ? /* @__PURE__ */ jsx44(CheckIcon, {}) : index + 1
3292
+ children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon, {}) : index + 1
3176
3293
  }
3177
3294
  ),
3178
- index < totalSteps - 1 ? /* @__PURE__ */ jsx44(
3295
+ index < totalSteps - 1 ? /* @__PURE__ */ jsx49(
3179
3296
  "div",
3180
3297
  {
3181
3298
  "aria-hidden": "true",
@@ -3184,9 +3301,9 @@ function FormWizardProgress({ labels }) {
3184
3301
  index < currentStep ? "bg-primary" : "bg-border"
3185
3302
  ].join(" ")
3186
3303
  }
3187
- ) : /* @__PURE__ */ jsx44("div", { className: "flex-1", "aria-hidden": "true" })
3304
+ ) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
3188
3305
  ] }),
3189
- /* @__PURE__ */ jsx44(
3306
+ /* @__PURE__ */ jsx49(
3190
3307
  "span",
3191
3308
  {
3192
3309
  className: [
@@ -3204,15 +3321,15 @@ function FormWizardProgress({ labels }) {
3204
3321
  }
3205
3322
 
3206
3323
  // src/components/FormWizard/FormWizardNav.tsx
3207
- import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
3324
+ import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
3208
3325
  function FormWizardNav({
3209
3326
  onNext,
3210
3327
  isSubmitting = false,
3211
3328
  submitLabel = "Submit"
3212
3329
  }) {
3213
3330
  const { canGoBack, goBack, isLastStep } = useFormWizard();
3214
- return /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-end gap-3", children: [
3215
- canGoBack && /* @__PURE__ */ jsx45(
3331
+ return /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-end gap-3", children: [
3332
+ canGoBack && /* @__PURE__ */ jsx50(
3216
3333
  Button,
3217
3334
  {
3218
3335
  variant: "secondary",
@@ -3222,7 +3339,7 @@ function FormWizardNav({
3222
3339
  children: "Back"
3223
3340
  }
3224
3341
  ),
3225
- /* @__PURE__ */ jsx45(
3342
+ /* @__PURE__ */ jsx50(
3226
3343
  Button,
3227
3344
  {
3228
3345
  variant: "primary",
@@ -3243,10 +3360,10 @@ export {
3243
3360
  Card,
3244
3361
  Cell,
3245
3362
  Checkbox,
3246
- ColorPurple700,
3247
- ColorTeal500,
3248
3363
  Column,
3249
3364
  DeltaIndicator,
3365
+ Description,
3366
+ DescriptionList,
3250
3367
  Dialog,
3251
3368
  EmptyState,
3252
3369
  Fieldset,
@@ -3256,7 +3373,10 @@ export {
3256
3373
  H1,
3257
3374
  H2,
3258
3375
  H3,
3259
- Heading2 as Heading,
3376
+ H4,
3377
+ H5,
3378
+ H6,
3379
+ Heading,
3260
3380
  Icon,
3261
3381
  IconButton,
3262
3382
  IconButtonLink,
@@ -3265,7 +3385,8 @@ export {
3265
3385
  InputPassword,
3266
3386
  Label,
3267
3387
  Link,
3268
- Menu,
3388
+ Logo,
3389
+ Menu2 as Menu,
3269
3390
  MenuCheckboxItem,
3270
3391
  MenuHeader,
3271
3392
  MenuItem,
@@ -3273,11 +3394,11 @@ export {
3273
3394
  MenuSeparator,
3274
3395
  MetricCard,
3275
3396
  PathPill,
3276
- Pill,
3277
3397
  Popover4 as Popover,
3278
3398
  PopoverContent,
3279
3399
  PopoverTrigger,
3280
3400
  ProgressBar,
3401
+ Prose,
3281
3402
  Radio,
3282
3403
  RadioButton,
3283
3404
  RadioGroup,