@dimaan/ui 0.0.28 → 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 +228 -77
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +89 -14
- package/dist/index.d.ts +89 -14
- package/dist/index.js +213 -78
- package/dist/index.js.map +1 -1
- package/dist/preset.css +73 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -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,
|
|
@@ -655,7 +655,7 @@ function SidebarNavGroup({
|
|
|
655
655
|
className: "absolute inset-y-1.5 start-0 w-1 rounded-full bg-primary"
|
|
656
656
|
}
|
|
657
657
|
) : null,
|
|
658
|
-
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex
|
|
658
|
+
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center", children: icon }) : null,
|
|
659
659
|
/* @__PURE__ */ jsx(
|
|
660
660
|
"span",
|
|
661
661
|
{
|
|
@@ -691,7 +691,7 @@ function ChevronCaret({ open }) {
|
|
|
691
691
|
{
|
|
692
692
|
"aria-hidden": "true",
|
|
693
693
|
className: cn(
|
|
694
|
-
"
|
|
694
|
+
"size-3.5 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
695
695
|
open && "rotate-180"
|
|
696
696
|
)
|
|
697
697
|
}
|
|
@@ -738,7 +738,7 @@ function SidebarNavItem({
|
|
|
738
738
|
className: "absolute inset-y-1.5 start-0 w-1 rounded-full bg-primary"
|
|
739
739
|
}
|
|
740
740
|
) : null,
|
|
741
|
-
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex
|
|
741
|
+
icon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center", children: icon }) : null,
|
|
742
742
|
/* @__PURE__ */ jsx(
|
|
743
743
|
"span",
|
|
744
744
|
{
|
|
@@ -856,9 +856,9 @@ function AppShell({
|
|
|
856
856
|
) });
|
|
857
857
|
}
|
|
858
858
|
var sizeClass = {
|
|
859
|
-
sm: "
|
|
860
|
-
md: "
|
|
861
|
-
lg: "
|
|
859
|
+
sm: "size-7 text-xs",
|
|
860
|
+
md: "size-9 text-sm",
|
|
861
|
+
lg: "size-11 text-base"
|
|
862
862
|
};
|
|
863
863
|
function Avatar({ src, alt = "", fallback, size = "md", className, ...props }) {
|
|
864
864
|
const [errored, setErrored] = useState(false);
|
|
@@ -894,6 +894,14 @@ var badgeVariantClass = {
|
|
|
894
894
|
destructive: "bg-destructive text-destructive-foreground border-transparent",
|
|
895
895
|
outline: "border-border bg-transparent text-foreground"
|
|
896
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
|
+
};
|
|
897
905
|
var badgeSizeClass = {
|
|
898
906
|
sm: "h-5 gap-1 px-2 text-[11px]",
|
|
899
907
|
md: "h-6 gap-1.5 px-2.5 text-xs"
|
|
@@ -903,14 +911,16 @@ var badgeDotSizeClass = {
|
|
|
903
911
|
md: "size-2"
|
|
904
912
|
};
|
|
905
913
|
var badgeBaseClass = "inline-flex shrink-0 items-center rounded-full border font-medium leading-none whitespace-nowrap select-none transition-colors";
|
|
906
|
-
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];
|
|
907
916
|
return /* @__PURE__ */ jsxs(
|
|
908
917
|
"span",
|
|
909
918
|
{
|
|
910
919
|
ref,
|
|
911
920
|
"data-slot": "badge",
|
|
912
921
|
"data-variant": variant,
|
|
913
|
-
|
|
922
|
+
"data-tone": tone,
|
|
923
|
+
className: cn(badgeBaseClass, variantClass, badgeSizeClass[size], className),
|
|
914
924
|
...props,
|
|
915
925
|
children: [
|
|
916
926
|
dot ? /* @__PURE__ */ jsx(
|
|
@@ -925,9 +935,75 @@ var Badge = forwardRef(function Badge2({ variant = "default", size = "md", dot =
|
|
|
925
935
|
}
|
|
926
936
|
);
|
|
927
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
|
+
);
|
|
928
1004
|
var sizeClass2 = {
|
|
929
|
-
sm: "
|
|
930
|
-
md: "
|
|
1005
|
+
sm: "size-3.5",
|
|
1006
|
+
md: "size-4"
|
|
931
1007
|
};
|
|
932
1008
|
var Checkbox = forwardRef(function Checkbox2({
|
|
933
1009
|
checked,
|
|
@@ -970,7 +1046,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
970
1046
|
"indeterminate:border-primary indeterminate:bg-primary",
|
|
971
1047
|
"hover:border-ring",
|
|
972
1048
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
973
|
-
"focus-visible:outline-none focus-visible:ring-
|
|
1049
|
+
"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-primary-glow"
|
|
974
1050
|
),
|
|
975
1051
|
...rest
|
|
976
1052
|
}
|
|
@@ -980,7 +1056,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
980
1056
|
{
|
|
981
1057
|
"aria-hidden": "true",
|
|
982
1058
|
strokeWidth: 3,
|
|
983
|
-
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"
|
|
984
1060
|
}
|
|
985
1061
|
),
|
|
986
1062
|
/* @__PURE__ */ jsx(
|
|
@@ -988,7 +1064,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
988
1064
|
{
|
|
989
1065
|
"aria-hidden": "true",
|
|
990
1066
|
strokeWidth: 3,
|
|
991
|
-
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"
|
|
992
1068
|
}
|
|
993
1069
|
)
|
|
994
1070
|
] });
|
|
@@ -1005,20 +1081,20 @@ var datePickerTriggerSizeClass = {
|
|
|
1005
1081
|
md: "h-9 rounded-md ps-3 pe-9 text-sm gap-2",
|
|
1006
1082
|
lg: "h-11 rounded-md ps-4 pe-10 text-base gap-2"
|
|
1007
1083
|
};
|
|
1008
|
-
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";
|
|
1009
1085
|
var datePickerPlaceholderClass = "truncate text-muted-foreground";
|
|
1010
1086
|
var datePickerValueClass = "truncate text-foreground";
|
|
1011
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";
|
|
1012
1088
|
var datePickerCalendarClass = "text-sm";
|
|
1013
1089
|
var datePickerCaptionClass = "flex items-center justify-between gap-2 pb-2 text-sm font-semibold";
|
|
1014
|
-
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";
|
|
1015
1091
|
var datePickerDayWrapperClass = "p-0 text-center";
|
|
1016
|
-
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";
|
|
1017
1093
|
var datePickerSelectedClass = "[&_button]:bg-primary [&_button]:text-primary-foreground [&_button]:hover:bg-primary [&_button]:hover:text-primary-foreground";
|
|
1018
1094
|
var datePickerTodayClass = "[&_button]:font-semibold [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-ring/40";
|
|
1019
1095
|
var datePickerOutsideClass = "[&_button]:text-muted-foreground [&_button]:opacity-60";
|
|
1020
1096
|
var datePickerDisabledClass = "[&_button]:pointer-events-none [&_button]:opacity-40";
|
|
1021
|
-
var datePickerWeekdayClass = "
|
|
1097
|
+
var datePickerWeekdayClass = "size-8 text-center text-xs font-medium text-muted-foreground";
|
|
1022
1098
|
var datePickerWeekClass = "flex w-full";
|
|
1023
1099
|
var datePickerWeekdaysClass = "flex w-full";
|
|
1024
1100
|
var datePickerMonthGridClass = "w-full border-collapse";
|
|
@@ -1329,6 +1405,9 @@ var pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
|
1329
1405
|
var pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
1330
1406
|
var pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
1331
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";
|
|
1332
1411
|
var pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
1333
1412
|
var pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
1334
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";
|
|
@@ -1337,6 +1416,8 @@ var pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
|
1337
1416
|
var PageHeader = forwardRef(function PageHeader2({
|
|
1338
1417
|
title,
|
|
1339
1418
|
description,
|
|
1419
|
+
eyebrow,
|
|
1420
|
+
titleMeta,
|
|
1340
1421
|
breadcrumbs,
|
|
1341
1422
|
back,
|
|
1342
1423
|
actions,
|
|
@@ -1357,11 +1438,15 @@ var PageHeader = forwardRef(function PageHeader2({
|
|
|
1357
1438
|
back ? /* @__PURE__ */ jsx(PageHeaderBack, { ...back }) : null,
|
|
1358
1439
|
/* @__PURE__ */ jsxs("div", { "data-slot": "page-header-row", className: pageHeaderTitleRowClass, children: [
|
|
1359
1440
|
/* @__PURE__ */ jsxs("div", { className: pageHeaderTitleBlockClass, children: [
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
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
|
+
] }),
|
|
1365
1450
|
description ? /* @__PURE__ */ jsx("p", { "data-slot": "page-header-description", className: pageHeaderDescriptionClass, children: description }) : null
|
|
1366
1451
|
] }),
|
|
1367
1452
|
actions ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-actions", className: pageHeaderActionsClass, children: actions }) : null
|
|
@@ -1393,7 +1478,7 @@ function PageHeaderBack({ label = "Back", to, onClick, render }) {
|
|
|
1393
1478
|
var detailPageBaseClass = "flex w-full flex-col gap-6";
|
|
1394
1479
|
var detailPageBodyClass = "flex flex-col gap-6";
|
|
1395
1480
|
var detailPageSkeletonRowClass = "h-5 w-full animate-pulse rounded-md bg-muted";
|
|
1396
|
-
var detailPageEmptyClass = "rounded-
|
|
1481
|
+
var detailPageEmptyClass = "rounded-xl border border-border bg-card";
|
|
1397
1482
|
var DEFAULT_LABELS_LTR = {
|
|
1398
1483
|
back: "Back",
|
|
1399
1484
|
notFoundTitle: "Not found",
|
|
@@ -2060,7 +2145,7 @@ var inputSizeClass = {
|
|
|
2060
2145
|
md: "h-9 rounded-md px-3 text-sm gap-2",
|
|
2061
2146
|
lg: "h-11 rounded-md px-4 text-base gap-2.5"
|
|
2062
2147
|
};
|
|
2063
|
-
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";
|
|
2064
2149
|
var Input = forwardRef(function Input2({
|
|
2065
2150
|
variant = "default",
|
|
2066
2151
|
inputSize = "md",
|
|
@@ -2094,7 +2179,7 @@ var Input = forwardRef(function Input2({
|
|
|
2094
2179
|
"span",
|
|
2095
2180
|
{
|
|
2096
2181
|
"aria-hidden": "true",
|
|
2097
|
-
className: "inline-flex
|
|
2182
|
+
className: "inline-flex size-4 items-center justify-center text-muted-foreground",
|
|
2098
2183
|
children: leadingIcon
|
|
2099
2184
|
}
|
|
2100
2185
|
) : null,
|
|
@@ -2118,7 +2203,7 @@ var Input = forwardRef(function Input2({
|
|
|
2118
2203
|
"span",
|
|
2119
2204
|
{
|
|
2120
2205
|
"aria-hidden": "true",
|
|
2121
|
-
className: "inline-flex
|
|
2206
|
+
className: "inline-flex size-4 items-center justify-center text-muted-foreground",
|
|
2122
2207
|
children: trailingIcon
|
|
2123
2208
|
}
|
|
2124
2209
|
) : null
|
|
@@ -2239,7 +2324,7 @@ function Pagination({
|
|
|
2239
2324
|
disabled: isFirst,
|
|
2240
2325
|
onClick: goPrev,
|
|
2241
2326
|
"aria-label": labels.previousPage,
|
|
2242
|
-
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" })
|
|
2243
2328
|
}
|
|
2244
2329
|
),
|
|
2245
2330
|
/* @__PURE__ */ jsxs("span", { className: "px-1 text-foreground", children: [
|
|
@@ -2256,7 +2341,7 @@ function Pagination({
|
|
|
2256
2341
|
disabled: isLast,
|
|
2257
2342
|
onClick: goNext,
|
|
2258
2343
|
"aria-label": labels.nextPage,
|
|
2259
|
-
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" })
|
|
2260
2345
|
}
|
|
2261
2346
|
)
|
|
2262
2347
|
] })
|
|
@@ -2285,23 +2370,23 @@ function Toolbar({ count, onClear, renderLabel, clearLabel, children }) {
|
|
|
2285
2370
|
var tableSizeClass = {
|
|
2286
2371
|
sm: {
|
|
2287
2372
|
row: "",
|
|
2288
|
-
cell: "px-3 py-1.5 text-xs",
|
|
2373
|
+
cell: "px-3 py-1.5 text-xs tabular-nums",
|
|
2289
2374
|
head: "whitespace-nowrap px-3 py-2 text-xs font-medium"
|
|
2290
2375
|
},
|
|
2291
2376
|
md: {
|
|
2292
2377
|
row: "",
|
|
2293
|
-
cell: "px-4 py-2.5 text-sm",
|
|
2378
|
+
cell: "px-4 py-2.5 text-sm tabular-nums",
|
|
2294
2379
|
head: "whitespace-nowrap px-4 py-2.5 text-xs font-medium uppercase tracking-wide"
|
|
2295
2380
|
},
|
|
2296
2381
|
lg: {
|
|
2297
2382
|
row: "",
|
|
2298
|
-
cell: "px-5 py-3.5 text-sm",
|
|
2383
|
+
cell: "px-5 py-3.5 text-sm tabular-nums",
|
|
2299
2384
|
head: "whitespace-nowrap px-5 py-3 text-sm font-medium"
|
|
2300
2385
|
}
|
|
2301
2386
|
};
|
|
2302
2387
|
var tableBaseClass = "w-full caption-bottom border-collapse";
|
|
2303
|
-
var selectedRowClass = "bg-
|
|
2304
|
-
var sortIconClass = "inline-flex
|
|
2388
|
+
var selectedRowClass = "bg-primary/10";
|
|
2389
|
+
var sortIconClass = "inline-flex size-3 shrink-0 items-center justify-center";
|
|
2305
2390
|
var alignClass = {
|
|
2306
2391
|
start: "text-start",
|
|
2307
2392
|
center: "text-center",
|
|
@@ -2428,7 +2513,7 @@ function Table(props) {
|
|
|
2428
2513
|
"div",
|
|
2429
2514
|
{
|
|
2430
2515
|
className: cn(
|
|
2431
|
-
"overflow-x-auto rounded-
|
|
2516
|
+
"overflow-x-auto rounded-xl border border-border bg-card shadow-[var(--shadow-card)]",
|
|
2432
2517
|
maxHeight !== void 0 && "overflow-y-auto"
|
|
2433
2518
|
),
|
|
2434
2519
|
style: maxHeight !== void 0 ? { maxHeight } : void 0,
|
|
@@ -2446,9 +2531,11 @@ function Table(props) {
|
|
|
2446
2531
|
"thead",
|
|
2447
2532
|
{
|
|
2448
2533
|
className: cn(
|
|
2449
|
-
//
|
|
2450
|
-
// scrolling underneath it
|
|
2451
|
-
|
|
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)]",
|
|
2452
2539
|
maxHeight !== void 0 && "sticky top-0 z-10"
|
|
2453
2540
|
),
|
|
2454
2541
|
children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
@@ -2525,8 +2612,8 @@ function Table(props) {
|
|
|
2525
2612
|
"data-selected": isSelected ? "true" : void 0,
|
|
2526
2613
|
"aria-selected": enableRowSelection ? isSelected : void 0,
|
|
2527
2614
|
className: cn(
|
|
2528
|
-
"border-t border-border transition-colors",
|
|
2529
|
-
"hover:bg-
|
|
2615
|
+
"border-t border-border/60 first:border-t-0 transition-colors",
|
|
2616
|
+
"hover:bg-primary/5",
|
|
2530
2617
|
striped && rowIndex % 2 === 1 && "bg-muted/20",
|
|
2531
2618
|
isSelected && selectedRowClass,
|
|
2532
2619
|
onRowClick && "cursor-pointer"
|
|
@@ -2609,10 +2696,7 @@ function SkeletonRows({ rowCount, columnCount, cellClassName }) {
|
|
|
2609
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)) });
|
|
2610
2697
|
}
|
|
2611
2698
|
function SortIndicator({ active, direction }) {
|
|
2612
|
-
const className = cn(
|
|
2613
|
-
"h-3.5 w-3.5 shrink-0",
|
|
2614
|
-
active ? "text-foreground" : "text-muted-foreground"
|
|
2615
|
-
);
|
|
2699
|
+
const className = cn("size-3.5 shrink-0", active ? "text-foreground" : "text-muted-foreground");
|
|
2616
2700
|
if (!active) return /* @__PURE__ */ jsx(ChevronsUpDown, { "aria-hidden": "true", className });
|
|
2617
2701
|
return direction === "asc" ? /* @__PURE__ */ jsx(ChevronUp, { "aria-hidden": "true", className }) : /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true", className });
|
|
2618
2702
|
}
|
|
@@ -2628,11 +2712,11 @@ var selectSizeClass = {
|
|
|
2628
2712
|
md: "h-9 rounded-md ps-3 pe-9 text-sm",
|
|
2629
2713
|
lg: "h-11 rounded-md ps-4 pe-10 text-base"
|
|
2630
2714
|
};
|
|
2631
|
-
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";
|
|
2632
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";
|
|
2633
2717
|
var selectViewportClass = "p-1";
|
|
2634
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";
|
|
2635
|
-
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";
|
|
2636
2720
|
var selectGroupLabelClass = "px-2 py-1.5 text-xs font-semibold text-muted-foreground";
|
|
2637
2721
|
var selectSeparatorClass = "-mx-1 my-1 h-px bg-border";
|
|
2638
2722
|
var selectStatusClass = "flex items-center justify-center gap-2 px-2 py-6 text-center text-sm text-muted-foreground";
|
|
@@ -2995,6 +3079,16 @@ function hasActiveFilters(filters, values) {
|
|
|
2995
3079
|
}
|
|
2996
3080
|
return false;
|
|
2997
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
|
+
}
|
|
2998
3092
|
function DebouncedFilterInput({
|
|
2999
3093
|
value,
|
|
3000
3094
|
onChange,
|
|
@@ -3059,7 +3153,6 @@ function ListPageFilterBar({
|
|
|
3059
3153
|
labels
|
|
3060
3154
|
}) {
|
|
3061
3155
|
const manual = mode === "manual";
|
|
3062
|
-
const active = hasActiveFilters(filters, values);
|
|
3063
3156
|
const appliedKey = JSON.stringify(values ?? {});
|
|
3064
3157
|
const [draft, setDraft] = useState(values ?? {});
|
|
3065
3158
|
useEffect(() => {
|
|
@@ -3090,8 +3183,11 @@ function ListPageFilterBar({
|
|
|
3090
3183
|
for (const filter of filters ?? []) {
|
|
3091
3184
|
onChange?.(filter.key, filterDefaultValue(filter));
|
|
3092
3185
|
}
|
|
3186
|
+
if (manual) setDraft({});
|
|
3093
3187
|
};
|
|
3094
|
-
|
|
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(
|
|
3095
3191
|
FilterControl,
|
|
3096
3192
|
{
|
|
3097
3193
|
filter,
|
|
@@ -3102,22 +3198,41 @@ function ListPageFilterBar({
|
|
|
3102
3198
|
},
|
|
3103
3199
|
filter.key
|
|
3104
3200
|
)) });
|
|
3105
|
-
const
|
|
3106
|
-
/* @__PURE__ */ jsx(
|
|
3107
|
-
|
|
3108
|
-
|
|
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";
|
|
3109
3214
|
if (manual) {
|
|
3110
|
-
return /* @__PURE__ */ jsxs("form", { "data-slot": "list-page-filter-bar", className:
|
|
3111
|
-
|
|
3112
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
3113
|
-
|
|
3114
|
-
/* @__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
|
+
) })
|
|
3115
3230
|
] })
|
|
3116
3231
|
] });
|
|
3117
3232
|
}
|
|
3118
|
-
return /* @__PURE__ */ jsxs("div", { "data-slot": "list-page-filter-bar", className:
|
|
3119
|
-
|
|
3120
|
-
|
|
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 })
|
|
3121
3236
|
] });
|
|
3122
3237
|
}
|
|
3123
3238
|
function FilterControl({ filter, value, onChange, disabled, mode }) {
|
|
@@ -3185,6 +3300,8 @@ function renderFilterControl({
|
|
|
3185
3300
|
var EN_LABELS2 = {
|
|
3186
3301
|
reset: "Reset filters",
|
|
3187
3302
|
apply: "Apply",
|
|
3303
|
+
filtersTitle: "Filters",
|
|
3304
|
+
filtersActive: "active",
|
|
3188
3305
|
emptyTitle: "No results",
|
|
3189
3306
|
emptyDescription: "Try clearing the search or adjusting the filters.",
|
|
3190
3307
|
noDataTitle: "No data yet",
|
|
@@ -3192,7 +3309,9 @@ var EN_LABELS2 = {
|
|
|
3192
3309
|
};
|
|
3193
3310
|
var AR_LABELS2 = {
|
|
3194
3311
|
reset: "\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0641\u0644\u0627\u062A\u0631",
|
|
3195
|
-
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",
|
|
3196
3315
|
emptyTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C",
|
|
3197
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.",
|
|
3198
3317
|
noDataTitle: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0628\u0639\u062F",
|
|
@@ -3217,6 +3336,7 @@ function ListPage({
|
|
|
3217
3336
|
pagination,
|
|
3218
3337
|
onPaginationChange,
|
|
3219
3338
|
totalCount,
|
|
3339
|
+
eyebrow,
|
|
3220
3340
|
pageSizeOptions,
|
|
3221
3341
|
emptyState,
|
|
3222
3342
|
noDataState,
|
|
@@ -3237,7 +3357,17 @@ function ListPage({
|
|
|
3237
3357
|
};
|
|
3238
3358
|
const tableMode = isLoading ? "loading" : data.length === 0 && !hasActiveQuery ? "no-data" : data.length === 0 && hasActiveQuery ? "no-results" : "rows";
|
|
3239
3359
|
return /* @__PURE__ */ jsxs("div", { "data-slot": "list-page", className: cn("space-y-6", className), children: [
|
|
3240
|
-
/* @__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
|
+
),
|
|
3241
3371
|
showFilterBar ? /* @__PURE__ */ jsx(
|
|
3242
3372
|
ListPageFilterBar,
|
|
3243
3373
|
{
|
|
@@ -3245,7 +3375,12 @@ function ListPage({
|
|
|
3245
3375
|
values: filterValues,
|
|
3246
3376
|
onChange: onFilterChange,
|
|
3247
3377
|
mode: filterMode,
|
|
3248
|
-
labels: {
|
|
3378
|
+
labels: {
|
|
3379
|
+
reset: labels.reset,
|
|
3380
|
+
apply: labels.apply,
|
|
3381
|
+
title: labels.filtersTitle,
|
|
3382
|
+
activeLabel: labels.filtersActive
|
|
3383
|
+
}
|
|
3249
3384
|
}
|
|
3250
3385
|
) : null,
|
|
3251
3386
|
tableMode === "loading" || tableMode === "rows" ? /* @__PURE__ */ jsx(
|
|
@@ -3322,7 +3457,7 @@ var radioLabelSizeClass = {
|
|
|
3322
3457
|
md: "text-sm",
|
|
3323
3458
|
lg: "text-base"
|
|
3324
3459
|
};
|
|
3325
|
-
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";
|
|
3326
3461
|
var radioIndicatorBaseClass = "flex h-full w-full items-center justify-center";
|
|
3327
3462
|
var radioIndicatorDotClass = "rounded-full bg-primary";
|
|
3328
3463
|
var radioOptionRowClass = "flex cursor-pointer items-start gap-2 has-[button:disabled]:cursor-not-allowed";
|
|
@@ -3493,7 +3628,7 @@ var switchThumbClass = {
|
|
|
3493
3628
|
md: "size-4 data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4",
|
|
3494
3629
|
lg: "size-5 data-[state=checked]:translate-x-5 data-[state=checked]:rtl:-translate-x-5"
|
|
3495
3630
|
};
|
|
3496
|
-
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";
|
|
3497
3632
|
var switchThumbBaseClass = "pointer-events-none block rounded-full bg-background shadow-sm ring-0 transition-transform";
|
|
3498
3633
|
var Switch = forwardRef(function Switch2({
|
|
3499
3634
|
switchSize = "md",
|
|
@@ -3574,7 +3709,7 @@ var textareaResizeClass = {
|
|
|
3574
3709
|
horizontal: "resize-x",
|
|
3575
3710
|
both: "resize"
|
|
3576
3711
|
};
|
|
3577
|
-
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";
|
|
3578
3713
|
var Textarea = forwardRef(function Textarea2({
|
|
3579
3714
|
variant = "default",
|
|
3580
3715
|
textareaSize = "md",
|
|
@@ -3718,6 +3853,6 @@ function Tooltip({
|
|
|
3718
3853
|
);
|
|
3719
3854
|
}
|
|
3720
3855
|
|
|
3721
|
-
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 };
|
|
3722
3857
|
//# sourceMappingURL=index.js.map
|
|
3723
3858
|
//# sourceMappingURL=index.js.map
|