@northslopetech/altitude-ui 3.0.0-alpha.2 → 3.0.0-alpha.4

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.mjs CHANGED
@@ -12,74 +12,68 @@ function cn(...inputs) {
12
12
  }
13
13
 
14
14
  // src/components/ui/button.tsx
15
- import { jsxs } from "react/jsx-runtime";
15
+ import { jsx } from "react/jsx-runtime";
16
16
  var buttonVariants = cva2(
17
17
  "inline-flex items-center justify-center gap-2 whitespace-nowrap transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
18
18
  {
19
19
  variants: {
20
20
  variant: {
21
- default: "bg-primary text-light shadow-sm hover:brightness-[60%] active:brightness-[80%] focus-visible:ring-2 focus-visible:ring-interactive focus-visible:ring-offset-2",
22
- outline: "bg-light text-dark border border-strong shadow-sm hover:brightness-[70%] active:brightness-[90%] focus-visible:ring-2 focus-visible:ring-interactive focus-visible:ring-offset-2",
23
- destructive: "bg-error text-light shadow-sm hover:brightness-[60%] active:brightness-[80%] focus-visible:ring-2 focus-visible:ring-error focus-visible:ring-offset-2",
24
- "destructive-subtle": "bg-light text-error border border-secondary shadow-sm hover:brightness-[70%] active:brightness-[90%] focus-visible:ring-2 focus-visible:ring-error focus-visible:ring-offset-2",
25
- ghost: "bg-light text-dark hover:brightness-[70%] active:brightness-[90%] focus-visible:ring-2 focus-visible:ring-interactive focus-visible:ring-offset-2",
26
- link: "bg-light text-dark underline underline-offset-4 hover:cursor-pointer active:text-info"
21
+ default: "interactive-default interactive-default-fg border border-default shadow-sm hover:brightness-[90%] dark:hover:brightness-[130%] active:brightness-[80%] dark:active:brightness-[120%] focus-visible:ring-2 focus-visible:ring-focus-default focus-visible:border-strong",
22
+ primary: "interactive-accent interactive-accent-fg hover:brightness-[90%] dark:hover:brightness-[130%] active:brightness-[80%] dark:active:brightness-[120%] focus-visible:ring-2 focus-visible:ring-focus-default",
23
+ destructive: "interactive-destructive interactive-destructive-fg hover:brightness-[90%] dark:hover:brightness-[130%] active:brightness-[80%] dark:active:brightness-[120%] focus-visible:ring-3 focus-visible:ring-focus-error",
24
+ ghost: "interactive-default interactive-default-fg hover:brightness-[90%] dark:hover:brightness-[130%] active:brightness-[80%] dark:active:brightness-[120%] focus-visible:ring-2 focus-visible:ring-focus-default",
25
+ link: "h-6 px-0 py-0 rounded-sm text-default underline underline-offset-2 focus-visible:ring-2 focus-visible:ring-focus-default"
27
26
  },
28
27
  size: {
29
- sm: "h-8 rounded-md px-2 py-2 min-w-[120px]",
30
- default: "h-10 rounded-lg px-3 py-2 min-w-[125px]",
31
- lg: "h-12 rounded-lg px-4 py-2 min-w-[141px]",
32
- icon: "h-10 w-10 rounded-lg"
28
+ default: "h-9 rounded-md px-4 py-2 type-label-sm-medium",
29
+ lg: "h-10 rounded-md px-4 py-2.5 type-label-md-medium",
30
+ sm: "h-8 rounded-sm px-3 py-1.5 type-label-sm-medium",
31
+ mini: "h-6 rounded-sm px-2 py-1 type-label-xs-medium"
33
32
  }
34
33
  },
35
- compoundVariants: [],
34
+ compoundVariants: [
35
+ {
36
+ variant: "link",
37
+ size: ["default", "sm"],
38
+ className: "type-body-sm-regular hover:type-body-sm-semibold active:type-body-sm-semibold"
39
+ },
40
+ {
41
+ variant: "link",
42
+ size: "lg",
43
+ className: "type-body-md-regular hover:type-body-md-semibold active:type-body-md-semibold"
44
+ },
45
+ {
46
+ variant: "link",
47
+ size: "mini",
48
+ className: "type-body-xs-regular hover:type-body-xs-semibold active:type-body-xs-semibold"
49
+ }
50
+ ],
36
51
  defaultVariants: {
37
52
  variant: "default",
38
53
  size: "default"
39
54
  }
40
55
  }
41
56
  );
