@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.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-sm hover:bg-primary/90 focus-visible:ring-primary/40",
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-sm hover:bg-destructive/90 focus-visible:ring-destructive/40",
100
- success: "bg-success text-success-foreground shadow-sm hover:bg-success/90 focus-visible:ring-success/40",
101
- warning: "bg-warning text-warning-foreground shadow-sm hover:bg-warning/90 focus-visible:ring-warning/40",
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-md px-3 text-sm",
106
- md: "h-9 gap-2 rounded-md px-4 text-sm",
107
- lg: "h-11 gap-2.5 rounded-md px-6 text-base",
108
- icon: "h-9 w-9 shrink-0 rounded-md p-0",
109
- "icon-sm": "h-8 w-8 shrink-0 rounded-md p-0"
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 h-4 w-4 items-center justify-center", children });
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: "h-4 w-4 animate-spin", "data-testid": "button-spinner" });
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 h-4 w-4 items-center justify-center text-muted-foreground",
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 h-5 w-5 shrink-0 items-center justify-center", children: icon }) : null,
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
- "h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform duration-200",
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 h-5 w-5 shrink-0 items-center justify-center", children: icon }) : null,
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: "h-7 w-7 text-xs",
860
- md: "h-9 w-9 text-sm",
861
- lg: "h-11 w-11 text-base"
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
- className: cn(badgeBaseClass, badgeVariantClass[variant], badgeSizeClass[size], className),
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: "h-3.5 w-3.5",
930
- md: "h-4 w-4"
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-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background"
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 h-3 w-3 text-primary-foreground opacity-0 peer-checked:opacity-100 peer-indeterminate:opacity-0"
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 h-3 w-3 text-primary-foreground opacity-0 peer-indeterminate:opacity-100"
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-2 focus-visible:ring-ring/40 focus-visible:ring-offset-1 focus-visible:ring-offset-background aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:ring-destructive/40 disabled:pointer-events-none disabled:opacity-50 cursor-pointer";
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 h-7 w-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";
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 h-8 w-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";
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 = "h-8 w-8 text-center text-xs font-medium text-muted-foreground";
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
- createElement(
1361
- as,
1362
- { "data-slot": "page-header-title", className: pageHeaderTitleClass },
1363
- title
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-md border border-border bg-card";
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-2 focus-within:ring-ring/40 focus-within:ring-offset-1 focus-within:ring-offset-background 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";
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 h-4 w-4 items-center justify-center text-muted-foreground",
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 h-4 w-4 items-center justify-center text-muted-foreground",
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: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": "true", className: "h-3.5 w-3.5" })
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: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": "true", className: "h-3.5 w-3.5" })
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-muted/40";
2304
- var sortIconClass = "inline-flex h-3 w-3 shrink-0 items-center justify-center";
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-md border border-border bg-background",
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
- // Opaque (not bg-muted/40) so a sticky header fully hides the rows
2450
- // scrolling underneath it.
2451
- "bg-muted text-muted-foreground",
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-accent",
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-2 focus:ring-ring/40 focus:ring-offset-1 focus:ring-offset-background 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";
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 h-3.5 w-3.5 items-center justify-center [&_svg]:h-3.5 [&_svg]:w-3.5";
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
- 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(
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 resetButton = active && !disabled ? /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: reset, children: [
3106
- /* @__PURE__ */ jsx(RefreshCw, { className: "size-4" }),
3107
- labels.reset
3108
- ] }) : null;
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: "space-y-3", onSubmit: apply, children: [
3111
- controls,
3112
- /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
3113
- resetButton,
3114
- /* @__PURE__ */ jsx(Button, { type: "submit", size: "sm", disabled: disabled || !dirty, children: labels.apply ?? "Apply" })
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: "space-y-3", children: [
3119
- controls,
3120
- resetButton ? /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: resetButton }) : null
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\u0637\u0628\u064A\u0642",
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(PageHeader, { title, description, bordered, actions }),
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: { reset: labels.reset, apply: labels.apply }
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-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background 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";
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-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary aria-[invalid=true]:ring-2 aria-[invalid=true]:ring-destructive/40";
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-2 focus-within:ring-ring/40 focus-within:ring-offset-1 focus-within:ring-offset-background aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-within:ring-destructive/40 has-[textarea:disabled]:pointer-events-none has-[textarea:disabled]:opacity-50";
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