@hilum/ui 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5JX2YKJM.js → chunk-MAHPAP65.js} +65 -11
- package/dist/chunk-MAHPAP65.js.map +1 -0
- package/dist/icons.d.ts +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.js +222 -149
- package/dist/index.js.map +1 -1
- package/dist/tokens.css +10 -0
- package/dist/tokens.d.ts +9 -0
- package/dist/tokens.js +1 -1
- package/package.json +1 -1
- package/src/components/account-menu.tsx +3 -10
- package/src/components/action-panel.tsx +10 -7
- package/src/components/alert-dialog.tsx +10 -6
- package/src/components/alert.tsx +6 -2
- package/src/components/avatar-stack.tsx +6 -1
- package/src/components/avatar.tsx +4 -1
- package/src/components/breadcrumb.tsx +6 -1
- package/src/components/button-group.tsx +1 -1
- package/src/components/button.tsx +9 -7
- package/src/components/calendar.tsx +6 -5
- package/src/components/card-heading.tsx +4 -2
- package/src/components/card.tsx +2 -2
- package/src/components/carousel.tsx +2 -2
- package/src/components/checkbox.tsx +2 -1
- package/src/components/color-picker.tsx +4 -4
- package/src/components/combobox.tsx +17 -7
- package/src/components/command-palette.tsx +4 -2
- package/src/components/command.tsx +4 -2
- package/src/components/context-menu.tsx +4 -4
- package/src/components/data-table.tsx +7 -4
- package/src/components/description-list.tsx +4 -2
- package/src/components/dialog.tsx +7 -3
- package/src/components/dropdown-menu.tsx +4 -4
- package/src/components/empty-state.tsx +4 -2
- package/src/components/field.tsx +11 -3
- package/src/components/grid-list.tsx +3 -3
- package/src/components/input-group.tsx +3 -3
- package/src/components/input-number.tsx +4 -1
- package/src/components/input-otp.tsx +1 -1
- package/src/components/input.tsx +1 -1
- package/src/components/menubar.tsx +7 -11
- package/src/components/native-select.tsx +1 -1
- package/src/components/navigation-menu.tsx +3 -3
- package/src/components/notification.tsx +6 -4
- package/src/components/page-heading.tsx +4 -2
- package/src/components/pagination.tsx +2 -2
- package/src/components/progress.tsx +1 -1
- package/src/components/radio-card.tsx +7 -6
- package/src/components/radio-group.tsx +2 -1
- package/src/components/section-heading.tsx +4 -2
- package/src/components/select.tsx +2 -2
- package/src/components/sheet.tsx +8 -4
- package/src/components/sidebar.tsx +8 -8
- package/src/components/slider.tsx +1 -1
- package/src/components/stat-card.tsx +2 -2
- package/src/components/steps.tsx +13 -11
- package/src/components/switch.tsx +4 -4
- package/src/components/toggle.tsx +5 -5
- package/src/icons.ts +4 -0
- package/src/tokens/tokens.ts +65 -10
- package/dist/chunk-5JX2YKJM.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tokens } from './chunk-
|
|
1
|
+
import { tokens } from './chunk-MAHPAP65.js';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
4
|
import * as React17 from 'react';
|
|
@@ -49,7 +49,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, destructive, ...p
|
|
|
49
49
|
{
|
|
50
50
|
ref,
|
|
51
51
|
className: cn(
|
|
52
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
52
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
53
53
|
"body outline-none transition-colors",
|
|
54
54
|
destructive ? "text-destructive focus:bg-destructive/10 focus:text-destructive" : "text-muted-foreground focus:bg-muted focus:text-foreground",
|
|
55
55
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -65,7 +65,7 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...pro
|
|
|
65
65
|
{
|
|
66
66
|
ref,
|
|
67
67
|
className: cn(
|
|
68
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
68
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
69
69
|
"body text-muted-foreground outline-none transition-colors",
|
|
70
70
|
"focus:bg-muted focus:text-foreground",
|
|
71
71
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -84,7 +84,7 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
|
|
|
84
84
|
{
|
|
85
85
|
ref,
|
|
86
86
|
className: cn(
|
|
87
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
87
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
88
88
|
"body text-muted-foreground outline-none transition-colors",
|
|
89
89
|
"focus:bg-muted focus:text-foreground",
|
|
90
90
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -121,7 +121,7 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
|
|
|
121
121
|
{
|
|
122
122
|
ref,
|
|
123
123
|
className: cn(
|
|
124
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
124
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
125
125
|
"body text-muted-foreground outline-none transition-colors",
|
|
126
126
|
"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
|
|
127
127
|
inset && "pl-8",
|
|
@@ -181,7 +181,10 @@ var AvatarImage = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
181
181
|
Avatar$1.Image,
|
|
182
182
|
{
|
|
183
183
|
ref,
|
|
184
|
-
className: cn(
|
|
184
|
+
className: cn(
|
|
185
|
+
"aspect-square h-full w-full object-cover outline outline-1 -outline-offset-1 outline-black/10 dark:outline-white/10",
|
|
186
|
+
className
|
|
187
|
+
),
|
|
185
188
|
...props
|
|
186
189
|
}
|
|
187
190
|
));
|
|
@@ -334,7 +337,7 @@ var buttonVariants = cva(
|
|
|
334
337
|
[
|
|
335
338
|
"inline-flex shrink-0 items-center justify-center gap-2",
|
|
336
339
|
"body font-medium whitespace-nowrap",
|
|
337
|
-
"transition-
|
|
340
|
+
"transition-[background-color,border-color,box-shadow,color,opacity,scale] duration-150 outline-none active:scale-[0.96]",
|
|
338
341
|
"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1",
|
|
339
342
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
340
343
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
@@ -351,14 +354,14 @@ var buttonVariants = cva(
|
|
|
351
354
|
link: "text-foreground underline-offset-4 hover:underline"
|
|
352
355
|
},
|
|
353
356
|
size: {
|
|
354
|
-
default: "h-
|
|
357
|
+
default: "h-10 px-4 py-2 rounded-md",
|
|
355
358
|
xs: "h-6 gap-1 px-2 caption rounded-md",
|
|
356
359
|
sm: "h-8 gap-1.5 px-3 rounded-md",
|
|
357
|
-
lg: "h-
|
|
358
|
-
icon: "size-
|
|
360
|
+
lg: "h-11 px-6 rounded-md",
|
|
361
|
+
icon: "size-10 rounded-md",
|
|
359
362
|
"icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
360
363
|
"icon-sm": "size-8 rounded-md",
|
|
361
|
-
"icon-lg": "size-
|
|
364
|
+
"icon-lg": "size-11 rounded-md"
|
|
362
365
|
}
|
|
363
366
|
},
|
|
364
367
|
defaultVariants: {
|
|
@@ -398,7 +401,7 @@ function ActionPanel({
|
|
|
398
401
|
"a",
|
|
399
402
|
{
|
|
400
403
|
href: link.href,
|
|
401
|
-
className: "body font-medium text-muted-foreground hover:text-foreground
|
|
404
|
+
className: "inline-flex min-h-10 items-center gap-1 body font-medium text-muted-foreground transition-colors hover:text-foreground",
|
|
402
405
|
children: [
|
|
403
406
|
link.label,
|
|
404
407
|
" ",
|
|
@@ -410,7 +413,7 @@ function ActionPanel({
|
|
|
410
413
|
{
|
|
411
414
|
type: "button",
|
|
412
415
|
onClick: link.onClick,
|
|
413
|
-
className: "body font-medium text-muted-foreground hover:text-foreground
|
|
416
|
+
className: "inline-flex min-h-10 items-center gap-1 body font-medium text-muted-foreground transition-colors hover:text-foreground",
|
|
414
417
|
children: [
|
|
415
418
|
link.label,
|
|
416
419
|
" ",
|
|
@@ -434,8 +437,17 @@ function ActionPanel({
|
|
|
434
437
|
),
|
|
435
438
|
children: [
|
|
436
439
|
/* @__PURE__ */ jsxs("div", { className: cn("min-w-0", layout === "inline" ? "flex-1" : ""), children: [
|
|
437
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
|
|
438
|
-
description && /* @__PURE__ */ jsx(
|
|
440
|
+
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground text-balance", children: title }),
|
|
441
|
+
description && /* @__PURE__ */ jsx(
|
|
442
|
+
"p",
|
|
443
|
+
{
|
|
444
|
+
className: cn(
|
|
445
|
+
"body text-muted-foreground text-pretty",
|
|
446
|
+
layout === "stacked" ? "mt-1" : ""
|
|
447
|
+
),
|
|
448
|
+
children: description
|
|
449
|
+
}
|
|
450
|
+
),
|
|
439
451
|
children && layout === "stacked" && /* @__PURE__ */ jsx("div", { className: "mt-4", children })
|
|
440
452
|
] }),
|
|
441
453
|
layout === "stacked" ? (allActions.length > 0 || link) && /* @__PURE__ */ jsx("div", { className: "mt-4", children: renderActions() }) : /* @__PURE__ */ jsxs("div", { className: "shrink-0 flex items-center gap-3", children: [
|
|
@@ -534,20 +546,27 @@ var AlertDialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
534
546
|
AlertDialog.Title,
|
|
535
547
|
{
|
|
536
548
|
ref,
|
|
537
|
-
className: cn("body-lg font-semibold text-foreground", className),
|
|
549
|
+
className: cn("body-lg font-semibold text-balance text-foreground", className),
|
|
538
550
|
...props
|
|
539
551
|
}
|
|
540
552
|
));
|
|
541
553
|
AlertDialogTitle.displayName = "AlertDialogTitle";
|
|
542
|
-
var AlertDialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
554
|
+
var AlertDialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
555
|
+
AlertDialog.Description,
|
|
556
|
+
{
|
|
557
|
+
ref,
|
|
558
|
+
className: cn("body text-pretty text-muted-foreground", className),
|
|
559
|
+
...props
|
|
560
|
+
}
|
|
561
|
+
));
|
|
543
562
|
AlertDialogDescription.displayName = "AlertDialogDescription";
|
|
544
563
|
var AlertDialogAction = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
545
564
|
AlertDialog.Action,
|
|
546
565
|
{
|
|
547
566
|
ref,
|
|
548
567
|
className: cn(
|
|
549
|
-
"inline-flex h-
|
|
550
|
-
"body font-medium whitespace-nowrap transition-
|
|
568
|
+
"inline-flex h-10 items-center justify-center rounded-md px-4",
|
|
569
|
+
"body font-medium whitespace-nowrap transition-[background-color,box-shadow,color,opacity,scale] duration-150 active:scale-[0.96]",
|
|
551
570
|
"bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80",
|
|
552
571
|
"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none",
|
|
553
572
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
@@ -562,8 +581,8 @@ var AlertDialogCancel = React17.forwardRef(({ className, ...props }, ref) => /*
|
|
|
562
581
|
{
|
|
563
582
|
ref,
|
|
564
583
|
className: cn(
|
|
565
|
-
"inline-flex h-
|
|
566
|
-
"body font-medium whitespace-nowrap transition-
|
|
584
|
+
"inline-flex h-10 items-center justify-center rounded-md px-4",
|
|
585
|
+
"body font-medium whitespace-nowrap transition-[background-color,box-shadow,color,opacity,scale] duration-150 active:scale-[0.96]",
|
|
567
586
|
"bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl",
|
|
568
587
|
"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none",
|
|
569
588
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
@@ -593,11 +612,18 @@ var Alert = React17.forwardRef(
|
|
|
593
612
|
);
|
|
594
613
|
Alert.displayName = "Alert";
|
|
595
614
|
var AlertTitle = React17.forwardRef(
|
|
596
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
615
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
616
|
+
"p",
|
|
617
|
+
{
|
|
618
|
+
ref,
|
|
619
|
+
className: cn("mb-0.5 body font-semibold leading-tight text-balance", className),
|
|
620
|
+
...props
|
|
621
|
+
}
|
|
622
|
+
)
|
|
597
623
|
);
|
|
598
624
|
AlertTitle.displayName = "AlertTitle";
|
|
599
625
|
var AlertDescription = React17.forwardRef(
|
|
600
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("body opacity-90", className), ...props })
|
|
626
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("body text-pretty opacity-90", className), ...props })
|
|
601
627
|
);
|
|
602
628
|
AlertDescription.displayName = "AlertDescription";
|
|
603
629
|
var AspectRatioRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
@@ -627,7 +653,14 @@ function AvatarStack({ avatars, max, size = "md", className }) {
|
|
|
627
653
|
"relative inline-flex shrink-0 overflow-hidden rounded-full ring-background",
|
|
628
654
|
s.wrapper
|
|
629
655
|
),
|
|
630
|
-
children: avatar.src ? /* @__PURE__ */ jsx(
|
|
656
|
+
children: avatar.src ? /* @__PURE__ */ jsx(
|
|
657
|
+
"img",
|
|
658
|
+
{
|
|
659
|
+
src: avatar.src,
|
|
660
|
+
alt: avatar.name,
|
|
661
|
+
className: "size-full object-cover outline outline-1 -outline-offset-1 outline-black/10 dark:outline-white/10"
|
|
662
|
+
}
|
|
663
|
+
) : /* @__PURE__ */ jsx(
|
|
631
664
|
"span",
|
|
632
665
|
{
|
|
633
666
|
className: cn(
|
|
@@ -647,7 +680,8 @@ function AvatarStack({ avatars, max, size = "md", className }) {
|
|
|
647
680
|
className: cn(
|
|
648
681
|
"relative inline-flex shrink-0 items-center justify-center rounded-full ring-background bg-muted font-medium text-muted-foreground",
|
|
649
682
|
s.wrapper,
|
|
650
|
-
s.text
|
|
683
|
+
s.text,
|
|
684
|
+
"tabular-nums"
|
|
651
685
|
),
|
|
652
686
|
children: [
|
|
653
687
|
"+",
|
|
@@ -713,7 +747,16 @@ var BreadcrumbPage = React17.forwardRef(
|
|
|
713
747
|
)
|
|
714
748
|
);
|
|
715
749
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
716
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
|
|
750
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
|
|
751
|
+
"li",
|
|
752
|
+
{
|
|
753
|
+
role: "presentation",
|
|
754
|
+
"aria-hidden": "true",
|
|
755
|
+
className: cn("text-muted-foreground", className),
|
|
756
|
+
...props,
|
|
757
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
758
|
+
}
|
|
759
|
+
);
|
|
717
760
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
718
761
|
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
719
762
|
"span",
|
|
@@ -744,7 +787,7 @@ function ButtonGroupItem({ active, className, children, ...props }) {
|
|
|
744
787
|
{
|
|
745
788
|
type: "button",
|
|
746
789
|
className: cn(
|
|
747
|
-
"relative inline-flex items-center gap-1.5 px-3.5 py-2 body font-medium transition-colors",
|
|
790
|
+
"relative inline-flex min-h-10 items-center gap-1.5 px-3.5 py-2 body font-medium transition-colors",
|
|
748
791
|
"focus:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:ring-inset",
|
|
749
792
|
active ? "bg-foreground text-background" : "text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
750
793
|
className
|
|
@@ -769,20 +812,20 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
769
812
|
caption_label: "body font-semibold text-foreground",
|
|
770
813
|
nav: "flex items-center justify-between absolute inset-x-0 top-1",
|
|
771
814
|
button_previous: cn(
|
|
772
|
-
"absolute left-0
|
|
815
|
+
"absolute left-0 flex size-10 items-center justify-center rounded-md",
|
|
773
816
|
"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors"
|
|
774
817
|
),
|
|
775
818
|
button_next: cn(
|
|
776
|
-
"absolute right-0
|
|
819
|
+
"absolute right-0 flex size-10 items-center justify-center rounded-md",
|
|
777
820
|
"text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors"
|
|
778
821
|
),
|
|
779
822
|
month_grid: "w-full border-collapse mt-1",
|
|
780
823
|
weekdays: "flex",
|
|
781
|
-
weekday: "
|
|
824
|
+
weekday: "flex size-10 items-center justify-center label text-muted-foreground font-normal",
|
|
782
825
|
week: "flex w-full mt-1",
|
|
783
826
|
day: "relative p-0 text-center",
|
|
784
827
|
day_button: cn(
|
|
785
|
-
"
|
|
828
|
+
"flex size-10 items-center justify-center rounded-full body font-normal",
|
|
786
829
|
"text-foreground hover:bg-muted transition-colors",
|
|
787
830
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30"
|
|
788
831
|
),
|
|
@@ -816,8 +859,8 @@ function CardHeading({ title, description, actions, children, className }) {
|
|
|
816
859
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
817
860
|
children,
|
|
818
861
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
819
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground
|
|
820
|
-
description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground
|
|
862
|
+
/* @__PURE__ */ jsx("p", { className: "body truncate font-semibold text-balance text-foreground", children: title }),
|
|
863
|
+
description && /* @__PURE__ */ jsx("p", { className: "caption mt-0.5 text-pretty text-muted-foreground", children: description })
|
|
821
864
|
] })
|
|
822
865
|
] }),
|
|
823
866
|
actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions.map(
|
|
@@ -878,7 +921,7 @@ var CardTitle = React17.forwardRef(
|
|
|
878
921
|
{
|
|
879
922
|
ref,
|
|
880
923
|
"data-slot": "card-title",
|
|
881
|
-
className: cn("subheading text-foreground", className),
|
|
924
|
+
className: cn("subheading text-balance text-foreground", className),
|
|
882
925
|
...props
|
|
883
926
|
}
|
|
884
927
|
)
|
|
@@ -890,7 +933,7 @@ var CardDescription = React17.forwardRef(
|
|
|
890
933
|
{
|
|
891
934
|
ref,
|
|
892
935
|
"data-slot": "card-description",
|
|
893
|
-
className: cn("caption text-muted-foreground", className),
|
|
936
|
+
className: cn("caption text-pretty text-muted-foreground", className),
|
|
894
937
|
...props
|
|
895
938
|
}
|
|
896
939
|
)
|
|
@@ -1051,7 +1094,7 @@ function CarouselPrevious({
|
|
|
1051
1094
|
variant,
|
|
1052
1095
|
size,
|
|
1053
1096
|
className: cn(
|
|
1054
|
-
"absolute
|
|
1097
|
+
"absolute size-10 rounded-full",
|
|
1055
1098
|
orientation === "vertical" ? "-top-12 left-1/2 -translate-x-1/2 rotate-90" : "-left-12 top-1/2 -translate-y-1/2",
|
|
1056
1099
|
className
|
|
1057
1100
|
),
|
|
@@ -1078,7 +1121,7 @@ function CarouselNext({
|
|
|
1078
1121
|
variant,
|
|
1079
1122
|
size,
|
|
1080
1123
|
className: cn(
|
|
1081
|
-
"absolute
|
|
1124
|
+
"absolute size-10 rounded-full",
|
|
1082
1125
|
orientation === "vertical" ? "-bottom-12 left-1/2 -translate-x-1/2 rotate-90" : "-right-12 top-1/2 -translate-y-1/2",
|
|
1083
1126
|
className
|
|
1084
1127
|
),
|
|
@@ -1130,7 +1173,8 @@ var CheckboxRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1130
1173
|
{
|
|
1131
1174
|
ref,
|
|
1132
1175
|
className: cn(
|
|
1133
|
-
"peer size-4 shrink-0 rounded border border-border bg-card transition-colors",
|
|
1176
|
+
"peer relative size-4 shrink-0 rounded border border-border bg-card transition-colors",
|
|
1177
|
+
"after:absolute after:left-1/2 after:top-1/2 after:size-10 after:-translate-x-1/2 after:-translate-y-1/2",
|
|
1134
1178
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
1135
1179
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1136
1180
|
"data-[state=checked]:bg-brand-primary data-[state=checked]:border-brand-primary",
|
|
@@ -1171,7 +1215,7 @@ function ColorPicker({
|
|
|
1171
1215
|
disabled,
|
|
1172
1216
|
"aria-label": ariaLabel,
|
|
1173
1217
|
className: cn(
|
|
1174
|
-
"inline-flex
|
|
1218
|
+
"inline-flex size-10 items-center justify-center rounded-md border border-border bg-card",
|
|
1175
1219
|
"transition-colors hover:border-border",
|
|
1176
1220
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary",
|
|
1177
1221
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -1218,17 +1262,17 @@ function ColorPicker({
|
|
|
1218
1262
|
onKeyDown: (e) => {
|
|
1219
1263
|
if (e.key === "Enter") commit(e.target.value);
|
|
1220
1264
|
},
|
|
1221
|
-
className: "flex-1
|
|
1265
|
+
className: "h-10 flex-1 rounded-md border border-border bg-card px-2 caption text-foreground focus:outline-none focus:border-brand-primary"
|
|
1222
1266
|
}
|
|
1223
1267
|
)
|
|
1224
1268
|
] }),
|
|
1225
|
-
presets && presets.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 grid grid-cols-
|
|
1269
|
+
presets && presets.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 grid grid-cols-4 gap-2", children: presets.map((p) => /* @__PURE__ */ jsx(
|
|
1226
1270
|
"button",
|
|
1227
1271
|
{
|
|
1228
1272
|
type: "button",
|
|
1229
1273
|
onClick: () => onChange(p),
|
|
1230
1274
|
"aria-label": p,
|
|
1231
|
-
className: "
|
|
1275
|
+
className: "size-10 rounded-md border border-black/10 transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
1232
1276
|
style: { backgroundColor: p }
|
|
1233
1277
|
},
|
|
1234
1278
|
p
|
|
@@ -1400,7 +1444,7 @@ function Combobox({
|
|
|
1400
1444
|
"aria-activedescendant": open && activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : void 0,
|
|
1401
1445
|
"aria-autocomplete": "list",
|
|
1402
1446
|
className: cn(
|
|
1403
|
-
"flex h-
|
|
1447
|
+
"flex h-10 w-full rounded-lg border border-border bg-card pr-10 body text-foreground",
|
|
1404
1448
|
"placeholder:text-muted-foreground",
|
|
1405
1449
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:border-border",
|
|
1406
1450
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -1425,7 +1469,7 @@ function Combobox({
|
|
|
1425
1469
|
type: "button",
|
|
1426
1470
|
tabIndex: -1,
|
|
1427
1471
|
"aria-label": open ? "Close" : "Open",
|
|
1428
|
-
className: "absolute inset-y-0 right-0 flex items-center
|
|
1472
|
+
className: "absolute inset-y-0 right-0 flex w-10 items-center justify-center text-muted-foreground hover:text-muted-foreground transition-colors",
|
|
1429
1473
|
onClick: () => {
|
|
1430
1474
|
if (open) {
|
|
1431
1475
|
closeDropdown();
|
|
@@ -1448,7 +1492,7 @@ function Combobox({
|
|
|
1448
1492
|
role: "option",
|
|
1449
1493
|
"aria-selected": isSelected,
|
|
1450
1494
|
className: cn(
|
|
1451
|
-
"flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 body transition-colors",
|
|
1495
|
+
"flex min-h-10 cursor-pointer select-none items-center gap-2.5 px-3 py-2 body transition-colors",
|
|
1452
1496
|
isSelected ? "bg-brand-primary text-background" : isActive ? "bg-muted text-foreground" : "text-foreground hover:bg-muted"
|
|
1453
1497
|
),
|
|
1454
1498
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -1528,7 +1572,7 @@ var DialogContent = React17.forwardRef(({ className, children, ...props }, ref)
|
|
|
1528
1572
|
...props,
|
|
1529
1573
|
children: [
|
|
1530
1574
|
children,
|
|
1531
|
-
/* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-
|
|
1575
|
+
/* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-3 top-3 flex size-10 items-center justify-center rounded-md text-muted-foreground opacity-70 transition-[opacity,scale] hover:opacity-100 active:scale-[0.96] focus:outline-none focus:ring-2 focus:ring-ground-900/20", children: [
|
|
1532
1576
|
/* @__PURE__ */ jsx(X, { size: 16 }),
|
|
1533
1577
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1534
1578
|
] })
|
|
@@ -1549,12 +1593,19 @@ var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1549
1593
|
Dialog.Title,
|
|
1550
1594
|
{
|
|
1551
1595
|
ref,
|
|
1552
|
-
className: cn("body-lg font-semibold text-foreground", className),
|
|
1596
|
+
className: cn("body-lg font-semibold text-balance text-foreground", className),
|
|
1553
1597
|
...props
|
|
1554
1598
|
}
|
|
1555
1599
|
));
|
|
1556
1600
|
DialogTitle.displayName = "DialogTitle";
|
|
1557
|
-
var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1601
|
+
var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1602
|
+
Dialog.Description,
|
|
1603
|
+
{
|
|
1604
|
+
ref,
|
|
1605
|
+
className: cn("body text-pretty text-muted-foreground", className),
|
|
1606
|
+
...props
|
|
1607
|
+
}
|
|
1608
|
+
));
|
|
1558
1609
|
DialogDescription.displayName = "DialogDescription";
|
|
1559
1610
|
function CommandPalette({
|
|
1560
1611
|
open,
|
|
@@ -1615,7 +1666,7 @@ function CommandPalette({
|
|
|
1615
1666
|
"button",
|
|
1616
1667
|
{
|
|
1617
1668
|
type: "button",
|
|
1618
|
-
className: "flex w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none",
|
|
1669
|
+
className: "flex min-h-10 w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none",
|
|
1619
1670
|
onClick: () => handleSelect(item),
|
|
1620
1671
|
children: [
|
|
1621
1672
|
item.icon && /* @__PURE__ */ jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground", children: item.icon }),
|
|
@@ -1654,17 +1705,23 @@ function Command({ className, children, onSelect, ...props }) {
|
|
|
1654
1705
|
setVisibleCount(visibleIds.current.size);
|
|
1655
1706
|
}
|
|
1656
1707
|
}, []);
|
|
1657
|
-
return /* @__PURE__ */ jsx(
|
|
1658
|
-
|
|
1708
|
+
return /* @__PURE__ */ jsx(
|
|
1709
|
+
CommandCtx.Provider,
|
|
1659
1710
|
{
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1711
|
+
value: { query, setQuery, ...onSelect !== void 0 && { onSelect }, reportVisible },
|
|
1712
|
+
children: /* @__PURE__ */ jsx(CommandVisibleCtx.Provider, { value: visibleCount, children: /* @__PURE__ */ jsx(
|
|
1713
|
+
"div",
|
|
1714
|
+
{
|
|
1715
|
+
className: cn(
|
|
1716
|
+
"flex flex-col overflow-hidden rounded-xl border border-border bg-card",
|
|
1717
|
+
className
|
|
1718
|
+
),
|
|
1719
|
+
...props,
|
|
1720
|
+
children
|
|
1721
|
+
}
|
|
1722
|
+
) })
|
|
1666
1723
|
}
|
|
1667
|
-
)
|
|
1724
|
+
);
|
|
1668
1725
|
}
|
|
1669
1726
|
var CommandInput = React17.forwardRef(({ className, ...props }, ref) => {
|
|
1670
1727
|
const { query, setQuery } = React17.useContext(CommandCtx);
|
|
@@ -1778,7 +1835,7 @@ var CommandItem = React17.forwardRef(
|
|
|
1778
1835
|
"data-cmd-item": true,
|
|
1779
1836
|
tabIndex: disabled ? void 0 : 0,
|
|
1780
1837
|
className: cn(
|
|
1781
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
1838
|
+
"relative mx-1 flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
1782
1839
|
"body text-muted-foreground outline-none transition-colors",
|
|
1783
1840
|
"hover:bg-muted hover:text-foreground",
|
|
1784
1841
|
"focus:bg-muted focus:text-foreground",
|
|
@@ -1842,7 +1899,7 @@ var ContextMenuItem = React17.forwardRef(({ className, inset, destructive, ...pr
|
|
|
1842
1899
|
{
|
|
1843
1900
|
ref,
|
|
1844
1901
|
className: cn(
|
|
1845
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
1902
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
1846
1903
|
"body outline-none transition-colors",
|
|
1847
1904
|
destructive ? "text-destructive focus:bg-destructive/10 focus:text-destructive" : "text-muted-foreground focus:bg-muted focus:text-foreground",
|
|
1848
1905
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -1858,7 +1915,7 @@ var ContextMenuCheckboxItem = React17.forwardRef(({ className, children, ...prop
|
|
|
1858
1915
|
{
|
|
1859
1916
|
ref,
|
|
1860
1917
|
className: cn(
|
|
1861
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
1918
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
1862
1919
|
"body text-muted-foreground outline-none transition-colors",
|
|
1863
1920
|
"focus:bg-muted focus:text-foreground",
|
|
1864
1921
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -1877,7 +1934,7 @@ var ContextMenuRadioItem = React17.forwardRef(({ className, children, ...props }
|
|
|
1877
1934
|
{
|
|
1878
1935
|
ref,
|
|
1879
1936
|
className: cn(
|
|
1880
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
1937
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
1881
1938
|
"body text-muted-foreground outline-none transition-colors",
|
|
1882
1939
|
"focus:bg-muted focus:text-foreground",
|
|
1883
1940
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -1914,7 +1971,7 @@ var ContextMenuSubTrigger = React17.forwardRef(({ className, inset, children, ..
|
|
|
1914
1971
|
{
|
|
1915
1972
|
ref,
|
|
1916
1973
|
className: cn(
|
|
1917
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
1974
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
1918
1975
|
"body text-muted-foreground outline-none transition-colors",
|
|
1919
1976
|
"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
|
|
1920
1977
|
inset && "pl-8",
|
|
@@ -2021,7 +2078,7 @@ function Input({ className, type, ...props }) {
|
|
|
2021
2078
|
type,
|
|
2022
2079
|
"data-slot": "input",
|
|
2023
2080
|
className: cn(
|
|
2024
|
-
"flex h-
|
|
2081
|
+
"flex h-10 w-full rounded-md border border-border bg-card px-3 py-1",
|
|
2025
2082
|
"body text-foreground placeholder:text-muted-foreground",
|
|
2026
2083
|
"transition-colors duration-150",
|
|
2027
2084
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary",
|
|
@@ -2075,7 +2132,7 @@ function DataTable({
|
|
|
2075
2132
|
"button",
|
|
2076
2133
|
{
|
|
2077
2134
|
className: cn(
|
|
2078
|
-
"flex items-center gap-1 transition-colors hover:text-muted-foreground",
|
|
2135
|
+
"flex min-h-10 items-center gap-1 transition-colors hover:text-muted-foreground",
|
|
2079
2136
|
header.column.getIsSorted() && "text-foreground"
|
|
2080
2137
|
),
|
|
2081
2138
|
onClick: header.column.getToggleSortingHandler(),
|
|
@@ -2088,16 +2145,23 @@ function DataTable({
|
|
|
2088
2145
|
},
|
|
2089
2146
|
header.id
|
|
2090
2147
|
)) }, headerGroup.id)) }),
|
|
2091
|
-
/* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
|
|
2148
|
+
/* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
|
|
2149
|
+
TableCell,
|
|
2150
|
+
{
|
|
2151
|
+
colSpan: columns.length,
|
|
2152
|
+
className: "h-24 text-center text-muted-foreground",
|
|
2153
|
+
children: "No results."
|
|
2154
|
+
}
|
|
2155
|
+
) }) })
|
|
2092
2156
|
] }),
|
|
2093
2157
|
showPagination && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2094
|
-
/* @__PURE__ */ jsxs("p", { className: "caption text-muted-foreground", children: [
|
|
2158
|
+
/* @__PURE__ */ jsxs("p", { className: "caption tabular-nums text-muted-foreground", children: [
|
|
2095
2159
|
table.getFilteredRowModel().rows.length,
|
|
2096
2160
|
" result",
|
|
2097
2161
|
table.getFilteredRowModel().rows.length !== 1 ? "s" : ""
|
|
2098
2162
|
] }),
|
|
2099
2163
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2100
|
-
/* @__PURE__ */ jsxs("span", { className: "caption text-muted-foreground", children: [
|
|
2164
|
+
/* @__PURE__ */ jsxs("span", { className: "caption tabular-nums text-muted-foreground", children: [
|
|
2101
2165
|
"Page ",
|
|
2102
2166
|
table.getState().pagination.pageIndex + 1,
|
|
2103
2167
|
" of ",
|
|
@@ -2200,8 +2264,8 @@ function DescriptionList({
|
|
|
2200
2264
|
}) {
|
|
2201
2265
|
return /* @__PURE__ */ jsxs("div", { className, children: [
|
|
2202
2266
|
(title || description) && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
2203
|
-
title && /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
|
|
2204
|
-
description && /* @__PURE__ */ jsx("p", { className: "mt-1 caption text-muted-foreground", children: description })
|
|
2267
|
+
title && /* @__PURE__ */ jsx("p", { className: "body font-semibold text-balance text-foreground", children: title }),
|
|
2268
|
+
description && /* @__PURE__ */ jsx("p", { className: "mt-1 caption text-pretty text-muted-foreground", children: description })
|
|
2205
2269
|
] }),
|
|
2206
2270
|
/* @__PURE__ */ jsx("dl", { className: cn("border-t border-border", columns === 2 && "sm:grid sm:grid-cols-2"), children: items.map((item, i) => /* @__PURE__ */ jsxs(
|
|
2207
2271
|
"div",
|
|
@@ -2283,8 +2347,8 @@ function EmptyState({ icon, title, description, action, className }) {
|
|
|
2283
2347
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-4 px-6 py-14 text-center", className), children: [
|
|
2284
2348
|
icon && /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-xl bg-brand-secondary/20 text-muted-foreground", children: icon }),
|
|
2285
2349
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
2286
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
|
|
2287
|
-
description && /* @__PURE__ */ jsx("p", { className: "body max-w-xs text-muted-foreground", children: description })
|
|
2350
|
+
/* @__PURE__ */ jsx("p", { className: "body text-balance font-semibold text-foreground", children: title }),
|
|
2351
|
+
description && /* @__PURE__ */ jsx("p", { className: "body max-w-xs text-pretty text-muted-foreground", children: description })
|
|
2288
2352
|
] }),
|
|
2289
2353
|
action && (action.href ? /* @__PURE__ */ jsx(Button, { size: "sm", asChild: true, children: /* @__PURE__ */ jsx("a", { href: action.href, children: action.label }) }) : /* @__PURE__ */ jsx(Button, { size: "sm", onClick: action.onClick, children: action.label }))
|
|
2290
2354
|
] });
|
|
@@ -2360,8 +2424,8 @@ function GridListCard({
|
|
|
2360
2424
|
),
|
|
2361
2425
|
children: [
|
|
2362
2426
|
accent && /* @__PURE__ */ jsx("div", { className: "mb-2", children: accent }),
|
|
2363
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
|
|
2364
|
-
description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground", children: description }),
|
|
2427
|
+
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground text-balance", children: title }),
|
|
2428
|
+
description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground text-pretty", children: description }),
|
|
2365
2429
|
(meta || trailing) && /* @__PURE__ */ jsxs("div", { className: "mt-auto flex items-center justify-between pt-3", children: [
|
|
2366
2430
|
meta && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: meta }),
|
|
2367
2431
|
trailing && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: trailing })
|
|
@@ -2408,7 +2472,7 @@ function GridListAccentCard({
|
|
|
2408
2472
|
),
|
|
2409
2473
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between truncate border-l border-border px-4 py-3", children: [
|
|
2410
2474
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
2411
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground truncate", children: title }),
|
|
2475
|
+
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground truncate text-balance", children: title }),
|
|
2412
2476
|
meta && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground", children: meta })
|
|
2413
2477
|
] }),
|
|
2414
2478
|
trailing && /* @__PURE__ */ jsx("div", { className: "shrink-0 pl-2", children: trailing })
|
|
@@ -2469,7 +2533,7 @@ var InputGroup = React17.forwardRef(
|
|
|
2469
2533
|
const hasInsetTrailing = trailingIcon || trailingAction || error;
|
|
2470
2534
|
const hasTrailing = trailingAddon || hasInsetTrailing || trailingButton;
|
|
2471
2535
|
const baseInput = cn(
|
|
2472
|
-
"flex h-
|
|
2536
|
+
"flex h-10 w-full border bg-card body text-foreground placeholder:text-muted-foreground",
|
|
2473
2537
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:disabled:cursor-not-allowed disabled:opacity-50",
|
|
2474
2538
|
error ? "border-destructive focus-visible:ring-destructive/20 focus-visible:border-destructive" : "border-border focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary"
|
|
2475
2539
|
);
|
|
@@ -2498,7 +2562,7 @@ var InputGroup = React17.forwardRef(
|
|
|
2498
2562
|
baseInput,
|
|
2499
2563
|
// Border radius
|
|
2500
2564
|
leadingAddon ? trailingAddon || trailingButton ? "rounded-none px-3" : pill ? "rounded-none rounded-r-full px-3" : "rounded-none rounded-r-lg px-3" : leadingIcon ? trailingAddon ? pill ? "rounded-l-full rounded-r-none pl-9 pr-3" : "rounded-l-lg rounded-r-none pl-9 pr-3" : hasInsetTrailing ? cn(radius, "pl-9 pr-9") : cn(radius, "pl-9 pr-3") : trailingAddon ? pill ? "rounded-l-full rounded-r-none px-3" : "rounded-l-lg rounded-r-none px-3" : hasInsetTrailing ? cn(radius, "pl-3 pr-9") : cn(radius, "px-3"),
|
|
2501
|
-
trailingAction && "pr-
|
|
2565
|
+
trailingAction && "pr-16",
|
|
2502
2566
|
className
|
|
2503
2567
|
),
|
|
2504
2568
|
...props
|
|
@@ -2509,7 +2573,7 @@ var InputGroup = React17.forwardRef(
|
|
|
2509
2573
|
"div",
|
|
2510
2574
|
{
|
|
2511
2575
|
className: cn(
|
|
2512
|
-
"absolute
|
|
2576
|
+
"absolute right-2 top-1/2 flex -translate-y-1/2 items-center",
|
|
2513
2577
|
trailingActionClassName
|
|
2514
2578
|
),
|
|
2515
2579
|
children: trailingAction
|
|
@@ -2603,7 +2667,14 @@ var InputNumber = React17.forwardRef(
|
|
|
2603
2667
|
...rest
|
|
2604
2668
|
}
|
|
2605
2669
|
),
|
|
2606
|
-
unit && /* @__PURE__ */ jsx(
|
|
2670
|
+
unit && /* @__PURE__ */ jsx(
|
|
2671
|
+
"span",
|
|
2672
|
+
{
|
|
2673
|
+
"aria-hidden": true,
|
|
2674
|
+
className: "caption-xs text-muted-foreground self-center pr-1.5 select-none",
|
|
2675
|
+
children: unit
|
|
2676
|
+
}
|
|
2677
|
+
),
|
|
2607
2678
|
!hideSteppers && /* @__PURE__ */ jsxs("div", { className: "flex flex-col border-l border-border", children: [
|
|
2608
2679
|
/* @__PURE__ */ jsx(
|
|
2609
2680
|
"button",
|
|
@@ -2660,7 +2731,7 @@ var InputOTPSlot = React17.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
2660
2731
|
"relative flex h-12 w-11 items-center justify-center",
|
|
2661
2732
|
"border-y border-r border-border body font-medium text-foreground",
|
|
2662
2733
|
"first:rounded-l-xl first:border-l last:rounded-r-xl",
|
|
2663
|
-
"transition-
|
|
2734
|
+
"transition-[border-color,box-shadow]",
|
|
2664
2735
|
isActive && "z-10 ring-2 ring-brand-primary/40 border-brand-primary",
|
|
2665
2736
|
className
|
|
2666
2737
|
),
|
|
@@ -2732,7 +2803,7 @@ var MenubarRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2732
2803
|
{
|
|
2733
2804
|
ref,
|
|
2734
2805
|
className: cn(
|
|
2735
|
-
"flex h-
|
|
2806
|
+
"flex min-h-10 items-center gap-0.5 rounded-lg border border-border bg-card px-1",
|
|
2736
2807
|
className
|
|
2737
2808
|
),
|
|
2738
2809
|
...props
|
|
@@ -2748,7 +2819,7 @@ var MenubarTrigger = React17.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2748
2819
|
{
|
|
2749
2820
|
ref,
|
|
2750
2821
|
className: cn(
|
|
2751
|
-
"flex cursor-default items-center rounded-md px-3 py-1 body font-medium text-muted-foreground select-none outline-none",
|
|
2822
|
+
"flex min-h-8 cursor-default items-center rounded-md px-3 py-1 body font-medium text-muted-foreground select-none outline-none",
|
|
2752
2823
|
"hover:bg-muted",
|
|
2753
2824
|
"data-[state=open]:bg-muted data-[state=open]:text-foreground",
|
|
2754
2825
|
"focus:bg-muted",
|
|
@@ -2783,7 +2854,7 @@ var MenubarItem = React17.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
2783
2854
|
{
|
|
2784
2855
|
ref,
|
|
2785
2856
|
className: cn(
|
|
2786
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
2857
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
2787
2858
|
"body text-muted-foreground outline-none transition-colors",
|
|
2788
2859
|
"focus:bg-muted focus:text-foreground",
|
|
2789
2860
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -2799,7 +2870,7 @@ var MenubarCheckboxItem = React17.forwardRef(({ className, children, ...props },
|
|
|
2799
2870
|
{
|
|
2800
2871
|
ref,
|
|
2801
2872
|
className: cn(
|
|
2802
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
2873
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
2803
2874
|
"body text-muted-foreground outline-none transition-colors",
|
|
2804
2875
|
"focus:bg-muted focus:text-foreground",
|
|
2805
2876
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -2818,7 +2889,7 @@ var MenubarRadioItem = React17.forwardRef(({ className, children, ...props }, re
|
|
|
2818
2889
|
{
|
|
2819
2890
|
ref,
|
|
2820
2891
|
className: cn(
|
|
2821
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5
|
|
2892
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md py-2 pl-8 pr-2.5",
|
|
2822
2893
|
"body text-muted-foreground outline-none transition-colors",
|
|
2823
2894
|
"focus:bg-muted focus:text-foreground",
|
|
2824
2895
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -2841,21 +2912,14 @@ var MenubarLabel = React17.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
2841
2912
|
}
|
|
2842
2913
|
));
|
|
2843
2914
|
MenubarLabel.displayName = "MenubarLabel";
|
|
2844
|
-
var MenubarSeparator = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2845
|
-
Menubar.Separator,
|
|
2846
|
-
{
|
|
2847
|
-
ref,
|
|
2848
|
-
className: cn("mx-1 my-1 h-px bg-muted", className),
|
|
2849
|
-
...props
|
|
2850
|
-
}
|
|
2851
|
-
));
|
|
2915
|
+
var MenubarSeparator = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menubar.Separator, { ref, className: cn("mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
2852
2916
|
MenubarSeparator.displayName = "MenubarSeparator";
|
|
2853
2917
|
var MenubarSubTrigger = React17.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2854
2918
|
Menubar.SubTrigger,
|
|
2855
2919
|
{
|
|
2856
2920
|
ref,
|
|
2857
2921
|
className: cn(
|
|
2858
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-
|
|
2922
|
+
"relative flex min-h-10 cursor-default select-none items-center gap-2 rounded-md px-2.5 py-2",
|
|
2859
2923
|
"body text-muted-foreground outline-none transition-colors",
|
|
2860
2924
|
"focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
|
|
2861
2925
|
inset && "pl-8",
|
|
@@ -2895,7 +2959,7 @@ var NativeSelect = React17.forwardRef(({ className, children, ...props }, ref) =
|
|
|
2895
2959
|
{
|
|
2896
2960
|
ref,
|
|
2897
2961
|
className: cn(
|
|
2898
|
-
"peer h-
|
|
2962
|
+
"peer h-10 w-full appearance-none rounded-lg border border-border bg-card pl-3 pr-8",
|
|
2899
2963
|
"body text-foreground",
|
|
2900
2964
|
"focus:outline-none focus:ring-2 focus:ring-ring/30 focus:border-border",
|
|
2901
2965
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -2944,7 +3008,7 @@ var NavigationMenuTrigger = React17.forwardRef(({ className, children, ...props
|
|
|
2944
3008
|
{
|
|
2945
3009
|
ref,
|
|
2946
3010
|
className: cn(
|
|
2947
|
-
"group inline-flex h-
|
|
3011
|
+
"group inline-flex h-10 w-max items-center justify-center gap-1 rounded-md px-3 py-2",
|
|
2948
3012
|
"body font-medium text-muted-foreground",
|
|
2949
3013
|
"hover:bg-muted hover:text-foreground",
|
|
2950
3014
|
"data-[active]:bg-muted data-[state=open]:bg-muted",
|
|
@@ -2988,7 +3052,7 @@ var NavigationMenuLink = React17.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2988
3052
|
{
|
|
2989
3053
|
ref,
|
|
2990
3054
|
className: cn(
|
|
2991
|
-
"block select-none rounded-md px-3 py-2 body text-muted-foreground",
|
|
3055
|
+
"block min-h-10 select-none rounded-md px-3 py-2 body text-muted-foreground",
|
|
2992
3056
|
"hover:bg-muted hover:text-foreground",
|
|
2993
3057
|
"outline-none transition-colors",
|
|
2994
3058
|
className
|
|
@@ -3029,7 +3093,7 @@ var NavigationMenuIndicator = React17.forwardRef(({ className, ...props }, ref)
|
|
|
3029
3093
|
NavigationMenuIndicator.displayName = "NavigationMenuIndicator";
|
|
3030
3094
|
function navigationMenuTriggerStyle() {
|
|
3031
3095
|
return cn(
|
|
3032
|
-
"group inline-flex h-
|
|
3096
|
+
"group inline-flex h-10 w-max items-center justify-center gap-1 rounded-md px-3 py-2",
|
|
3033
3097
|
"body font-medium text-muted-foreground",
|
|
3034
3098
|
"hover:bg-muted hover:text-foreground",
|
|
3035
3099
|
"data-[active]:bg-muted data-[state=open]:bg-muted",
|
|
@@ -3071,15 +3135,15 @@ function Notification({
|
|
|
3071
3135
|
children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
3072
3136
|
resolvedIcon && /* @__PURE__ */ jsx("div", { className: cn("shrink-0 mt-0.5", config.iconClass), children: resolvedIcon }),
|
|
3073
3137
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3074
|
-
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
|
|
3075
|
-
description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 body text-muted-foreground", children: description }),
|
|
3138
|
+
/* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground text-balance", children: title }),
|
|
3139
|
+
description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 body text-muted-foreground text-pretty", children: description }),
|
|
3076
3140
|
actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex gap-3", children: actions.map((action, i) => /* @__PURE__ */ jsx(
|
|
3077
3141
|
"button",
|
|
3078
3142
|
{
|
|
3079
3143
|
type: "button",
|
|
3080
3144
|
onClick: action.onClick,
|
|
3081
3145
|
className: cn(
|
|
3082
|
-
"body font-semibold transition-colors",
|
|
3146
|
+
"min-h-10 body font-semibold transition-colors",
|
|
3083
3147
|
action.variant === "ghost" ? "text-muted-foreground hover:text-muted-foreground" : "text-foreground hover:text-muted-foreground"
|
|
3084
3148
|
),
|
|
3085
3149
|
children: action.label
|
|
@@ -3092,7 +3156,7 @@ function Notification({
|
|
|
3092
3156
|
{
|
|
3093
3157
|
type: "button",
|
|
3094
3158
|
onClick: onClose,
|
|
3095
|
-
className: "rounded-md text-muted-foreground hover:text-muted-foreground
|
|
3159
|
+
className: "flex size-10 items-center justify-center rounded-md text-muted-foreground transition-[color,scale] hover:text-muted-foreground active:scale-[0.96] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30",
|
|
3096
3160
|
children: [
|
|
3097
3161
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" }),
|
|
3098
3162
|
/* @__PURE__ */ jsx(X, { size: 16 })
|
|
@@ -3128,10 +3192,10 @@ function PageHeading({
|
|
|
3128
3192
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
|
|
3129
3193
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3130
3194
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
3131
|
-
/* @__PURE__ */ jsx("h1", { className: "display text-foreground truncate", children: title }),
|
|
3195
|
+
/* @__PURE__ */ jsx("h1", { className: "display text-balance text-foreground truncate", children: title }),
|
|
3132
3196
|
badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: badge }) : /* @__PURE__ */ jsx(Badge, { variant: badge.variant ?? "secondary", children: badge.label }))
|
|
3133
3197
|
] }),
|
|
3134
|
-
description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 body text-muted-foreground
|
|
3198
|
+
description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 body max-w-2xl text-pretty text-muted-foreground", children: description }),
|
|
3135
3199
|
meta && meta.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap items-center gap-4", children: meta.map((m, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 caption text-muted-foreground", children: [
|
|
3136
3200
|
m.icon && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: m.icon }),
|
|
3137
3201
|
/* @__PURE__ */ jsx("span", { children: m.text })
|
|
@@ -3185,7 +3249,7 @@ var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx(
|
|
|
3185
3249
|
"aria-current": isActive ? "page" : void 0,
|
|
3186
3250
|
className: cn(
|
|
3187
3251
|
buttonVariants({ variant: isActive ? "default" : "ghost", size: "icon" }),
|
|
3188
|
-
"size-
|
|
3252
|
+
"size-10 rounded-md body",
|
|
3189
3253
|
className
|
|
3190
3254
|
),
|
|
3191
3255
|
...props
|
|
@@ -3225,7 +3289,7 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
3225
3289
|
"span",
|
|
3226
3290
|
{
|
|
3227
3291
|
"aria-hidden": true,
|
|
3228
|
-
className: cn("flex size-
|
|
3292
|
+
className: cn("flex size-10 items-center justify-center text-muted-foreground", className),
|
|
3229
3293
|
...props,
|
|
3230
3294
|
children: /* @__PURE__ */ jsx(MoreHorizontal, { size: 14 })
|
|
3231
3295
|
}
|
|
@@ -3241,7 +3305,7 @@ var ProgressRoot = React17.forwardRef(({ className, value, ...props }, ref) => /
|
|
|
3241
3305
|
children: /* @__PURE__ */ jsx(
|
|
3242
3306
|
Progress.Indicator,
|
|
3243
3307
|
{
|
|
3244
|
-
className: "h-full w-full flex-1 bg-brand-primary transition-
|
|
3308
|
+
className: "h-full w-full flex-1 bg-brand-primary transition-transform",
|
|
3245
3309
|
style: { transform: `translateX(-${100 - (value ?? 0)}%)` }
|
|
3246
3310
|
}
|
|
3247
3311
|
)
|
|
@@ -3303,7 +3367,8 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
|
|
|
3303
3367
|
disabled: option.disabled,
|
|
3304
3368
|
onClick: () => !option.disabled && onValueChange?.(option.value),
|
|
3305
3369
|
className: cn(
|
|
3306
|
-
"relative flex cursor-pointer flex-col gap-1 rounded-xl border p-4 text-left transition-
|
|
3370
|
+
"relative flex cursor-pointer flex-col gap-1 rounded-xl border p-4 text-left transition-[background-color,border-color,box-shadow,opacity,scale]",
|
|
3371
|
+
"active:scale-[0.96]",
|
|
3307
3372
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
3308
3373
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
3309
3374
|
isSelected ? "border-brand-primary bg-card shadow-natural" : "border-border bg-card hover:border-border"
|
|
@@ -3323,13 +3388,13 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
|
|
|
3323
3388
|
"p",
|
|
3324
3389
|
{
|
|
3325
3390
|
className: cn(
|
|
3326
|
-
"body font-semibold",
|
|
3391
|
+
"body font-semibold text-pretty",
|
|
3327
3392
|
isSelected ? "text-foreground" : "text-muted-foreground"
|
|
3328
3393
|
),
|
|
3329
3394
|
children: option.label
|
|
3330
3395
|
}
|
|
3331
3396
|
),
|
|
3332
|
-
option.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 caption text-muted-foreground", children: option.description })
|
|
3397
|
+
option.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 caption text-pretty text-muted-foreground", children: option.description })
|
|
3333
3398
|
] }),
|
|
3334
3399
|
/* @__PURE__ */ jsx(
|
|
3335
3400
|
"div",
|
|
@@ -3366,7 +3431,8 @@ var RadioGroupItem = React17.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
3366
3431
|
{
|
|
3367
3432
|
ref,
|
|
3368
3433
|
className: cn(
|
|
3369
|
-
"aspect-square size-4 rounded-full border border-border text-foreground",
|
|
3434
|
+
"relative aspect-square size-4 rounded-full border border-border text-foreground",
|
|
3435
|
+
"after:absolute after:left-1/2 after:top-1/2 after:size-10 after:-translate-x-1/2 after:-translate-y-1/2",
|
|
3370
3436
|
"shadow-none transition-colors",
|
|
3371
3437
|
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/20",
|
|
3372
3438
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -3464,8 +3530,8 @@ function SectionHeading({
|
|
|
3464
3530
|
),
|
|
3465
3531
|
children: [
|
|
3466
3532
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3467
|
-
/* @__PURE__ */ jsx("h2", { className: "heading text-foreground truncate", children: title }),
|
|
3468
|
-
description && /* @__PURE__ */ jsx("p", { className: "mt-1 body text-muted-foreground", children: description })
|
|
3533
|
+
/* @__PURE__ */ jsx("h2", { className: "heading text-balance text-foreground truncate", children: title }),
|
|
3534
|
+
description && /* @__PURE__ */ jsx("p", { className: "mt-1 body text-pretty text-muted-foreground", children: description })
|
|
3469
3535
|
] }),
|
|
3470
3536
|
actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2 pt-1", children: actions.map(
|
|
3471
3537
|
(action, i) => action.href ? /* @__PURE__ */ jsx(Button, { size: "sm", variant: action.variant ?? "default", asChild: true, children: /* @__PURE__ */ jsx("a", { href: action.href, children: action.label }) }, i) : /* @__PURE__ */ jsx(
|
|
@@ -3491,7 +3557,7 @@ var SelectTrigger = React17.forwardRef(({ className, children, ...props }, ref)
|
|
|
3491
3557
|
{
|
|
3492
3558
|
ref,
|
|
3493
3559
|
className: cn(
|
|
3494
|
-
"flex h-
|
|
3560
|
+
"flex h-10 w-full items-center justify-between rounded-xl bg-card px-3 py-2",
|
|
3495
3561
|
"body text-foreground shadow-natural",
|
|
3496
3562
|
"focus:outline-none focus:ring-2 focus:ring-ring/20",
|
|
3497
3563
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
@@ -3544,7 +3610,7 @@ var SelectItem = React17.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
3544
3610
|
{
|
|
3545
3611
|
ref,
|
|
3546
3612
|
className: cn(
|
|
3547
|
-
"relative flex w-full cursor-default select-none items-center rounded-md px-2.5 py-
|
|
3613
|
+
"relative flex min-h-10 w-full cursor-default select-none items-center rounded-md px-2.5 py-2",
|
|
3548
3614
|
"body text-muted-foreground outline-none",
|
|
3549
3615
|
"focus:bg-muted focus:text-foreground",
|
|
3550
3616
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
@@ -3605,7 +3671,7 @@ var sheetContentVariants = cva(
|
|
|
3605
3671
|
[
|
|
3606
3672
|
"fixed z-50 bg-card shadow-elevated p-6",
|
|
3607
3673
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
3608
|
-
"transition ease-in-out duration-300"
|
|
3674
|
+
"transition-transform ease-in-out duration-300"
|
|
3609
3675
|
],
|
|
3610
3676
|
{
|
|
3611
3677
|
variants: {
|
|
@@ -3632,7 +3698,7 @@ var SheetContent = React17.forwardRef(
|
|
|
3632
3698
|
...props,
|
|
3633
3699
|
children: [
|
|
3634
3700
|
children,
|
|
3635
|
-
/* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-
|
|
3701
|
+
/* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-3 top-3 flex size-10 items-center justify-center rounded-md text-muted-foreground opacity-70 transition-[opacity,scale] hover:opacity-100 active:scale-[0.96] focus:outline-none focus:ring-2 focus:ring-ground-900/20", children: [
|
|
3636
3702
|
/* @__PURE__ */ jsx(X, { size: 16 }),
|
|
3637
3703
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
3638
3704
|
] })
|
|
@@ -3654,12 +3720,19 @@ var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3654
3720
|
Dialog.Title,
|
|
3655
3721
|
{
|
|
3656
3722
|
ref,
|
|
3657
|
-
className: cn("body-lg font-semibold text-foreground", className),
|
|
3723
|
+
className: cn("body-lg font-semibold text-balance text-foreground", className),
|
|
3658
3724
|
...props
|
|
3659
3725
|
}
|
|
3660
3726
|
));
|
|
3661
3727
|
SheetTitle.displayName = "SheetTitle";
|
|
3662
|
-
var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3728
|
+
var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3729
|
+
Dialog.Description,
|
|
3730
|
+
{
|
|
3731
|
+
ref,
|
|
3732
|
+
className: cn("body text-pretty text-muted-foreground", className),
|
|
3733
|
+
...props
|
|
3734
|
+
}
|
|
3735
|
+
));
|
|
3663
3736
|
SheetDescription.displayName = "SheetDescription";
|
|
3664
3737
|
function TooltipProvider({
|
|
3665
3738
|
children,
|
|
@@ -3815,8 +3888,8 @@ function SidebarTrigger({ className, onClick, ...props }) {
|
|
|
3815
3888
|
{
|
|
3816
3889
|
"data-sidebar": "trigger",
|
|
3817
3890
|
variant: "ghost",
|
|
3818
|
-
size: "
|
|
3819
|
-
className
|
|
3891
|
+
size: "icon",
|
|
3892
|
+
className,
|
|
3820
3893
|
onClick: (e) => {
|
|
3821
3894
|
onClick?.(e);
|
|
3822
3895
|
toggleSidebar();
|
|
@@ -3840,7 +3913,7 @@ function SidebarRail({ className, ...props }) {
|
|
|
3840
3913
|
onClick: toggleSidebar,
|
|
3841
3914
|
title: "Toggle sidebar",
|
|
3842
3915
|
className: cn(
|
|
3843
|
-
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-col-resize transition-
|
|
3916
|
+
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 cursor-col-resize transition-[left,right,width] ease-linear",
|
|
3844
3917
|
"after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]",
|
|
3845
3918
|
"hover:after:bg-brand-primary/30",
|
|
3846
3919
|
"group-data-[side=left]:-right-4 group-data-[side=right]:left-0",
|
|
@@ -3949,7 +4022,7 @@ function SidebarGroupAction({
|
|
|
3949
4022
|
{
|
|
3950
4023
|
"data-sidebar": "group-action",
|
|
3951
4024
|
className: cn(
|
|
3952
|
-
"absolute right-
|
|
4025
|
+
"absolute right-2 top-2 flex size-8 items-center justify-center",
|
|
3953
4026
|
"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
3954
4027
|
"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
3955
4028
|
className
|
|
@@ -3989,7 +4062,7 @@ function SidebarMenuButton({
|
|
|
3989
4062
|
"data-size": size,
|
|
3990
4063
|
className: cn(
|
|
3991
4064
|
// Base
|
|
3992
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 body-sm text-left",
|
|
4065
|
+
"peer/menu-button flex min-h-10 w-full items-center gap-2 overflow-hidden rounded-md p-2 body-sm text-left",
|
|
3993
4066
|
"outline-none ring-ring",
|
|
3994
4067
|
"transition-[width,height,padding] duration-150",
|
|
3995
4068
|
"hover:bg-muted hover:text-foreground",
|
|
@@ -4007,7 +4080,7 @@ function SidebarMenuButton({
|
|
|
4007
4080
|
],
|
|
4008
4081
|
// Collapsed state
|
|
4009
4082
|
"group-data-[state=collapsed]/sidebar-wrapper:justify-center",
|
|
4010
|
-
"group-data-[state=collapsed]/sidebar-wrapper:size-
|
|
4083
|
+
"group-data-[state=collapsed]/sidebar-wrapper:size-10",
|
|
4011
4084
|
"group-data-[state=collapsed]/sidebar-wrapper:p-0",
|
|
4012
4085
|
className
|
|
4013
4086
|
),
|
|
@@ -4045,7 +4118,7 @@ function SidebarMenuAction({
|
|
|
4045
4118
|
{
|
|
4046
4119
|
"data-sidebar": "menu-action",
|
|
4047
4120
|
className: cn(
|
|
4048
|
-
"absolute right-1 top-1/2 -translate-y-1/2
|
|
4121
|
+
"absolute right-1 top-1/2 flex size-8 -translate-y-1/2 items-center justify-center",
|
|
4049
4122
|
"rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
4050
4123
|
"outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
4051
4124
|
showOnHover && [
|
|
@@ -4139,7 +4212,7 @@ function SidebarMenuSubButton({
|
|
|
4139
4212
|
"data-sidebar": "menu-sub-button",
|
|
4140
4213
|
"data-active": isActive,
|
|
4141
4214
|
className: cn(
|
|
4142
|
-
"flex h-
|
|
4215
|
+
"flex min-h-8 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2",
|
|
4143
4216
|
"body text-muted-foreground outline-none",
|
|
4144
4217
|
"transition-colors duration-150",
|
|
4145
4218
|
"hover:text-foreground hover:bg-muted",
|
|
@@ -4171,7 +4244,7 @@ var SliderRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
4171
4244
|
...props,
|
|
4172
4245
|
children: [
|
|
4173
4246
|
/* @__PURE__ */ jsx(Slider.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(Slider.Range, { className: "absolute h-full bg-brand-primary" }) }),
|
|
4174
|
-
/* @__PURE__ */ jsx(Slider.Thumb, { className: "block size-4 rounded-full border-2 border-brand-primary bg-card shadow-natural transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50" })
|
|
4247
|
+
/* @__PURE__ */ jsx(Slider.Thumb, { className: "relative block size-4 rounded-full border-2 border-brand-primary bg-card shadow-natural transition-colors after:absolute after:left-1/2 after:top-1/2 after:size-10 after:-translate-x-1/2 after:-translate-y-1/2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50" })
|
|
4175
4248
|
]
|
|
4176
4249
|
}
|
|
4177
4250
|
));
|
|
@@ -4275,12 +4348,12 @@ function StatCard({ label, value, trend, icon, className }) {
|
|
|
4275
4348
|
/* @__PURE__ */ jsx("p", { className: "label text-muted-foreground", children: label }),
|
|
4276
4349
|
icon && /* @__PURE__ */ jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground", children: icon })
|
|
4277
4350
|
] }),
|
|
4278
|
-
/* @__PURE__ */ jsx("p", { className: "heading-xl mt-2 text-foreground", children: value }),
|
|
4351
|
+
/* @__PURE__ */ jsx("p", { className: "heading-xl mt-2 tabular-nums text-foreground", children: value }),
|
|
4279
4352
|
trend && (() => {
|
|
4280
4353
|
const Icon = TrendIcon[trend.direction];
|
|
4281
4354
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-2 flex items-center gap-1", trendColor[trend.direction]), children: [
|
|
4282
4355
|
/* @__PURE__ */ jsx(Icon, { size: 12 }),
|
|
4283
|
-
/* @__PURE__ */ jsx("span", { className: "caption font-medium", children: trend.value })
|
|
4356
|
+
/* @__PURE__ */ jsx("span", { className: "caption tabular-nums font-medium", children: trend.value })
|
|
4284
4357
|
] });
|
|
4285
4358
|
})()
|
|
4286
4359
|
] });
|
|
@@ -4290,7 +4363,7 @@ function CirclesSteps({ steps, className }) {
|
|
|
4290
4363
|
return /* @__PURE__ */ jsx("nav", { "aria-label": "Progress", className, children: /* @__PURE__ */ jsx("ol", { role: "list", className: "flex items-center", children: steps.map((step, i) => {
|
|
4291
4364
|
const isLast = i === steps.length - 1;
|
|
4292
4365
|
return /* @__PURE__ */ jsxs("li", { className: cn("relative", !isLast && "flex-1"), children: [
|
|
4293
|
-
!isLast && /* @__PURE__ */ jsx("div", { className: "absolute
|
|
4366
|
+
!isLast && /* @__PURE__ */ jsx("div", { className: "absolute left-10 right-0 top-5 h-0.5", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
4294
4367
|
"div",
|
|
4295
4368
|
{
|
|
4296
4369
|
className: cn(
|
|
@@ -4310,12 +4383,12 @@ function CirclesSteps({ steps, className }) {
|
|
|
4310
4383
|
"span",
|
|
4311
4384
|
{
|
|
4312
4385
|
className: cn(
|
|
4313
|
-
"relative z-10 flex size-
|
|
4386
|
+
"relative z-10 flex size-10 items-center justify-center rounded-full transition-colors",
|
|
4314
4387
|
step.status === "complete" && "bg-brand-primary group-hover:bg-brand-primary/80",
|
|
4315
4388
|
step.status === "current" && "border-2 border-brand-primary bg-card",
|
|
4316
4389
|
step.status === "upcoming" && "border-2 border-border bg-card group-hover:border-border"
|
|
4317
4390
|
),
|
|
4318
|
-
children: step.status === "complete" ? /* @__PURE__ */ jsx(Check, { size: 14, className: "text-background", strokeWidth: 2.5 }) : step.status === "current" ? /* @__PURE__ */ jsx("span", { className: "size-
|
|
4391
|
+
children: step.status === "complete" ? /* @__PURE__ */ jsx(Check, { size: 14, className: "text-background", strokeWidth: 2.5 }) : step.status === "current" ? /* @__PURE__ */ jsx("span", { className: "size-3 rounded-full bg-brand-primary" }) : /* @__PURE__ */ jsx("span", { className: "size-3 rounded-full bg-transparent group-hover:bg-muted" })
|
|
4319
4392
|
}
|
|
4320
4393
|
),
|
|
4321
4394
|
/* @__PURE__ */ jsxs("span", { className: "flex flex-col items-center", children: [
|
|
@@ -4329,7 +4402,7 @@ function CirclesSteps({ steps, className }) {
|
|
|
4329
4402
|
children: step.name
|
|
4330
4403
|
}
|
|
4331
4404
|
),
|
|
4332
|
-
step.description && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: step.description })
|
|
4405
|
+
step.description && /* @__PURE__ */ jsx("span", { className: "caption text-pretty text-muted-foreground", children: step.description })
|
|
4333
4406
|
] })
|
|
4334
4407
|
]
|
|
4335
4408
|
}
|
|
@@ -4340,7 +4413,7 @@ function CirclesSteps({ steps, className }) {
|
|
|
4340
4413
|
function BulletsSteps({ steps, className }) {
|
|
4341
4414
|
const currentIdx = steps.findIndex((s) => s.status === "current");
|
|
4342
4415
|
return /* @__PURE__ */ jsxs("nav", { className: cn("flex items-center gap-4", className), "aria-label": "Progress", children: [
|
|
4343
|
-
/* @__PURE__ */ jsxs("p", { className: "body font-medium text-muted-foreground", children: [
|
|
4416
|
+
/* @__PURE__ */ jsxs("p", { className: "body font-medium tabular-nums text-muted-foreground", children: [
|
|
4344
4417
|
"Step ",
|
|
4345
4418
|
currentIdx + 1,
|
|
4346
4419
|
" of ",
|
|
@@ -4351,11 +4424,11 @@ function BulletsSteps({ steps, className }) {
|
|
|
4351
4424
|
{
|
|
4352
4425
|
href: step.href ?? "#",
|
|
4353
4426
|
onClick: !step.href ? (e) => e.preventDefault() : void 0,
|
|
4354
|
-
className: "
|
|
4427
|
+
className: "relative flex size-10 items-center justify-center",
|
|
4355
4428
|
children: step.status === "complete" ? /* @__PURE__ */ jsx(
|
|
4356
4429
|
"span",
|
|
4357
4430
|
{
|
|
4358
|
-
className: "block size-2.5 rounded-full bg-brand-primary hover:bg-brand-primary/80
|
|
4431
|
+
className: "block size-2.5 rounded-full bg-brand-primary transition-colors hover:bg-brand-primary/80",
|
|
4359
4432
|
"aria-label": `${step.name}: completed`
|
|
4360
4433
|
}
|
|
4361
4434
|
) : step.status === "current" ? /* @__PURE__ */ jsxs(
|
|
@@ -4372,7 +4445,7 @@ function BulletsSteps({ steps, className }) {
|
|
|
4372
4445
|
) : /* @__PURE__ */ jsx(
|
|
4373
4446
|
"span",
|
|
4374
4447
|
{
|
|
4375
|
-
className: "block size-2.5 rounded-full bg-muted hover:bg-muted
|
|
4448
|
+
className: "block size-2.5 rounded-full bg-muted transition-colors hover:bg-muted",
|
|
4376
4449
|
"aria-label": `${step.name}: upcoming`
|
|
4377
4450
|
}
|
|
4378
4451
|
)
|
|
@@ -4388,7 +4461,7 @@ function ProgressSteps({ steps, className }) {
|
|
|
4388
4461
|
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(
|
|
4389
4462
|
"div",
|
|
4390
4463
|
{
|
|
4391
|
-
className: "h-full rounded-full bg-brand-primary transition-
|
|
4464
|
+
className: "h-full rounded-full bg-brand-primary transition-[width] duration-500",
|
|
4392
4465
|
style: { width: `${progress}%` }
|
|
4393
4466
|
}
|
|
4394
4467
|
) }),
|
|
@@ -4398,7 +4471,7 @@ function ProgressSteps({ steps, className }) {
|
|
|
4398
4471
|
"div",
|
|
4399
4472
|
{
|
|
4400
4473
|
className: cn(
|
|
4401
|
-
"caption font-medium",
|
|
4474
|
+
"caption font-medium text-pretty",
|
|
4402
4475
|
i === 0 ? "text-left" : isLast ? "text-right" : "text-center",
|
|
4403
4476
|
step.status === "upcoming" ? "text-muted-foreground" : "text-foreground"
|
|
4404
4477
|
),
|
|
@@ -4421,8 +4494,8 @@ var SwitchRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
4421
4494
|
{
|
|
4422
4495
|
ref,
|
|
4423
4496
|
className: cn(
|
|
4424
|
-
"peer inline-flex h-
|
|
4425
|
-
"border-2 border-transparent transition-
|
|
4497
|
+
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full",
|
|
4498
|
+
"border-2 border-transparent transition-[background-color,border-color,box-shadow] duration-150",
|
|
4426
4499
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
|
|
4427
4500
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
4428
4501
|
"data-[state=unchecked]:bg-muted data-[state=checked]:bg-brand-primary",
|
|
@@ -4433,8 +4506,8 @@ var SwitchRoot = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
4433
4506
|
Switch.Thumb,
|
|
4434
4507
|
{
|
|
4435
4508
|
className: cn(
|
|
4436
|
-
"pointer-events-none block size-
|
|
4437
|
-
"transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:translate-x-
|
|
4509
|
+
"pointer-events-none block size-5 rounded-full bg-card shadow-natural",
|
|
4510
|
+
"transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:translate-x-5"
|
|
4438
4511
|
)
|
|
4439
4512
|
}
|
|
4440
4513
|
)
|
|
@@ -4492,7 +4565,7 @@ var toggleVariants = cva(
|
|
|
4492
4565
|
[
|
|
4493
4566
|
"inline-flex shrink-0 items-center justify-center gap-2",
|
|
4494
4567
|
"body font-medium whitespace-nowrap rounded-md",
|
|
4495
|
-
"transition-
|
|
4568
|
+
"transition-[background-color,border-color,box-shadow,color,opacity,scale] duration-150 outline-none active:scale-[0.96]",
|
|
4496
4569
|
"focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1",
|
|
4497
4570
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
4498
4571
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
@@ -4518,11 +4591,11 @@ var toggleVariants = cva(
|
|
|
4518
4591
|
},
|
|
4519
4592
|
size: {
|
|
4520
4593
|
sm: "h-8 gap-1.5 px-3",
|
|
4521
|
-
default: "h-
|
|
4522
|
-
lg: "h-
|
|
4523
|
-
icon: "size-
|
|
4594
|
+
default: "h-10 px-3",
|
|
4595
|
+
lg: "h-11 px-4",
|
|
4596
|
+
icon: "size-10",
|
|
4524
4597
|
"icon-sm": "size-8",
|
|
4525
|
-
"icon-lg": "size-
|
|
4598
|
+
"icon-lg": "size-11"
|
|
4526
4599
|
}
|
|
4527
4600
|
},
|
|
4528
4601
|
defaultVariants: {
|