42
- function getButtonTypographyStyles(size) {
43
- switch (size) {
44
- case "sm":
45
- return { font: "var(--typography-label-sm-bold)" };
46
- case "lg":
47
- return { font: "var(--typography-label-lg-bold)" };
48
- case "icon":
49
- case "default":
50
- default:
51
- return { font: "var(--typography-label-md-bold)" };
52
- }
53
- }
57
+ var hasTextChildren = (children) => React.Children.toArray(children).some(
58
+ (child) => typeof child === "string" && child.trim().length > 0
59
+ );
54
60
  var Button = React.forwardRef(
55
- ({
56
- className,
57
- style,
58
- variant,
59
- size,
60
- icon,
61
- iconPosition = "left",
62
- children,
63
- ...props
64
- }, ref) => {
65
- const typographyStyles = getButtonTypographyStyles(size);
66
- const tokenStyles = {
67
- ...typographyStyles,
68
- ...style
69
- };
70
- return /* @__PURE__ */ jsxs(
61
+ ({ className, style, variant, size, children, ...props }, ref) => {
62
+ const isIconOnly = !hasTextChildren(children);
63
+ const iconOnlyClasses = isIconOnly ? "aspect-square px-0 py-0" : void 0;
64
+ return /* @__PURE__ */ jsx(
71
65
  ButtonPrimitive,
72
66
  {
73
67
  "data-slot": "button",
74
- className: cn(buttonVariants({ variant, size }), className),
75
- style: tokenStyles,
68
+ className: cn(
69
+ buttonVariants({ variant, size }),
70
+ iconOnlyClasses,
71
+ className
72
+ ),
73
+ style,
76
74
  ref,
77
75
  ...props,
78
- children: [
79
- icon && iconPosition === "left" && icon,
80
- children,
81
- icon && iconPosition === "right" && icon
82
- ]
76
+ children
83
77
  }
84
78
  );
85
79
  }
@@ -89,7 +83,7 @@ Button.displayName = "Button";
89
83
  // src/components/ui/text.tsx
90
84
  import * as React2 from "react";
91
85
  import { cva as cva3 } from "class-variance-authority";
92
- import { jsx } from "react/jsx-runtime";
86
+ import { jsx as jsx2 } from "react/jsx-runtime";
93
87
  var textVariants = cva3("", {
94
88
  variants: {
95
89
  variant: {
@@ -144,7 +138,7 @@ function getDefaultElement(variant) {
144
138
  var Text = React2.forwardRef(
145
139
  ({ className, variant, as, style, ...props }, ref) => {
146
140
  const Component = as || getDefaultElement(variant);
147
- return /* @__PURE__ */ jsx(
141
+ return /* @__PURE__ */ jsx2(
148
142
  Component,
149
143
  {
150
144
  className: cn(textVariants({ variant }), className),
@@ -159,9 +153,9 @@ Text.displayName = "Text";
159
153
 
160
154
  // src/components/ui/card.tsx
161
155
  import * as React3 from "react";
162
- import { jsx as jsx2 } from "react/jsx-runtime";
156
+ import { jsx as jsx3 } from "react/jsx-runtime";
163
157
  var Card = React3.forwardRef(
164
- ({ className, size = "default", ...props }, ref) => /* @__PURE__ */ jsx2(
158
+ ({ className, size = "default", ...props }, ref) => /* @__PURE__ */ jsx3(
165
159
  "div",
166
160
  {
167
161
  ref,
@@ -177,7 +171,7 @@ var Card = React3.forwardRef(
177
171
  );
178
172
  Card.displayName = "Card";
179
173
  var CardHeader = React3.forwardRef(
180
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
174
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
181
175
  "div",
182
176
  {
183
177
  ref,
@@ -192,7 +186,7 @@ var CardHeader = React3.forwardRef(
192
186
  );
193
187
  CardHeader.displayName = "CardHeader";
194
188
  var CardTitle = React3.forwardRef(
195
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
189
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
196
190
  Text,
197
191
  {
198
192
  ref,
@@ -205,7 +199,7 @@ var CardTitle = React3.forwardRef(
205
199
  );
206
200
  CardTitle.displayName = "CardTitle";
207
201
  var CardDescription = React3.forwardRef(
208
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
202
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
209
203
  Text,
210
204
  {
211
205
  ref,
@@ -218,7 +212,7 @@ var CardDescription = React3.forwardRef(
218
212
  );
219
213
  CardDescription.displayName = "CardDescription";
220
214
  var CardAction = React3.forwardRef(
221
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
215
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
222
216
  "div",
223
217
  {
224
218
  ref,
@@ -233,7 +227,7 @@ var CardAction = React3.forwardRef(
233
227
  );
234
228
  CardAction.displayName = "CardAction";
235
229
  var CardContent = React3.forwardRef(
236
- ({ className, bleed, ...props }, ref) => /* @__PURE__ */ jsx2(
230
+ ({ className, bleed, ...props }, ref) => /* @__PURE__ */ jsx3(
237
231
  "div",
238
232
  {
239
233
  ref,
@@ -248,7 +242,7 @@ var CardContent = React3.forwardRef(
248
242
  );
249
243
  CardContent.displayName = "CardContent";
250
244
  var CardFooter = React3.forwardRef(
251
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
245
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
252
246
  "div",
253
247
  {
254
248
  ref,
@@ -266,7 +260,7 @@ CardFooter.displayName = "CardFooter";
266
260
  // src/components/ui/typography.tsx
267
261
  import * as React4 from "react";
268
262
  import { cva as cva4 } from "class-variance-authority";
269
- import { jsx as jsx3 } from "react/jsx-runtime";
263
+ import { jsx as jsx4 } from "react/jsx-runtime";
270
264
  var typographyVariants = cva4("", {
271
265
  variants: {
272
266
  variant: {
@@ -311,7 +305,7 @@ function getDefaultElement2(variant) {
311
305
  var Typography = React4.forwardRef(
312
306
  ({ className, variant, as, style, ...props }, ref) => {
313
307
  const Component = as || getDefaultElement2(variant);
314
- return /* @__PURE__ */ jsx3(
308
+ return /* @__PURE__ */ jsx4(
315
309
  Component,
316
310
  {
317
311
  className: cn(typographyVariants({ variant }), className),
@@ -389,7 +383,7 @@ import { SquaresFourIcon as PhosphorSquaresFour } from "@phosphor-icons/react/Sq
389
383
  import { MagnifyingGlassPlusIcon as PhosphorMagnifyingGlassPlus } from "@phosphor-icons/react/MagnifyingGlassPlus";
390
384
  import { MagnifyingGlassMinusIcon as PhosphorMagnifyingGlassMinus } from "@phosphor-icons/react/MagnifyingGlassMinus";
391
385
  import { SidebarSimpleIcon as PhosphorSidebarSimple } from "@phosphor-icons/react/SidebarSimple";
392
- import { jsx as jsx4 } from "react/jsx-runtime";
386
+ import { jsx as jsx5 } from "react/jsx-runtime";
393
387
  var getVariantStyles = (variant = "dark") => {
394
388
  const variants = {
395
389
  dark: "text-dark",
@@ -402,7 +396,7 @@ var getVariantStyles = (variant = "dark") => {
402
396
  };
403
397
  function createIcon(PhosphorIcon) {
404
398
  const Wrapped = React5.forwardRef(
405
- ({ className, variant = "dark", size, weight = "regular", ...props }, ref) => /* @__PURE__ */ jsx4(
399
+ ({ className, variant = "dark", size, weight = "regular", ...props }, ref) => /* @__PURE__ */ jsx5(
406
400
  PhosphorIcon,
407
401
  {
408
402
  ref,
@@ -476,7 +470,7 @@ var ZoomInIcon = createIcon(PhosphorMagnifyingGlassPlus);
476
470
  var ZoomOutIcon = createIcon(PhosphorMagnifyingGlassMinus);
477
471
 
478
472
  // src/components/ui/select.tsx
479
- import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
473
+ import { jsx as jsx6, jsxs } from "react/jsx-runtime";
480
474
  var selectTriggerVariants = cva5(
481
475
  "flex items-center justify-between border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 transition-colors rounded-md px-3 border-secondary focus-visible:border-2 focus-visible:border-strong aria-invalid:border-error aria-invalid:focus-visible:border-error",
482
476
  {
@@ -517,7 +511,7 @@ var SelectTrigger = React6.forwardRef(({ className, children, style, width, ...p
517
511
  font: "var(--typography-label-md-regular)",
518
512
  ...style
519
513
  };
520
- return /* @__PURE__ */ jsxs2(
514
+ return /* @__PURE__ */ jsxs(
521
515
  SelectPrimitive.Trigger,
522
516
  {
523
517
  ref,
@@ -529,8 +523,8 @@ var SelectTrigger = React6.forwardRef(({ className, children, style, width, ...p
529
523
  style: tokenStyles,
530
524
  ...props,
531
525
  children: [
532
- /* @__PURE__ */ jsx5("span", { className: "flex-1 text-left truncate", children }),
533
- /* @__PURE__ */ jsx5(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx5(
526
+ /* @__PURE__ */ jsx6("span", { className: "flex-1 text-left truncate", children }),
527
+ /* @__PURE__ */ jsx6(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx6(
534
528
  CaretDownIcon,
535
529
  {
536
530
  size: 20,
@@ -542,7 +536,7 @@ var SelectTrigger = React6.forwardRef(({ className, children, style, width, ...p
542
536
  );
543
537
  });
544
538
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
545
- var SelectScrollUpButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
539
+ var SelectScrollUpButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
546
540
  SelectPrimitive.ScrollUpButton,
547
541
  {
548
542
  ref,
@@ -551,11 +545,11 @@ var SelectScrollUpButton = React6.forwardRef(({ className, ...props }, ref) => /
551
545
  className
552
546
  ),
553
547
  ...props,
554
- children: /* @__PURE__ */ jsx5(CaretUpIcon, {})
548
+ children: /* @__PURE__ */ jsx6(CaretUpIcon, {})
555
549
  }
556
550
  ));
557
551
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
558
- var SelectScrollDownButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
552
+ var SelectScrollDownButton = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
559
553
  SelectPrimitive.ScrollDownButton,
560
554
  {
561
555
  ref,
@@ -564,13 +558,13 @@ var SelectScrollDownButton = React6.forwardRef(({ className, ...props }, ref) =>
564
558
  className
565
559
  ),
566
560
  ...props,
567
- children: /* @__PURE__ */ jsx5(CaretDownIcon, {})
561
+ children: /* @__PURE__ */ jsx6(CaretDownIcon, {})
568
562
  }
569
563
  ));
570
564
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
571
565
  var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => {
572
566
  const contentPosition = position || "popper";
573
- return /* @__PURE__ */ jsx5(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
567
+ return /* @__PURE__ */ jsx6(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
574
568
  SelectPrimitive.Content,
575
569
  {
576
570
  ref,
@@ -581,8 +575,8 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
581
575
  position: contentPosition,
582
576
  ...props,
583
577
  children: [
584
- /* @__PURE__ */ jsx5(SelectScrollUpButton, {}),
585
- /* @__PURE__ */ jsx5(
578
+ /* @__PURE__ */ jsx6(SelectScrollUpButton, {}),
579
+ /* @__PURE__ */ jsx6(
586
580
  SelectPrimitive.Viewport,
587
581
  {
588
582
  className: cn(
@@ -592,13 +586,13 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
592
586
  children
593
587
  }
594
588
  ),
595
- /* @__PURE__ */ jsx5(SelectScrollDownButton, {})
589
+ /* @__PURE__ */ jsx6(SelectScrollDownButton, {})
596
590
  ]
597
591
  }
598
592
  ) });
599
593
  });
600
594
  SelectContent.displayName = SelectPrimitive.Content.displayName;
601
- var SelectLabel = React6.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsx5(
595
+ var SelectLabel = React6.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsx6(
602
596
  SelectPrimitive.Label,
603
597
  {
604
598
  ref,
@@ -609,7 +603,7 @@ var SelectLabel = React6.forwardRef(({ className, children, style, ...props }, r
609
603
  }
610
604
  ));
611
605
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
612
- var SelectItem = React6.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsxs2(
606
+ var SelectItem = React6.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsxs(
613
607
  SelectPrimitive.Item,
614
608
  {
615
609
  ref,
@@ -624,13 +618,13 @@ var SelectItem = React6.forwardRef(({ className, children, style, ...props }, re
624
618
  style: { font: "var(--typography-label-md-regular)", ...style },
625
619
  ...props,
626
620
  children: [
627
- /* @__PURE__ */ jsx5(SelectPrimitive.ItemText, { className: "flex-1 truncate", children }),
628
- /* @__PURE__ */ jsx5(SelectPrimitive.ItemIndicator, { className: "flex h-4 w-4 items-center justify-center ml-auto", children: /* @__PURE__ */ jsx5(CheckIcon, { className: "text-strong" }) })
621
+ /* @__PURE__ */ jsx6(SelectPrimitive.ItemText, { className: "flex-1 truncate", children }),
622
+ /* @__PURE__ */ jsx6(SelectPrimitive.ItemIndicator, { className: "flex h-4 w-4 items-center justify-center ml-auto", children: /* @__PURE__ */ jsx6(CheckIcon, { className: "text-strong" }) })
629
623
  ]
630
624
  }
631
625
  ));
632
626
  SelectItem.displayName = SelectPrimitive.Item.displayName;
633
- var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
627
+ var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
634
628
  SelectPrimitive.Separator,
635
629
  {
636
630
  ref,
@@ -645,31 +639,30 @@ import { useMemo } from "react";
645
639
  import { cva as cva6 } from "class-variance-authority";
646
640
 
647
641
  // src/components/ui/label.tsx
648
- import * as LabelPrimitive from "@radix-ui/react-label";
649
- import { jsx as jsx6 } from "react/jsx-runtime";
650
- function Label2({
651
- className,
652
- ...props
653
- }) {
654
- return /* @__PURE__ */ jsx6(
655
- LabelPrimitive.Root,
656
- {
657
- "data-slot": "label",
658
- className: cn(
659
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
660
- className
661
- ),
662
- ...props
663
- }
664
- );
665
- }
642
+ import * as React7 from "react";
643
+ import { jsx as jsx7 } from "react/jsx-runtime";
644
+ var labelClasses = "type-label-sm-medium flex flex-row items-center gap-2 text-default select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50";
645
+ var Label2 = React7.forwardRef(
646
+ ({ className, ...props }, ref) => {
647
+ return /* @__PURE__ */ jsx7(
648
+ "label",
649
+ {
650
+ ref,
651
+ "data-slot": "label",
652
+ className: cn(labelClasses, className),
653
+ ...props
654
+ }
655
+ );
656
+ }
657
+ );
658
+ Label2.displayName = "Label";
666
659
 
667
660
  // src/components/ui/separator.tsx
668
- import * as React7 from "react";
661
+ import * as React8 from "react";
669
662
  import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
670
- import { jsx as jsx7 } from "react/jsx-runtime";
671
- var Separator2 = React7.forwardRef(
672
- ({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx7(
663
+ import { jsx as jsx8 } from "react/jsx-runtime";
664
+ var Separator2 = React8.forwardRef(
665
+ ({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx8(
673
666
  SeparatorPrimitive,
674
667
  {
675
668
  ref,
@@ -686,9 +679,9 @@ var Separator2 = React7.forwardRef(
686
679
  Separator2.displayName = "Separator";
687
680
 
688
681
  // src/components/ui/field.tsx
689
- import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
682
+ import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
690
683
  function FieldSet({ className, ...props }) {
691
- return /* @__PURE__ */ jsx8(
684
+ return /* @__PURE__ */ jsx9(
692
685
  "fieldset",
693
686
  {
694
687
  "data-slot": "field-set",
@@ -706,7 +699,7 @@ function FieldLegend({
706
699
  variant = "legend",
707
700
  ...props
708
701
  }) {
709
- return /* @__PURE__ */ jsx8(
702
+ return /* @__PURE__ */ jsx9(
710
703
  "legend",
711
704
  {
712
705
  "data-slot": "field-legend",
@@ -722,7 +715,7 @@ function FieldLegend({
722
715
  );
723
716
  }
724
717
  function FieldGroup({ className, ...props }) {
725
- return /* @__PURE__ */ jsx8(
718
+ return /* @__PURE__ */ jsx9(
726
719
  "div",
727
720
  {
728
721
  "data-slot": "field-group",
@@ -762,7 +755,7 @@ function Field({
762
755
  orientation = "vertical",
763
756
  ...props
764
757
  }) {
765
- return /* @__PURE__ */ jsx8(
758
+ return /* @__PURE__ */ jsx9(
766
759
  "div",
767
760
  {
768
761
  role: "group",
@@ -774,7 +767,7 @@ function Field({
774
767
  );
775
768
  }
776
769
  function FieldContent({ className, ...props }) {
777
- return /* @__PURE__ */ jsx8(
770
+ return /* @__PURE__ */ jsx9(
778
771
  "div",
779
772
  {
780
773
  "data-slot": "field-content",
@@ -790,7 +783,7 @@ function FieldLabel({
790
783
  className,
791
784
  ...props
792
785
  }) {
793
- return /* @__PURE__ */ jsx8(
786
+ return /* @__PURE__ */ jsx9(
794
787
  Label2,
795
788
  {
796
789
  "data-slot": "field-label",
@@ -805,7 +798,7 @@ function FieldLabel({
805
798
  );
806
799
  }
807
800
  function FieldTitle({ className, ...props }) {
808
- return /* @__PURE__ */ jsx8(
801
+ return /* @__PURE__ */ jsx9(
809
802
  "div",
810
803
  {
811
804
  "data-slot": "field-label",
@@ -818,7 +811,7 @@ function FieldTitle({ className, ...props }) {
818
811
  );
819
812
  }
820
813
  function FieldDescription({ className, ...props }) {
821
- return /* @__PURE__ */ jsx8(
814
+ return /* @__PURE__ */ jsx9(
822
815
  "p",
823
816
  {
824
817
  "data-slot": "field-description",
@@ -837,7 +830,7 @@ function FieldSeparator({
837
830
  className,
838
831
  ...props
839
832
  }) {
840
- return /* @__PURE__ */ jsxs3(
833
+ return /* @__PURE__ */ jsxs2(
841
834
  "div",
842
835
  {
843
836
  "data-slot": "field-separator",
@@ -848,8 +841,8 @@ function FieldSeparator({
848
841
  ),
849
842
  ...props,
850
843
  children: [
851
- /* @__PURE__ */ jsx8(Separator2, { className: "absolute inset-0 top-1/2" }),
852
- children && /* @__PURE__ */ jsx8(
844
+ /* @__PURE__ */ jsx9(Separator2, { className: "absolute inset-0 top-1/2" }),
845
+ children && /* @__PURE__ */ jsx9(
853
846
  "span",
854
847
  {
855
848
  className: "bg-light text-secondary relative mx-auto block w-fit px-2",
@@ -877,14 +870,14 @@ function FieldError({
877
870
  if (errors?.length === 1 && errors[0]?.message) {
878
871
  return errors[0].message;
879
872
  }
880
- return /* @__PURE__ */ jsx8("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
881
- (error, index) => error?.message && /* @__PURE__ */ jsx8("li", { children: error.message }, index)
873
+ return /* @__PURE__ */ jsx9("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
874
+ (error, index) => error?.message && /* @__PURE__ */ jsx9("li", { children: error.message }, index)
882
875
  ) });
883
876
  }, [children, errors]);
884
877
  if (!content) {
885
878
  return null;
886
879
  }
887
- return /* @__PURE__ */ jsx8(
880
+ return /* @__PURE__ */ jsx9(
888
881
  "div",
889
882
  {
890
883
  role: "alert",
@@ -896,13 +889,136 @@ function FieldError({
896
889
  );
897
890
  }
898
891
 
892
+ // src/components/ui/dialog.tsx
893
+ import * as React9 from "react";
894
+ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
895
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
896
+ var DialogChromeContext = React9.createContext(null);
897
+ function useDialogChrome() {
898
+ return React9.useContext(DialogChromeContext) ?? { showCloseButton: false };
899
+ }
900
+ var DialogCloseControl = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs3(
901
+ DialogPrimitive.Close,
902
+ {
903
+ ref,
904
+ type: "button",
905
+ className: cn(
906
+ "shrink-0 rounded-md p-1 text-secondary transition-colors",
907
+ "hover:bg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-interactive focus-visible:ring-offset-2",
908
+ className
909
+ ),
910
+ ...props,
911
+ children: [
912
+ /* @__PURE__ */ jsx10(CloseIcon, { size: 16, "aria-hidden": "true" }),
913
+ /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Close" })
914
+ ]
915
+ }
916
+ ));
917
+ DialogCloseControl.displayName = "DialogCloseControl";
918
+ var DIALOG_DESKTOP_FRAME = "h-[480px] w-[640px] max-w-[calc(100vw-2rem)] max-h-[calc(100dvh-2rem)]";
919
+ var DIALOG_MOBILE_FRAME = "w-[320px] min-h-[240px] max-w-[calc(100vw-2rem)] max-h-[min(640px,calc(100dvh-2rem))] overflow-x-hidden [&_input]:!min-w-0";
920
+ var Dialog = DialogPrimitive.Root;
921
+ var DialogTrigger = DialogPrimitive.Trigger;
922
+ var DialogOverlay = React9.forwardRef(
923
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
924
+ DialogPrimitive.Backdrop,
925
+ {
926
+ ref,
927
+ className: cn(
928
+ "fixed inset-0 z-40 bg-dark/60 backdrop-blur-sm data-[hidden]:animate-out data-[hidden]:fade-out-0 data-[open]:animate-in data-[open]:fade-in-0",
929
+ className
930
+ ),
931
+ ...props
932
+ }
933
+ )
934
+ );
935
+ DialogOverlay.displayName = "DialogOverlay";
936
+ var DialogContent = React9.forwardRef(
937
+ ({ className, children, showCloseButton = true, size = "desktop", ...props }, ref) => /* @__PURE__ */ jsxs3(DialogPrimitive.Portal, { children: [
938
+ /* @__PURE__ */ jsx10(DialogOverlay, {}),
939
+ /* @__PURE__ */ jsx10(DialogPrimitive.Viewport, { className: "fixed inset-0 z-50 flex items-start justify-center overflow-y-auto p-4 sm:items-center sm:p-6", children: /* @__PURE__ */ jsx10(
940
+ DialogPrimitive.Popup,
941
+ {
942
+ ref,
943
+ "data-slot": "dialog",
944
+ className: cn(
945
+ "relative my-auto flex flex-col overflow-hidden rounded-[10px] border border-default surface-default shadow-lg outline-none focus-visible:ring-2 focus-visible:ring-interactive focus-visible:ring-offset-2",
946
+ size === "desktop" && DIALOG_DESKTOP_FRAME,
947
+ size === "mobile" && DIALOG_MOBILE_FRAME,
948
+ className
949
+ ),
950
+ ...props,
951
+ children: /* @__PURE__ */ jsx10(DialogChromeContext.Provider, { value: { showCloseButton }, children })
952
+ }
953
+ ) })
954
+ ] })
955
+ );
956
+ DialogContent.displayName = "DialogContent";
957
+ var DialogBody = React9.forwardRef(
958
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
959
+ "div",
960
+ {
961
+ ref,
962
+ "data-slot": "dialog-body",
963
+ className: cn(
964
+ "min-h-0 flex-1 overflow-y-auto overscroll-contain p-6",
965
+ className
966
+ ),
967
+ ...props
968
+ }
969
+ )
970
+ );
971
+ DialogBody.displayName = "DialogBody";
972
+ var DialogFooter = React9.forwardRef(
973
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
974
+ "div",
975
+ {
976
+ ref,
977
+ className: cn(
978
+ "shrink-0 flex flex-col-reverse gap-2 p-4 sm:flex-row sm:justify-end sm:gap-2",
979
+ className
980
+ ),
981
+ ...props
982
+ }
983
+ )
984
+ );
985
+ DialogFooter.displayName = "DialogFooter";
986
+ var DialogTitle = React9.forwardRef(
987
+ ({ className, children, ...props }, ref) => {
988
+ const { showCloseButton } = useDialogChrome();
989
+ return /* @__PURE__ */ jsxs3("div", { className: "shrink-0 flex items-center justify-between p-4", children: [
990
+ /* @__PURE__ */ jsx10(
991
+ DialogPrimitive.Title,
992
+ {
993
+ ref,
994
+ className: cn("type-h4-medium text-default", className),
995
+ ...props,
996
+ children
997
+ }
998
+ ),
999
+ showCloseButton ? /* @__PURE__ */ jsx10(DialogCloseControl, {}) : null
1000
+ ] });
1001
+ }
1002
+ );
1003
+ DialogTitle.displayName = "DialogTitle";
1004
+ var DialogDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
1005
+ DialogPrimitive.Description,
1006
+ {
1007
+ ref,
1008
+ className: cn("type-body-sm-regular text-secondary", className),
1009
+ ...props
1010
+ }
1011
+ ));
1012
+ DialogDescription.displayName = "DialogDescription";
1013
+ var DialogClose = DialogPrimitive.Close;
1014
+
899
1015
  // src/components/ui/breadcrumb.tsx
900
- import * as React8 from "react";
1016
+ import * as React10 from "react";
901
1017
  import { mergeProps } from "@base-ui/react/merge-props";
902
1018
  import { useRender } from "@base-ui/react/use-render";
903
- import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
904
- var Breadcrumb = React8.forwardRef(
905
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
1019
+ import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
1020
+ var Breadcrumb = React10.forwardRef(
1021
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
906
1022
  "nav",
907
1023
  {
908
1024
  "aria-label": "breadcrumb",
@@ -914,8 +1030,8 @@ var Breadcrumb = React8.forwardRef(
914
1030
  )
915
1031
  );
916
1032
  Breadcrumb.displayName = "Breadcrumb";
917
- var BreadcrumbList = React8.forwardRef(
918
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
1033
+ var BreadcrumbList = React10.forwardRef(
1034
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
919
1035
  "ol",
920
1036
  {
921
1037
  "data-slot": "breadcrumb-list",
@@ -929,8 +1045,8 @@ var BreadcrumbList = React8.forwardRef(
929
1045
  )
930
1046
  );
931
1047
  BreadcrumbList.displayName = "BreadcrumbList";
932
- var BreadcrumbItem = React8.forwardRef(
933
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
1048
+ var BreadcrumbItem = React10.forwardRef(
1049
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
934
1050
  "li",
935
1051
  {
936
1052
  "data-slot": "breadcrumb-item",
@@ -941,7 +1057,7 @@ var BreadcrumbItem = React8.forwardRef(
941
1057
  )
942
1058
  );
943
1059
  BreadcrumbItem.displayName = "BreadcrumbItem";
944
- var BreadcrumbLink = React8.forwardRef(
1060
+ var BreadcrumbLink = React10.forwardRef(
945
1061
  ({ className, render, ...props }, ref) => useRender({
946
1062
  ref,
947
1063
  defaultTagName: "a",
@@ -958,8 +1074,8 @@ var BreadcrumbLink = React8.forwardRef(
958
1074
  })
959
1075
  );
960
1076
  BreadcrumbLink.displayName = "BreadcrumbLink";
961
- var BreadcrumbPage = React8.forwardRef(
962
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
1077
+ var BreadcrumbPage = React10.forwardRef(
1078
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
963
1079
  "span",
964
1080
  {
965
1081
  "data-slot": "breadcrumb-page",
@@ -973,7 +1089,7 @@ var BreadcrumbPage = React8.forwardRef(
973
1089
  )
974
1090
  );
975
1091
  BreadcrumbPage.displayName = "BreadcrumbPage";
976
- var BreadcrumbSeparator = React8.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx9(
1092
+ var BreadcrumbSeparator = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx11(
977
1093
  "li",
978
1094
  {
979
1095
  "data-slot": "breadcrumb-separator",
@@ -982,11 +1098,11 @@ var BreadcrumbSeparator = React8.forwardRef(({ children, className, ...props },
982
1098
  className: cn("[&>svg]:size-3.5", className),
983
1099
  ref,
984
1100
  ...props,
985
- children: children ?? /* @__PURE__ */ jsx9(CaretRightIcon, { className: "cn-rtl-flip" })
1101
+ children: children ?? /* @__PURE__ */ jsx11(CaretRightIcon, { className: "cn-rtl-flip" })
986
1102
  }
987
1103
  ));
988
1104
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
989
- var BreadcrumbEllipsis = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs4(
1105
+ var BreadcrumbEllipsis = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs4(
990
1106
  "span",
991
1107
  {
992
1108
  "data-slot": "breadcrumb-ellipsis",
@@ -999,22 +1115,22 @@ var BreadcrumbEllipsis = React8.forwardRef(({ className, ...props }, ref) => /*
999
1115
  ref,
1000
1116
  ...props,
1001
1117
  children: [
1002
- /* @__PURE__ */ jsx9(MoreMenuIcon, {}),
1003
- /* @__PURE__ */ jsx9("span", { className: "sr-only", children: "More" })
1118
+ /* @__PURE__ */ jsx11(MoreMenuIcon, {}),
1119
+ /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "More" })
1004
1120
  ]
1005
1121
  }
1006
1122
  ));
1007
1123
  BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
1008
1124
 
1009
1125
  // src/components/ui/tooltip.tsx
1010
- import * as React9 from "react";
1126
+ import * as React11 from "react";
1011
1127
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
1012
- import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
1128
+ import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
1013
1129
  function TooltipProvider({
1014
1130
  delayDuration = 0,
1015
1131
  ...props
1016
1132
  }) {
1017
- return /* @__PURE__ */ jsx10(
1133
+ return /* @__PURE__ */ jsx12(
1018
1134
  TooltipPrimitive.Provider,
1019
1135
  {
1020
1136
  "data-slot": "tooltip-provider",
@@ -1025,11 +1141,11 @@ function TooltipProvider({
1025
1141
  }
1026
1142
  TooltipProvider.displayName = "TooltipProvider";
1027
1143
  function Tooltip({ delayDuration, ...props }) {
1028
- return /* @__PURE__ */ jsx10(TooltipProvider, { delayDuration, children: /* @__PURE__ */ jsx10(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
1144
+ return /* @__PURE__ */ jsx12(TooltipProvider, { delayDuration, children: /* @__PURE__ */ jsx12(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
1029
1145
  }
1030
1146
  Tooltip.displayName = "Tooltip";
1031
- var TooltipTrigger = React9.forwardRef(({ ...props }, ref) => {
1032
- return /* @__PURE__ */ jsx10(
1147
+ var TooltipTrigger = React11.forwardRef(({ ...props }, ref) => {
1148
+ return /* @__PURE__ */ jsx12(
1033
1149
  TooltipPrimitive.Trigger,
1034
1150
  {
1035
1151
  ref,
@@ -1039,8 +1155,8 @@ var TooltipTrigger = React9.forwardRef(({ ...props }, ref) => {
1039
1155
  );
1040
1156
  });
1041
1157
  TooltipTrigger.displayName = "TooltipTrigger";
1042
- var TooltipContent = React9.forwardRef(({ className, sideOffset = 2, children, ...props }, ref) => {
1043
- return /* @__PURE__ */ jsx10(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
1158
+ var TooltipContent = React11.forwardRef(({ className, sideOffset = 2, children, ...props }, ref) => {
1159
+ return /* @__PURE__ */ jsx12(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
1044
1160
  TooltipPrimitive.Content,
1045
1161
  {
1046
1162
  ref,
@@ -1052,7 +1168,7 @@ var TooltipContent = React9.forwardRef(({ className, sideOffset = 2, children, .
1052
1168
  ),
1053
1169
  ...props,
1054
1170
  children: [
1055
- /* @__PURE__ */ jsx10(TooltipPrimitive.Arrow, { className: "fill-dark", width: 10, height: 9 }),
1171
+ /* @__PURE__ */ jsx12(TooltipPrimitive.Arrow, { className: "fill-dark", width: 10, height: 9 }),
1056
1172
  children
1057
1173
  ]
1058
1174
  }
@@ -1061,21 +1177,21 @@ var TooltipContent = React9.forwardRef(({ className, sideOffset = 2, children, .
1061
1177
  TooltipContent.displayName = "TooltipContent";
1062
1178
 
1063
1179
  // src/components/ui/sidebar.tsx
1064
- import * as React10 from "react";
1065
- import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
1180
+ import * as React12 from "react";
1181
+ import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
1066
1182
  var SIDEBAR_CONSTANTS = {
1067
1183
  WIDTH: "144px",
1068
1184
  WIDTH_ICON: "48px"
1069
1185
  };
1070
- var SidebarContext = React10.createContext(null);
1186
+ var SidebarContext = React12.createContext(null);
1071
1187
  function useSidebar() {
1072
- const context = React10.useContext(SidebarContext);
1188
+ const context = React12.useContext(SidebarContext);
1073
1189
  if (!context) {
1074
1190
  throw new Error("useSidebar must be used within a SidebarProvider.");
1075
1191
  }
1076
1192
  return context;
1077
1193
  }
1078
- var SidebarProvider = React10.forwardRef(
1194
+ var SidebarProvider = React12.forwardRef(
1079
1195
  ({
1080
1196
  defaultOpen = true,
1081
1197
  open: openProp,
@@ -1085,9 +1201,9 @@ var SidebarProvider = React10.forwardRef(
1085
1201
  children,
1086
1202
  ...props
1087
1203
  }, ref) => {
1088
- const [_open, _setOpen] = React10.useState(defaultOpen);
1204
+ const [_open, _setOpen] = React12.useState(defaultOpen);
1089
1205
  const open = openProp ?? _open;
1090
- const setOpen = React10.useCallback(
1206
+ const setOpen = React12.useCallback(
1091
1207
  (value) => {
1092
1208
  const openState = typeof value === "function" ? value(open) : value;
1093
1209
  if (setOpenProp) {
@@ -1098,11 +1214,11 @@ var SidebarProvider = React10.forwardRef(
1098
1214
  },
1099
1215
  [setOpenProp, open]
1100
1216
  );
1101
- const toggleSidebar = React10.useCallback(() => {
1217
+ const toggleSidebar = React12.useCallback(() => {
1102
1218
  return setOpen((open2) => !open2);
1103
1219
  }, [setOpen]);
1104
1220
  const state = open ? "expanded" : "collapsed";
1105
- const contextValue = React10.useMemo(
1221
+ const contextValue = React12.useMemo(
1106
1222
  () => ({
1107
1223
  state,
1108
1224
  open,
@@ -1111,7 +1227,7 @@ var SidebarProvider = React10.forwardRef(
1111
1227
  }),
1112
1228
  [state, open, setOpen, toggleSidebar]
1113
1229
  );
1114
- return /* @__PURE__ */ jsx11(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx11(
1230
+ return /* @__PURE__ */ jsx13(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx13(
1115
1231
  "div",
1116
1232
  {
1117
1233
  style: {
@@ -1131,7 +1247,7 @@ var SidebarProvider = React10.forwardRef(
1131
1247
  }
1132
1248
  );
1133
1249
  SidebarProvider.displayName = "SidebarProvider";
1134
- var Sidebar = React10.forwardRef(
1250
+ var Sidebar = React12.forwardRef(
1135
1251
  ({ collapsible = "icon", className, children, ...props }, ref) => {
1136
1252
  const { state } = useSidebar();
1137
1253
  return /* @__PURE__ */ jsxs6(
@@ -1145,7 +1261,7 @@ var Sidebar = React10.forwardRef(
1145
1261
  "aria-expanded": state === "expanded",
1146
1262
  role: "navigation",
1147
1263
  children: [
1148
- /* @__PURE__ */ jsx11(
1264
+ /* @__PURE__ */ jsx13(
1149
1265
  "div",
1150
1266
  {
1151
1267
  className: cn(
@@ -1154,7 +1270,7 @@ var Sidebar = React10.forwardRef(
1154
1270
  )
1155
1271
  }
1156
1272
  ),
1157
- /* @__PURE__ */ jsx11(
1273
+ /* @__PURE__ */ jsx13(
1158
1274
  "div",
1159
1275
  {
1160
1276
  className: cn(
@@ -1163,7 +1279,7 @@ var Sidebar = React10.forwardRef(
1163
1279
  className
1164
1280
  ),
1165
1281
  ...props,
1166
- children: /* @__PURE__ */ jsx11(
1282
+ children: /* @__PURE__ */ jsx13(
1167
1283
  "div",
1168
1284
  {
1169
1285
  "data-sidebar": "sidebar",
@@ -1179,9 +1295,9 @@ var Sidebar = React10.forwardRef(
1179
1295
  }
1180
1296
  );
1181
1297
  Sidebar.displayName = "Sidebar";
1182
- var SidebarInset = React10.forwardRef(
1298
+ var SidebarInset = React12.forwardRef(
1183
1299
  ({ className, ...props }, ref) => {
1184
- return /* @__PURE__ */ jsx11(
1300
+ return /* @__PURE__ */ jsx13(
1185
1301
  "main",
1186
1302
  {
1187
1303
  ref,
@@ -1195,9 +1311,9 @@ var SidebarInset = React10.forwardRef(
1195
1311
  }
1196
1312
  );
1197
1313
  SidebarInset.displayName = "SidebarInset";
1198
- var SidebarHeader = React10.forwardRef(
1314
+ var SidebarHeader = React12.forwardRef(
1199
1315
  ({ className, ...props }, ref) => {
1200
- return /* @__PURE__ */ jsx11(
1316
+ return /* @__PURE__ */ jsx13(
1201
1317
  "div",
1202
1318
  {
1203
1319
  ref,
@@ -1213,9 +1329,9 @@ var SidebarHeader = React10.forwardRef(
1213
1329
  }
1214
1330
  );
1215
1331
  SidebarHeader.displayName = "SidebarHeader";
1216
- var SidebarFooter = React10.forwardRef(
1332
+ var SidebarFooter = React12.forwardRef(
1217
1333
  ({ className, ...props }, ref) => {
1218
- return /* @__PURE__ */ jsx11(
1334
+ return /* @__PURE__ */ jsx13(
1219
1335
  "div",
1220
1336
  {
1221
1337
  ref,
@@ -1227,9 +1343,9 @@ var SidebarFooter = React10.forwardRef(
1227
1343
  }
1228
1344
  );
1229
1345
  SidebarFooter.displayName = "SidebarFooter";
1230
- var SidebarContent = React10.forwardRef(
1346
+ var SidebarContent = React12.forwardRef(
1231
1347
  ({ className, ...props }, ref) => {
1232
- return /* @__PURE__ */ jsx11(
1348
+ return /* @__PURE__ */ jsx13(
1233
1349
  "div",
1234
1350
  {
1235
1351
  ref,
@@ -1244,9 +1360,9 @@ var SidebarContent = React10.forwardRef(
1244
1360
  }
1245
1361
  );
1246
1362
  SidebarContent.displayName = "SidebarContent";
1247
- var SidebarGroup = React10.forwardRef(
1363
+ var SidebarGroup = React12.forwardRef(
1248
1364
  ({ className, ...props }, ref) => {
1249
- return /* @__PURE__ */ jsx11(
1365
+ return /* @__PURE__ */ jsx13(
1250
1366
  "div",
1251
1367
  {
1252
1368
  ref,
@@ -1258,7 +1374,7 @@ var SidebarGroup = React10.forwardRef(
1258
1374
  }
1259
1375
  );
1260
1376
  SidebarGroup.displayName = "SidebarGroup";
1261
- var SidebarGroupContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
1377
+ var SidebarGroupContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1262
1378
  "div",
1263
1379
  {
1264
1380
  ref,
@@ -1268,8 +1384,8 @@ var SidebarGroupContent = React10.forwardRef(({ className, ...props }, ref) => /
1268
1384
  }
1269
1385
  ));
1270
1386
  SidebarGroupContent.displayName = "SidebarGroupContent";
1271
- var SidebarMenu = React10.forwardRef(
1272
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
1387
+ var SidebarMenu = React12.forwardRef(
1388
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1273
1389
  "ul",
1274
1390
  {
1275
1391
  ref,
@@ -1280,8 +1396,8 @@ var SidebarMenu = React10.forwardRef(
1280
1396
  )
1281
1397
  );
1282
1398
  SidebarMenu.displayName = "SidebarMenu";
1283
- var SidebarMenuItem = React10.forwardRef(
1284
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
1399
+ var SidebarMenuItem = React12.forwardRef(
1400
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1285
1401
  "li",
1286
1402
  {
1287
1403
  ref,
@@ -1292,9 +1408,9 @@ var SidebarMenuItem = React10.forwardRef(
1292
1408
  )
1293
1409
  );
1294
1410
  SidebarMenuItem.displayName = "SidebarMenuItem";
1295
- var SidebarMenuButton = React10.forwardRef(({ isActive = false, tooltip, className, children, ...props }, ref) => {
1411
+ var SidebarMenuButton = React12.forwardRef(({ isActive = false, tooltip, className, children, ...props }, ref) => {
1296
1412
  const { state } = useSidebar();
1297
- const button = /* @__PURE__ */ jsx11(
1413
+ const button = /* @__PURE__ */ jsx13(
1298
1414
  "button",
1299
1415
  {
1300
1416
  ref,
@@ -1314,21 +1430,21 @@ var SidebarMenuButton = React10.forwardRef(({ isActive = false, tooltip, classNa
1314
1430
  }
1315
1431
  const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
1316
1432
  return /* @__PURE__ */ jsxs6(Tooltip, { delayDuration: 0, children: [
1317
- /* @__PURE__ */ jsx11(TooltipTrigger, { asChild: true, children: button }),
1318
- /* @__PURE__ */ jsx11(TooltipContent, { side: "right", align: "center", ...tooltipProps })
1433
+ /* @__PURE__ */ jsx13(TooltipTrigger, { asChild: true, children: button }),
1434
+ /* @__PURE__ */ jsx13(TooltipContent, { side: "right", align: "center", ...tooltipProps })
1319
1435
  ] });
1320
1436
  });
1321
1437
  SidebarMenuButton.displayName = "SidebarMenuButton";
1322
1438
 
1323
1439
  // src/components/ui/date-picker.tsx
1324
- import * as React12 from "react";
1440
+ import * as React14 from "react";
1325
1441
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1326
1442
 
1327
1443
  // src/components/ui/input.tsx
1328
- import * as React11 from "react";
1329
- import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1444
+ import * as React13 from "react";
1445
+ import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
1330
1446
  var inputBaseStyles = "flex h-10 py-2 w-full border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 transition-colors rounded-md px-3 min-w-80 placeholder:text-secondary read-only:bg-gray read-only:cursor-default read-only:border-transparent read-only:text-secondary read-only:focus-visible:border-transparent border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:border-error";
1331
- var Input = React11.forwardRef(
1447
+ var Input = React13.forwardRef(
1332
1448
  ({
1333
1449
  className,
1334
1450
  style,
@@ -1339,7 +1455,7 @@ var Input = React11.forwardRef(
1339
1455
  readOnly,
1340
1456
  ...props
1341
1457
  }, ref) => {
1342
- const [internalValue, setInternalValue] = React11.useState(value || "");
1458
+ const [internalValue, setInternalValue] = React13.useState(value || "");
1343
1459
  const isControlled = value !== void 0;
1344
1460
  const currentValue = isControlled ? value : internalValue;
1345
1461
  const showClear = showClearProp !== false && currentValue && currentValue.toString().length > 0 && !readOnly;
@@ -1370,7 +1486,7 @@ var Input = React11.forwardRef(
1370
1486
  onClear?.();
1371
1487
  };
1372
1488
  return /* @__PURE__ */ jsxs7("div", { className: "relative", children: [
1373
- /* @__PURE__ */ jsx12(
1489
+ /* @__PURE__ */ jsx14(
1374
1490
  "input",
1375
1491
  {
1376
1492
  className: cn(
@@ -1386,23 +1502,23 @@ var Input = React11.forwardRef(
1386
1502
  ...props
1387
1503
  }
1388
1504
  ),
1389
- showClear && /* @__PURE__ */ jsx12(
1505
+ showClear && /* @__PURE__ */ jsx14(
1390
1506
  "button",
1391
1507
  {
1392
1508
  type: "button",
1393
1509
  onClick: handleClear,
1394
1510
  className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary hover:text-dark transition-colors",
1395
- children: /* @__PURE__ */ jsx12(CloseIcon, {})
1511
+ children: /* @__PURE__ */ jsx14(CloseIcon, {})
1396
1512
  }
1397
1513
  ),
1398
- showLock && /* @__PURE__ */ jsx12(LockIcon, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-secondary" })
1514
+ showLock && /* @__PURE__ */ jsx14(LockIcon, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-secondary" })
1399
1515
  ] });
1400
1516
  }
1401
1517
  );
1402
1518
  Input.displayName = "Input";
1403
1519
 
1404
1520
  // src/components/ui/date-picker.tsx
1405
- import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1521
+ import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
1406
1522
  var getDayNames = () => {
1407
1523
  const days = [];
1408
1524
  for (let i = 0; i < 7; i++) {
@@ -1438,7 +1554,7 @@ var formatDateInput = (date) => {
1438
1554
  day: "2-digit"
1439
1555
  });
1440
1556
  };
1441
- var DatePicker = React12.forwardRef(
1557
+ var DatePicker = React14.forwardRef(
1442
1558
  ({
1443
1559
  value,
1444
1560
  onValueChange,
@@ -1457,19 +1573,19 @@ var DatePicker = React12.forwardRef(
1457
1573
  if (isNaN(parsed.getTime())) return void 0;
1458
1574
  return parsed;
1459
1575
  };
1460
- const [selectedDate, setSelectedDate] = React12.useState(
1576
+ const [selectedDate, setSelectedDate] = React14.useState(
1461
1577
  value || parseDate(defaultValue)
1462
1578
  );
1463
- const [currentMonth, setCurrentMonth] = React12.useState(() => {
1579
+ const [currentMonth, setCurrentMonth] = React14.useState(() => {
1464
1580
  const date = value || parseDate(defaultValue) || /* @__PURE__ */ new Date();
1465
1581
  return new Date(date.getFullYear(), date.getMonth());
1466
1582
  });
1467
- const [open, setOpen] = React12.useState(false);
1468
- const [inputValue, setInputValue] = React12.useState(() => {
1583
+ const [open, setOpen] = React14.useState(false);
1584
+ const [inputValue, setInputValue] = React14.useState(() => {
1469
1585
  const initialDate = value || parseDate(defaultValue);
1470
1586
  return initialDate ? formatDateInput(initialDate) : "";
1471
1587
  });
1472
- React12.useEffect(() => {
1588
+ React14.useEffect(() => {
1473
1589
  setSelectedDate(value);
1474
1590
  if (value) {
1475
1591
  setCurrentMonth(new Date(value.getFullYear(), value.getMonth()));
@@ -1480,7 +1596,7 @@ var DatePicker = React12.forwardRef(
1480
1596
  setInputValue("");
1481
1597
  }
1482
1598
  }, [value]);
1483
- React12.useEffect(() => {
1599
+ React14.useEffect(() => {
1484
1600
  if (value) return;
1485
1601
  const parsedDefault = parseDate(defaultValue);
1486
1602
  if (!parsedDefault) return;
@@ -1610,7 +1726,7 @@ var DatePicker = React12.forwardRef(
1610
1726
  onOpenChange: disabled ? void 0 : setOpen,
1611
1727
  children: [
1612
1728
  /* @__PURE__ */ jsxs8("div", { className: "relative", children: [
1613
- /* @__PURE__ */ jsx13(
1729
+ /* @__PURE__ */ jsx15(
1614
1730
  Input,
1615
1731
  {
1616
1732
  ref,
@@ -1623,7 +1739,7 @@ var DatePicker = React12.forwardRef(
1623
1739
  ...props
1624
1740
  }
1625
1741
  ),
1626
- /* @__PURE__ */ jsx13(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsx13("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ jsx13(
1742
+ /* @__PURE__ */ jsx15(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsx15("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ jsx15(
1627
1743
  CalendarIcon,
1628
1744
  {
1629
1745
  size: 20,
@@ -1634,7 +1750,7 @@ var DatePicker = React12.forwardRef(
1634
1750
  }
1635
1751
  ) }) })
1636
1752
  ] }),
1637
- /* @__PURE__ */ jsx13(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx13(
1753
+ /* @__PURE__ */ jsx15(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx15(
1638
1754
  PopoverPrimitive.Content,
1639
1755
  {
1640
1756
  className: "z-50 w-80 rounded-lg border border-secondary bg-light text-dark shadow-lg animate-in fade-in-0 zoom-in-95 duration-200",
@@ -1645,12 +1761,12 @@ var DatePicker = React12.forwardRef(
1645
1761
  sticky: "always",
1646
1762
  children: /* @__PURE__ */ jsxs8("div", { className: "p-4", children: [
1647
1763
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between mb-4 gap-1", children: [
1648
- /* @__PURE__ */ jsx13(
1764
+ /* @__PURE__ */ jsx15(
1649
1765
  "button",
1650
1766
  {
1651
1767
  onClick: () => handleMonthChange("prev"),
1652
1768
  className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
1653
- children: /* @__PURE__ */ jsx13(ArrowLeftIcon, {})
1769
+ children: /* @__PURE__ */ jsx15(ArrowLeftIcon, {})
1654
1770
  }
1655
1771
  ),
1656
1772
  /* @__PURE__ */ jsxs8("div", { className: "flex gap-1 flex-1 min-w-0", children: [
@@ -1660,8 +1776,8 @@ var DatePicker = React12.forwardRef(
1660
1776
  value: currentMonth.getMonth().toString(),
1661
1777
  onValueChange: handleMonthSelect,
1662
1778
  children: [
1663
- /* @__PURE__ */ jsx13(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx13(SelectValue, {}) }),
1664
- /* @__PURE__ */ jsx13(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ jsx13(SelectItem, { value: index.toString(), children: month }, month)) })
1779
+ /* @__PURE__ */ jsx15(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx15(SelectValue, {}) }),
1780
+ /* @__PURE__ */ jsx15(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ jsx15(SelectItem, { value: index.toString(), children: month }, month)) })
1665
1781
  ]
1666
1782
  }
1667
1783
  ),
@@ -1671,23 +1787,23 @@ var DatePicker = React12.forwardRef(
1671
1787
  value: currentMonth.getFullYear().toString(),
1672
1788
  onValueChange: handleYearSelect,
1673
1789
  children: [
1674
- /* @__PURE__ */ jsx13(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx13(SelectValue, {}) }),
1675
- /* @__PURE__ */ jsx13(SelectContent, { children: years.map((year) => /* @__PURE__ */ jsx13(SelectItem, { value: year.toString(), children: year }, year)) })
1790
+ /* @__PURE__ */ jsx15(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx15(SelectValue, {}) }),
1791
+ /* @__PURE__ */ jsx15(SelectContent, { children: years.map((year) => /* @__PURE__ */ jsx15(SelectItem, { value: year.toString(), children: year }, year)) })
1676
1792
  ]
1677
1793
  }
1678
1794
  )
1679
1795
  ] }),
1680
- /* @__PURE__ */ jsx13(
1796
+ /* @__PURE__ */ jsx15(
1681
1797
  "button",
1682
1798
  {
1683
1799
  onClick: () => handleMonthChange("next"),
1684
1800
  className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
1685
- children: /* @__PURE__ */ jsx13(ArrowRightIcon, {})
1801
+ children: /* @__PURE__ */ jsx15(ArrowRightIcon, {})
1686
1802
  }
1687
1803
  )
1688
1804
  ] }),
1689
1805
  /* @__PURE__ */ jsxs8("div", { className: "space-y-1", children: [
1690
- /* @__PURE__ */ jsx13("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ jsx13(
1806
+ /* @__PURE__ */ jsx15("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ jsx15(
1691
1807
  Typography,
1692
1808
  {
1693
1809
  variant: "label-xs-bold",
@@ -1697,11 +1813,11 @@ var DatePicker = React12.forwardRef(
1697
1813
  },
1698
1814
  day
1699
1815
  )) }),
1700
- /* @__PURE__ */ jsx13("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ jsx13(
1816
+ /* @__PURE__ */ jsx15("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ jsx15(
1701
1817
  "div",
1702
1818
  {
1703
1819
  className: "h-8 w-8 flex items-center justify-center",
1704
- children: date && /* @__PURE__ */ jsx13(
1820
+ children: date && /* @__PURE__ */ jsx15(
1705
1821
  "button",
1706
1822
  {
1707
1823
  onClick: () => handleDateSelect(date),
@@ -1715,7 +1831,7 @@ var DatePicker = React12.forwardRef(
1715
1831
  isToday(date) && !isDateSelected(date) && !isDateDisabled(date) && "text-blue-600 after:content-[''] after:absolute after:bottom-1 after:left-1/2 after:-translate-x-1/2 after:w-1 after:h-1 after:bg-blue-600 after:rounded-full",
1716
1832
  isDateDisabled(date) && "text-secondary/40 cursor-not-allowed opacity-50"
1717
1833
  ),
1718
- children: /* @__PURE__ */ jsx13(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
1834
+ children: /* @__PURE__ */ jsx15(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
1719
1835
  }
1720
1836
  )
1721
1837
  },
@@ -1733,9 +1849,9 @@ var DatePicker = React12.forwardRef(
1733
1849
  DatePicker.displayName = "DatePicker";
1734
1850
 
1735
1851
  // src/components/ui/upload.tsx
1736
- import * as React13 from "react";
1852
+ import * as React15 from "react";
1737
1853
  import { cva as cva7 } from "class-variance-authority";
1738
- import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
1854
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
1739
1855
  var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
1740
1856
  var uploadVariants = cva7(
1741
1857
  "relative flex flex-col items-center justify-center rounded-lg transition-all duration-200 ease-in-out overflow-hidden",
@@ -1759,7 +1875,7 @@ var uploadVariants = cva7(
1759
1875
  }
1760
1876
  }
1761
1877
  );
1762
- var Upload = React13.forwardRef(
1878
+ var Upload = React15.forwardRef(
1763
1879
  ({
1764
1880
  className,
1765
1881
  onFileSelect,
@@ -1772,8 +1888,8 @@ var Upload = React13.forwardRef(
1772
1888
  selectedFiles = [],
1773
1889
  ...props
1774
1890
  }, ref) => {
1775
- const fileInputRef = React13.useRef(null);
1776
- const [isDragOver, setIsDragOver] = React13.useState(false);
1891
+ const fileInputRef = React15.useRef(null);
1892
+ const [isDragOver, setIsDragOver] = React15.useState(false);
1777
1893
  const getFileTypeDisplay = () => {
1778
1894
  const typeMap = {
1779
1895
  "application/pdf": "PDF",
@@ -1844,10 +1960,10 @@ var Upload = React13.forwardRef(
1844
1960
  style: { gap: "32px" },
1845
1961
  children: [
1846
1962
  /* @__PURE__ */ jsxs9("div", { className: "space-y-4", children: [
1847
- /* @__PURE__ */ jsx14(Typography, { variant: "heading-lg", children: "Upload fail" }),
1848
- /* @__PURE__ */ jsx14(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
1963
+ /* @__PURE__ */ jsx16(Typography, { variant: "heading-lg", children: "Upload fail" }),
1964
+ /* @__PURE__ */ jsx16(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
1849
1965
  ] }),
1850
- /* @__PURE__ */ jsx14(
1966
+ /* @__PURE__ */ jsx16(
1851
1967
  Button,
1852
1968
  {
1853
1969
  variant: "destructive",
@@ -1867,9 +1983,9 @@ var Upload = React13.forwardRef(
1867
1983
  className: "flex flex-col items-center text-center max-w-[289px]",
1868
1984
  style: { gap: "32px" },
1869
1985
  children: [
1870
- /* @__PURE__ */ jsx14(Typography, { variant: "heading-lg", className: "text-dark", children: "Uploading files" }),
1986
+ /* @__PURE__ */ jsx16(Typography, { variant: "heading-lg", className: "text-dark", children: "Uploading files" }),
1871
1987
  /* @__PURE__ */ jsxs9("div", { className: "w-full max-w-[720px] space-y-2", children: [
1872
- /* @__PURE__ */ jsx14("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ jsx14(
1988
+ /* @__PURE__ */ jsx16("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ jsx16(
1873
1989
  "div",
1874
1990
  {
1875
1991
  className: "bg-canvas-primary h-2 rounded-full transition-all duration-300 ease-in-out",
@@ -1892,14 +2008,14 @@ var Upload = React13.forwardRef(
1892
2008
  }
1893
2009
  );
1894
2010
  case "success":
1895
- return /* @__PURE__ */ jsx14(
2011
+ return /* @__PURE__ */ jsx16(
1896
2012
  "div",
1897
2013
  {
1898
2014
  className: "flex flex-col items-center text-center max-w-[289px]",
1899
2015
  style: { gap: "32px" },
1900
2016
  children: /* @__PURE__ */ jsxs9("div", { className: "space-y-4", children: [
1901
- /* @__PURE__ */ jsx14(Typography, { variant: "heading-lg", className: "text-success", children: "Upload successful!" }),
1902
- selectedFiles.length > 0 && /* @__PURE__ */ jsx14("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsx14(Typography, { variant: "body-sm", children: file.name }, index)) })
2017
+ /* @__PURE__ */ jsx16(Typography, { variant: "heading-lg", className: "text-success", children: "Upload successful!" }),
2018
+ selectedFiles.length > 0 && /* @__PURE__ */ jsx16("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsx16(Typography, { variant: "body-sm", children: file.name }, index)) })
1903
2019
  ] })
1904
2020
  }
1905
2021
  );
@@ -1911,10 +2027,10 @@ var Upload = React13.forwardRef(
1911
2027
  style: { gap: "32px" },
1912
2028
  children: [
1913
2029
  /* @__PURE__ */ jsxs9("div", { className: "space-y-4", children: [
1914
- /* @__PURE__ */ jsx14(Typography, { variant: "heading-lg", className: "text-dark", children: "Drag & drop files here" }),
1915
- /* @__PURE__ */ jsx14(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
2030
+ /* @__PURE__ */ jsx16(Typography, { variant: "heading-lg", className: "text-dark", children: "Drag & drop files here" }),
2031
+ /* @__PURE__ */ jsx16(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
1916
2032
  ] }),
1917
- /* @__PURE__ */ jsx14(
2033
+ /* @__PURE__ */ jsx16(
1918
2034
  Button,
1919
2035
  {
1920
2036
  variant: "default",
@@ -1931,7 +2047,7 @@ var Upload = React13.forwardRef(
1931
2047
  /* @__PURE__ */ jsxs9(Typography, { variant: "body-sm", className: "text-secondary", children: [
1932
2048
  "Supported file: ",
1933
2049
  getFileTypeDisplay(),
1934
- /* @__PURE__ */ jsx14("br", {}),
2050
+ /* @__PURE__ */ jsx16("br", {}),
1935
2051
  "Max: ",
1936
2052
  Math.round(maxFileSize / 1024 / 1024),
1937
2053
  " MB each"
@@ -1965,7 +2081,7 @@ var Upload = React13.forwardRef(
1965
2081
  "aria-disabled": disabled,
1966
2082
  ...props,
1967
2083
  children: [
1968
- /* @__PURE__ */ jsx14(
2084
+ /* @__PURE__ */ jsx16(
1969
2085
  "input",
1970
2086
  {
1971
2087
  ref: fileInputRef,
@@ -1985,29 +2101,75 @@ var Upload = React13.forwardRef(
1985
2101
  Upload.displayName = "Upload";
1986
2102
 
1987
2103
  // src/components/ui/checkbox.tsx
1988
- import * as React14 from "react";
1989
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
2104
+ import * as React16 from "react";
2105
+ import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
1990
2106
  import { cva as cva8 } from "class-variance-authority";
1991
- import { jsx as jsx15 } from "react/jsx-runtime";
1992
- var checkboxVariants = cva8(
1993
- "peer size-4 shrink-0 rounded-[4px] border bg-light hover:bg-info-subtle transition-colors focus-visible:outline-none focus-visible:border-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-light [&_svg]:pointer-events-none [&_svg]:shrink-0 border-strong focus-visible:border-interactive aria-invalid:border-error aria-invalid:focus-visible:border-error"
1994
- );
1995
- var Checkbox = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
1996
- CheckboxPrimitive.Root,
1997
- {
1998
- ref,
1999
- className: cn(checkboxVariants(), className),
2000
- ...props,
2001
- children: /* @__PURE__ */ jsx15(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx15(CheckIcon, { variant: "light", size: 14 }) })
2002
- }
2003
- ));
2004
- Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2107
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
2108
+ var checkboxVariants = cva8([
2109
+ // Base layout & appearance
2110
+ "peer group relative size-4 shrink-0",
2111
+ "rounded-xs border border-default surface-default shadow-xs",
2112
+ // Transitions & hover
2113
+ "transition-colors hover:brightness-[90%]",
2114
+ // Focus
2115
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-default",
2116
+ // Disabled
2117
+ "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50",
2118
+ // Checked
2119
+ "data-[checked]:border-0 data-[checked]:focus-visible:border-0",
2120
+ "data-[checked]:interactive-accent data-[checked]:interactive-accent-fg",
2121
+ // Indeterminate
2122
+ "data-[indeterminate]:border-0 data-[indeterminate]:focus-visible:border-0",
2123
+ "data-[indeterminate]:interactive-accent data-[indeterminate]:interactive-accent-fg",
2124
+ // Error (aria-invalid) — only applies to unchecked/checked states.
2125
+ // Indeterminate has no error state per design.
2126
+ "aria-invalid:border-error",
2127
+ "aria-invalid:data-[checked]:border-0 aria-invalid:data-[checked]:interactive-destructive aria-invalid:data-[checked]:interactive-destructive-fg",
2128
+ "aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-focus-error",
2129
+ // SVG children
2130
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0"
2131
+ ]);
2132
+ var Checkbox = React16.forwardRef(({ className, ...props }, ref) => {
2133
+ return /* @__PURE__ */ jsx17(
2134
+ CheckboxPrimitive.Root,
2135
+ {
2136
+ "data-slot": "checkbox",
2137
+ ref,
2138
+ className: cn(checkboxVariants(), className),
2139
+ ...props,
2140
+ children: /* @__PURE__ */ jsxs10(
2141
+ CheckboxPrimitive.Indicator,
2142
+ {
2143
+ "data-slot": "checkbox-indicator",
2144
+ className: "absolute inset-0 flex items-center justify-center text-current",
2145
+ children: [
2146
+ /* @__PURE__ */ jsx17(
2147
+ CheckmarkIcon,
2148
+ {
2149
+ size: 14,
2150
+ className: "text-current hidden group-data-[checked]:block"
2151
+ }
2152
+ ),
2153
+ /* @__PURE__ */ jsx17(
2154
+ MinusIcon,
2155
+ {
2156
+ size: 14,
2157
+ className: "text-current hidden group-data-[indeterminate]:block"
2158
+ }
2159
+ )
2160
+ ]
2161
+ }
2162
+ )
2163
+ }
2164
+ );
2165
+ });
2166
+ Checkbox.displayName = "Checkbox";
2005
2167
 
2006
2168
  // src/components/ui/switch.tsx
2007
- import * as React15 from "react";
2169
+ import * as React17 from "react";
2008
2170
  import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
2009
2171
  import { cva as cva9 } from "class-variance-authority";
2010
- import { jsx as jsx16 } from "react/jsx-runtime";
2172
+ import { jsx as jsx18 } from "react/jsx-runtime";
2011
2173
  var switchVariants = cva9(
2012
2174
  "peer inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 relative focus-visible:ring-3 focus-visible:ring-focus-default aria-invalid:border-error aria-invalid:ring-3 aria-invalid:ring-focus-error data-checked:interactive-accent data-unchecked:interactive-secondary data-unchecked:border-default data-disabled:cursor-not-allowed data-disabled:opacity-50",
2013
2175
  {
@@ -2036,16 +2198,16 @@ var switchThumbVariants = cva9(
2036
2198
  }
2037
2199
  }
2038
2200
  );
2039
- var Switch = React15.forwardRef(
2201
+ var Switch = React17.forwardRef(
2040
2202
  ({ className, size, ...props }, ref) => {
2041
- return /* @__PURE__ */ jsx16(
2203
+ return /* @__PURE__ */ jsx18(
2042
2204
  SwitchPrimitive.Root,
2043
2205
  {
2044
2206
  ref,
2045
2207
  "data-slot": "switch",
2046
2208
  className: cn(switchVariants({ size }), className),
2047
2209
  ...props,
2048
- children: /* @__PURE__ */ jsx16(
2210
+ children: /* @__PURE__ */ jsx18(
2049
2211
  SwitchPrimitive.Thumb,
2050
2212
  {
2051
2213
  "data-slot": "switch-thumb",
@@ -2059,22 +2221,18 @@ var Switch = React15.forwardRef(
2059
2221
  Switch.displayName = "Switch";
2060
2222
 
2061
2223
  // src/components/ui/textarea.tsx
2062
- import * as React16 from "react";
2063
- import { jsx as jsx17 } from "react/jsx-runtime";
2064
- var Textarea = React16.forwardRef(
2224
+ import * as React18 from "react";
2225
+ import { jsx as jsx19 } from "react/jsx-runtime";
2226
+ var Textarea = React18.forwardRef(
2065
2227
  ({ className, style, ...props }, ref) => {
2066
- const tokenStyles = {
2067
- font: "var(--typography-label-md-regular)",
2068
- ...style
2069
- };
2070
- return /* @__PURE__ */ jsx17(
2228
+ return /* @__PURE__ */ jsx19(
2071
2229
  "textarea",
2072
2230
  {
2073
2231
  className: cn(
2074
- "flex min-h-[80px] w-full rounded-md border bg-light text-dark px-3 pt-3 pb-2 placeholder:text-secondary focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 transition-colors resize-y border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:border-error",
2232
+ "type-body-sm-regular flex min-h-20 w-full rounded-md border surface-default text-default px-3 pt-3 pb-2 shadow-xs placeholder:text-secondary focus:outline-none disabled:cursor-not-allowed disabled:opacity-30 transition-colors resize-y border-secondary read-only:surface-muted read-only:cursor-default read-only:border-transparent read-only:text-secondary read-only:resize-none focus-visible:ring-2 focus-visible:ring-focus-default focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-focus-error",
2075
2233
  className
2076
2234
  ),
2077
- style: tokenStyles,
2235
+ style,
2078
2236
  ref,
2079
2237
  ...props
2080
2238
  }
@@ -2084,65 +2242,285 @@ var Textarea = React16.forwardRef(
2084
2242
  Textarea.displayName = "Textarea";
2085
2243
 
2086
2244
  // src/components/ui/badge.tsx
2087
- import * as React17 from "react";
2245
+ import * as React19 from "react";
2088
2246
  import { cva as cva10 } from "class-variance-authority";
2089
- import { jsx as jsx18 } from "react/jsx-runtime";
2247
+ import { jsx as jsx20 } from "react/jsx-runtime";
2090
2248
  var badgeVariants = cva10(
2091
- "inline-flex items-center justify-center gap-1 whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
2249
+ "px-2 py-1 inline-flex items-center justify-center gap-1 whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-default",
2092
2250
  {
2093
2251
  variants: {
2094
2252
  variant: {
2095
- primary: "bg-primary text-light",
2096
- secondary: "bg-light text-dark border border-strong",
2097
- accent: "bg-blue-300 text-dark",
2098
- success: "bg-success-subtle text-success",
2099
- warning: "bg-warning-subtle text-warning",
2100
- error: "bg-error-subtle text-error",
2101
- neutral: "bg-neutral-300 text-dark"
2253
+ primary: "interactive-accent interactive-accent-fg type-label-xs-medium",
2254
+ secondary: "interactive-secondary interactive-secondary-fg type-label-xs-medium",
2255
+ outline: "interactive-default interactive-default-fg border border-default type-label-xs-medium",
2256
+ ghost: "interactive-default interactive-default-fg type-label-xs-medium",
2257
+ destructive: "interactive-destructive interactive-destructive-fg type-label-xs-medium focus-visible:ring-3 focus-visible:ring-focus-error"
2258
+ },
2259
+ rounded: {
2260
+ true: "rounded-full",
2261
+ false: "rounded-md"
2102
2262
  }
2103
2263
  },
2104
2264
  defaultVariants: {
2105
- variant: "primary"
2265
+ variant: "primary",
2266
+ rounded: false
2106
2267
  }
2107
2268
  }
2108
2269
  );
2109
- function getBadgeTypographyStyles() {
2110
- return { font: "var(--typography-label-sm-bold)" };
2270
+ function isSingleDisplayCharacter(node) {
2271
+ if (node == null || typeof node === "boolean") return false;
2272
+ if (typeof node === "string" || typeof node === "number") {
2273
+ const trimmed = String(node).trim();
2274
+ return trimmed.length === 1;
2275
+ }
2276
+ if (Array.isArray(node)) {
2277
+ const parts = node.filter((x) => x != null && typeof x !== "boolean");
2278
+ if (parts.length !== 1) return false;
2279
+ return isSingleDisplayCharacter(parts[0]);
2280
+ }
2281
+ if (React19.isValidElement(node)) {
2282
+ return isSingleDisplayCharacter(
2283
+ node.props.children
2284
+ );
2285
+ }
2286
+ return false;
2111
2287
  }
2112
- var Badge = React17.forwardRef(
2113
- ({ className, variant, style, ...props }, ref) => {
2288
+ var Badge = React19.forwardRef(
2289
+ ({ className, variant, rounded, style, children, ...props }, ref) => {
2114
2290
  if (!variant) {
2115
2291
  return null;
2116
2292
  }
2117
- const typographyStyles = getBadgeTypographyStyles();
2118
- const tokenStyles = {
2119
- ...typographyStyles,
2120
- ...style
2121
- };
2122
- return /* @__PURE__ */ jsx18(
2293
+ const circle = isSingleDisplayCharacter(children);
2294
+ return /* @__PURE__ */ jsx20(
2123
2295
  "span",
2124
2296
  {
2125
2297
  className: cn(
2126
- badgeVariants({ variant }),
2127
- "rounded-full px-3 py-1",
2298
+ badgeVariants({ variant, rounded }),
2299
+ circle ? "size-5 shrink-0 p-0" : "",
2128
2300
  className
2129
2301
  ),
2130
- style: tokenStyles,
2302
+ style,
2131
2303
  ref,
2132
- ...props
2304
+ ...props,
2305
+ children
2133
2306
  }
2134
2307
  );
2135
2308
  }
2136
2309
  );
2137
2310
  Badge.displayName = "Badge";
2138
2311
 
2312
+ // src/components/ui/item.tsx
2313
+ import * as React20 from "react";
2314
+ import { mergeProps as mergeProps2 } from "@base-ui/react/merge-props";
2315
+ import { useRender as useRender2 } from "@base-ui/react/use-render";
2316
+ import { cva as cva11 } from "class-variance-authority";
2317
+ import { jsx as jsx21 } from "react/jsx-runtime";
2318
+ var ItemGroupContext = React20.createContext(false);
2319
+ var ItemGroup = React20.forwardRef(
2320
+ ({ className, ...props }, ref) => {
2321
+ return /* @__PURE__ */ jsx21(ItemGroupContext.Provider, { value: true, children: /* @__PURE__ */ jsx21(
2322
+ "div",
2323
+ {
2324
+ ref,
2325
+ role: "list",
2326
+ "data-slot": "item-group",
2327
+ className: cn(
2328
+ "gap-4 has-data-[size=sm]:gap-2.5 group/item-group flex w-full flex-col",
2329
+ className
2330
+ ),
2331
+ ...props
2332
+ }
2333
+ ) });
2334
+ }
2335
+ );
2336
+ var ItemSeparator = React20.forwardRef(({ className, ...props }, ref) => {
2337
+ return /* @__PURE__ */ jsx21(
2338
+ Separator2,
2339
+ {
2340
+ ref,
2341
+ "data-slot": "item-separator",
2342
+ orientation: "horizontal",
2343
+ className: cn("my-2", className),
2344
+ ...props
2345
+ }
2346
+ );
2347
+ });
2348
+ var itemVariants = cva11(
2349
+ "surface-default rounded-md border group/item flex w-full flex-wrap transition-colors duration-100 outline-none [a]:relative [a]:isolate [a]:after:absolute [a]:after:inset-0 [a]:after:rounded-[inherit] [a]:after:-z-10 [a]:after:pointer-events-none [a]:after:transition-colors",
2350
+ {
2351
+ variants: {
2352
+ variant: {
2353
+ default: "border-transparent [a]:hover:after:bg-black/10",
2354
+ outline: "border-default [a]:hover:after:bg-black/10",
2355
+ muted: "surface-secondary border-transparent"
2356
+ },
2357
+ size: {
2358
+ default: "items-start gap-4 p-4",
2359
+ sm: "items-center gap-2 px-4 py-3"
2360
+ }
2361
+ },
2362
+ defaultVariants: {
2363
+ variant: "default",
2364
+ size: "default"
2365
+ }
2366
+ }
2367
+ );
2368
+ var Item2 = ({
2369
+ className,
2370
+ variant = "default",
2371
+ size = "default",
2372
+ render,
2373
+ ...props
2374
+ }) => {
2375
+ const insideGroup = React20.useContext(ItemGroupContext);
2376
+ return useRender2({
2377
+ defaultTagName: "div",
2378
+ props: mergeProps2(
2379
+ {
2380
+ role: insideGroup ? "listitem" : void 0,
2381
+ className: cn(itemVariants({ variant, size, className }))
2382
+ },
2383
+ props
2384
+ ),
2385
+ render,
2386
+ state: {
2387
+ slot: "item",
2388
+ variant,
2389
+ size
2390
+ }
2391
+ });
2392
+ };
2393
+ var itemMediaVariants = cva11(
2394
+ "gap-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none",
2395
+ {
2396
+ variants: {
2397
+ variant: {
2398
+ default: "bg-transparent",
2399
+ icon: "[&_svg:not([class*='size-'])]:size-5",
2400
+ iconBadge: "size-8 overflow-hidden rounded bg-surface-secondary p-2 [&_svg:not([class*='size-'])]:size-4",
2401
+ image: "size-10 overflow-hidden rounded-md group-data-[size=sm]/item:size-8 [&_img]:size-full [&_img]:object-cover"
2402
+ }
2403
+ },
2404
+ defaultVariants: {
2405
+ variant: "default"
2406
+ }
2407
+ }
2408
+ );
2409
+ var ItemMedia = React20.forwardRef(
2410
+ ({ className, variant = "default", ...props }, ref) => {
2411
+ return /* @__PURE__ */ jsx21(
2412
+ "div",
2413
+ {
2414
+ ref,
2415
+ "data-slot": "item-media",
2416
+ "data-variant": variant,
2417
+ className: cn(itemMediaVariants({ variant, className })),
2418
+ ...props
2419
+ }
2420
+ );
2421
+ }
2422
+ );
2423
+ var ItemContent = React20.forwardRef(({ className, ...props }, ref) => {
2424
+ return /* @__PURE__ */ jsx21(
2425
+ "div",
2426
+ {
2427
+ ref,
2428
+ "data-slot": "item-content",
2429
+ className: cn(
2430
+ "gap-1 group-data-[size=sm]/item:gap-0 flex flex-1 flex-col [&+[data-slot=item-content]]:flex-none",
2431
+ className
2432
+ ),
2433
+ ...props
2434
+ }
2435
+ );
2436
+ });
2437
+ var ItemTitle = React20.forwardRef(
2438
+ ({ className, ...props }, ref) => {
2439
+ return /* @__PURE__ */ jsx21(
2440
+ "div",
2441
+ {
2442
+ ref,
2443
+ "data-slot": "item-title",
2444
+ className: cn(
2445
+ "type-label-sm-medium gap-2 text-default underline-offset-4 line-clamp-1 flex w-full items-center",
2446
+ className
2447
+ ),
2448
+ ...props
2449
+ }
2450
+ );
2451
+ }
2452
+ );
2453
+ var ItemDescription = React20.forwardRef(({ className, ...props }, ref) => {
2454
+ return /* @__PURE__ */ jsx21(
2455
+ "p",
2456
+ {
2457
+ ref,
2458
+ "data-slot": "item-description",
2459
+ className: cn(
2460
+ "type-body-sm-regular text-secondary text-left line-clamp-2 [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
2461
+ className
2462
+ ),
2463
+ ...props
2464
+ }
2465
+ );
2466
+ });
2467
+ var ItemActions = React20.forwardRef(({ className, ...props }, ref) => {
2468
+ return /* @__PURE__ */ jsx21(
2469
+ "div",
2470
+ {
2471
+ ref,
2472
+ "data-slot": "item-actions",
2473
+ className: cn("gap-2 flex items-center", className),
2474
+ ...props
2475
+ }
2476
+ );
2477
+ });
2478
+ var ItemHeader = React20.forwardRef(({ className, ...props }, ref) => {
2479
+ return /* @__PURE__ */ jsx21(
2480
+ "div",
2481
+ {
2482
+ ref,
2483
+ "data-slot": "item-header",
2484
+ className: cn(
2485
+ "gap-2 flex basis-full items-center justify-between",
2486
+ className
2487
+ ),
2488
+ ...props
2489
+ }
2490
+ );
2491
+ });
2492
+ var ItemFooter = React20.forwardRef(({ className, ...props }, ref) => {
2493
+ return /* @__PURE__ */ jsx21(
2494
+ "div",
2495
+ {
2496
+ ref,
2497
+ "data-slot": "item-footer",
2498
+ className: cn(
2499
+ "gap-2 flex basis-full items-center justify-between",
2500
+ className
2501
+ ),
2502
+ ...props
2503
+ }
2504
+ );
2505
+ });
2506
+ Item2.displayName = "Item";
2507
+ ItemMedia.displayName = "ItemMedia";
2508
+ ItemGroup.displayName = "ItemGroup";
2509
+ ItemSeparator.displayName = "ItemSeparator";
2510
+ ItemContent.displayName = "ItemContent";
2511
+ ItemTitle.displayName = "ItemTitle";
2512
+ ItemDescription.displayName = "ItemDescription";
2513
+ ItemActions.displayName = "ItemActions";
2514
+ ItemHeader.displayName = "ItemHeader";
2515
+ ItemFooter.displayName = "ItemFooter";
2516
+
2139
2517
  // src/components/pdf-viewer/index.tsx
2140
- import * as React27 from "react";
2518
+ import * as React30 from "react";
2141
2519
  import "react-pdf/dist/Page/TextLayer.css";
2142
2520
 
2143
2521
  // src/components/pdf-viewer/components/CustomScrollbar.tsx
2144
- import * as React18 from "react";
2145
- import { Fragment, jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
2522
+ import * as React21 from "react";
2523
+ import { Fragment, jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
2146
2524
  var scrollbarStyles = `
2147
2525
  .custom-scrollbar-content {
2148
2526
  overflow: auto;
@@ -2210,15 +2588,15 @@ function CustomScrollbar({
2210
2588
  backgroundColor = "#F5F5F5",
2211
2589
  className
2212
2590
  }) {
2213
- const internalContainerRef = React18.useRef(null);
2591
+ const internalContainerRef = React21.useRef(null);
2214
2592
  const containerRef = externalContainerRef || internalContainerRef;
2215
- const wrapperRef = React18.useRef(null);
2216
- const thumbVerticalRef = React18.useRef(null);
2217
- const thumbHorizontalRef = React18.useRef(null);
2218
- const lastScrollPosRef = React18.useRef({ top: 0, left: 0 });
2219
- const scrollTimeoutsRef = React18.useRef({ vertical: null, horizontal: null });
2593
+ const wrapperRef = React21.useRef(null);
2594
+ const thumbVerticalRef = React21.useRef(null);
2595
+ const thumbHorizontalRef = React21.useRef(null);
2596
+ const lastScrollPosRef = React21.useRef({ top: 0, left: 0 });
2597
+ const scrollTimeoutsRef = React21.useRef({ vertical: null, horizontal: null });
2220
2598
  const WHEEL_LINE_HEIGHT_PX = 16;
2221
- const showScrollbar = React18.useCallback(
2599
+ const showScrollbar = React21.useCallback(
2222
2600
  (direction) => {
2223
2601
  const wrapper = wrapperRef.current;
2224
2602
  if (!wrapper) return;
@@ -2232,7 +2610,7 @@ function CustomScrollbar({
2232
2610
  },
2233
2611
  [autoHideDelay]
2234
2612
  );
2235
- const updateScrollbarThumbPosition = React18.useCallback(() => {
2613
+ const updateScrollbarThumbPosition = React21.useCallback(() => {
2236
2614
  const container = containerRef.current;
2237
2615
  const thumbVertical = thumbVerticalRef.current;
2238
2616
  const thumbHorizontal = thumbHorizontalRef.current;
@@ -2270,7 +2648,7 @@ function CustomScrollbar({
2270
2648
  }
2271
2649
  }
2272
2650
  }, [containerRef]);
2273
- React18.useEffect(() => {
2651
+ React21.useEffect(() => {
2274
2652
  const container = containerRef.current;
2275
2653
  if (!container) return;
2276
2654
  lastScrollPosRef.current = {
@@ -2303,7 +2681,7 @@ function CustomScrollbar({
2303
2681
  if (rafId) cancelAnimationFrame(rafId);
2304
2682
  };
2305
2683
  }, [containerRef, showScrollbar, updateScrollbarThumbPosition]);
2306
- React18.useEffect(() => {
2684
+ React21.useEffect(() => {
2307
2685
  const container = containerRef.current;
2308
2686
  if (!container) return;
2309
2687
  const normalizeWheelDelta = (delta, deltaMode, axisSize) => {
@@ -2359,7 +2737,7 @@ function CustomScrollbar({
2359
2737
  container.removeEventListener("wheel", handleWheel);
2360
2738
  };
2361
2739
  }, [containerRef, showScrollbar]);
2362
- React18.useEffect(() => {
2740
+ React21.useEffect(() => {
2363
2741
  const thumbVertical = thumbVerticalRef.current;
2364
2742
  const thumbHorizontal = thumbHorizontalRef.current;
2365
2743
  const container = containerRef.current;
@@ -2419,19 +2797,19 @@ function CustomScrollbar({
2419
2797
  document.removeEventListener("mouseup", handleMouseUp);
2420
2798
  };
2421
2799
  }, [containerRef, showScrollbar]);
2422
- React18.useEffect(() => {
2800
+ React21.useEffect(() => {
2423
2801
  updateScrollbarThumbPosition();
2424
2802
  }, [children, updateScrollbarThumbPosition]);
2425
- return /* @__PURE__ */ jsxs10(Fragment, { children: [
2426
- /* @__PURE__ */ jsx19("style", { children: scrollbarStyles }),
2427
- /* @__PURE__ */ jsxs10(
2803
+ return /* @__PURE__ */ jsxs11(Fragment, { children: [
2804
+ /* @__PURE__ */ jsx22("style", { children: scrollbarStyles }),
2805
+ /* @__PURE__ */ jsxs11(
2428
2806
  "div",
2429
2807
  {
2430
2808
  ref: wrapperRef,
2431
2809
  className: `flex-1 min-w-0 custom-scrollbar-wrapper ${className || ""}`,
2432
2810
  style: { background: backgroundColor },
2433
2811
  children: [
2434
- /* @__PURE__ */ jsx19(
2812
+ /* @__PURE__ */ jsx22(
2435
2813
  "div",
2436
2814
  {
2437
2815
  ref: containerRef,
@@ -2440,8 +2818,8 @@ function CustomScrollbar({
2440
2818
  children
2441
2819
  }
2442
2820
  ),
2443
- /* @__PURE__ */ jsx19("div", { className: "scrollbar-track-vertical", children: /* @__PURE__ */ jsx19("div", { ref: thumbVerticalRef, className: "scrollbar-thumb-vertical" }) }),
2444
- /* @__PURE__ */ jsx19("div", { className: "scrollbar-track-horizontal", children: /* @__PURE__ */ jsx19(
2821
+ /* @__PURE__ */ jsx22("div", { className: "scrollbar-track-vertical", children: /* @__PURE__ */ jsx22("div", { ref: thumbVerticalRef, className: "scrollbar-thumb-vertical" }) }),
2822
+ /* @__PURE__ */ jsx22("div", { className: "scrollbar-track-horizontal", children: /* @__PURE__ */ jsx22(
2445
2823
  "div",
2446
2824
  {
2447
2825
  ref: thumbHorizontalRef,
@@ -2455,7 +2833,7 @@ function CustomScrollbar({
2455
2833
  }
2456
2834
 
2457
2835
  // src/components/pdf-viewer/components/PdfControls.tsx
2458
- import * as React19 from "react";
2836
+ import * as React22 from "react";
2459
2837
 
2460
2838
  // src/components/pdf-viewer/utils/types.ts
2461
2839
  var DEFAULT_BOUNDING_BOX_STYLE = {
@@ -2471,7 +2849,7 @@ var PDF_ZOOM = {
2471
2849
  };
2472
2850
 
2473
2851
  // src/components/pdf-viewer/components/PdfControls.tsx
2474
- import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
2852
+ import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
2475
2853
  var PdfControls = ({
2476
2854
  currentPage,
2477
2855
  totalPages,
@@ -2485,11 +2863,11 @@ var PdfControls = ({
2485
2863
  const canGoNext = currentPage < totalPages;
2486
2864
  const canZoomIn = zoom < PDF_ZOOM.MAX;
2487
2865
  const canZoomOut = zoom > PDF_ZOOM.MIN;
2488
- const [pageInputValue, setPageInputValue] = React19.useState(
2866
+ const [pageInputValue, setPageInputValue] = React22.useState(
2489
2867
  String(currentPage)
2490
2868
  );
2491
- const isEscapeRef = React19.useRef(false);
2492
- React19.useEffect(() => {
2869
+ const isEscapeRef = React22.useRef(false);
2870
+ React22.useEffect(() => {
2493
2871
  setPageInputValue(String(currentPage));
2494
2872
  }, [currentPage]);
2495
2873
  const handlePageInputChange = (e) => {
@@ -2525,14 +2903,14 @@ var PdfControls = ({
2525
2903
  const newZoom = Math.max(zoom - PDF_ZOOM.STEP, PDF_ZOOM.MIN);
2526
2904
  onZoomChange(newZoom);
2527
2905
  };
2528
- return /* @__PURE__ */ jsxs11(
2906
+ return /* @__PURE__ */ jsxs12(
2529
2907
  "div",
2530
2908
  {
2531
2909
  className: "flex flex-col items-center justify-end py-2 px-1 gap-4",
2532
2910
  style: { background: "#DEDEDE" },
2533
2911
  children: [
2534
- /* @__PURE__ */ jsxs11("div", { className: "flex flex-col items-center gap-1", children: [
2535
- /* @__PURE__ */ jsx20(
2912
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-col items-center gap-1", children: [
2913
+ /* @__PURE__ */ jsx23(
2536
2914
  "button",
2537
2915
  {
2538
2916
  onClick: onPreviousPage,
@@ -2540,10 +2918,10 @@ var PdfControls = ({
2540
2918
  className: "p-1.5 rounded transition-colors hover:bg-neutral-400 disabled:opacity-40 disabled:cursor-not-allowed",
2541
2919
  "aria-label": "Previous page",
2542
2920
  type: "button",
2543
- children: /* @__PURE__ */ jsx20(CaretUpIcon, { size: 16, style: { color: "#666666" } })
2921
+ children: /* @__PURE__ */ jsx23(CaretUpIcon, { size: 16, style: { color: "#666666" } })
2544
2922
  }
2545
2923
  ),
2546
- /* @__PURE__ */ jsx20("div", { className: "flex flex-col items-center", children: totalPages > 0 ? /* @__PURE__ */ jsx20(
2924
+ /* @__PURE__ */ jsx23("div", { className: "flex flex-col items-center", children: totalPages > 0 ? /* @__PURE__ */ jsx23(
2547
2925
  "input",
2548
2926
  {
2549
2927
  type: "text",
@@ -2559,8 +2937,8 @@ var PdfControls = ({
2559
2937
  },
2560
2938
  "aria-label": "Current page"
2561
2939
  }
2562
- ) : /* @__PURE__ */ jsx20("span", { className: "text-sm", style: { color: "#666666" }, children: "-" }) }),
2563
- /* @__PURE__ */ jsx20(
2940
+ ) : /* @__PURE__ */ jsx23("span", { className: "text-sm", style: { color: "#666666" }, children: "-" }) }),
2941
+ /* @__PURE__ */ jsx23(
2564
2942
  "button",
2565
2943
  {
2566
2944
  onClick: onNextPage,
@@ -2568,12 +2946,12 @@ var PdfControls = ({
2568
2946
  className: "p-1.5 rounded transition-colors hover:bg-neutral-400 disabled:opacity-40 disabled:cursor-not-allowed",
2569
2947
  "aria-label": "Next page",
2570
2948
  type: "button",
2571
- children: /* @__PURE__ */ jsx20(CaretDownIcon, { size: 16, style: { color: "#666666" } })
2949
+ children: /* @__PURE__ */ jsx23(CaretDownIcon, { size: 16, style: { color: "#666666" } })
2572
2950
  }
2573
2951
  )
2574
2952
  ] }),
2575
- /* @__PURE__ */ jsxs11("div", { className: "flex flex-col items-center gap-1", children: [
2576
- /* @__PURE__ */ jsx20(
2953
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-col items-center gap-1", children: [
2954
+ /* @__PURE__ */ jsx23(
2577
2955
  "button",
2578
2956
  {
2579
2957
  onClick: handleZoomIn,
@@ -2581,10 +2959,10 @@ var PdfControls = ({
2581
2959
  className: "p-1.5 rounded transition-colors hover:bg-neutral-400 disabled:opacity-40 disabled:cursor-not-allowed",
2582
2960
  "aria-label": "Zoom in",
2583
2961
  type: "button",
2584
- children: /* @__PURE__ */ jsx20(ZoomInIcon, { size: 16, style: { color: "#666666" } })
2962
+ children: /* @__PURE__ */ jsx23(ZoomInIcon, { size: 16, style: { color: "#666666" } })
2585
2963
  }
2586
2964
  ),
2587
- /* @__PURE__ */ jsx20(
2965
+ /* @__PURE__ */ jsx23(
2588
2966
  "button",
2589
2967
  {
2590
2968
  onClick: handleZoomOut,
@@ -2592,7 +2970,7 @@ var PdfControls = ({
2592
2970
  className: "p-1.5 rounded transition-colors hover:bg-neutral-400 disabled:opacity-40 disabled:cursor-not-allowed",
2593
2971
  "aria-label": "Zoom out",
2594
2972
  type: "button",
2595
- children: /* @__PURE__ */ jsx20(ZoomOutIcon, { size: 16, style: { color: "#666666" } })
2973
+ children: /* @__PURE__ */ jsx23(ZoomOutIcon, { size: 16, style: { color: "#666666" } })
2596
2974
  }
2597
2975
  )
2598
2976
  ] })
@@ -2603,7 +2981,7 @@ var PdfControls = ({
2603
2981
  PdfControls.displayName = "PdfControls";
2604
2982
 
2605
2983
  // src/components/pdf-viewer/components/PdfDocument.tsx
2606
- import * as React21 from "react";
2984
+ import * as React24 from "react";
2607
2985
  import { Document, Page } from "react-pdf";
2608
2986
 
2609
2987
  // src/components/pdf-viewer/utils/constants.ts
@@ -2629,7 +3007,7 @@ var INTERSECTION_OBSERVER_CONFIG = {
2629
3007
  };
2630
3008
 
2631
3009
  // src/components/pdf-viewer/components/BoundingBoxOverlay.tsx
2632
- import * as React20 from "react";
3010
+ import * as React23 from "react";
2633
3011
 
2634
3012
  // src/components/pdf-viewer/utils/boundingBoxUtils.ts
2635
3013
  function clamp01(value) {
@@ -2656,7 +3034,7 @@ function normalizeBoundingBox(box) {
2656
3034
  }
2657
3035
 
2658
3036
  // src/components/pdf-viewer/components/BoundingBoxOverlay.tsx
2659
- import { jsx as jsx21 } from "react/jsx-runtime";
3037
+ import { jsx as jsx24 } from "react/jsx-runtime";
2660
3038
  var BoundingBoxOverlayInner = ({
2661
3039
  boxes,
2662
3040
  highlightedIds,
@@ -2666,11 +3044,11 @@ var BoundingBoxOverlayInner = ({
2666
3044
  onBoxMouseEnter,
2667
3045
  onBoxMouseLeave
2668
3046
  }) => {
2669
- const validBoxes = React20.useMemo(
3047
+ const validBoxes = React23.useMemo(
2670
3048
  () => boxes.map(normalizeBoundingBox).filter((b) => b !== null),
2671
3049
  [boxes]
2672
3050
  );
2673
- const sortedBoxes = React20.useMemo(
3051
+ const sortedBoxes = React23.useMemo(
2674
3052
  () => [...validBoxes].sort((a, b) => {
2675
3053
  const aHighlighted = highlightedIds.has(a.id);
2676
3054
  const bHighlighted = highlightedIds.has(b.id);
@@ -2681,7 +3059,7 @@ var BoundingBoxOverlayInner = ({
2681
3059
  [validBoxes, highlightedIds]
2682
3060
  );
2683
3061
  if (sortedBoxes.length === 0) return null;
2684
- return /* @__PURE__ */ jsx21(
3062
+ return /* @__PURE__ */ jsx24(
2685
3063
  "svg",
2686
3064
  {
2687
3065
  viewBox: "0 0 1 1",
@@ -2701,7 +3079,7 @@ var BoundingBoxOverlayInner = ({
2701
3079
  const baseStyle = isHighlighted ? { ...DEFAULT_BOUNDING_BOX_STYLE, ...highlightStyle } : { ...DEFAULT_BOUNDING_BOX_STYLE, ...defaultStyle };
2702
3080
  const style = { ...baseStyle, ...box.style };
2703
3081
  const isInteractive = !!(onBoxClick || onBoxMouseEnter);
2704
- return /* @__PURE__ */ jsx21(
3082
+ return /* @__PURE__ */ jsx24(
2705
3083
  "rect",
2706
3084
  {
2707
3085
  x: box.x1,
@@ -2721,7 +3099,7 @@ var BoundingBoxOverlayInner = ({
2721
3099
  onMouseLeave: onBoxMouseLeave ? (e) => onBoxMouseLeave(box, e) : void 0,
2722
3100
  "aria-label": box.label,
2723
3101
  role: onBoxClick ? "button" : void 0,
2724
- children: box.label && /* @__PURE__ */ jsx21("title", { children: box.label })
3102
+ children: box.label && /* @__PURE__ */ jsx24("title", { children: box.label })
2725
3103
  },
2726
3104
  box.id
2727
3105
  );
@@ -2729,11 +3107,11 @@ var BoundingBoxOverlayInner = ({
2729
3107
  }
2730
3108
  );
2731
3109
  };
2732
- var BoundingBoxOverlay = React20.memo(BoundingBoxOverlayInner);
3110
+ var BoundingBoxOverlay = React23.memo(BoundingBoxOverlayInner);
2733
3111
  BoundingBoxOverlay.displayName = "BoundingBoxOverlay";
2734
3112
 
2735
3113
  // src/components/pdf-viewer/components/PdfDocument.tsx
2736
- import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
3114
+ import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
2737
3115
  var PdfDocument = ({
2738
3116
  file,
2739
3117
  pageWidth,
@@ -2755,14 +3133,14 @@ var PdfDocument = ({
2755
3133
  onBoxMouseEnter,
2756
3134
  onBoxMouseLeave
2757
3135
  }) => {
2758
- const mountedRef = React21.useRef(true);
2759
- React21.useEffect(() => {
3136
+ const mountedRef = React24.useRef(true);
3137
+ React24.useEffect(() => {
2760
3138
  mountedRef.current = true;
2761
3139
  return () => {
2762
3140
  mountedRef.current = false;
2763
3141
  };
2764
3142
  }, []);
2765
- const boxesByPage = React21.useMemo(() => {
3143
+ const boxesByPage = React24.useMemo(() => {
2766
3144
  const map = /* @__PURE__ */ new Map();
2767
3145
  boundingBoxes?.forEach((box) => {
2768
3146
  const pageBoxes = map.get(box.page) || [];
@@ -2771,7 +3149,7 @@ var PdfDocument = ({
2771
3149
  });
2772
3150
  return map;
2773
3151
  }, [boundingBoxes]);
2774
- const highlightedIdsSet = React21.useMemo(
3152
+ const highlightedIdsSet = React24.useMemo(
2775
3153
  () => new Set(highlightedBoxIds),
2776
3154
  [highlightedBoxIds]
2777
3155
  );
@@ -2810,14 +3188,14 @@ var PdfDocument = ({
2810
3188
  function renderCurrentPage() {
2811
3189
  const placeholderHeight = getPlaceholderHeight(currentPage);
2812
3190
  const boxesForPage = boxesByPage.get(currentPage) ?? [];
2813
- return /* @__PURE__ */ jsx22(
3191
+ return /* @__PURE__ */ jsx25(
2814
3192
  "div",
2815
3193
  {
2816
3194
  ref: (el) => registerPageRef(currentPage, el),
2817
3195
  "data-page-num": currentPage,
2818
3196
  className: "flex justify-center",
2819
- children: /* @__PURE__ */ jsxs12("div", { style: { position: "relative" }, children: [
2820
- /* @__PURE__ */ jsx22(
3197
+ children: /* @__PURE__ */ jsxs13("div", { style: { position: "relative" }, children: [
3198
+ /* @__PURE__ */ jsx25(
2821
3199
  Page,
2822
3200
  {
2823
3201
  pageNumber: currentPage,
@@ -2825,12 +3203,12 @@ var PdfDocument = ({
2825
3203
  className: "shadow-sm",
2826
3204
  renderTextLayer: enableTextLayer,
2827
3205
  renderAnnotationLayer: false,
2828
- loading: /* @__PURE__ */ jsx22(
3206
+ loading: /* @__PURE__ */ jsx25(
2829
3207
  "div",
2830
3208
  {
2831
3209
  className: "flex items-center justify-center bg-white",
2832
3210
  style: { width: pageWidth, height: placeholderHeight },
2833
- children: /* @__PURE__ */ jsxs12(Typography, { variant: "body-sm", className: "text-secondary", children: [
3211
+ children: /* @__PURE__ */ jsxs13(Typography, { variant: "body-sm", className: "text-secondary", children: [
2834
3212
  "Loading page ",
2835
3213
  currentPage,
2836
3214
  "..."
@@ -2839,7 +3217,7 @@ var PdfDocument = ({
2839
3217
  )
2840
3218
  }
2841
3219
  ),
2842
- /* @__PURE__ */ jsx22(
3220
+ /* @__PURE__ */ jsx25(
2843
3221
  BoundingBoxOverlay,
2844
3222
  {
2845
3223
  boxes: boxesForPage,
@@ -2862,7 +3240,7 @@ var PdfDocument = ({
2862
3240
  const shouldRender = visiblePages.has(pageNum);
2863
3241
  const placeholderHeight = getPlaceholderHeight(pageNum);
2864
3242
  const boxesForPage = boxesByPage.get(pageNum) ?? [];
2865
- return /* @__PURE__ */ jsx22(
3243
+ return /* @__PURE__ */ jsx25(
2866
3244
  "div",
2867
3245
  {
2868
3246
  ref: (el) => registerPageRef(pageNum, el),
@@ -2871,8 +3249,8 @@ var PdfDocument = ({
2871
3249
  style: {
2872
3250
  minHeight: shouldRender ? void 0 : placeholderHeight
2873
3251
  },
2874
- children: shouldRender ? /* @__PURE__ */ jsxs12("div", { style: { position: "relative" }, children: [
2875
- /* @__PURE__ */ jsx22(
3252
+ children: shouldRender ? /* @__PURE__ */ jsxs13("div", { style: { position: "relative" }, children: [
3253
+ /* @__PURE__ */ jsx25(
2876
3254
  Page,
2877
3255
  {
2878
3256
  pageNumber: pageNum,
@@ -2880,12 +3258,12 @@ var PdfDocument = ({
2880
3258
  className: "shadow-sm",
2881
3259
  renderTextLayer: enableTextLayer,
2882
3260
  renderAnnotationLayer: false,
2883
- loading: /* @__PURE__ */ jsx22(
3261
+ loading: /* @__PURE__ */ jsx25(
2884
3262
  "div",
2885
3263
  {
2886
3264
  className: "flex items-center justify-center bg-white",
2887
3265
  style: { width: pageWidth, height: placeholderHeight },
2888
- children: /* @__PURE__ */ jsxs12(Typography, { variant: "body-sm", className: "text-secondary", children: [
3266
+ children: /* @__PURE__ */ jsxs13(Typography, { variant: "body-sm", className: "text-secondary", children: [
2889
3267
  "Loading page ",
2890
3268
  pageNum,
2891
3269
  "..."
@@ -2894,7 +3272,7 @@ var PdfDocument = ({
2894
3272
  )
2895
3273
  }
2896
3274
  ),
2897
- /* @__PURE__ */ jsx22(
3275
+ /* @__PURE__ */ jsx25(
2898
3276
  BoundingBoxOverlay,
2899
3277
  {
2900
3278
  boxes: boxesForPage,
@@ -2906,7 +3284,7 @@ var PdfDocument = ({
2906
3284
  onBoxMouseLeave
2907
3285
  }
2908
3286
  )
2909
- ] }) : /* @__PURE__ */ jsx22(
3287
+ ] }) : /* @__PURE__ */ jsx25(
2910
3288
  "div",
2911
3289
  {
2912
3290
  className: "flex items-center justify-center bg-white shadow-sm",
@@ -2914,7 +3292,7 @@ var PdfDocument = ({
2914
3292
  width: pageWidth,
2915
3293
  height: placeholderHeight
2916
3294
  },
2917
- children: /* @__PURE__ */ jsxs12(Typography, { variant: "body-sm", className: "text-secondary", children: [
3295
+ children: /* @__PURE__ */ jsxs13(Typography, { variant: "body-sm", className: "text-secondary", children: [
2918
3296
  "Page ",
2919
3297
  pageNum
2920
3298
  ] })
@@ -2926,16 +3304,16 @@ var PdfDocument = ({
2926
3304
  });
2927
3305
  }
2928
3306
  if (!file) {
2929
- return /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx22(Typography, { variant: "body-md", className: "text-secondary", children: "No PDF available" }) });
3307
+ return /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx25(Typography, { variant: "body-md", className: "text-secondary", children: "No PDF available" }) });
2930
3308
  }
2931
- return /* @__PURE__ */ jsx22(
3309
+ return /* @__PURE__ */ jsx25(
2932
3310
  Document,
2933
3311
  {
2934
3312
  file,
2935
3313
  onLoadSuccess: handleDocumentLoadSuccess,
2936
3314
  onLoadError,
2937
- loading: /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx22(Typography, { variant: "body-md", className: "text-secondary", children: "Rendering PDF..." }) }),
2938
- error: /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx22(Typography, { variant: "body-md", className: "text-error", children: "Failed to render PDF" }) }),
3315
+ loading: /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx25(Typography, { variant: "body-md", className: "text-secondary", children: "Rendering PDF..." }) }),
3316
+ error: /* @__PURE__ */ jsx25("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx25(Typography, { variant: "body-md", className: "text-error", children: "Failed to render PDF" }) }),
2939
3317
  className: "flex flex-col items-center p-4 min-w-fit",
2940
3318
  children: numPages > 0 && pageWidth > 0 && (viewMode === "single" ? renderCurrentPage() : renderPagesWithVirtualization())
2941
3319
  }
@@ -2944,19 +3322,19 @@ var PdfDocument = ({
2944
3322
  PdfDocument.displayName = "PdfDocument";
2945
3323
 
2946
3324
  // src/components/pdf-viewer/components/PdfHeader.tsx
2947
- import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
3325
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2948
3326
  var PdfHeader = ({
2949
3327
  title,
2950
3328
  onDownload,
2951
3329
  onPrint
2952
3330
  }) => {
2953
- return /* @__PURE__ */ jsxs13(
3331
+ return /* @__PURE__ */ jsxs14(
2954
3332
  "div",
2955
3333
  {
2956
3334
  className: "flex items-center justify-between gap-4 px-4 py-1",
2957
3335
  style: { background: "#B5B5B5" },
2958
3336
  children: [
2959
- /* @__PURE__ */ jsx23("div", { className: "flex-shrink min-w-0", children: /* @__PURE__ */ jsx23(
3337
+ /* @__PURE__ */ jsx26("div", { className: "flex-shrink min-w-0", children: /* @__PURE__ */ jsx26(
2960
3338
  Typography,
2961
3339
  {
2962
3340
  variant: "label-md-bold",
@@ -2965,25 +3343,25 @@ var PdfHeader = ({
2965
3343
  children: title || "Untitled Document"
2966
3344
  }
2967
3345
  ) }),
2968
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
2969
- /* @__PURE__ */ jsx23(
3346
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
3347
+ /* @__PURE__ */ jsx26(
2970
3348
  "button",
2971
3349
  {
2972
3350
  onClick: onDownload,
2973
3351
  className: "p-1 hover:bg-neutral-500 rounded transition-colors",
2974
3352
  "aria-label": "Download PDF",
2975
3353
  type: "button",
2976
- children: /* @__PURE__ */ jsx23(DownloadIcon, { variant: "dark", size: 16 })
3354
+ children: /* @__PURE__ */ jsx26(DownloadIcon, { variant: "dark", size: 16 })
2977
3355
  }
2978
3356
  ),
2979
- /* @__PURE__ */ jsx23(
3357
+ /* @__PURE__ */ jsx26(
2980
3358
  "button",
2981
3359
  {
2982
3360
  onClick: onPrint,
2983
3361
  className: "p-1 hover:bg-neutral-500 rounded transition-colors",
2984
3362
  "aria-label": "Print PDF",
2985
3363
  type: "button",
2986
- children: /* @__PURE__ */ jsx23(PrintIcon, { variant: "dark", size: 16 })
3364
+ children: /* @__PURE__ */ jsx26(PrintIcon, { variant: "dark", size: 16 })
2987
3365
  }
2988
3366
  )
2989
3367
  ] })
@@ -2994,12 +3372,12 @@ var PdfHeader = ({
2994
3372
  PdfHeader.displayName = "PdfHeader";
2995
3373
 
2996
3374
  // src/components/pdf-viewer/hooks/useContainerWidth.ts
2997
- import * as React22 from "react";
3375
+ import * as React25 from "react";
2998
3376
  function useContainerWidth(padding = 32) {
2999
- const [containerWidth, setContainerWidth] = React22.useState(0);
3000
- const containerRef = React22.useRef(null);
3001
- const lastWidthRef = React22.useRef(0);
3002
- React22.useEffect(() => {
3377
+ const [containerWidth, setContainerWidth] = React25.useState(0);
3378
+ const containerRef = React25.useRef(null);
3379
+ const lastWidthRef = React25.useRef(0);
3380
+ React25.useEffect(() => {
3003
3381
  const element = containerRef.current;
3004
3382
  if (!element) return;
3005
3383
  const resizeObserver = new ResizeObserver((entries) => {
@@ -3023,9 +3401,9 @@ function useContainerWidth(padding = 32) {
3023
3401
  }
3024
3402
 
3025
3403
  // src/components/pdf-viewer/hooks/usePdfDownload.ts
3026
- import * as React23 from "react";
3404
+ import * as React26 from "react";
3027
3405
  function usePdfDownload(file, title) {
3028
- const download = React23.useCallback(async () => {
3406
+ const download = React26.useCallback(async () => {
3029
3407
  if (!file) return;
3030
3408
  try {
3031
3409
  let blob;
@@ -3057,11 +3435,11 @@ function usePdfDownload(file, title) {
3057
3435
  }
3058
3436
 
3059
3437
  // src/components/pdf-viewer/hooks/usePdfPrint.ts
3060
- import * as React24 from "react";
3438
+ import * as React27 from "react";
3061
3439
  function usePdfPrint(file) {
3062
- const [printBlobUrl, setPrintBlobUrl] = React24.useState(null);
3063
- const printFrameRef = React24.useRef(null);
3064
- const preparePrint = React24.useCallback(async () => {
3440
+ const [printBlobUrl, setPrintBlobUrl] = React27.useState(null);
3441
+ const printFrameRef = React27.useRef(null);
3442
+ const preparePrint = React27.useCallback(async () => {
3065
3443
  if (!file) return;
3066
3444
  try {
3067
3445
  let blob;
@@ -3077,14 +3455,14 @@ function usePdfPrint(file) {
3077
3455
  console.error("Failed to prepare PDF for printing:", error);
3078
3456
  }
3079
3457
  }, [file]);
3080
- React24.useEffect(() => {
3458
+ React27.useEffect(() => {
3081
3459
  return () => {
3082
3460
  if (printBlobUrl) {
3083
3461
  URL.revokeObjectURL(printBlobUrl);
3084
3462
  }
3085
3463
  };
3086
3464
  }, [printBlobUrl]);
3087
- const print = React24.useCallback(() => {
3465
+ const print = React27.useCallback(() => {
3088
3466
  if (printFrameRef.current?.contentWindow) {
3089
3467
  printFrameRef.current.contentWindow.print();
3090
3468
  }
@@ -3093,7 +3471,7 @@ function usePdfPrint(file) {
3093
3471
  }
3094
3472
 
3095
3473
  // src/components/pdf-viewer/hooks/usePdfScroll.ts
3096
- import * as React25 from "react";
3474
+ import * as React28 from "react";
3097
3475
  function usePdfScroll({
3098
3476
  containerRef,
3099
3477
  numPages,
@@ -3104,30 +3482,30 @@ function usePdfScroll({
3104
3482
  effectiveWidth,
3105
3483
  viewportBuffer
3106
3484
  }) {
3107
- const [internalPage, setInternalPage] = React25.useState(1);
3485
+ const [internalPage, setInternalPage] = React28.useState(1);
3108
3486
  const isControlled = scrollTo !== void 0;
3109
3487
  const currentPage = isControlled ? scrollTo.page : internalPage;
3110
- const scrollOperationRef = React25.useRef({
3488
+ const scrollOperationRef = React28.useRef({
3111
3489
  isProgrammatic: false,
3112
3490
  targetPage: null,
3113
3491
  lastReportedPage: 1,
3114
3492
  notifyOnComplete: false
3115
3493
  });
3116
- const [visibleRange, setVisibleRange] = React25.useState({
3494
+ const [visibleRange, setVisibleRange] = React28.useState({
3117
3495
  start: 1,
3118
3496
  end: Math.min(1 + viewportBuffer, numPages || 1 + viewportBuffer)
3119
3497
  });
3120
- const visiblePages = React25.useMemo(() => {
3498
+ const visiblePages = React28.useMemo(() => {
3121
3499
  const pages = /* @__PURE__ */ new Set();
3122
3500
  for (let i = visibleRange.start; i <= visibleRange.end; i++) {
3123
3501
  pages.add(i);
3124
3502
  }
3125
3503
  return pages;
3126
3504
  }, [visibleRange.start, visibleRange.end]);
3127
- const observerRef = React25.useRef(null);
3128
- const intersectionRatiosRef = React25.useRef(/* @__PURE__ */ new Map());
3129
- const pageRefsMapRef = React25.useRef(/* @__PURE__ */ new Map());
3130
- const cumulativeOffsets = React25.useMemo(() => {
3505
+ const observerRef = React28.useRef(null);
3506
+ const intersectionRatiosRef = React28.useRef(/* @__PURE__ */ new Map());
3507
+ const pageRefsMapRef = React28.useRef(/* @__PURE__ */ new Map());
3508
+ const cumulativeOffsets = React28.useMemo(() => {
3131
3509
  if (!pageDimensions?.size) return null;
3132
3510
  const offsets = [CONTAINER_PADDING];
3133
3511
  let cumulative = CONTAINER_PADDING;
@@ -3139,7 +3517,7 @@ function usePdfScroll({
3139
3517
  }
3140
3518
  return offsets;
3141
3519
  }, [pageDimensions, effectiveWidth]);
3142
- const calculatePageOffset = React25.useCallback(
3520
+ const calculatePageOffset = React28.useCallback(
3143
3521
  (pageNum) => {
3144
3522
  if (cumulativeOffsets && pageNum <= cumulativeOffsets.length) {
3145
3523
  return cumulativeOffsets[pageNum - 1];
@@ -3154,11 +3532,11 @@ function usePdfScroll({
3154
3532
  },
3155
3533
  [cumulativeOffsets, pageDimensions, effectiveWidth]
3156
3534
  );
3157
- const onPageChangeRef = React25.useRef(onPageChange);
3158
- React25.useEffect(() => {
3535
+ const onPageChangeRef = React28.useRef(onPageChange);
3536
+ React28.useEffect(() => {
3159
3537
  onPageChangeRef.current = onPageChange;
3160
3538
  }, [onPageChange]);
3161
- const updatePage = React25.useCallback(
3539
+ const updatePage = React28.useCallback(
3162
3540
  (pageNum) => {
3163
3541
  scrollOperationRef.current.lastReportedPage = pageNum;
3164
3542
  if (isControlled) {
@@ -3170,7 +3548,7 @@ function usePdfScroll({
3170
3548
  [isControlled]
3171
3549
  // Removed onPageChange - now uses ref
3172
3550
  );
3173
- const onProgrammaticScrollComplete = React25.useCallback((pageNum) => {
3551
+ const onProgrammaticScrollComplete = React28.useCallback((pageNum) => {
3174
3552
  const shouldNotify = scrollOperationRef.current.notifyOnComplete;
3175
3553
  scrollOperationRef.current.isProgrammatic = false;
3176
3554
  scrollOperationRef.current.targetPage = null;
@@ -3180,7 +3558,7 @@ function usePdfScroll({
3180
3558
  onPageChangeRef.current?.(pageNum);
3181
3559
  }
3182
3560
  }, []);
3183
- const scrollToPage = React25.useCallback(
3561
+ const scrollToPage = React28.useCallback(
3184
3562
  (pageNum) => {
3185
3563
  const container = containerRef.current;
3186
3564
  if (!container || !pageDimensions?.size) return;
@@ -3211,7 +3589,7 @@ function usePdfScroll({
3211
3589
  onProgrammaticScrollComplete
3212
3590
  ]
3213
3591
  );
3214
- const scrollToPosition = React25.useCallback(
3592
+ const scrollToPosition = React28.useCallback(
3215
3593
  (target) => {
3216
3594
  const container = containerRef.current;
3217
3595
  if (!container || !pageDimensions?.size) return;
@@ -3252,7 +3630,7 @@ function usePdfScroll({
3252
3630
  onProgrammaticScrollComplete
3253
3631
  ]
3254
3632
  );
3255
- const handlePageChange = React25.useCallback(
3633
+ const handlePageChange = React28.useCallback(
3256
3634
  (pageNum) => {
3257
3635
  const clampedPage = Math.max(1, Math.min(pageNum, numPages));
3258
3636
  scrollOperationRef.current.lastReportedPage = clampedPage;
@@ -3266,12 +3644,12 @@ function usePdfScroll({
3266
3644
  },
3267
3645
  [numPages, scrollToPage, isControlled, onPageChange]
3268
3646
  );
3269
- const updatePageRef = React25.useRef(updatePage);
3270
- React25.useEffect(() => {
3647
+ const updatePageRef = React28.useRef(updatePage);
3648
+ React28.useEffect(() => {
3271
3649
  updatePageRef.current = updatePage;
3272
3650
  }, [updatePage]);
3273
- const lastBufferRef = React25.useRef({ start: 1, end: 1 + viewportBuffer });
3274
- React25.useEffect(() => {
3651
+ const lastBufferRef = React28.useRef({ start: 1, end: 1 + viewportBuffer });
3652
+ React28.useEffect(() => {
3275
3653
  const container = containerRef.current;
3276
3654
  if (!container) return;
3277
3655
  const observer = new IntersectionObserver(
@@ -3331,7 +3709,7 @@ function usePdfScroll({
3331
3709
  ratiosMap.clear();
3332
3710
  };
3333
3711
  }, [containerRef, numPages, viewportBuffer]);
3334
- const observePage = React25.useCallback(
3712
+ const observePage = React28.useCallback(
3335
3713
  (pageNum, element) => {
3336
3714
  const prevElement = pageRefsMapRef.current.get(pageNum);
3337
3715
  if (element) {
@@ -3352,7 +3730,7 @@ function usePdfScroll({
3352
3730
  },
3353
3731
  []
3354
3732
  );
3355
- React25.useEffect(() => {
3733
+ React28.useEffect(() => {
3356
3734
  const container = containerRef.current;
3357
3735
  if (!container) return;
3358
3736
  const handleUserScroll = () => {
@@ -3410,9 +3788,9 @@ function usePdfScroll({
3410
3788
  }
3411
3789
  };
3412
3790
  }, [containerRef, onProgrammaticScrollComplete]);
3413
- const lastScrollTargetRef = React25.useRef(null);
3414
- const prevEffectiveWidthRef = React25.useRef(effectiveWidth);
3415
- React25.useEffect(() => {
3791
+ const lastScrollTargetRef = React28.useRef(null);
3792
+ const prevEffectiveWidthRef = React28.useRef(effectiveWidth);
3793
+ React28.useEffect(() => {
3416
3794
  if (prevEffectiveWidthRef.current !== effectiveWidth) {
3417
3795
  prevEffectiveWidthRef.current = effectiveWidth;
3418
3796
  const lastScrollTarget = lastScrollTargetRef.current;
@@ -3421,7 +3799,7 @@ function usePdfScroll({
3421
3799
  }
3422
3800
  }
3423
3801
  }, [effectiveWidth]);
3424
- React25.useEffect(() => {
3802
+ React28.useEffect(() => {
3425
3803
  if (!isControlled || !scrollTo || numPages <= 0) return;
3426
3804
  if (!pageDimensions?.size) return;
3427
3805
  const lastScrollTarget = lastScrollTargetRef.current;
@@ -3454,7 +3832,7 @@ function usePdfScroll({
3454
3832
  pageDimensions,
3455
3833
  effectiveWidth
3456
3834
  ]);
3457
- React25.useEffect(() => {
3835
+ React28.useEffect(() => {
3458
3836
  const pageRefs = pageRefsMapRef.current;
3459
3837
  const ratios = intersectionRatiosRef.current;
3460
3838
  for (const pageNum of pageRefs.keys()) {
@@ -3478,14 +3856,14 @@ function usePdfScroll({
3478
3856
  }
3479
3857
 
3480
3858
  // src/components/pdf-viewer/hooks/useZoomControl.ts
3481
- import * as React26 from "react";
3859
+ import * as React29 from "react";
3482
3860
  function useZoomControl({
3483
3861
  containerRef,
3484
3862
  initialZoom = PDF_ZOOM.DEFAULT
3485
3863
  }) {
3486
- const [zoom, setZoom] = React26.useState(initialZoom);
3487
- const scrollRatioRef = React26.useRef({ x: 0.5, y: 0 });
3488
- const handleZoomChange = React26.useCallback(
3864
+ const [zoom, setZoom] = React29.useState(initialZoom);
3865
+ const scrollRatioRef = React29.useRef({ x: 0.5, y: 0 });
3866
+ const handleZoomChange = React29.useCallback(
3489
3867
  (newZoom) => {
3490
3868
  const container = containerRef.current;
3491
3869
  if (container) {
@@ -3506,7 +3884,7 @@ function useZoomControl({
3506
3884
  },
3507
3885
  [containerRef]
3508
3886
  );
3509
- React26.useEffect(() => {
3887
+ React29.useEffect(() => {
3510
3888
  const container = containerRef.current;
3511
3889
  if (!container) return;
3512
3890
  requestAnimationFrame(() => {
@@ -3531,9 +3909,9 @@ function initializePdfWorker(workerUrl) {
3531
3909
  }
3532
3910
 
3533
3911
  // src/components/pdf-viewer/index.tsx
3534
- import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
3912
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
3535
3913
  var DEFAULT_VIEWPORT_BUFFER = 1;
3536
- var PdfViewer = React27.forwardRef(
3914
+ var PdfViewer = React30.forwardRef(
3537
3915
  ({
3538
3916
  file,
3539
3917
  title,
@@ -3560,15 +3938,15 @@ var PdfViewer = React27.forwardRef(
3560
3938
  className,
3561
3939
  ...props
3562
3940
  }, ref) => {
3563
- const [numPages, setNumPages] = React27.useState(0);
3564
- const [pageDimensions, setPageDimensions] = React27.useState(null);
3941
+ const [numPages, setNumPages] = React30.useState(0);
3942
+ const [pageDimensions, setPageDimensions] = React30.useState(null);
3565
3943
  const { containerWidth, containerRef } = useContainerWidth();
3566
3944
  const { zoom, handleZoomChange } = useZoomControl({ containerRef });
3567
3945
  const { printFrameRef, printBlobUrl, preparePrint, print } = usePdfPrint(file);
3568
3946
  const download = usePdfDownload(file, title);
3569
3947
  const baseWidth = Math.min(pageWidth || containerWidth, 800);
3570
3948
  const effectiveWidth = Math.round(baseWidth * (zoom / 100));
3571
- const handleDimensionsLoaded = React27.useCallback(
3949
+ const handleDimensionsLoaded = React30.useCallback(
3572
3950
  (dimensions) => {
3573
3951
  setPageDimensions(dimensions);
3574
3952
  onDimensionsReady?.(dimensions);
@@ -3585,7 +3963,7 @@ var PdfViewer = React27.forwardRef(
3585
3963
  effectiveWidth,
3586
3964
  viewportBuffer
3587
3965
  });
3588
- const handleLoadSuccess = React27.useCallback(
3966
+ const handleLoadSuccess = React30.useCallback(
3589
3967
  async (pages) => {
3590
3968
  setNumPages(pages);
3591
3969
  onLoadSuccess?.(pages);
@@ -3593,28 +3971,28 @@ var PdfViewer = React27.forwardRef(
3593
3971
  },
3594
3972
  [onLoadSuccess, preparePrint]
3595
3973
  );
3596
- const handleDownload = React27.useCallback(() => {
3974
+ const handleDownload = React30.useCallback(() => {
3597
3975
  if (onDownload) {
3598
3976
  onDownload();
3599
3977
  return;
3600
3978
  }
3601
3979
  download();
3602
3980
  }, [onDownload, download]);
3603
- const handlePrint = React27.useCallback(() => {
3981
+ const handlePrint = React30.useCallback(() => {
3604
3982
  if (onPrint) {
3605
3983
  onPrint();
3606
3984
  return;
3607
3985
  }
3608
3986
  print();
3609
3987
  }, [onPrint, print]);
3610
- return /* @__PURE__ */ jsxs14(
3988
+ return /* @__PURE__ */ jsxs15(
3611
3989
  "div",
3612
3990
  {
3613
3991
  ref,
3614
3992
  className: cn("h-full flex flex-col", className),
3615
3993
  ...props,
3616
3994
  children: [
3617
- printBlobUrl && /* @__PURE__ */ jsx24(
3995
+ printBlobUrl && /* @__PURE__ */ jsx27(
3618
3996
  "iframe",
3619
3997
  {
3620
3998
  ref: printFrameRef,
@@ -3623,7 +4001,7 @@ var PdfViewer = React27.forwardRef(
3623
4001
  title: "PDF for printing"
3624
4002
  }
3625
4003
  ),
3626
- /* @__PURE__ */ jsx24(
4004
+ /* @__PURE__ */ jsx27(
3627
4005
  PdfHeader,
3628
4006
  {
3629
4007
  title,
@@ -3631,8 +4009,8 @@ var PdfViewer = React27.forwardRef(
3631
4009
  onPrint: handlePrint
3632
4010
  }
3633
4011
  ),
3634
- /* @__PURE__ */ jsxs14("div", { className: "flex-1 flex overflow-hidden min-h-0", children: [
3635
- /* @__PURE__ */ jsx24(CustomScrollbar, { containerRef, children: /* @__PURE__ */ jsx24(
4012
+ /* @__PURE__ */ jsxs15("div", { className: "flex-1 flex overflow-hidden min-h-0", children: [
4013
+ /* @__PURE__ */ jsx27(CustomScrollbar, { containerRef, children: /* @__PURE__ */ jsx27(
3636
4014
  PdfDocument,
3637
4015
  {
3638
4016
  file,
@@ -3656,7 +4034,7 @@ var PdfViewer = React27.forwardRef(
3656
4034
  onBoxMouseLeave
3657
4035
  }
3658
4036
  ) }),
3659
- showControls && /* @__PURE__ */ jsx24(
4037
+ showControls && /* @__PURE__ */ jsx27(
3660
4038
  PdfControls,
3661
4039
  {
3662
4040
  currentPage,
@@ -3677,10 +4055,10 @@ var PdfViewer = React27.forwardRef(
3677
4055
  PdfViewer.displayName = "PdfViewer";
3678
4056
 
3679
4057
  // src/components/ui/tabs.tsx
3680
- import * as React28 from "react";
3681
- import { cva as cva11 } from "class-variance-authority";
3682
- import { jsx as jsx25 } from "react/jsx-runtime";
3683
- var tabsVariants = cva11(
4058
+ import * as React31 from "react";
4059
+ import { cva as cva12 } from "class-variance-authority";
4060
+ import { jsx as jsx28 } from "react/jsx-runtime";
4061
+ var tabsVariants = cva12(
3684
4062
  "inline-flex items-center justify-start whitespace-nowrap transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-interactive focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10",
3685
4063
  {
3686
4064
  variants: {
@@ -3693,17 +4071,17 @@ var tabsVariants = cva11(
3693
4071
  }
3694
4072
  }
3695
4073
  );
3696
- var TabsContext = React28.createContext(
4074
+ var TabsContext = React31.createContext(
3697
4075
  void 0
3698
4076
  );
3699
4077
  function useTabsContext() {
3700
- const context = React28.useContext(TabsContext);
4078
+ const context = React31.useContext(TabsContext);
3701
4079
  if (!context) {
3702
4080
  throw new Error("Tabs components must be used within a Tabs provider");
3703
4081
  }
3704
4082
  return context;
3705
4083
  }
3706
- var Tabs = React28.forwardRef((props, ref) => {
4084
+ var Tabs = React31.forwardRef((props, ref) => {
3707
4085
  const {
3708
4086
  className,
3709
4087
  value,
@@ -3712,7 +4090,7 @@ var Tabs = React28.forwardRef((props, ref) => {
3712
4090
  children,
3713
4091
  ...restProps
3714
4092
  } = props;
3715
- const contextValue = React28.useMemo(
4093
+ const contextValue = React31.useMemo(
3716
4094
  () => ({
3717
4095
  activeTab: value,
3718
4096
  setActiveTab: onValueChange,
@@ -3720,13 +4098,13 @@ var Tabs = React28.forwardRef((props, ref) => {
3720
4098
  }),
3721
4099
  [value, onValueChange, variant]
3722
4100
  );
3723
- return /* @__PURE__ */ jsx25(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx25("div", { ref, className: cn("w-full", className), ...restProps, children }) });
4101
+ return /* @__PURE__ */ jsx28(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx28("div", { ref, className: cn("w-full", className), ...restProps, children }) });
3724
4102
  });
3725
4103
  Tabs.displayName = "Tabs";
3726
- var TabsList = React28.forwardRef(
4104
+ var TabsList = React31.forwardRef(
3727
4105
  (props, ref) => {
3728
4106
  const { className, children, ...restProps } = props;
3729
- return /* @__PURE__ */ jsx25(
4107
+ return /* @__PURE__ */ jsx28(
3730
4108
  "div",
3731
4109
  {
3732
4110
  ref,
@@ -3742,7 +4120,7 @@ TabsList.displayName = "TabsList";
3742
4120
  var getTabTypographyStyles = (isActive) => ({
3743
4121
  font: isActive ? "var(--typography-label-sm-bold)" : "var(--typography-label-sm-regular)"
3744
4122
  });
3745
- var TabsTrigger = React28.forwardRef(
4123
+ var TabsTrigger = React31.forwardRef(
3746
4124
  (props, ref) => {
3747
4125
  const { className, value, disabled, style, children, ...restProps } = props;
3748
4126
  const { activeTab, setActiveTab, variant } = useTabsContext();
@@ -3750,22 +4128,22 @@ var TabsTrigger = React28.forwardRef(
3750
4128
  throw new Error("TabsTrigger must have a value prop");
3751
4129
  }
3752
4130
  const isActive = activeTab === value;
3753
- const tokenStyles = React28.useMemo(
4131
+ const tokenStyles = React31.useMemo(
3754
4132
  () => ({
3755
4133
  ...getTabTypographyStyles(isActive),
3756
4134
  ...style
3757
4135
  }),
3758
4136
  [isActive, style]
3759
4137
  );
3760
- const triggerClassName = React28.useMemo(
4138
+ const triggerClassName = React31.useMemo(
3761
4139
  () => cn(tabsVariants({ variant }), className),
3762
4140
  [variant, className]
3763
4141
  );
3764
- const handleClick = React28.useCallback(() => {
4142
+ const handleClick = React31.useCallback(() => {
3765
4143
  if (disabled) return;
3766
4144
  setActiveTab(value);
3767
4145
  }, [disabled, setActiveTab, value]);
3768
- return /* @__PURE__ */ jsx25(
4146
+ return /* @__PURE__ */ jsx28(
3769
4147
  "button",
3770
4148
  {
3771
4149
  ref,
@@ -3779,13 +4157,13 @@ var TabsTrigger = React28.forwardRef(
3779
4157
  disabled,
3780
4158
  onClick: handleClick,
3781
4159
  ...restProps,
3782
- children: /* @__PURE__ */ jsx25("span", { className: "pl-3 pr-6 py-2", children })
4160
+ children: /* @__PURE__ */ jsx28("span", { className: "pl-3 pr-6 py-2", children })
3783
4161
  }
3784
4162
  );
3785
4163
  }
3786
4164
  );
3787
4165
  TabsTrigger.displayName = "TabsTrigger";
3788
- var TabsContent = React28.forwardRef(
4166
+ var TabsContent = React31.forwardRef(
3789
4167
  (props, ref) => {
3790
4168
  const { className, value, children, ...restProps } = props;
3791
4169
  const { activeTab } = useTabsContext();
@@ -3796,7 +4174,7 @@ var TabsContent = React28.forwardRef(
3796
4174
  if (!isActive) {
3797
4175
  return null;
3798
4176
  }
3799
- return /* @__PURE__ */ jsx25(
4177
+ return /* @__PURE__ */ jsx28(
3800
4178
  "div",
3801
4179
  {
3802
4180
  ref,
@@ -3814,11 +4192,11 @@ var TabsContent = React28.forwardRef(
3814
4192
  TabsContent.displayName = "TabsContent";
3815
4193
 
3816
4194
  // src/components/ui/dropdown-menu.tsx
3817
- import * as React29 from "react";
4195
+ import * as React32 from "react";
3818
4196
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3819
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
4197
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
3820
4198
  var DropdownMenu = DropdownMenuPrimitive.Root;
3821
- var DropdownMenuTrigger = React29.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ jsxs15(
4199
+ var DropdownMenuTrigger = React32.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
3822
4200
  DropdownMenuPrimitive.Trigger,
3823
4201
  {
3824
4202
  ref,
@@ -3828,7 +4206,7 @@ var DropdownMenuTrigger = React29.forwardRef(({ className, icon, children, ...pr
3828
4206
  ),
3829
4207
  ...props,
3830
4208
  children: [
3831
- icon || /* @__PURE__ */ jsx26(MoreMenuIcon, {}),
4209
+ icon || /* @__PURE__ */ jsx29(MoreMenuIcon, {}),
3832
4210
  children
3833
4211
  ]
3834
4212
  }
@@ -3838,7 +4216,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
3838
4216
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
3839
4217
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
3840
4218
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
3841
- var DropdownMenuSubTrigger = React29.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs15(
4219
+ var DropdownMenuSubTrigger = React32.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
3842
4220
  DropdownMenuPrimitive.SubTrigger,
3843
4221
  {
3844
4222
  ref,
@@ -3851,12 +4229,12 @@ var DropdownMenuSubTrigger = React29.forwardRef(({ className, inset, children, .
3851
4229
  ...props,
3852
4230
  children: [
3853
4231
  children,
3854
- /* @__PURE__ */ jsx26(ArrowRightIcon, { className: "ml-auto" })
4232
+ /* @__PURE__ */ jsx29(ArrowRightIcon, { className: "ml-auto" })
3855
4233
  ]
3856
4234
  }
3857
4235
  ));
3858
4236
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3859
- var DropdownMenuSubContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
4237
+ var DropdownMenuSubContent = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
3860
4238
  DropdownMenuPrimitive.SubContent,
3861
4239
  {
3862
4240
  ref,
@@ -3868,7 +4246,7 @@ var DropdownMenuSubContent = React29.forwardRef(({ className, ...props }, ref) =
3868
4246
  }
3869
4247
  ));
3870
4248
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3871
- var DropdownMenuContent = React29.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ jsx26(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx26(
4249
+ var DropdownMenuContent = React32.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ jsx29(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
3872
4250
  DropdownMenuPrimitive.Content,
3873
4251
  {
3874
4252
  ref,
@@ -3882,7 +4260,7 @@ var DropdownMenuContent = React29.forwardRef(({ className, sideOffset = 4, align
3882
4260
  }
3883
4261
  ) }));
3884
4262
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3885
- var DropdownMenuItem = React29.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ jsx26(
4263
+ var DropdownMenuItem = React32.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ jsx29(
3886
4264
  DropdownMenuPrimitive.Item,
3887
4265
  {
3888
4266
  ref,
@@ -3899,7 +4277,7 @@ var DropdownMenuItem = React29.forwardRef(({ className, inset, style, ...props }
3899
4277
  }
3900
4278
  ));
3901
4279
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3902
- var DropdownMenuCheckboxItem = React29.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ jsxs15(
4280
+ var DropdownMenuCheckboxItem = React32.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ jsxs16(
3903
4281
  DropdownMenuPrimitive.CheckboxItem,
3904
4282
  {
3905
4283
  ref,
@@ -3914,7 +4292,7 @@ var DropdownMenuCheckboxItem = React29.forwardRef(({ className, children, style,
3914
4292
  },
3915
4293
  ...props,
3916
4294
  children: [
3917
- /* @__PURE__ */ jsx26(
4295
+ /* @__PURE__ */ jsx29(
3918
4296
  Checkbox,
3919
4297
  {
3920
4298
  checked: checked === true,
@@ -3922,12 +4300,12 @@ var DropdownMenuCheckboxItem = React29.forwardRef(({ className, children, style,
3922
4300
  "aria-hidden": "true"
3923
4301
  }
3924
4302
  ),
3925
- /* @__PURE__ */ jsx26("span", { className: "flex-1", children })
4303
+ /* @__PURE__ */ jsx29("span", { className: "flex-1", children })
3926
4304
  ]
3927
4305
  }
3928
4306
  ));
3929
4307
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3930
- var DropdownMenuRadioItem = React29.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsxs15(
4308
+ var DropdownMenuRadioItem = React32.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ jsxs16(
3931
4309
  DropdownMenuPrimitive.RadioItem,
3932
4310
  {
3933
4311
  ref,
@@ -3941,13 +4319,13 @@ var DropdownMenuRadioItem = React29.forwardRef(({ className, children, style, ..
3941
4319
  },
3942
4320
  ...props,
3943
4321
  children: [
3944
- /* @__PURE__ */ jsx26("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx26(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx26("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
4322
+ /* @__PURE__ */ jsx29("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
3945
4323
  children
3946
4324
  ]
3947
4325
  }
3948
4326
  ));
3949
4327
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3950
- var DropdownMenuLabel = React29.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx26(
4328
+ var DropdownMenuLabel = React32.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx29(
3951
4329
  DropdownMenuPrimitive.Label,
3952
4330
  {
3953
4331
  ref,
@@ -3960,7 +4338,7 @@ var DropdownMenuLabel = React29.forwardRef(({ className, inset, ...props }, ref)
3960
4338
  }
3961
4339
  ));
3962
4340
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3963
- var DropdownMenuSeparator = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
4341
+ var DropdownMenuSeparator = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
3964
4342
  DropdownMenuPrimitive.Separator,
3965
4343
  {
3966
4344
  ref,
@@ -3973,7 +4351,7 @@ var DropdownMenuShortcut = ({
3973
4351
  className,
3974
4352
  ...props
3975
4353
  }) => {
3976
- return /* @__PURE__ */ jsx26(
4354
+ return /* @__PURE__ */ jsx29(
3977
4355
  "span",
3978
4356
  {
3979
4357
  className: cn("ml-auto text-xs tracking-widest opacity-60", className),
@@ -3984,21 +4362,21 @@ var DropdownMenuShortcut = ({
3984
4362
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
3985
4363
 
3986
4364
  // src/components/ui/charts/chart-legend.tsx
3987
- import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
4365
+ import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
3988
4366
  function ChartLegend({
3989
4367
  items,
3990
4368
  x = 0,
3991
4369
  y = 550,
3992
4370
  className = ""
3993
4371
  }) {
3994
- return /* @__PURE__ */ jsx27("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ jsx27(
4372
+ return /* @__PURE__ */ jsx30("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ jsx30(
3995
4373
  "div",
3996
4374
  {
3997
4375
  className: `flex justify-center items-center gap-6 ${className}`,
3998
4376
  style: { height: "100%" },
3999
- children: items.map(({ key, color, label }) => /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
4000
- /* @__PURE__ */ jsx27("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
4001
- /* @__PURE__ */ jsx27(Typography, { variant: "body-xs", children: label || key })
4377
+ children: items.map(({ key, color, label }) => /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
4378
+ /* @__PURE__ */ jsx30("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
4379
+ /* @__PURE__ */ jsx30(Typography, { variant: "body-xs", children: label || key })
4002
4380
  ] }, key))
4003
4381
  }
4004
4382
  ) });
@@ -4116,12 +4494,12 @@ var formatLargeNumber = (value) => {
4116
4494
  };
4117
4495
 
4118
4496
  // src/components/ui/charts/chart-labels.tsx
4119
- import { jsx as jsx28 } from "react/jsx-runtime";
4497
+ import { jsx as jsx31 } from "react/jsx-runtime";
4120
4498
  var createCustomXAxisLabel = (text, yOffset = 40) => {
4121
4499
  const CustomXAxisLabel = ({ viewBox }) => {
4122
4500
  if (!viewBox) return null;
4123
4501
  const { x, y, width } = viewBox;
4124
- return /* @__PURE__ */ jsx28("g", { children: /* @__PURE__ */ jsx28("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ jsx28("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx28(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4502
+ return /* @__PURE__ */ jsx31("g", { children: /* @__PURE__ */ jsx31("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ jsx31("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx31(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4125
4503
  };
4126
4504
  CustomXAxisLabel.displayName = "CustomXAxisLabel";
4127
4505
  return CustomXAxisLabel;
@@ -4131,7 +4509,7 @@ var createCustomYAxisLabel = (text, leftMargin) => {
4131
4509
  if (!viewBox) return null;
4132
4510
  const { x, y, height } = viewBox;
4133
4511
  const offset = leftMargin ? leftMargin + 10 : 110;
4134
- return /* @__PURE__ */ jsx28("g", { children: /* @__PURE__ */ jsx28("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ jsx28("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx28(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4512
+ return /* @__PURE__ */ jsx31("g", { children: /* @__PURE__ */ jsx31("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ jsx31("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx31(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4135
4513
  };
4136
4514
  CustomYAxisLabel.displayName = "CustomYAxisLabel";
4137
4515
  return CustomYAxisLabel;
@@ -4140,14 +4518,14 @@ var createCustomYAxisRightLabel = (text) => {
4140
4518
  const CustomYAxisRightLabel = ({ viewBox }) => {
4141
4519
  if (!viewBox) return null;
4142
4520
  const { x, y, width, height } = viewBox;
4143
- return /* @__PURE__ */ jsx28("g", { children: /* @__PURE__ */ jsx28("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ jsx28("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx28(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4521
+ return /* @__PURE__ */ jsx31("g", { children: /* @__PURE__ */ jsx31("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ jsx31("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx31(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
4144
4522
  };
4145
4523
  CustomYAxisRightLabel.displayName = "CustomYAxisRightLabel";
4146
4524
  return CustomYAxisRightLabel;
4147
4525
  };
4148
4526
  var customXAxisTick = (props) => {
4149
4527
  const { x, y, payload } = props;
4150
- return /* @__PURE__ */ jsx28("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx28(
4528
+ return /* @__PURE__ */ jsx31("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx31(
4151
4529
  "foreignObject",
4152
4530
  {
4153
4531
  x: -20,
@@ -4155,12 +4533,12 @@ var customXAxisTick = (props) => {
4155
4533
  width: 40,
4156
4534
  height: 20,
4157
4535
  style: { overflow: "visible" },
4158
- children: /* @__PURE__ */ jsx28(
4536
+ children: /* @__PURE__ */ jsx31(
4159
4537
  "div",
4160
4538
  {
4161
4539
  className: "flex items-start justify-center h-full",
4162
4540
  style: { overflow: "visible" },
4163
- children: /* @__PURE__ */ jsx28(
4541
+ children: /* @__PURE__ */ jsx31(
4164
4542
  Typography,
4165
4543
  {
4166
4544
  variant: "body-xs",
@@ -4175,7 +4553,7 @@ var customXAxisTick = (props) => {
4175
4553
  };
4176
4554
  var customXAxisTickRotated = (props) => {
4177
4555
  const { x, y, payload } = props;
4178
- return /* @__PURE__ */ jsx28("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx28(
4556
+ return /* @__PURE__ */ jsx31("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx31(
4179
4557
  "text",
4180
4558
  {
4181
4559
  x: 0,
@@ -4194,25 +4572,25 @@ var customYAxisTick = (props) => {
4194
4572
  const { x, y, payload } = props;
4195
4573
  const text = String(payload.value);
4196
4574
  const estimatedWidth = Math.max(text.length * 8, 80);
4197
- return /* @__PURE__ */ jsx28(
4575
+ return /* @__PURE__ */ jsx31(
4198
4576
  "foreignObject",
4199
4577
  {
4200
4578
  x: x - estimatedWidth + 5,
4201
4579
  y: y - 6,
4202
4580
  width: estimatedWidth,
4203
4581
  height: 15,
4204
- children: /* @__PURE__ */ jsx28("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ jsx28(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
4582
+ children: /* @__PURE__ */ jsx31("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ jsx31(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
4205
4583
  }
4206
4584
  );
4207
4585
  };
4208
4586
 
4209
4587
  // src/components/ui/charts/chart-tooltip.tsx
4210
- import { Fragment as Fragment2, jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
4588
+ import { Fragment as Fragment2, jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
4211
4589
  function TooltipContainer({
4212
4590
  children,
4213
4591
  className = ""
4214
4592
  }) {
4215
- return /* @__PURE__ */ jsx29(
4593
+ return /* @__PURE__ */ jsx32(
4216
4594
  "div",
4217
4595
  {
4218
4596
  className: `bg-light border border-subtle rounded p-2.5 text-dark ${className}`,
@@ -4226,10 +4604,10 @@ function TooltipItem({
4226
4604
  value,
4227
4605
  className = ""
4228
4606
  }) {
4229
- return /* @__PURE__ */ jsxs17(Fragment2, { children: [
4230
- /* @__PURE__ */ jsx29("br", {}),
4231
- /* @__PURE__ */ jsxs17(Typography, { variant: "label-sm", className, children: [
4232
- /* @__PURE__ */ jsx29(
4607
+ return /* @__PURE__ */ jsxs18(Fragment2, { children: [
4608
+ /* @__PURE__ */ jsx32("br", {}),
4609
+ /* @__PURE__ */ jsxs18(Typography, { variant: "label-sm", className, children: [
4610
+ /* @__PURE__ */ jsx32(
4233
4611
  "span",
4234
4612
  {
4235
4613
  className: "inline-block w-3 h-3 mr-1.5",
@@ -4247,9 +4625,9 @@ function GenericTooltip({
4247
4625
  items,
4248
4626
  className = ""
4249
4627
  }) {
4250
- return /* @__PURE__ */ jsxs17(TooltipContainer, { className, children: [
4251
- title && /* @__PURE__ */ jsx29(Typography, { variant: "label-sm-bold", children: title }),
4252
- items.map((item, index) => /* @__PURE__ */ jsx29(
4628
+ return /* @__PURE__ */ jsxs18(TooltipContainer, { className, children: [
4629
+ title && /* @__PURE__ */ jsx32(Typography, { variant: "label-sm-bold", children: title }),
4630
+ items.map((item, index) => /* @__PURE__ */ jsx32(
4253
4631
  TooltipItem,
4254
4632
  {
4255
4633
  color: item.color,
@@ -4262,7 +4640,7 @@ function GenericTooltip({
4262
4640
  }
4263
4641
 
4264
4642
  // src/components/ui/charts/bar-chart.tsx
4265
- import { forwardRef as forwardRef21 } from "react";
4643
+ import { forwardRef as forwardRef24 } from "react";
4266
4644
  import {
4267
4645
  BarChart as RechartsBarChart,
4268
4646
  Bar,
@@ -4271,8 +4649,8 @@ import {
4271
4649
  Tooltip as Tooltip2,
4272
4650
  ResponsiveContainer
4273
4651
  } from "recharts";
4274
- import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
4275
- var BarChart = forwardRef21(
4652
+ import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
4653
+ var BarChart = forwardRef24(
4276
4654
  ({
4277
4655
  data,
4278
4656
  xAxisKey,
@@ -4298,19 +4676,19 @@ var BarChart = forwardRef21(
4298
4676
  };
4299
4677
  const defaultLegendItems = showLegend && legendItems.length === 0 ? [{ key: yAxisKey, color: barColor, label: yAxisKey }] : legendItems;
4300
4678
  const hasData = data && data.length > 0;
4301
- return /* @__PURE__ */ jsxs18(
4679
+ return /* @__PURE__ */ jsxs19(
4302
4680
  "div",
4303
4681
  {
4304
4682
  ref,
4305
4683
  className: `bg-light border border-subtle mx-6 ${className}`,
4306
4684
  children: [
4307
- /* @__PURE__ */ jsx30("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx30(Typography, { variant: "label-sm-bold", children: title }) }),
4308
- /* @__PURE__ */ jsx30("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx30(
4685
+ /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx33(Typography, { variant: "label-sm-bold", children: title }) }),
4686
+ /* @__PURE__ */ jsx33("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx33(
4309
4687
  ResponsiveContainer,
4310
4688
  {
4311
4689
  width: "100%",
4312
4690
  height: CHART_CONSTANTS.STANDARD_HEIGHT,
4313
- children: /* @__PURE__ */ jsxs18(
4691
+ children: /* @__PURE__ */ jsxs19(
4314
4692
  RechartsBarChart,
4315
4693
  {
4316
4694
  data,
@@ -4322,7 +4700,7 @@ var BarChart = forwardRef21(
4322
4700
  onClick: handleClick,
4323
4701
  layout,
4324
4702
  children: [
4325
- /* @__PURE__ */ jsx30(
4703
+ /* @__PURE__ */ jsx33(
4326
4704
  XAxis,
4327
4705
  {
4328
4706
  dataKey: xAxisKey,
@@ -4336,7 +4714,7 @@ var BarChart = forwardRef21(
4336
4714
  label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel, 80) : void 0
4337
4715
  }
4338
4716
  ),
4339
- /* @__PURE__ */ jsx30(
4717
+ /* @__PURE__ */ jsx33(
4340
4718
  YAxis,
4341
4719
  {
4342
4720
  axisLine: false,
@@ -4347,7 +4725,7 @@ var BarChart = forwardRef21(
4347
4725
  type: yAxisType
4348
4726
  }
4349
4727
  ),
4350
- /* @__PURE__ */ jsx30(
4728
+ /* @__PURE__ */ jsx33(
4351
4729
  Tooltip2,
4352
4730
  {
4353
4731
  content: ({
@@ -4356,7 +4734,7 @@ var BarChart = forwardRef21(
4356
4734
  label
4357
4735
  }) => {
4358
4736
  if (active && payload && payload.length) {
4359
- return /* @__PURE__ */ jsx30(
4737
+ return /* @__PURE__ */ jsx33(
4360
4738
  GenericTooltip,
4361
4739
  {
4362
4740
  title: label?.toString(),
@@ -4372,7 +4750,7 @@ var BarChart = forwardRef21(
4372
4750
  }
4373
4751
  }
4374
4752
  ),
4375
- /* @__PURE__ */ jsx30(
4753
+ /* @__PURE__ */ jsx33(
4376
4754
  Bar,
4377
4755
  {
4378
4756
  dataKey: barDataKey || yAxisKey,
@@ -4380,12 +4758,12 @@ var BarChart = forwardRef21(
4380
4758
  name: barDataKey || yAxisKey
4381
4759
  }
4382
4760
  ),
4383
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx30(ChartLegend, { items: defaultLegendItems })
4761
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx33(ChartLegend, { items: defaultLegendItems })
4384
4762
  ]
4385
4763
  }
4386
4764
  )
4387
4765
  }
4388
- ) : /* @__PURE__ */ jsx30("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx30(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4766
+ ) : /* @__PURE__ */ jsx33("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx33(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4389
4767
  ]
4390
4768
  }
4391
4769
  );
@@ -4394,7 +4772,7 @@ var BarChart = forwardRef21(
4394
4772
  BarChart.displayName = "BarChart";
4395
4773
 
4396
4774
  // src/components/ui/charts/line-chart.tsx
4397
- import { forwardRef as forwardRef22 } from "react";
4775
+ import { forwardRef as forwardRef25 } from "react";
4398
4776
  import {
4399
4777
  LineChart as RechartsLineChart,
4400
4778
  Line,
@@ -4403,8 +4781,8 @@ import {
4403
4781
  Tooltip as Tooltip3,
4404
4782
  ResponsiveContainer as ResponsiveContainer2
4405
4783
  } from "recharts";
4406
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
4407
- var LineChart = forwardRef22(
4784
+ import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
4785
+ var LineChart = forwardRef25(
4408
4786
  ({
4409
4787
  data,
4410
4788
  xAxisKey,
@@ -4432,19 +4810,19 @@ var LineChart = forwardRef22(
4432
4810
  )
4433
4811
  );
4434
4812
  const hasData = data && data.length > 0;
4435
- return /* @__PURE__ */ jsxs19(
4813
+ return /* @__PURE__ */ jsxs20(
4436
4814
  "div",
4437
4815
  {
4438
4816
  ref,
4439
4817
  className: `bg-light border border-subtle mx-6 ${className}`,
4440
4818
  children: [
4441
- /* @__PURE__ */ jsx31("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx31(Typography, { variant: "label-sm-bold", children: title }) }),
4442
- /* @__PURE__ */ jsx31("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx31(
4819
+ /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx34(Typography, { variant: "label-sm-bold", children: title }) }),
4820
+ /* @__PURE__ */ jsx34("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx34(
4443
4821
  ResponsiveContainer2,
4444
4822
  {
4445
4823
  width: "100%",
4446
4824
  height: CHART_CONSTANTS.STANDARD_HEIGHT,
4447
- children: /* @__PURE__ */ jsxs19(
4825
+ children: /* @__PURE__ */ jsxs20(
4448
4826
  RechartsLineChart,
4449
4827
  {
4450
4828
  data,
@@ -4455,7 +4833,7 @@ var LineChart = forwardRef22(
4455
4833
  },
4456
4834
  onClick: handleClick,
4457
4835
  children: [
4458
- /* @__PURE__ */ jsx31(
4836
+ /* @__PURE__ */ jsx34(
4459
4837
  XAxis2,
4460
4838
  {
4461
4839
  dataKey: xAxisKey,
@@ -4467,7 +4845,7 @@ var LineChart = forwardRef22(
4467
4845
  label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel) : void 0
4468
4846
  }
4469
4847
  ),
4470
- /* @__PURE__ */ jsx31(
4848
+ /* @__PURE__ */ jsx34(
4471
4849
  YAxis2,
4472
4850
  {
4473
4851
  axisLine: false,
@@ -4476,7 +4854,7 @@ var LineChart = forwardRef22(
4476
4854
  label: yAxisLabel ? createCustomYAxisLabel(yAxisLabel, 40) : void 0
4477
4855
  }
4478
4856
  ),
4479
- /* @__PURE__ */ jsx31(
4857
+ /* @__PURE__ */ jsx34(
4480
4858
  Tooltip3,
4481
4859
  {
4482
4860
  content: ({
@@ -4485,7 +4863,7 @@ var LineChart = forwardRef22(
4485
4863
  label
4486
4864
  }) => {
4487
4865
  if (active && payload && payload.length) {
4488
- return /* @__PURE__ */ jsx31(
4866
+ return /* @__PURE__ */ jsx34(
4489
4867
  GenericTooltip,
4490
4868
  {
4491
4869
  title: label?.toString(),
@@ -4501,7 +4879,7 @@ var LineChart = forwardRef22(
4501
4879
  }
4502
4880
  }
4503
4881
  ),
4504
- series.map((s, index) => /* @__PURE__ */ jsx31(
4882
+ series.map((s, index) => /* @__PURE__ */ jsx34(
4505
4883
  Line,
4506
4884
  {
4507
4885
  type: "monotone",
@@ -4513,12 +4891,12 @@ var LineChart = forwardRef22(
4513
4891
  },
4514
4892
  s.dataKey
4515
4893
  )),
4516
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx31(ChartLegend, { items: defaultLegendItems })
4894
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx34(ChartLegend, { items: defaultLegendItems })
4517
4895
  ]
4518
4896
  }
4519
4897
  )
4520
4898
  }
4521
- ) : /* @__PURE__ */ jsx31("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx31(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4899
+ ) : /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx34(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4522
4900
  ]
4523
4901
  }
4524
4902
  );
@@ -4527,10 +4905,10 @@ var LineChart = forwardRef22(
4527
4905
  LineChart.displayName = "LineChart";
4528
4906
 
4529
4907
  // src/components/ui/charts/pie-chart.tsx
4530
- import { forwardRef as forwardRef23 } from "react";
4908
+ import { forwardRef as forwardRef26 } from "react";
4531
4909
  import { PieChart as RechartsPieChart, Pie, Cell, Tooltip as Tooltip4 } from "recharts";
4532
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
4533
- var PieChart = forwardRef23(
4910
+ import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
4911
+ var PieChart = forwardRef26(
4534
4912
  ({
4535
4913
  data,
4536
4914
  title,
@@ -4557,20 +4935,20 @@ var PieChart = forwardRef23(
4557
4935
  )
4558
4936
  );
4559
4937
  const hasData = data && data.length > 0;
4560
- return /* @__PURE__ */ jsxs20(
4938
+ return /* @__PURE__ */ jsxs21(
4561
4939
  "div",
4562
4940
  {
4563
4941
  ref,
4564
4942
  className: `bg-light border border-subtle mx-6 ${className}`,
4565
4943
  children: [
4566
- /* @__PURE__ */ jsx32("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx32(Typography, { variant: "label-sm-bold", children: title }) }),
4567
- /* @__PURE__ */ jsx32("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx32("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs20(
4944
+ /* @__PURE__ */ jsx35("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx35(Typography, { variant: "label-sm-bold", children: title }) }),
4945
+ /* @__PURE__ */ jsx35("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx35("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs21(
4568
4946
  RechartsPieChart,
4569
4947
  {
4570
4948
  width: 600,
4571
4949
  height: CHART_CONSTANTS.LARGE_HEIGHT,
4572
4950
  children: [
4573
- /* @__PURE__ */ jsx32(
4951
+ /* @__PURE__ */ jsx35(
4574
4952
  Pie,
4575
4953
  {
4576
4954
  data,
@@ -4582,7 +4960,7 @@ var PieChart = forwardRef23(
4582
4960
  label: showLabels,
4583
4961
  labelLine: false,
4584
4962
  onClick: handleClick,
4585
- children: data.map((entry, index) => /* @__PURE__ */ jsx32(
4963
+ children: data.map((entry, index) => /* @__PURE__ */ jsx35(
4586
4964
  Cell,
4587
4965
  {
4588
4966
  fill: entry.color || getSeriesColor(index)
@@ -4591,7 +4969,7 @@ var PieChart = forwardRef23(
4591
4969
  ))
4592
4970
  }
4593
4971
  ),
4594
- /* @__PURE__ */ jsx32(
4972
+ /* @__PURE__ */ jsx35(
4595
4973
  Tooltip4,
4596
4974
  {
4597
4975
  content: ({
@@ -4600,7 +4978,7 @@ var PieChart = forwardRef23(
4600
4978
  }) => {
4601
4979
  if (active && payload && payload.length && payload[0]) {
4602
4980
  const data2 = payload[0].payload;
4603
- return /* @__PURE__ */ jsx32(
4981
+ return /* @__PURE__ */ jsx35(
4604
4982
  GenericTooltip,
4605
4983
  {
4606
4984
  title: data2.name,
@@ -4618,10 +4996,10 @@ var PieChart = forwardRef23(
4618
4996
  }
4619
4997
  }
4620
4998
  ),
4621
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx32(ChartLegend, { items: defaultLegendItems, y: 400 })
4999
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx35(ChartLegend, { items: defaultLegendItems, y: 400 })
4622
5000
  ]
4623
5001
  }
4624
- ) }) : /* @__PURE__ */ jsx32("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx32(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
5002
+ ) }) : /* @__PURE__ */ jsx35("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx35(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4625
5003
  ]
4626
5004
  }
4627
5005
  );
@@ -4634,7 +5012,7 @@ import { useCallback as useCallback9 } from "react";
4634
5012
  import {
4635
5013
  flexRender
4636
5014
  } from "@tanstack/react-table";
4637
- import { Fragment as Fragment3, jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
5015
+ import { Fragment as Fragment3, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
4638
5016
  function Table({
4639
5017
  table,
4640
5018
  className,
@@ -4664,15 +5042,15 @@ function Table({
4664
5042
  },
4665
5043
  [table]
4666
5044
  );
4667
- return /* @__PURE__ */ jsxs21("div", { children: [
4668
- /* @__PURE__ */ jsx33("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ jsxs21("table", { className: "min-w-full divide-y divide-border", children: [
4669
- /* @__PURE__ */ jsx33("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx33("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx33("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ jsxs21(
5045
+ return /* @__PURE__ */ jsxs22("div", { children: [
5046
+ /* @__PURE__ */ jsx36("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ jsxs22("table", { className: "min-w-full divide-y divide-border", children: [
5047
+ /* @__PURE__ */ jsx36("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx36("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx36("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ jsxs22(
4670
5048
  "div",
4671
5049
  {
4672
5050
  className: `flex items-center space-x-1 ${header.column.getCanSort() ? "cursor-pointer select-none" : ""}`,
4673
5051
  onClick: header.column.getToggleSortingHandler(),
4674
5052
  children: [
4675
- /* @__PURE__ */ jsx33(
5053
+ /* @__PURE__ */ jsx36(
4676
5054
  Typography,
4677
5055
  {
4678
5056
  variant: "label-xs",
@@ -4683,19 +5061,19 @@ function Table({
4683
5061
  )
4684
5062
  }
4685
5063
  ),
4686
- header.column.getCanSort() && /* @__PURE__ */ jsxs21("span", { className: "ml-1", children: [
4687
- header.column.getIsSorted() === "asc" && /* @__PURE__ */ jsx33(CaretUpIcon, { className: "text-light" }),
4688
- header.column.getIsSorted() === "desc" && /* @__PURE__ */ jsx33(CaretDownIcon, { className: "text-light" })
5064
+ header.column.getCanSort() && /* @__PURE__ */ jsxs22("span", { className: "ml-1", children: [
5065
+ header.column.getIsSorted() === "asc" && /* @__PURE__ */ jsx36(CaretUpIcon, { className: "text-light" }),
5066
+ header.column.getIsSorted() === "desc" && /* @__PURE__ */ jsx36(CaretDownIcon, { className: "text-light" })
4689
5067
  ] })
4690
5068
  ]
4691
5069
  }
4692
5070
  ) }, header.id)) }, headerGroup.id)) }),
4693
- /* @__PURE__ */ jsx33("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx33("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx33("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsx33(Typography, { variant: "body-sm", children: flexRender(
5071
+ /* @__PURE__ */ jsx36("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx36("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx36("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsx36(Typography, { variant: "body-sm", children: flexRender(
4694
5072
  cell.column.columnDef.cell,
4695
5073
  cell.getContext()
4696
5074
  ) }) }, cell.id)) }, row.id)) })
4697
5075
  ] }) }),
4698
- showPagination && /* @__PURE__ */ jsxs21(
5076
+ showPagination && /* @__PURE__ */ jsxs22(
4699
5077
  "div",
4700
5078
  {
4701
5079
  className: cn(
@@ -4703,9 +5081,9 @@ function Table({
4703
5081
  paginationClassName
4704
5082
  ),
4705
5083
  children: [
4706
- /* @__PURE__ */ jsx33("div", { className: "flex items-center", children: /* @__PURE__ */ jsx33(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
4707
- /* @__PURE__ */ jsxs21("div", { className: "flex items-center space-x-1", children: [
4708
- /* @__PURE__ */ jsx33(
5084
+ /* @__PURE__ */ jsx36("div", { className: "flex items-center", children: /* @__PURE__ */ jsx36(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
5085
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center space-x-1", children: [
5086
+ /* @__PURE__ */ jsx36(
4709
5087
  Button,
4710
5088
  {
4711
5089
  variant: "ghost",
@@ -4713,7 +5091,7 @@ function Table({
4713
5091
  onClick: handlePreviousPage,
4714
5092
  disabled: !table.getCanPreviousPage(),
4715
5093
  className: "p-2",
4716
- children: /* @__PURE__ */ jsx33(ArrowLeftIcon, {})
5094
+ children: /* @__PURE__ */ jsx36(ArrowLeftIcon, {})
4717
5095
  }
4718
5096
  ),
4719
5097
  Array.from(
@@ -4730,7 +5108,7 @@ function Table({
4730
5108
  pageNumber = currentPage - 2 + i;
4731
5109
  }
4732
5110
  const isActive = pageNumber === currentPage;
4733
- return /* @__PURE__ */ jsx33(
5111
+ return /* @__PURE__ */ jsx36(
4734
5112
  Button,
4735
5113
  {
4736
5114
  variant: isActive ? "default" : "ghost",
@@ -4743,11 +5121,11 @@ function Table({
4743
5121
  );
4744
5122
  }
4745
5123
  ),
4746
- table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ jsxs21(Fragment3, { children: [
4747
- /* @__PURE__ */ jsx33("span", { className: "px-1 text-secondary", children: "..." }),
4748
- /* @__PURE__ */ jsx33(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
5124
+ table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ jsxs22(Fragment3, { children: [
5125
+ /* @__PURE__ */ jsx36("span", { className: "px-1 text-secondary", children: "..." }),
5126
+ /* @__PURE__ */ jsx36(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
4749
5127
  ] }),
4750
- /* @__PURE__ */ jsx33(
5128
+ /* @__PURE__ */ jsx36(
4751
5129
  Button,
4752
5130
  {
4753
5131
  variant: "ghost",
@@ -4755,12 +5133,12 @@ function Table({
4755
5133
  onClick: handleNextPage,
4756
5134
  disabled: !table.getCanNextPage(),
4757
5135
  className: "p-2",
4758
- children: /* @__PURE__ */ jsx33(ArrowRightIcon, {})
5136
+ children: /* @__PURE__ */ jsx36(ArrowRightIcon, {})
4759
5137
  }
4760
5138
  )
4761
5139
  ] }),
4762
- /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-3 w-48", children: [
4763
- /* @__PURE__ */ jsx33(
5140
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3 w-48", children: [
5141
+ /* @__PURE__ */ jsx36(
4764
5142
  Typography,
4765
5143
  {
4766
5144
  variant: "body-sm",
@@ -4768,14 +5146,14 @@ function Table({
4768
5146
  children: "Rows per page:"
4769
5147
  }
4770
5148
  ),
4771
- /* @__PURE__ */ jsxs21(
5149
+ /* @__PURE__ */ jsxs22(
4772
5150
  Select,
4773
5151
  {
4774
5152
  value: table.getState().pagination.pageSize.toString(),
4775
5153
  onValueChange: handlePageSizeChange,
4776
5154
  children: [
4777
- /* @__PURE__ */ jsx33(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ jsx33(SelectValue, {}) }),
4778
- /* @__PURE__ */ jsx33(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ jsx33(SelectItem, { value: size.toString(), children: size }, size)) })
5155
+ /* @__PURE__ */ jsx36(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ jsx36(SelectValue, {}) }),
5156
+ /* @__PURE__ */ jsx36(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ jsx36(SelectItem, { value: size.toString(), children: size }, size)) })
4779
5157
  ]
4780
5158
  }
4781
5159
  )
@@ -4827,6 +5205,15 @@ export {
4827
5205
  CogIcon,
4828
5206
  CredentialsIcon,
4829
5207
  DatePicker,
5208
+ Dialog,
5209
+ DialogBody,
5210
+ DialogClose,
5211
+ DialogContent,
5212
+ DialogDescription,
5213
+ DialogFooter,
5214
+ DialogOverlay,
5215
+ DialogTitle,
5216
+ DialogTrigger,
4830
5217
  DocumentIcon,
4831
5218
  DollarIcon,
4832
5219
  DownloadIcon,
@@ -4871,6 +5258,16 @@ export {
4871
5258
  HomeIcon,
4872
5259
  InformationIcon,
4873
5260
  Input,
5261
+ Item2 as Item,
5262
+ ItemActions,
5263
+ ItemContent,
5264
+ ItemDescription,
5265
+ ItemFooter,
5266
+ ItemGroup,
5267
+ ItemHeader,
5268
+ ItemMedia,
5269
+ ItemSeparator,
5270
+ ItemTitle,
4874
5271
  Label2 as Label,
4875
5272
  LineChart,
4876
5273
  LocationIcon,
@@ -4950,6 +5347,8 @@ export {
4950
5347
  getPerformanceColor,
4951
5348
  getSeriesColor,
4952
5349
  initializePdfWorker,
5350
+ itemMediaVariants,
5351
+ itemVariants,
4953
5352
  selectTriggerVariants,
4954
5353
  switchVariants,
4955
5354
  tabsVariants,