@dimaan/ui 0.0.27 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +330 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +149 -14
- package/dist/index.d.ts +149 -14
- package/dist/index.js +316 -98
- package/dist/index.js.map +1 -1
- package/dist/preset.css +73 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { twMerge } from 'tailwind-merge';
|
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { Loader2, Check, Minus, Calendar, X, ChevronLeft, ChevronRight, Upload, File as File$1, ChevronDown, Search, ChevronUp, ArrowLeft, Menu, FileQuestion, ChevronsUpDown, Inbox, RefreshCw, SearchX, Trash2, Pencil, Eye } from 'lucide-react';
|
|
7
7
|
import { DirectionProvider } from '@radix-ui/react-direction';
|
|
8
|
-
import { Link,
|
|
8
|
+
import { Link, useResolvedPath, useMatch, useNavigate } from 'react-router-dom';
|
|
9
9
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
10
10
|
import { DayPicker } from 'react-day-picker';
|
|
11
11
|
import * as RadixDialog from '@radix-ui/react-dialog';
|
|
@@ -92,21 +92,21 @@ var AlertDialogDescription = forwardRef(function AlertDialogDescription2({ class
|
|
|
92
92
|
|
|
93
93
|
// src/components/button/buttonVariants.ts
|
|
94
94
|
var buttonVariantClass = {
|
|
95
|
-
primary: "bg-primary text-primary-foreground shadow-
|
|
95
|
+
primary: "bg-primary text-primary-foreground shadow-[var(--shadow-btn)] hover:bg-primary/95 hover:-translate-y-px hover:shadow-[var(--shadow-btn-hover)] active:translate-y-0 active:shadow-[var(--shadow-btn-active)] focus-visible:ring-primary/40",
|
|
96
96
|
secondary: "bg-muted text-foreground hover:bg-muted/80 focus-visible:ring-muted-foreground/30",
|
|
97
97
|
outline: "border border-input bg-background text-foreground hover:bg-accent hover:text-accent-foreground focus-visible:ring-ring/40",
|
|
98
98
|
ghost: "bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground focus-visible:ring-ring/40",
|
|
99
|
-
destructive: "bg-destructive text-destructive-foreground shadow-
|
|
100
|
-
success: "bg-success text-success-foreground shadow-
|
|
101
|
-
warning: "bg-warning text-warning-foreground shadow-
|
|
99
|
+
destructive: "bg-destructive text-destructive-foreground shadow-[var(--shadow-solid)] hover:bg-destructive/95 hover:-translate-y-px hover:shadow-[var(--shadow-solid-hover)] active:translate-y-0 active:shadow-[var(--shadow-solid-active)] focus-visible:ring-destructive/40",
|
|
100
|
+
success: "bg-success text-success-foreground shadow-[var(--shadow-solid)] hover:bg-success/95 hover:-translate-y-px hover:shadow-[var(--shadow-solid-hover)] active:translate-y-0 active:shadow-[var(--shadow-solid-active)] focus-visible:ring-success/40",
|
|
101
|
+
warning: "bg-warning text-warning-foreground shadow-[var(--shadow-solid)] hover:bg-warning/95 hover:-translate-y-px hover:shadow-[var(--shadow-solid-hover)] active:translate-y-0 active:shadow-[var(--shadow-solid-active)] focus-visible:ring-warning/40",
|
|
102
102
|
link: "text-primary underline-offset-4 hover:underline focus-visible:ring-primary/40 px-0 shadow-none"
|
|
103
103
|
};
|
|
104
104
|
var buttonSizeClass = {
|
|
105
|
-
sm: "h-8 gap-1.5 rounded-
|
|
106
|
-
md: "h-9 gap-2 rounded-
|
|
107
|
-
lg: "h-11 gap-2.5 rounded-
|
|
108
|
-
icon: "
|
|
109
|
-
"icon-sm": "
|
|
105
|
+
sm: "h-8 gap-1.5 rounded-[10px] px-3 text-sm",
|
|
106
|
+
md: "h-9 gap-2 rounded-[10px] px-4 text-sm",
|
|
107
|
+
lg: "h-11 gap-2.5 rounded-[10px] px-6 text-base",
|
|
108
|
+
icon: "size-9 shrink-0 rounded-[10px] p-0",
|
|
109
|
+
"icon-sm": "size-8 shrink-0 rounded-[10px] p-0"
|
|
110
110
|
};
|
|
111
111
|
var buttonBaseClass = "group/button relative inline-flex items-center justify-center font-medium select-none whitespace-nowrap outline-none transition-[background-color,color,box-shadow,opacity,transform] active:scale-[0.98] focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:shrink-0";
|
|
112
112
|
var Button = forwardRef(function Button2({
|
|
@@ -169,10 +169,10 @@ var Button = forwardRef(function Button2({
|
|
|
169
169
|
);
|
|
170
170
|
});
|
|
171
171
|
function Slot({ children }) {
|
|
172
|
-
return /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "inline-flex
|
|
172
|
+
return /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "inline-flex size-4 items-center justify-center", children });
|
|
173
173
|
}
|
|
174
174
|
function Spinner() {
|
|
175
|
-
return /* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "
|
|
175
|
+
return /* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-4 animate-spin", "data-testid": "button-spinner" });
|
|
176
176
|
}
|
|
177
177
|
var ConfirmDialogContext = createContext(null);
|
|
178
178
|
function ConfirmDialogProvider({ labels, children }) {
|
|
@@ -447,7 +447,7 @@ var HeaderSearch = forwardRef(
|
|
|
447
447
|
"span",
|
|
448
448
|
{
|
|
449
449
|
"aria-hidden": "true",
|
|
450
|
-
className: "pointer-events-none absolute start-3 flex
|
|
450
|
+
className: "pointer-events-none absolute start-3 flex size-4 items-center justify-center text-muted-foreground",
|
|
451
451
|
children: icon
|
|
452
452
|
}
|
|
453
453
|
) : null,
|
|
@@ -574,6 +574,7 @@ function SidebarHeader({ className, children, ...props }) {
|
|
|
574
574
|
function SidebarNav({ className, children, ...props }) {
|
|
575
575
|
return /* @__PURE__ */ jsx("nav", { className: cn("flex flex-1 flex-col gap-1 overflow-y-auto p-2", className), ...props, children });
|
|
576
576
|
}
|
|
577
|
+
var SidebarNavGroupContext = createContext(null);
|
|
577
578
|
function SidebarNavGroup({
|
|
578
579
|
icon,
|
|
579
580
|
label,
|
|
@@ -599,19 +600,39 @@ function SidebarNavGroup({
|
|
|
599
600
|
},
|
|
600
601
|
[isControlled, onOpenChange]
|
|
601
602
|
);
|
|
603
|
+
const [activeChildIds, setActiveChildIds] = useState(() => /* @__PURE__ */ new Set());
|
|
604
|
+
const reportActive = useCallback((id, isItemActive) => {
|
|
605
|
+
setActiveChildIds((prev) => {
|
|
606
|
+
if (isItemActive === prev.has(id)) return prev;
|
|
607
|
+
const next = new Set(prev);
|
|
608
|
+
if (isItemActive) next.add(id);
|
|
609
|
+
else next.delete(id);
|
|
610
|
+
return next;
|
|
611
|
+
});
|
|
612
|
+
}, []);
|
|
613
|
+
const contextValue = useMemo(() => ({ reportActive }), [reportActive]);
|
|
614
|
+
const hasActiveChild = activeChildIds.size > 0;
|
|
615
|
+
const isActive = active || hasActiveChild;
|
|
616
|
+
const prevHasActiveChild = useRef(false);
|
|
617
|
+
useEffect(() => {
|
|
618
|
+
if (hasActiveChild && !prevHasActiveChild.current && !collapsed) {
|
|
619
|
+
setOpen(true);
|
|
620
|
+
}
|
|
621
|
+
prevHasActiveChild.current = hasActiveChild;
|
|
622
|
+
}, [hasActiveChild, collapsed, setOpen]);
|
|
602
623
|
useEffect(() => {
|
|
603
624
|
if (collapsed && open) setOpen(false);
|
|
604
625
|
}, [collapsed, open, setOpen]);
|
|
605
626
|
const titleAttr = collapsed && typeof label === "string" ? label : props.title ?? void 0;
|
|
606
627
|
const showChildren = !collapsed;
|
|
607
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
628
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-col", children: [
|
|
608
629
|
/* @__PURE__ */ jsxs(
|
|
609
630
|
"button",
|
|
610
631
|
{
|
|
611
632
|
type: "button",
|
|
612
633
|
"aria-expanded": showChildren ? open : void 0,
|
|
613
634
|
"aria-controls": showChildren ? submenuId : void 0,
|
|
614
|
-
"data-active":
|
|
635
|
+
"data-active": isActive ? "true" : void 0,
|
|
615
636
|
title: titleAttr,
|
|
616
637
|
onClick: (e) => {
|
|
617
638
|
if (showChildren) setOpen(!open);
|
|
@@ -621,13 +642,20 @@ function SidebarNavGroup({
|
|
|
621
642
|
"group relative flex h-9 w-full items-center gap-3 rounded-md px-3 text-sm font-medium outline-none transition-colors",
|
|
622
643
|
"text-sidebar-foreground/80 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
623
644
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-sidebar",
|
|
624
|
-
|
|
645
|
+
isActive && "bg-sidebar-accent text-sidebar-accent-foreground",
|
|
625
646
|
collapsed && "justify-center px-0",
|
|
626
647
|
className
|
|
627
648
|
),
|
|
628
649
|
...props,
|
|
629
650
|
children: [
|
|
630
|
-
|
|
651
|
+
isActive ? /* @__PURE__ */ jsx(
|
|
652
|
+
"span",
|
|
653
|
+
{
|
|
654
|
+
"aria-hidden": "true",
|
|
655
|
+
className: "absolute inset-y-1.5 start-0 w-1 rounded-full bg-primary"
|
|
656
|
+
}
|
|
657
|
+
) : null,
|
|
658
|
+
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center", children: icon }) : null,
|
|
631
659
|
/* @__PURE__ */ jsx(
|
|
632
660
|
"span",
|
|
633
661
|
{
|
|
@@ -652,7 +680,7 @@ function SidebarNavGroup({
|
|
|
652
680
|
"grid transition-[grid-template-rows] duration-200 ease-out",
|
|
653
681
|
showChildren && open ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
654
682
|
),
|
|
655
|
-
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-0.5 ps-7 pt-1", children }) })
|
|
683
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-0.5 ps-7 pt-1", children: /* @__PURE__ */ jsx(SidebarNavGroupContext.Provider, { value: contextValue, children }) }) })
|
|
656
684
|
}
|
|
657
685
|
)
|
|
658
686
|
] });
|
|
@@ -663,7 +691,7 @@ function ChevronCaret({ open }) {
|
|
|
663
691
|
{
|
|
664
692
|
"aria-hidden": "true",
|
|
665
693
|
className: cn(
|
|
666
|
-
"
|
|
694
|
+
"size-3.5 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
667
695
|
open && "rotate-180"
|
|
668
696
|
)
|
|
669
697
|
}
|
|
@@ -682,13 +710,20 @@ function SidebarNavItem({
|
|
|
682
710
|
...props
|
|
683
711
|
}) {
|
|
684
712
|
const { collapsed } = useDashboardLayout();
|
|
685
|
-
const location = useLocation();
|
|
686
713
|
const resolved = useResolvedPath(to);
|
|
687
|
-
const
|
|
714
|
+
const group = useContext(SidebarNavGroupContext);
|
|
715
|
+
const itemId = useId();
|
|
716
|
+
const routeMatch = useMatch({ path: resolved.pathname, end: end ?? false });
|
|
717
|
+
const isActive = forcedActive || routeMatch != null;
|
|
718
|
+
useEffect(() => {
|
|
719
|
+
if (!group) return;
|
|
720
|
+
group.reportActive(itemId, isActive);
|
|
721
|
+
return () => group.reportActive(itemId, false);
|
|
722
|
+
}, [group, itemId, isActive]);
|
|
688
723
|
const labelContent = label ?? children;
|
|
689
724
|
const titleAttr = collapsed && typeof labelContent === "string" ? labelContent : props.title;
|
|
690
725
|
const getClassName = (active) => cn(
|
|
691
|
-
"group relative flex h-9 items-center gap-3 rounded-md px-3 text-sm font-medium outline-none transition-colors",
|
|
726
|
+
"group relative flex h-9 shrink-0 items-center gap-3 rounded-md px-3 text-sm font-medium outline-none transition-colors",
|
|
692
727
|
"text-sidebar-foreground/80 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
693
728
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-sidebar",
|
|
694
729
|
active && "bg-sidebar-accent text-sidebar-accent-foreground",
|
|
@@ -696,7 +731,14 @@ function SidebarNavItem({
|
|
|
696
731
|
className
|
|
697
732
|
);
|
|
698
733
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
699
|
-
|
|
734
|
+
isActive ? /* @__PURE__ */ jsx(
|
|
735
|
+
"span",
|
|
736
|
+
{
|
|
737
|
+
"aria-hidden": "true",
|
|
738
|
+
className: "absolute inset-y-1.5 start-0 w-1 rounded-full bg-primary"
|
|
739
|
+
}
|
|
740
|
+
) : null,
|
|
741
|
+
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center", children: icon }) : null,
|
|
700
742
|
/* @__PURE__ */ jsx(
|
|
701
743
|
"span",
|
|
702
744
|
{
|
|
@@ -814,9 +856,9 @@ function AppShell({
|
|
|
814
856
|
) });
|
|
815
857
|
}
|
|
816
858
|
var sizeClass = {
|
|
817
|
-
sm: "
|
|
818
|
-
md: "
|
|
819
|
-
lg: "
|
|
859
|
+
sm: "size-7 text-xs",
|
|
860
|
+
md: "size-9 text-sm",
|
|
861
|
+
lg: "size-11 text-base"
|
|
820
862
|
};
|
|
821
863
|
function Avatar({ src, alt = "", fallback, size = "md", className, ...props }) {
|
|
822
864
|
const [errored, setErrored] = useState(false);
|
|
@@ -852,6 +894,14 @@ var badgeVariantClass = {
|
|
|
852
894
|
destructive: "bg-destructive text-destructive-foreground border-transparent",
|
|
853
895
|
outline: "border-border bg-transparent text-foreground"
|
|
854
896
|
};
|
|
897
|
+
var badgeSoftVariantClass = {
|
|
898
|
+
default: "bg-muted text-muted-foreground border-transparent",
|
|
899
|
+
primary: "bg-primary/15 text-primary-soft-foreground border-transparent",
|
|
900
|
+
success: "bg-success/15 text-success-soft-foreground border-transparent",
|
|
901
|
+
warning: "bg-warning/15 text-warning-soft-foreground border-transparent",
|
|
902
|
+
destructive: "bg-destructive/15 text-destructive-soft-foreground border-transparent",
|
|
903
|
+
outline: "border-border bg-transparent text-foreground"
|
|
904
|
+
};
|
|
855
905
|
var badgeSizeClass = {
|
|
856
906
|
sm: "h-5 gap-1 px-2 text-[11px]",
|
|
857
907
|
md: "h-6 gap-1.5 px-2.5 text-xs"
|
|
@@ -861,14 +911,16 @@ var badgeDotSizeClass = {
|
|
|
861
911
|
md: "size-2"
|
|
862
912
|
};
|
|
863
913
|
var badgeBaseClass = "inline-flex shrink-0 items-center rounded-full border font-medium leading-none whitespace-nowrap select-none transition-colors";
|
|
864
|
-
var Badge = forwardRef(function Badge2({ variant = "default", size = "md", dot = false, className, children, ...props }, ref) {
|
|
914
|
+
var Badge = forwardRef(function Badge2({ variant = "default", size = "md", tone = "solid", dot = false, className, children, ...props }, ref) {
|
|
915
|
+
const variantClass = tone === "soft" ? badgeSoftVariantClass[variant] : badgeVariantClass[variant];
|
|
865
916
|
return /* @__PURE__ */ jsxs(
|
|
866
917
|
"span",
|
|
867
918
|
{
|
|
868
919
|
ref,
|
|
869
920
|
"data-slot": "badge",
|
|
870
921
|
"data-variant": variant,
|
|
871
|
-
|
|
922
|
+
"data-tone": tone,
|
|
923
|
+
className: cn(badgeBaseClass, variantClass, badgeSizeClass[size], className),
|
|
872
924
|
...props,
|
|
873
925
|
children: [
|
|
874
926
|
dot ? /* @__PURE__ */ jsx(
|
|
@@ -883,9 +935,75 @@ var Badge = forwardRef(function Badge2({ variant = "default", size = "md", dot =
|
|
|
883
935
|
}
|
|
884
936
|
);
|
|
885
937
|
});
|
|
938
|
+
|
|
939
|
+
// src/components/card/cardVariants.ts
|
|
940
|
+
var cardBaseClass = "rounded-xl border border-border bg-card text-card-foreground shadow-[var(--shadow-card)]";
|
|
941
|
+
var cardHeaderClass = "flex flex-col gap-1.5 p-6";
|
|
942
|
+
var cardTitleClass = "text-lg font-semibold leading-none tracking-tight text-foreground";
|
|
943
|
+
var cardDescriptionClass = "text-sm text-muted-foreground";
|
|
944
|
+
var cardContentClass = "p-6 pt-0";
|
|
945
|
+
var cardFooterClass = "flex items-center gap-2 p-6 pt-0";
|
|
946
|
+
var Card = forwardRef(function Card2({ className, ...props }, ref) {
|
|
947
|
+
return /* @__PURE__ */ jsx("div", { ref, "data-slot": "card", className: cn(cardBaseClass, className), ...props });
|
|
948
|
+
});
|
|
949
|
+
var CardHeader = forwardRef(
|
|
950
|
+
function CardHeader2({ className, ...props }, ref) {
|
|
951
|
+
return /* @__PURE__ */ jsx(
|
|
952
|
+
"div",
|
|
953
|
+
{
|
|
954
|
+
ref,
|
|
955
|
+
"data-slot": "card-header",
|
|
956
|
+
className: cn(cardHeaderClass, className),
|
|
957
|
+
...props
|
|
958
|
+
}
|
|
959
|
+
);
|
|
960
|
+
}
|
|
961
|
+
);
|
|
962
|
+
var CardTitle = forwardRef(
|
|
963
|
+
function CardTitle2({ className, ...props }, ref) {
|
|
964
|
+
return /* @__PURE__ */ jsx("h3", { ref, "data-slot": "card-title", className: cn(cardTitleClass, className), ...props });
|
|
965
|
+
}
|
|
966
|
+
);
|
|
967
|
+
var CardDescription = forwardRef(function CardDescription2({ className, ...props }, ref) {
|
|
968
|
+
return /* @__PURE__ */ jsx(
|
|
969
|
+
"p",
|
|
970
|
+
{
|
|
971
|
+
ref,
|
|
972
|
+
"data-slot": "card-description",
|
|
973
|
+
className: cn(cardDescriptionClass, className),
|
|
974
|
+
...props
|
|
975
|
+
}
|
|
976
|
+
);
|
|
977
|
+
});
|
|
978
|
+
var CardContent = forwardRef(
|
|
979
|
+
function CardContent2({ className, ...props }, ref) {
|
|
980
|
+
return /* @__PURE__ */ jsx(
|
|
981
|
+
"div",
|
|
982
|
+
{
|
|
983
|
+
ref,
|
|
984
|
+
"data-slot": "card-content",
|
|
985
|
+
className: cn(cardContentClass, className),
|
|
986
|
+
...props
|
|
987
|
+
}
|
|
988
|
+
);
|
|
989
|
+
}
|
|
990
|
+
);
|
|
991
|
+
var CardFooter = forwardRef(
|
|
992
|
+
function CardFooter2({ className, ...props }, ref) {
|
|
993
|
+
return /* @__PURE__ */ jsx(
|
|
994
|
+
"div",
|
|
995
|
+
{
|
|
996
|
+
ref,
|
|
997
|
+
"data-slot": "card-footer",
|
|
998
|
+
className: cn(cardFooterClass, className),
|
|
999
|
+
...props
|
|
1000
|
+
}
|
|
1001
|
+
);
|
|
1002
|
+
}
|
|
1003
|
+
);
|
|
886
1004
|
var sizeClass2 = {
|
|
887
|
-
sm: "
|
|
888
|
-
md: "
|
|
1005
|
+
sm: "size-3.5",
|
|
1006
|
+
md: "size-4"
|
|
889
1007
|
};
|
|
890
1008
|
var Checkbox = forwardRef(function Checkbox2({
|
|
891
1009
|
checked,
|
|
@@ -928,7 +1046,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
928
1046
|
"indeterminate:border-primary indeterminate:bg-primary",
|
|
929
1047
|
"hover:border-ring",
|
|
930
1048
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
931
|
-
"focus-visible:outline-none focus-visible:ring-
|
|
1049
|
+
"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-primary-glow"
|
|
932
1050
|
),
|
|
933
1051
|
...rest
|
|
934
1052
|
}
|
|
@@ -938,7 +1056,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
938
1056
|
{
|
|
939
1057
|
"aria-hidden": "true",
|
|
940
1058
|
strokeWidth: 3,
|
|
941
|
-
className: "pointer-events-none absolute inset-0 m-auto
|
|
1059
|
+
className: "pointer-events-none absolute inset-0 m-auto size-3 text-primary-foreground opacity-0 peer-checked:opacity-100 peer-indeterminate:opacity-0"
|
|
942
1060
|
}
|
|
943
1061
|
),
|
|
944
1062
|
/* @__PURE__ */ jsx(
|
|
@@ -946,7 +1064,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
946
1064
|
{
|
|
947
1065
|
"aria-hidden": "true",
|
|
948
1066
|
strokeWidth: 3,
|
|
949
|
-
className: "pointer-events-none absolute inset-0 m-auto
|
|
1067
|
+
className: "pointer-events-none absolute inset-0 m-auto size-3 text-primary-foreground opacity-0 peer-indeterminate:opacity-100"
|
|
950
1068
|
}
|
|
951
1069
|
)
|
|
952
1070
|
] });
|
|
@@ -963,20 +1081,20 @@ var datePickerTriggerSizeClass = {
|
|
|
963
1081
|
md: "h-9 rounded-md ps-3 pe-9 text-sm gap-2",
|
|
964
1082
|
lg: "h-11 rounded-md ps-4 pe-10 text-base gap-2"
|
|
965
1083
|
};
|
|
966
|
-
var datePickerTriggerBaseClass = "group/datepicker relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-visible:ring-
|
|
1084
|
+
var datePickerTriggerBaseClass = "group/datepicker relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-visible:ring-[3px] focus-visible:ring-primary-glow aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive/40 disabled:pointer-events-none disabled:opacity-50 cursor-pointer";
|
|
967
1085
|
var datePickerPlaceholderClass = "truncate text-muted-foreground";
|
|
968
1086
|
var datePickerValueClass = "truncate text-foreground";
|
|
969
1087
|
var datePickerContentClass = "z-50 overflow-hidden rounded-md border border-border bg-popover p-3 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
970
1088
|
var datePickerCalendarClass = "text-sm";
|
|
971
1089
|
var datePickerCaptionClass = "flex items-center justify-between gap-2 pb-2 text-sm font-semibold";
|
|
972
|
-
var datePickerNavButtonClass = "inline-flex
|
|
1090
|
+
var datePickerNavButtonClass = "inline-flex size-7 items-center justify-center rounded-md border border-input bg-background text-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50";
|
|
973
1091
|
var datePickerDayWrapperClass = "p-0 text-center";
|
|
974
|
-
var datePickerDayBaseClass = "inline-flex
|
|
1092
|
+
var datePickerDayBaseClass = "inline-flex size-8 items-center justify-center rounded-md text-sm text-foreground font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40";
|
|
975
1093
|
var datePickerSelectedClass = "[&_button]:bg-primary [&_button]:text-primary-foreground [&_button]:hover:bg-primary [&_button]:hover:text-primary-foreground";
|
|
976
1094
|
var datePickerTodayClass = "[&_button]:font-semibold [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-ring/40";
|
|
977
1095
|
var datePickerOutsideClass = "[&_button]:text-muted-foreground [&_button]:opacity-60";
|
|
978
1096
|
var datePickerDisabledClass = "[&_button]:pointer-events-none [&_button]:opacity-40";
|
|
979
|
-
var datePickerWeekdayClass = "
|
|
1097
|
+
var datePickerWeekdayClass = "size-8 text-center text-xs font-medium text-muted-foreground";
|
|
980
1098
|
var datePickerWeekClass = "flex w-full";
|
|
981
1099
|
var datePickerWeekdaysClass = "flex w-full";
|
|
982
1100
|
var datePickerMonthGridClass = "w-full border-collapse";
|
|
@@ -1287,6 +1405,9 @@ var pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
|
1287
1405
|
var pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
1288
1406
|
var pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
1289
1407
|
var pageHeaderTitleClass = "text-2xl font-semibold tracking-tight text-foreground";
|
|
1408
|
+
var pageHeaderEyebrowClass = "text-xs font-semibold uppercase tracking-wide text-primary";
|
|
1409
|
+
var pageHeaderTitleLineClass = "flex flex-wrap items-center gap-x-2.5 gap-y-1";
|
|
1410
|
+
var pageHeaderTitleMetaClass = "shrink-0";
|
|
1290
1411
|
var pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
1291
1412
|
var pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
1292
1413
|
var pageHeaderBackClass = "inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-md";
|
|
@@ -1295,6 +1416,8 @@ var pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
|
1295
1416
|
var PageHeader = forwardRef(function PageHeader2({
|
|
1296
1417
|
title,
|
|
1297
1418
|
description,
|
|
1419
|
+
eyebrow,
|
|
1420
|
+
titleMeta,
|
|
1298
1421
|
breadcrumbs,
|
|
1299
1422
|
back,
|
|
1300
1423
|
actions,
|
|
@@ -1315,11 +1438,15 @@ var PageHeader = forwardRef(function PageHeader2({
|
|
|
1315
1438
|
back ? /* @__PURE__ */ jsx(PageHeaderBack, { ...back }) : null,
|
|
1316
1439
|
/* @__PURE__ */ jsxs("div", { "data-slot": "page-header-row", className: pageHeaderTitleRowClass, children: [
|
|
1317
1440
|
/* @__PURE__ */ jsxs("div", { className: pageHeaderTitleBlockClass, children: [
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1441
|
+
eyebrow ? /* @__PURE__ */ jsx("p", { "data-slot": "page-header-eyebrow", className: pageHeaderEyebrowClass, children: eyebrow }) : null,
|
|
1442
|
+
/* @__PURE__ */ jsxs("div", { className: pageHeaderTitleLineClass, children: [
|
|
1443
|
+
createElement(
|
|
1444
|
+
as,
|
|
1445
|
+
{ "data-slot": "page-header-title", className: pageHeaderTitleClass },
|
|
1446
|
+
title
|
|
1447
|
+
),
|
|
1448
|
+
titleMeta ? /* @__PURE__ */ jsx("span", { "data-slot": "page-header-title-meta", className: pageHeaderTitleMetaClass, children: titleMeta }) : null
|
|
1449
|
+
] }),
|
|
1323
1450
|
description ? /* @__PURE__ */ jsx("p", { "data-slot": "page-header-description", className: pageHeaderDescriptionClass, children: description }) : null
|
|
1324
1451
|
] }),
|
|
1325
1452
|
actions ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-actions", className: pageHeaderActionsClass, children: actions }) : null
|
|
@@ -1351,7 +1478,7 @@ function PageHeaderBack({ label = "Back", to, onClick, render }) {
|
|
|
1351
1478
|
var detailPageBaseClass = "flex w-full flex-col gap-6";
|
|
1352
1479
|
var detailPageBodyClass = "flex flex-col gap-6";
|
|
1353
1480
|
var detailPageSkeletonRowClass = "h-5 w-full animate-pulse rounded-md bg-muted";
|
|
1354
|
-
var detailPageEmptyClass = "rounded-
|
|
1481
|
+
var detailPageEmptyClass = "rounded-xl border border-border bg-card";
|
|
1355
1482
|
var DEFAULT_LABELS_LTR = {
|
|
1356
1483
|
back: "Back",
|
|
1357
1484
|
notFoundTitle: "Not found",
|
|
@@ -2018,7 +2145,7 @@ var inputSizeClass = {
|
|
|
2018
2145
|
md: "h-9 rounded-md px-3 text-sm gap-2",
|
|
2019
2146
|
lg: "h-11 rounded-md px-4 text-base gap-2.5"
|
|
2020
2147
|
};
|
|
2021
|
-
var inputBaseClass = "group/input relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-within:ring-
|
|
2148
|
+
var inputBaseClass = "group/input relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-within:ring-[3px] focus-within:ring-primary-glow aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive/40 has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0";
|
|
2022
2149
|
var Input = forwardRef(function Input2({
|
|
2023
2150
|
variant = "default",
|
|
2024
2151
|
inputSize = "md",
|
|
@@ -2052,7 +2179,7 @@ var Input = forwardRef(function Input2({
|
|
|
2052
2179
|
"span",
|
|
2053
2180
|
{
|
|
2054
2181
|
"aria-hidden": "true",
|
|
2055
|
-
className: "inline-flex
|
|
2182
|
+
className: "inline-flex size-4 items-center justify-center text-muted-foreground",
|
|
2056
2183
|
children: leadingIcon
|
|
2057
2184
|
}
|
|
2058
2185
|
) : null,
|
|
@@ -2076,7 +2203,7 @@ var Input = forwardRef(function Input2({
|
|
|
2076
2203
|
"span",
|
|
2077
2204
|
{
|
|
2078
2205
|
"aria-hidden": "true",
|
|
2079
|
-
className: "inline-flex
|
|
2206
|
+
className: "inline-flex size-4 items-center justify-center text-muted-foreground",
|
|
2080
2207
|
children: trailingIcon
|
|
2081
2208
|
}
|
|
2082
2209
|
) : null
|
|
@@ -2197,7 +2324,7 @@ function Pagination({
|
|
|
2197
2324
|
disabled: isFirst,
|
|
2198
2325
|
onClick: goPrev,
|
|
2199
2326
|
"aria-label": labels.previousPage,
|
|
2200
|
-
children: isRtl ? /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": "true", className: "
|
|
2327
|
+
children: isRtl ? /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": "true", className: "size-3.5" }) : /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": "true", className: "size-3.5" })
|
|
2201
2328
|
}
|
|
2202
2329
|
),
|
|
2203
2330
|
/* @__PURE__ */ jsxs("span", { className: "px-1 text-foreground", children: [
|
|
@@ -2214,7 +2341,7 @@ function Pagination({
|
|
|
2214
2341
|
disabled: isLast,
|
|
2215
2342
|
onClick: goNext,
|
|
2216
2343
|
"aria-label": labels.nextPage,
|
|
2217
|
-
children: isRtl ? /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": "true", className: "
|
|
2344
|
+
children: isRtl ? /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": "true", className: "size-3.5" }) : /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": "true", className: "size-3.5" })
|
|
2218
2345
|
}
|
|
2219
2346
|
)
|
|
2220
2347
|
] })
|
|
@@ -2243,23 +2370,23 @@ function Toolbar({ count, onClear, renderLabel, clearLabel, children }) {
|
|
|
2243
2370
|
var tableSizeClass = {
|
|
2244
2371
|
sm: {
|
|
2245
2372
|
row: "",
|
|
2246
|
-
cell: "px-3 py-1.5 text-xs",
|
|
2373
|
+
cell: "px-3 py-1.5 text-xs tabular-nums",
|
|
2247
2374
|
head: "whitespace-nowrap px-3 py-2 text-xs font-medium"
|
|
2248
2375
|
},
|
|
2249
2376
|
md: {
|
|
2250
2377
|
row: "",
|
|
2251
|
-
cell: "px-4 py-2.5 text-sm",
|
|
2378
|
+
cell: "px-4 py-2.5 text-sm tabular-nums",
|
|
2252
2379
|
head: "whitespace-nowrap px-4 py-2.5 text-xs font-medium uppercase tracking-wide"
|
|
2253
2380
|
},
|
|
2254
2381
|
lg: {
|
|
2255
2382
|
row: "",
|
|
2256
|
-
cell: "px-5 py-3.5 text-sm",
|
|
2383
|
+
cell: "px-5 py-3.5 text-sm tabular-nums",
|
|
2257
2384
|
head: "whitespace-nowrap px-5 py-3 text-sm font-medium"
|
|
2258
2385
|
}
|
|
2259
2386
|
};
|
|
2260
2387
|
var tableBaseClass = "w-full caption-bottom border-collapse";
|
|
2261
|
-
var selectedRowClass = "bg-
|
|
2262
|
-
var sortIconClass = "inline-flex
|
|
2388
|
+
var selectedRowClass = "bg-primary/10";
|
|
2389
|
+
var sortIconClass = "inline-flex size-3 shrink-0 items-center justify-center";
|
|
2263
2390
|
var alignClass = {
|
|
2264
2391
|
start: "text-start",
|
|
2265
2392
|
center: "text-center",
|
|
@@ -2386,7 +2513,7 @@ function Table(props) {
|
|
|
2386
2513
|
"div",
|
|
2387
2514
|
{
|
|
2388
2515
|
className: cn(
|
|
2389
|
-
"overflow-x-auto rounded-
|
|
2516
|
+
"overflow-x-auto rounded-xl border border-border bg-card shadow-[var(--shadow-card)]",
|
|
2390
2517
|
maxHeight !== void 0 && "overflow-y-auto"
|
|
2391
2518
|
),
|
|
2392
2519
|
style: maxHeight !== void 0 ? { maxHeight } : void 0,
|
|
@@ -2404,9 +2531,11 @@ function Table(props) {
|
|
|
2404
2531
|
"thead",
|
|
2405
2532
|
{
|
|
2406
2533
|
className: cn(
|
|
2407
|
-
//
|
|
2408
|
-
// scrolling underneath it
|
|
2409
|
-
|
|
2534
|
+
// Clean opaque header (so a sticky header fully hides the rows
|
|
2535
|
+
// scrolling underneath it) with a hairline bottom rule drawn via an
|
|
2536
|
+
// inset shadow — it stays attached to the sticky header instead of
|
|
2537
|
+
// collapsing into the first row's border.
|
|
2538
|
+
"bg-card text-muted-foreground shadow-[inset_0_-1px_0_var(--color-border)]",
|
|
2410
2539
|
maxHeight !== void 0 && "sticky top-0 z-10"
|
|
2411
2540
|
),
|
|
2412
2541
|
children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
@@ -2483,8 +2612,8 @@ function Table(props) {
|
|
|
2483
2612
|
"data-selected": isSelected ? "true" : void 0,
|
|
2484
2613
|
"aria-selected": enableRowSelection ? isSelected : void 0,
|
|
2485
2614
|
className: cn(
|
|
2486
|
-
"border-t border-border transition-colors",
|
|
2487
|
-
"hover:bg-
|
|
2615
|
+
"border-t border-border/60 first:border-t-0 transition-colors",
|
|
2616
|
+
"hover:bg-primary/5",
|
|
2488
2617
|
striped && rowIndex % 2 === 1 && "bg-muted/20",
|
|
2489
2618
|
isSelected && selectedRowClass,
|
|
2490
2619
|
onRowClick && "cursor-pointer"
|
|
@@ -2567,10 +2696,7 @@ function SkeletonRows({ rowCount, columnCount, cellClassName }) {
|
|
|
2567
2696
|
return /* @__PURE__ */ jsx(Fragment, { children: rowKeys.map((rowKey) => /* @__PURE__ */ jsx("tr", { className: "border-t border-border", "data-testid": "table-skeleton-row", children: colKeys.map((colKey) => /* @__PURE__ */ jsx("td", { className: cellClassName, children: /* @__PURE__ */ jsx("span", { className: "block h-3 w-full animate-pulse rounded bg-muted" }) }, `${rowKey}-${colKey}`)) }, rowKey)) });
|
|
2568
2697
|
}
|
|
2569
2698
|
function SortIndicator({ active, direction }) {
|
|
2570
|
-
const className = cn(
|
|
2571
|
-
"h-3.5 w-3.5 shrink-0",
|
|
2572
|
-
active ? "text-foreground" : "text-muted-foreground"
|
|
2573
|
-
);
|
|
2699
|
+
const className = cn("size-3.5 shrink-0", active ? "text-foreground" : "text-muted-foreground");
|
|
2574
2700
|
if (!active) return /* @__PURE__ */ jsx(ChevronsUpDown, { "aria-hidden": "true", className });
|
|
2575
2701
|
return direction === "asc" ? /* @__PURE__ */ jsx(ChevronUp, { "aria-hidden": "true", className }) : /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true", className });
|
|
2576
2702
|
}
|
|
@@ -2586,13 +2712,14 @@ var selectSizeClass = {
|
|
|
2586
2712
|
md: "h-9 rounded-md ps-3 pe-9 text-sm",
|
|
2587
2713
|
lg: "h-11 rounded-md ps-4 pe-10 text-base"
|
|
2588
2714
|
};
|
|
2589
|
-
var selectBaseClass = "group/select relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus:ring-
|
|
2715
|
+
var selectBaseClass = "group/select relative inline-flex w-full items-center text-foreground outline-none transition-[background-color,border-color,box-shadow] focus:ring-[3px] focus:ring-primary-glow aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:ring-destructive/40 disabled:pointer-events-none disabled:opacity-50 cursor-pointer data-[placeholder]:text-muted-foreground";
|
|
2590
2716
|
var selectContentClass = "z-50 max-h-(--radix-select-content-available-height) min-w-(--radix-select-trigger-width) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
2591
2717
|
var selectViewportClass = "p-1";
|
|
2592
2718
|
var selectItemClass = "relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
2593
|
-
var selectItemIndicatorClass = "absolute start-2 inline-flex
|
|
2719
|
+
var selectItemIndicatorClass = "absolute start-2 inline-flex size-3.5 items-center justify-center [&_svg]:h-3.5 [&_svg]:w-3.5";
|
|
2594
2720
|
var selectGroupLabelClass = "px-2 py-1.5 text-xs font-semibold text-muted-foreground";
|
|
2595
2721
|
var selectSeparatorClass = "-mx-1 my-1 h-px bg-border";
|
|
2722
|
+
var selectStatusClass = "flex items-center justify-center gap-2 px-2 py-6 text-center text-sm text-muted-foreground";
|
|
2596
2723
|
|
|
2597
2724
|
// src/components/multi-select/multiSelectVariants.ts
|
|
2598
2725
|
var multiSelectTriggerSizeClass = {
|
|
@@ -2610,11 +2737,13 @@ var multiSelectOptionClass = "flex w-full cursor-pointer select-none items-cente
|
|
|
2610
2737
|
var multiSelectEmptyClass = "px-2 py-6 text-center text-sm text-muted-foreground";
|
|
2611
2738
|
var DEFAULT_LABELS_LTR4 = {
|
|
2612
2739
|
search: "Search\u2026",
|
|
2613
|
-
empty: "No results"
|
|
2740
|
+
empty: "No results",
|
|
2741
|
+
loading: "Loading\u2026"
|
|
2614
2742
|
};
|
|
2615
2743
|
var DEFAULT_LABELS_RTL4 = {
|
|
2616
2744
|
search: "\u0628\u062D\u062B\u2026",
|
|
2617
|
-
empty: "\u0644\u0627 \u0646\u062A\u0627\u0626\u062C"
|
|
2745
|
+
empty: "\u0644\u0627 \u0646\u062A\u0627\u0626\u062C",
|
|
2746
|
+
loading: "\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0645\u064A\u0644\u2026"
|
|
2618
2747
|
};
|
|
2619
2748
|
function toArray(value) {
|
|
2620
2749
|
return Array.isArray(value) ? value : [];
|
|
@@ -2624,6 +2753,7 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
2624
2753
|
selectSize = "md",
|
|
2625
2754
|
options,
|
|
2626
2755
|
placeholder,
|
|
2756
|
+
loading = false,
|
|
2627
2757
|
value,
|
|
2628
2758
|
defaultValue,
|
|
2629
2759
|
onValueChange,
|
|
@@ -2704,7 +2834,10 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
2704
2834
|
className
|
|
2705
2835
|
),
|
|
2706
2836
|
children: [
|
|
2707
|
-
/* @__PURE__ */ jsx("span", { className: multiSelectValueRowClass, children:
|
|
2837
|
+
/* @__PURE__ */ jsx("span", { className: multiSelectValueRowClass, children: loading ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
2838
|
+
/* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-4 shrink-0 animate-spin" }),
|
|
2839
|
+
labels.loading
|
|
2840
|
+
] }) : selected.length === 0 ? /* @__PURE__ */ jsx("span", { className: "truncate text-muted-foreground", children: placeholder }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2708
2841
|
shownValues.map((v) => /* @__PURE__ */ jsxs(Badge, { variant: "default", size: "sm", className: multiSelectChipClass, children: [
|
|
2709
2842
|
/* @__PURE__ */ jsx("span", { className: "truncate", children: labelByValue.get(v) ?? v }),
|
|
2710
2843
|
/* @__PURE__ */ jsx(
|
|
@@ -2739,7 +2872,7 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
2739
2872
|
]
|
|
2740
2873
|
}
|
|
2741
2874
|
) }),
|
|
2742
|
-
/* @__PURE__ */ jsx(RadixPopover.Portal, { children: /* @__PURE__ */
|
|
2875
|
+
/* @__PURE__ */ jsx(RadixPopover.Portal, { children: /* @__PURE__ */ jsx(
|
|
2743
2876
|
RadixPopover.Content,
|
|
2744
2877
|
{
|
|
2745
2878
|
align: "start",
|
|
@@ -2749,7 +2882,10 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
2749
2882
|
onOpenAutoFocus: (event) => {
|
|
2750
2883
|
if (!searchable) event.preventDefault();
|
|
2751
2884
|
},
|
|
2752
|
-
children: [
|
|
2885
|
+
children: loading ? /* @__PURE__ */ jsx("div", { className: multiSelectEmptyClass, children: /* @__PURE__ */ jsxs("span", { className: "flex items-center justify-center gap-2", children: [
|
|
2886
|
+
/* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-4 shrink-0 animate-spin" }),
|
|
2887
|
+
labels.loading
|
|
2888
|
+
] }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2753
2889
|
searchable ? /* @__PURE__ */ jsx("div", { className: multiSelectSearchRowClass, children: /* @__PURE__ */ jsx(
|
|
2754
2890
|
Input,
|
|
2755
2891
|
{
|
|
@@ -2789,7 +2925,7 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
2789
2925
|
option.value
|
|
2790
2926
|
);
|
|
2791
2927
|
}) })
|
|
2792
|
-
]
|
|
2928
|
+
] })
|
|
2793
2929
|
}
|
|
2794
2930
|
) })
|
|
2795
2931
|
] });
|
|
@@ -2803,6 +2939,9 @@ var Select = forwardRef(function Select2({
|
|
|
2803
2939
|
selectSize = "md",
|
|
2804
2940
|
options,
|
|
2805
2941
|
placeholder,
|
|
2942
|
+
loading = false,
|
|
2943
|
+
loadingText = "Loading\u2026",
|
|
2944
|
+
emptyText = "No options",
|
|
2806
2945
|
value,
|
|
2807
2946
|
defaultValue,
|
|
2808
2947
|
onValueChange,
|
|
@@ -2861,7 +3000,7 @@ var Select = forwardRef(function Select2({
|
|
|
2861
3000
|
className
|
|
2862
3001
|
),
|
|
2863
3002
|
children: [
|
|
2864
|
-
/* @__PURE__ */ jsx(RadixSelect.Value, { placeholder }),
|
|
3003
|
+
/* @__PURE__ */ jsx(RadixSelect.Value, { placeholder, children: loading ? /* @__PURE__ */ jsx("span", { className: "flex items-center gap-2 text-muted-foreground", children: /* @__PURE__ */ jsx(SelectLoading, { text: loadingText }) }) : void 0 }),
|
|
2865
3004
|
/* @__PURE__ */ jsx(RadixSelect.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { className: "pointer-events-none absolute end-3 top-1/2 size-4 shrink-0 -translate-y-1/2 text-muted-foreground" }) })
|
|
2866
3005
|
]
|
|
2867
3006
|
}
|
|
@@ -2875,7 +3014,7 @@ var Select = forwardRef(function Select2({
|
|
|
2875
3014
|
className: selectContentClass,
|
|
2876
3015
|
children: [
|
|
2877
3016
|
/* @__PURE__ */ jsx(RadixSelect.ScrollUpButton, { className: "flex h-6 cursor-default items-center justify-center bg-popover text-muted-foreground", children: /* @__PURE__ */ jsx(ChevronUp, { className: "size-4" }) }),
|
|
2878
|
-
/* @__PURE__ */ jsx(RadixSelect.Viewport, { className: selectViewportClass, children: children ?? (
|
|
3017
|
+
/* @__PURE__ */ jsx(RadixSelect.Viewport, { className: selectViewportClass, children: children ?? renderViewportContent({ loading, options, loadingText, emptyText }) }),
|
|
2879
3018
|
/* @__PURE__ */ jsx(RadixSelect.ScrollDownButton, { className: "flex h-6 cursor-default items-center justify-center bg-popover text-muted-foreground", children: /* @__PURE__ */ jsx(ChevronDown, { className: "size-4" }) })
|
|
2880
3019
|
]
|
|
2881
3020
|
}
|
|
@@ -2884,6 +3023,26 @@ var Select = forwardRef(function Select2({
|
|
|
2884
3023
|
}
|
|
2885
3024
|
);
|
|
2886
3025
|
});
|
|
3026
|
+
function SelectLoading({ text }) {
|
|
3027
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3028
|
+
/* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-4 shrink-0 animate-spin" }),
|
|
3029
|
+
text
|
|
3030
|
+
] });
|
|
3031
|
+
}
|
|
3032
|
+
function renderViewportContent({
|
|
3033
|
+
loading,
|
|
3034
|
+
options,
|
|
3035
|
+
loadingText,
|
|
3036
|
+
emptyText
|
|
3037
|
+
}) {
|
|
3038
|
+
if (loading) {
|
|
3039
|
+
return /* @__PURE__ */ jsx("div", { className: selectStatusClass, role: "presentation", children: /* @__PURE__ */ jsx(SelectLoading, { text: loadingText }) });
|
|
3040
|
+
}
|
|
3041
|
+
if (!options || options.length === 0) {
|
|
3042
|
+
return /* @__PURE__ */ jsx("div", { className: selectStatusClass, role: "presentation", children: emptyText });
|
|
3043
|
+
}
|
|
3044
|
+
return renderOptions(options);
|
|
3045
|
+
}
|
|
2887
3046
|
function renderOptions(options) {
|
|
2888
3047
|
if (isGroupedOptions(options)) {
|
|
2889
3048
|
const lastIndex = options.length - 1;
|
|
@@ -2920,10 +3079,21 @@ function hasActiveFilters(filters, values) {
|
|
|
2920
3079
|
}
|
|
2921
3080
|
return false;
|
|
2922
3081
|
}
|
|
3082
|
+
function countActiveFilters(filters, values) {
|
|
3083
|
+
let count = 0;
|
|
3084
|
+
for (const filter of filters ?? []) {
|
|
3085
|
+
const current = values?.[filter.key];
|
|
3086
|
+
if (current === void 0) continue;
|
|
3087
|
+
const value = filter.type === "text" ? current.trim() : current;
|
|
3088
|
+
if (value !== filterDefaultValue(filter)) count += 1;
|
|
3089
|
+
}
|
|
3090
|
+
return count;
|
|
3091
|
+
}
|
|
2923
3092
|
function DebouncedFilterInput({
|
|
2924
3093
|
value,
|
|
2925
3094
|
onChange,
|
|
2926
3095
|
debounceMs,
|
|
3096
|
+
id,
|
|
2927
3097
|
ariaLabel,
|
|
2928
3098
|
placeholder,
|
|
2929
3099
|
wrapperClassName,
|
|
@@ -2961,6 +3131,7 @@ function DebouncedFilterInput({
|
|
|
2961
3131
|
return /* @__PURE__ */ jsx(
|
|
2962
3132
|
Input,
|
|
2963
3133
|
{
|
|
3134
|
+
id,
|
|
2964
3135
|
type: "search",
|
|
2965
3136
|
"aria-label": ariaLabel,
|
|
2966
3137
|
placeholder,
|
|
@@ -2982,7 +3153,6 @@ function ListPageFilterBar({
|
|
|
2982
3153
|
labels
|
|
2983
3154
|
}) {
|
|
2984
3155
|
const manual = mode === "manual";
|
|
2985
|
-
const active = hasActiveFilters(filters, values);
|
|
2986
3156
|
const appliedKey = JSON.stringify(values ?? {});
|
|
2987
3157
|
const [draft, setDraft] = useState(values ?? {});
|
|
2988
3158
|
useEffect(() => {
|
|
@@ -3013,8 +3183,11 @@ function ListPageFilterBar({
|
|
|
3013
3183
|
for (const filter of filters ?? []) {
|
|
3014
3184
|
onChange?.(filter.key, filterDefaultValue(filter));
|
|
3015
3185
|
}
|
|
3186
|
+
if (manual) setDraft({});
|
|
3016
3187
|
};
|
|
3017
|
-
|
|
3188
|
+
if (!filters || filters.length === 0) return null;
|
|
3189
|
+
const activeCount = countActiveFilters(filters, effectiveValues);
|
|
3190
|
+
const controls = /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", children: filters.map((filter) => /* @__PURE__ */ jsx(
|
|
3018
3191
|
FilterControl,
|
|
3019
3192
|
{
|
|
3020
3193
|
filter,
|
|
@@ -3025,26 +3198,55 @@ function ListPageFilterBar({
|
|
|
3025
3198
|
},
|
|
3026
3199
|
filter.key
|
|
3027
3200
|
)) });
|
|
3028
|
-
const
|
|
3029
|
-
/* @__PURE__ */ jsx(
|
|
3030
|
-
|
|
3031
|
-
|
|
3201
|
+
const header = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-border bg-primary/5 px-4 py-3", children: [
|
|
3202
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-foreground", children: labels.title ?? "Filters" }),
|
|
3203
|
+
activeCount > 0 ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-xs font-semibold text-primary", children: [
|
|
3204
|
+
activeCount,
|
|
3205
|
+
" ",
|
|
3206
|
+
labels.activeLabel ?? "active"
|
|
3207
|
+
] }) : null,
|
|
3208
|
+
activeCount > 0 && !disabled ? /* @__PURE__ */ jsxs(Button, { type: "button", variant: "ghost", size: "sm", className: "ms-auto", onClick: reset, children: [
|
|
3209
|
+
/* @__PURE__ */ jsx(RefreshCw, { className: "size-4" }),
|
|
3210
|
+
labels.reset
|
|
3211
|
+
] }) : null
|
|
3212
|
+
] });
|
|
3213
|
+
const cardClass = "overflow-hidden rounded-xl border border-border bg-card";
|
|
3032
3214
|
if (manual) {
|
|
3033
|
-
return /* @__PURE__ */ jsxs("form", { "data-slot": "list-page-filter-bar", className:
|
|
3034
|
-
|
|
3035
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
3036
|
-
|
|
3037
|
-
/* @__PURE__ */ jsx(
|
|
3215
|
+
return /* @__PURE__ */ jsxs("form", { "data-slot": "list-page-filter-bar", className: cardClass, onSubmit: apply, children: [
|
|
3216
|
+
header,
|
|
3217
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4", children: [
|
|
3218
|
+
controls,
|
|
3219
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
|
|
3220
|
+
Button,
|
|
3221
|
+
{
|
|
3222
|
+
type: "submit",
|
|
3223
|
+
size: "sm",
|
|
3224
|
+
leadingIcon: /* @__PURE__ */ jsx(Search, { className: "size-4" }),
|
|
3225
|
+
className: "min-w-32",
|
|
3226
|
+
disabled: disabled || !dirty,
|
|
3227
|
+
children: labels.apply ?? "Apply"
|
|
3228
|
+
}
|
|
3229
|
+
) })
|
|
3038
3230
|
] })
|
|
3039
3231
|
] });
|
|
3040
3232
|
}
|
|
3041
|
-
return /* @__PURE__ */ jsxs("div", { "data-slot": "list-page-filter-bar", className:
|
|
3042
|
-
|
|
3043
|
-
|
|
3233
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "list-page-filter-bar", className: cardClass, children: [
|
|
3234
|
+
header,
|
|
3235
|
+
/* @__PURE__ */ jsx("div", { className: "p-4", children: controls })
|
|
3044
3236
|
] });
|
|
3045
3237
|
}
|
|
3046
3238
|
function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
3047
3239
|
const spanClass = FILTER_SPAN_CLASS[filter.width ?? "default"];
|
|
3240
|
+
const label = filter.label ?? filter.key;
|
|
3241
|
+
return /* @__PURE__ */ jsx(Field, { label, className: spanClass, children: renderFilterControl({ filter, value, onChange, disabled, mode }) });
|
|
3242
|
+
}
|
|
3243
|
+
function renderFilterControl({
|
|
3244
|
+
filter,
|
|
3245
|
+
value,
|
|
3246
|
+
onChange,
|
|
3247
|
+
disabled,
|
|
3248
|
+
mode
|
|
3249
|
+
}) {
|
|
3048
3250
|
const ariaLabel = typeof filter.label === "string" ? filter.label : filter.key;
|
|
3049
3251
|
switch (filter.type) {
|
|
3050
3252
|
case "select":
|
|
@@ -3055,7 +3257,6 @@ function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
|
3055
3257
|
value: value ?? filterDefaultValue(filter),
|
|
3056
3258
|
onValueChange: (v) => onChange?.(filter.key, v),
|
|
3057
3259
|
options: filter.options,
|
|
3058
|
-
className: spanClass,
|
|
3059
3260
|
disabled
|
|
3060
3261
|
}
|
|
3061
3262
|
);
|
|
@@ -3068,7 +3269,6 @@ function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
|
3068
3269
|
debounceMs: mode === "live" ? filter.debounceMs ?? DEFAULT_TEXT_DEBOUNCE_MS : 0,
|
|
3069
3270
|
ariaLabel,
|
|
3070
3271
|
placeholder: filter.placeholder,
|
|
3071
|
-
wrapperClassName: spanClass,
|
|
3072
3272
|
disabled
|
|
3073
3273
|
}
|
|
3074
3274
|
);
|
|
@@ -3080,7 +3280,6 @@ function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
|
3080
3280
|
placeholder: filter.placeholder,
|
|
3081
3281
|
value: value ?? "",
|
|
3082
3282
|
onValueChange: (v) => onChange?.(filter.key, v),
|
|
3083
|
-
className: spanClass,
|
|
3084
3283
|
disabled
|
|
3085
3284
|
}
|
|
3086
3285
|
);
|
|
@@ -3093,7 +3292,6 @@ function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
|
3093
3292
|
options: filter.options,
|
|
3094
3293
|
value: value ? value.split(",").filter(Boolean) : [],
|
|
3095
3294
|
onValueChange: (values) => onChange?.(filter.key, values.join(",")),
|
|
3096
|
-
className: spanClass,
|
|
3097
3295
|
disabled
|
|
3098
3296
|
}
|
|
3099
3297
|
);
|
|
@@ -3102,6 +3300,8 @@ function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
|
3102
3300
|
var EN_LABELS2 = {
|
|
3103
3301
|
reset: "Reset filters",
|
|
3104
3302
|
apply: "Apply",
|
|
3303
|
+
filtersTitle: "Filters",
|
|
3304
|
+
filtersActive: "active",
|
|
3105
3305
|
emptyTitle: "No results",
|
|
3106
3306
|
emptyDescription: "Try clearing the search or adjusting the filters.",
|
|
3107
3307
|
noDataTitle: "No data yet",
|
|
@@ -3109,7 +3309,9 @@ var EN_LABELS2 = {
|
|
|
3109
3309
|
};
|
|
3110
3310
|
var AR_LABELS2 = {
|
|
3111
3311
|
reset: "\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0641\u0644\u0627\u062A\u0631",
|
|
3112
|
-
apply: "\u062A\
|
|
3312
|
+
apply: "\u0639\u0631\u0636 \u0627\u0644\u0646\u062A\u0627\u0626\u062C",
|
|
3313
|
+
filtersTitle: "\u0627\u0644\u062A\u0635\u0641\u064A\u0629",
|
|
3314
|
+
filtersActive: "\u0645\u0641\u0639\u0651\u0644",
|
|
3113
3315
|
emptyTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C",
|
|
3114
3316
|
emptyDescription: "\u062C\u0631\u0651\u0628 \u0645\u0633\u062D \u0627\u0644\u0628\u062D\u062B \u0623\u0648 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0641\u0644\u0627\u062A\u0631.",
|
|
3115
3317
|
noDataTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0628\u0639\u062F",
|
|
@@ -3134,6 +3336,7 @@ function ListPage({
|
|
|
3134
3336
|
pagination,
|
|
3135
3337
|
onPaginationChange,
|
|
3136
3338
|
totalCount,
|
|
3339
|
+
eyebrow,
|
|
3137
3340
|
pageSizeOptions,
|
|
3138
3341
|
emptyState,
|
|
3139
3342
|
noDataState,
|
|
@@ -3154,7 +3357,17 @@ function ListPage({
|
|
|
3154
3357
|
};
|
|
3155
3358
|
const tableMode = isLoading ? "loading" : data.length === 0 && !hasActiveQuery ? "no-data" : data.length === 0 && hasActiveQuery ? "no-results" : "rows";
|
|
3156
3359
|
return /* @__PURE__ */ jsxs("div", { "data-slot": "list-page", className: cn("space-y-6", className), children: [
|
|
3157
|
-
/* @__PURE__ */ jsx(
|
|
3360
|
+
/* @__PURE__ */ jsx(
|
|
3361
|
+
PageHeader,
|
|
3362
|
+
{
|
|
3363
|
+
title,
|
|
3364
|
+
description,
|
|
3365
|
+
eyebrow,
|
|
3366
|
+
titleMeta: typeof totalCount === "number" && totalCount > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "primary", tone: "soft", size: "sm", children: totalCount }) : void 0,
|
|
3367
|
+
bordered,
|
|
3368
|
+
actions
|
|
3369
|
+
}
|
|
3370
|
+
),
|
|
3158
3371
|
showFilterBar ? /* @__PURE__ */ jsx(
|
|
3159
3372
|
ListPageFilterBar,
|
|
3160
3373
|
{
|
|
@@ -3162,7 +3375,12 @@ function ListPage({
|
|
|
3162
3375
|
values: filterValues,
|
|
3163
3376
|
onChange: onFilterChange,
|
|
3164
3377
|
mode: filterMode,
|
|
3165
|
-
labels: {
|
|
3378
|
+
labels: {
|
|
3379
|
+
reset: labels.reset,
|
|
3380
|
+
apply: labels.apply,
|
|
3381
|
+
title: labels.filtersTitle,
|
|
3382
|
+
activeLabel: labels.filtersActive
|
|
3383
|
+
}
|
|
3166
3384
|
}
|
|
3167
3385
|
) : null,
|
|
3168
3386
|
tableMode === "loading" || tableMode === "rows" ? /* @__PURE__ */ jsx(
|
|
@@ -3239,7 +3457,7 @@ var radioLabelSizeClass = {
|
|
|
3239
3457
|
md: "text-sm",
|
|
3240
3458
|
lg: "text-base"
|
|
3241
3459
|
};
|
|
3242
|
-
var radioItemBaseClass = "aspect-square shrink-0 rounded-full border border-input bg-background text-primary outline-none transition-colors focus-visible:ring-
|
|
3460
|
+
var radioItemBaseClass = "aspect-square shrink-0 rounded-full border border-input bg-background text-primary outline-none transition-colors focus-visible:ring-[3px] focus-visible:ring-primary-glow hover:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive/40 data-[state=checked]:border-primary";
|
|
3243
3461
|
var radioIndicatorBaseClass = "flex h-full w-full items-center justify-center";
|
|
3244
3462
|
var radioIndicatorDotClass = "rounded-full bg-primary";
|
|
3245
3463
|
var radioOptionRowClass = "flex cursor-pointer items-start gap-2 has-[button:disabled]:cursor-not-allowed";
|
|
@@ -3410,7 +3628,7 @@ var switchThumbClass = {
|
|
|
3410
3628
|
md: "size-4 data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4",
|
|
3411
3629
|
lg: "size-5 data-[state=checked]:translate-x-5 data-[state=checked]:rtl:-translate-x-5"
|
|
3412
3630
|
};
|
|
3413
|
-
var switchTrackBaseClass = "relative inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent bg-input transition-colors focus-visible:outline-none focus-visible:ring-
|
|
3631
|
+
var switchTrackBaseClass = "relative inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent bg-input transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-primary-glow disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary aria-[invalid=true]:ring-[3px] aria-[invalid=true]:ring-destructive/40";
|
|
3414
3632
|
var switchThumbBaseClass = "pointer-events-none block rounded-full bg-background shadow-sm ring-0 transition-transform";
|
|
3415
3633
|
var Switch = forwardRef(function Switch2({
|
|
3416
3634
|
switchSize = "md",
|
|
@@ -3491,7 +3709,7 @@ var textareaResizeClass = {
|
|
|
3491
3709
|
horizontal: "resize-x",
|
|
3492
3710
|
both: "resize"
|
|
3493
3711
|
};
|
|
3494
|
-
var textareaBaseClass = "group/textarea relative flex w-full text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-within:ring-
|
|
3712
|
+
var textareaBaseClass = "group/textarea relative flex w-full text-foreground outline-none transition-[background-color,border-color,box-shadow] focus-within:ring-[3px] focus-within:ring-primary-glow aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive/40 has-[textarea:disabled]:pointer-events-none has-[textarea:disabled]:opacity-50";
|
|
3495
3713
|
var Textarea = forwardRef(function Textarea2({
|
|
3496
3714
|
variant = "default",
|
|
3497
3715
|
textareaSize = "md",
|
|
@@ -3635,6 +3853,6 @@ function Tooltip({
|
|
|
3635
3853
|
);
|
|
3636
3854
|
}
|
|
3637
3855
|
|
|
3638
|
-
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppShell, Avatar, Badge, Button, Checkbox, ConfirmDialogProvider, DashboardContent, DashboardHeader, DashboardLayout, DashboardMain, DatePicker, DetailPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EmptyState, Field, FileUpload2 as FileUpload, FormPage, HeaderActions, HeaderCollapseTrigger, HeaderMobileTrigger, HeaderSearch, HeaderTitle, Input, LanguageSwitcher, ListPage, MultiSelect, PageHeader, RadioGroup, RadioGroupItem, RowActions, Select, Sidebar, SidebarFooter, SidebarGroup, SidebarHeader, SidebarNav, SidebarNavGroup, SidebarNavItem, Switch, Table, Textarea, Toaster, Tooltip, TooltipProvider, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cn, datePickerCalendarClass, datePickerCaptionClass, datePickerContentClass, datePickerDayBaseClass, datePickerDayWrapperClass, datePickerDisabledClass, datePickerMonthClass, datePickerMonthGridClass, datePickerMonthsClass, datePickerNavButtonClass, datePickerNavClass, datePickerOutsideClass, datePickerPlaceholderClass, datePickerSelectedClass, datePickerTodayClass, datePickerTriggerBaseClass, datePickerTriggerSizeClass, datePickerTriggerVariantClass, datePickerValueClass, datePickerWeekClass, datePickerWeekdayClass, datePickerWeekdaysClass, detailPageBaseClass, detailPageBodyClass, detailPageEmptyClass, detailPageSkeletonRowClass, dialogCloseButtonClass, dialogContentClass, dialogDescriptionClass, dialogFooterClass, dialogHeaderClass, dialogOverlayClass, dialogTitleClass, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, fileUploadBaseClass, fileUploadDropzoneClass, fileUploadFileNameClass, fileUploadFileRowClass, fileUploadFileSizeClass, fileUploadHintClass, fileUploadIconClass, fileUploadPromptClass, fileUploadRemoveClass, formPageActionsBarClass, formPageBaseClass, formPageBodyClass, formPageSkeletonRowClass, inputBaseClass, inputSizeClass, inputVariantClass, multiSelectChipClass, multiSelectChipRemoveClass, multiSelectContentClass, multiSelectEmptyClass, multiSelectListClass, multiSelectOptionClass, multiSelectSearchRowClass, multiSelectTriggerSizeClass, multiSelectValueRowClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, rowActionsBaseClass, rowActionsDestructiveClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, toastClassNames, tooltipArrowClass, tooltipContentClass, useConfirm, useDashboardLayout, useDirection };
|
|
3856
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppShell, Avatar, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ConfirmDialogProvider, DashboardContent, DashboardHeader, DashboardLayout, DashboardMain, DatePicker, DetailPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EmptyState, Field, FileUpload2 as FileUpload, FormPage, HeaderActions, HeaderCollapseTrigger, HeaderMobileTrigger, HeaderSearch, HeaderTitle, Input, LanguageSwitcher, ListPage, MultiSelect, PageHeader, RadioGroup, RadioGroupItem, RowActions, Select, Sidebar, SidebarFooter, SidebarGroup, SidebarHeader, SidebarNav, SidebarNavGroup, SidebarNavItem, Switch, Table, Textarea, Toaster, Tooltip, TooltipProvider, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeSoftVariantClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cardBaseClass, cardContentClass, cardDescriptionClass, cardFooterClass, cardHeaderClass, cardTitleClass, cn, datePickerCalendarClass, datePickerCaptionClass, datePickerContentClass, datePickerDayBaseClass, datePickerDayWrapperClass, datePickerDisabledClass, datePickerMonthClass, datePickerMonthGridClass, datePickerMonthsClass, datePickerNavButtonClass, datePickerNavClass, datePickerOutsideClass, datePickerPlaceholderClass, datePickerSelectedClass, datePickerTodayClass, datePickerTriggerBaseClass, datePickerTriggerSizeClass, datePickerTriggerVariantClass, datePickerValueClass, datePickerWeekClass, datePickerWeekdayClass, datePickerWeekdaysClass, detailPageBaseClass, detailPageBodyClass, detailPageEmptyClass, detailPageSkeletonRowClass, dialogCloseButtonClass, dialogContentClass, dialogDescriptionClass, dialogFooterClass, dialogHeaderClass, dialogOverlayClass, dialogTitleClass, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, fileUploadBaseClass, fileUploadDropzoneClass, fileUploadFileNameClass, fileUploadFileRowClass, fileUploadFileSizeClass, fileUploadHintClass, fileUploadIconClass, fileUploadPromptClass, fileUploadRemoveClass, formPageActionsBarClass, formPageBaseClass, formPageBodyClass, formPageSkeletonRowClass, inputBaseClass, inputSizeClass, inputVariantClass, multiSelectChipClass, multiSelectChipRemoveClass, multiSelectContentClass, multiSelectEmptyClass, multiSelectListClass, multiSelectOptionClass, multiSelectSearchRowClass, multiSelectTriggerSizeClass, multiSelectValueRowClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderEyebrowClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleLineClass, pageHeaderTitleMetaClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, rowActionsBaseClass, rowActionsDestructiveClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, toastClassNames, tooltipArrowClass, tooltipContentClass, useConfirm, useDashboardLayout, useDirection };
|
|
3639
3857
|
//# sourceMappingURL=index.js.map
|
|
3640
3858
|
//# sourceMappingURL=index.js.map
|