@douglasneuroinformatics/libui 3.8.7 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +7 -9
  2. package/dist/{chunk-CAWCERN4.js → chunk-655XRTXX.js} +10 -2
  3. package/dist/{chunk-CAWCERN4.js.map → chunk-655XRTXX.js.map} +1 -1
  4. package/dist/{chunk-VJSOLDCS.js → chunk-HCQE34RL.js} +1 -1
  5. package/dist/chunk-HCQE34RL.js.map +1 -0
  6. package/dist/{chunk-GFIT4FAN.js → chunk-KI6BSSS6.js} +3 -4
  7. package/dist/chunk-KI6BSSS6.js.map +1 -0
  8. package/dist/components.d.ts +137 -89
  9. package/dist/components.js +111 -77
  10. package/dist/components.js.map +1 -1
  11. package/dist/hooks.d.ts +1 -1
  12. package/dist/hooks.js +3 -3
  13. package/dist/i18n.d.ts +2 -2
  14. package/dist/i18n.js +1 -1
  15. package/dist/tailwind/globals.css +181 -39
  16. package/dist/{types-DTkK8l-q.d.ts → types-CMuti1SJ.d.ts} +14 -6
  17. package/dist/utils.js +1 -1
  18. package/package.json +89 -86
  19. package/src/components/ActionDropdown/ActionDropdown.tsx +1 -1
  20. package/src/components/ArrowToggle/ArrowToggle.spec.tsx +3 -1
  21. package/src/components/ArrowToggle/ArrowToggle.tsx +5 -3
  22. package/src/components/Badge/Badge.tsx +7 -5
  23. package/src/components/Breadcrumb/BreadcrumbLink.tsx +2 -2
  24. package/src/components/Breadcrumb/BreadcrumbRoot.tsx +2 -2
  25. package/src/components/Button/Button.tsx +13 -12
  26. package/src/components/Card/Card.tsx +3 -3
  27. package/src/components/Chart/ChartContainer.tsx +3 -3
  28. package/src/components/Chart/ChartLegendContent.tsx +5 -5
  29. package/src/components/Chart/ChartTooltipContent.tsx +8 -8
  30. package/src/components/Checkbox/Checkbox.tsx +1 -1
  31. package/src/components/ClientTable/ClientTable.spec.tsx +87 -0
  32. package/src/components/ClientTable/ClientTable.stories.tsx +12 -9
  33. package/src/components/ClientTable/ClientTable.tsx +5 -4
  34. package/src/components/ClientTable/ClientTablePagination.tsx +28 -1
  35. package/src/components/Collapsible/Collapsible.stories.tsx +3 -3
  36. package/src/components/Command/CommandInput.tsx +1 -1
  37. package/src/components/Command/CommandItem.tsx +1 -1
  38. package/src/components/ContextMenu/ContextMenuCheckboxItem.tsx +1 -1
  39. package/src/components/ContextMenu/ContextMenuItem.tsx +3 -3
  40. package/src/components/ContextMenu/ContextMenuLabel.tsx +2 -2
  41. package/src/components/ContextMenu/ContextMenuRadioItem.tsx +1 -1
  42. package/src/components/ContextMenu/ContextMenuSubTrigger.tsx +3 -3
  43. package/src/components/CopyButton/CopyButton.tsx +3 -1
  44. package/src/components/DatePicker/DatePicker.tsx +3 -3
  45. package/src/components/Dialog/DialogContent.tsx +2 -2
  46. package/src/components/DropdownButton/DropdownButton.tsx +1 -1
  47. package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +1 -1
  48. package/src/components/DropdownMenu/DropdownMenuContent.tsx +2 -2
  49. package/src/components/DropdownMenu/DropdownMenuItem.tsx +3 -3
  50. package/src/components/DropdownMenu/DropdownMenuLabel.tsx +2 -2
  51. package/src/components/DropdownMenu/DropdownMenuRadioItem.tsx +1 -1
  52. package/src/components/DropdownMenu/DropdownMenuSubTrigger.tsx +3 -3
  53. package/src/components/FileDropzone/FileDropzone.stories.tsx +4 -6
  54. package/src/components/FileDropzone/FileDropzone.tsx +2 -1
  55. package/src/components/Form/BaseRadioField.tsx +2 -2
  56. package/src/components/Form/BooleanField/BooleanField.spec.tsx +3 -1
  57. package/src/components/Form/BooleanField/BooleanField.tsx +5 -2
  58. package/src/components/Form/DateField/DateField.tsx +2 -1
  59. package/src/components/Form/Form.stories.tsx +15 -16
  60. package/src/components/Form/Form.tsx +0 -1
  61. package/src/components/Form/NumberField/NumberField.tsx +7 -3
  62. package/src/components/Form/NumberField/NumberFieldSelect.tsx +2 -1
  63. package/src/components/Form/RecordArrayField.tsx +1 -3
  64. package/src/components/Form/ScalarField.tsx +18 -13
  65. package/src/components/Form/SetField/SetFieldListbox.tsx +2 -2
  66. package/src/components/Form/SetField/SetFieldSelect.tsx +2 -2
  67. package/src/components/Form/StaticField.tsx +2 -1
  68. package/src/components/Form/StringField/StringField.tsx +9 -4
  69. package/src/components/Form/StringField/StringFieldPassword.tsx +5 -5
  70. package/src/components/Form/StringField/StringFieldSelect.tsx +2 -1
  71. package/src/components/HoverCard/HoverCardContent.tsx +1 -1
  72. package/src/components/Input/Input.tsx +1 -1
  73. package/src/components/Label/Label.tsx +2 -1
  74. package/src/components/LanguageToggle/LanguageToggle.tsx +3 -1
  75. package/src/components/LineGraph/LineGraph.tsx +8 -4
  76. package/src/components/ListboxDropdown/ListboxDropdown.stories.tsx +4 -4
  77. package/src/components/ListboxDropdown/ListboxDropdown.tsx +2 -1
  78. package/src/components/MenuBar/MenuBarCheckboxItem.tsx +1 -1
  79. package/src/components/MenuBar/MenuBarItem.tsx +3 -3
  80. package/src/components/MenuBar/MenuBarLabel.tsx +2 -2
  81. package/src/components/MenuBar/MenuBarRadioItem.tsx +1 -1
  82. package/src/components/MenuBar/MenuBarRoot.tsx +1 -1
  83. package/src/components/MenuBar/MenuBarSubTrigger.tsx +3 -3
  84. package/src/components/MenuBar/MenuBarTrigger.tsx +1 -1
  85. package/src/components/NotificationHub/NotificationHub.tsx +3 -3
  86. package/src/components/NotificationHub/NotificationIcon.tsx +1 -1
  87. package/src/components/Pagination/PaginationLink.tsx +7 -5
  88. package/src/components/Pagination/PaginationPrevious.tsx +3 -1
  89. package/src/components/Popover/PopoverContent.tsx +1 -1
  90. package/src/components/RadioGroup/RadioGroup.spec.tsx +3 -1
  91. package/src/components/RadioGroup/RadioGroupItem.tsx +1 -1
  92. package/src/components/Resizable/Resizable.tsx +9 -5
  93. package/src/components/Resizable/ResizableHandle.tsx +4 -4
  94. package/src/components/SearchBar/SearchBar.tsx +7 -5
  95. package/src/components/Select/SelectItem.tsx +1 -1
  96. package/src/components/Sheet/SheetContent.tsx +3 -2
  97. package/src/components/Slider/Slider.tsx +4 -4
  98. package/src/components/StatisticCard/StatisticCard.tsx +2 -1
  99. package/src/components/Switch/Switch.tsx +2 -2
  100. package/src/components/Tabs/TabsContent.tsx +1 -1
  101. package/src/components/Tabs/TabsTrigger.tsx +1 -1
  102. package/src/components/TextArea/TextArea.tsx +1 -1
  103. package/src/components/ThemeToggle/ThemeToggle.tsx +3 -1
  104. package/src/components/Tooltip/TooltipTrigger.tsx +3 -1
  105. package/src/hooks/useEventListener/useEventListener.ts +2 -1
  106. package/src/hooks/useOnClickOutside/useOnClickOutside.ts +1 -1
  107. package/src/hooks/useStorage/useLocalStorage.ts +3 -1
  108. package/src/hooks/useStorage/useSessionStorage.ts +3 -1
  109. package/src/hooks/useTheme/useTheme.test.ts +14 -11
  110. package/src/i18n/internal.ts +1 -1
  111. package/src/i18n/store.ts +1 -1
  112. package/src/i18n/translations/libui.json +8 -0
  113. package/src/i18n/types.ts +6 -6
  114. package/src/tailwind/globals.css +181 -39
  115. package/src/utils/index.ts +2 -1
  116. package/dist/chunk-GFIT4FAN.js.map +0 -1
  117. package/dist/chunk-VJSOLDCS.js.map +0 -1
  118. package/dist/douglasneuroinformatics-libui-3.8.7.tgz +0 -0
  119. package/dist/tailwind/config.cjs +0 -178
  120. package/dist/tailwind/config.cjs.map +0 -1
  121. package/dist/tailwind/config.d.cts +0 -16
  122. package/src/tailwind/config.cts +0 -174
  123. package/tailwind.config.cjs +0 -3
@@ -5,11 +5,11 @@ import {
5
5
  useNotificationsStore,
6
6
  useTheme,
7
7
  useTranslation
8
- } from "./chunk-GFIT4FAN.js";
9
- import "./chunk-CAWCERN4.js";
8
+ } from "./chunk-KI6BSSS6.js";
9
+ import "./chunk-655XRTXX.js";
10
10
  import {
11
11
  cn
12
- } from "./chunk-VJSOLDCS.js";
12
+ } from "./chunk-HCQE34RL.js";
13
13
 
14
14
  // src/components/Accordion/AccordionContent.tsx
15
15
  import { forwardRef } from "react";
@@ -83,7 +83,7 @@ var DropdownButton = forwardRef5(
83
83
  "button",
84
84
  {
85
85
  className: cn(
86
- "flex h-9 w-full items-center gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
86
+ "border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs focus:ring-1 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
87
87
  children ? "justify-between" : "justify-end",
88
88
  className
89
89
  ),
@@ -113,7 +113,7 @@ var DropdownMenuCheckboxItem = forwardRef6(function DropdownMenuCheckboxItem2({
113
113
  {
114
114
  checked,
115
115
  className: cn(
116
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
116
+ "focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
117
117
  className
118
118
  ),
119
119
  ref,
@@ -156,7 +156,7 @@ var DropdownMenuItem = forwardRef8(function DropdownMenuItem2({ className, inset
156
156
  DropdownMenuPrimitive3.Item,
157
157
  {
158
158
  className: cn(
159
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
159
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
160
160
  inset && "pl-8",
161
161
  className
162
162
  ),
@@ -191,7 +191,7 @@ var DropdownMenuRadioItem = forwardRef10(function DropdownMenuRadioItem2({ child
191
191
  DropdownMenuPrimitive5.RadioItem,
192
192
  {
193
193
  className: cn(
194
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
194
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden transition-colors select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
195
195
  className
196
196
  ),
197
197
  ref,
@@ -247,7 +247,7 @@ var DropdownMenuSubTrigger = forwardRef13(function DropdownMenuSubTrigger2({ chi
247
247
  DropdownMenuPrimitive8.SubTrigger,
248
248
  {
249
249
  className: cn(
250
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
250
+ "focus:bg-accent data-[state=open]:bg-accent flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none",
251
251
  inset && "pl-8",
252
252
  className
253
253
  ),
@@ -327,7 +327,7 @@ var BUTTON_ICON_SIZE = {
327
327
  sm: 14
328
328
  };
329
329
  var buttonVariants = cva(
330
- "flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
330
+ "flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
331
331
  {
332
332
  defaultVariants: {
333
333
  size: "md",
@@ -341,12 +341,12 @@ var buttonVariants = cva(
341
341
  sm: "h-8 rounded-md px-3 text-xs"
342
342
  },
343
343
  variant: {
344
- danger: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
344
+ danger: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",
345
345
  ghost: "hover:bg-accent hover:text-accent-foreground",
346
346
  link: "text-primary underline-offset-4 hover:underline",
347
- outline: "border border-input bg-inherit shadow-sm",
348
- primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
349
- secondary: "bg-secondary border text-secondary-foreground shadow-sm hover:bg-secondary/80"
347
+ outline: "border border-input bg-inherit shadow-xs",
348
+ primary: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
349
+ secondary: "bg-secondary border text-secondary-foreground shadow-xs hover:bg-secondary/80"
350
350
  }
351
351
  }
352
352
  }
@@ -547,15 +547,15 @@ import "react";
547
547
  import { cva as cva2 } from "class-variance-authority";
548
548
  import { jsx as jsx29 } from "react/jsx-runtime";
549
549
  var badgeVariants = cva2(
550
- "inline-flex items-center rounded-sm border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
550
+ "inline-flex items-center rounded-xs border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
551
551
  {
552
552
  defaultVariants: {
553
553
  variant: "default"
554
554
  },
555
555
  variants: {
556
556
  variant: {
557
- default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
558
- destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
557
+ default: "border-transparent bg-primary text-primary-foreground shadow-sm hover:bg-primary/80",
558
+ destructive: "border-transparent bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/80",
559
559
  outline: "text-foreground",
560
560
  secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80"
561
561
  }
@@ -665,7 +665,7 @@ var CardRoot = React10.forwardRef(function CardRoot2({ className, ...props }, re
665
665
  return /* @__PURE__ */ jsx37(
666
666
  "div",
667
667
  {
668
- className: cn("rounded-xl border bg-card text-card-foreground shadow", className),
668
+ className: cn("bg-card text-card-foreground rounded-xl border shadow-sm", className),
669
669
  "data-testid": "card",
670
670
  ref,
671
671
  ...props
@@ -674,12 +674,12 @@ var CardRoot = React10.forwardRef(function CardRoot2({ className, ...props }, re
674
674
  });
675
675
  var Card = Object.assign(CardRoot, {
676
676
  Content: ({ className, ...props }) => /* @__PURE__ */ jsx37("div", { className: cn("p-6 pt-0", className), ...props }),
677
- Description: ({ className, ...props }) => /* @__PURE__ */ jsx37("p", { className: cn("text-sm text-muted-foreground", className), ...props }),
677
+ Description: ({ className, ...props }) => /* @__PURE__ */ jsx37("p", { className: cn("text-muted-foreground text-sm", className), ...props }),
678
678
  Footer: ({ className, ...props }) => {
679
679
  return /* @__PURE__ */ jsx37("div", { className: cn("flex items-center p-6 pt-0", className), ...props });
680
680
  },
681
681
  Header: ({ className, ...props }) => /* @__PURE__ */ jsx37("div", { className: cn("flex flex-col space-y-1.5 p-6", className), ...props }),
682
- Title: ({ children, className, ...props }) => /* @__PURE__ */ jsx37("h3", { className: cn("font-semibold leading-none tracking-tight", className), ...props, children })
682
+ Title: ({ children, className, ...props }) => /* @__PURE__ */ jsx37("h3", { className: cn("leading-none font-semibold tracking-tight", className), ...props, children })
683
683
  });
684
684
 
685
685
  // src/components/Chart/Chart.tsx
@@ -696,7 +696,7 @@ var ChartContainer = forwardRef31(function ChartContainer2({ children, className
696
696
  "div",
697
697
  {
698
698
  className: cn(
699
- "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
699
+ "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
700
700
  className
701
701
  ),
702
702
  "data-chart": chartId,
@@ -918,7 +918,7 @@ var Checkbox = forwardRef34(function Checkbox2({ className, ...props }, ref) {
918
918
  CheckboxPrimitive.Root,
919
919
  {
920
920
  className: cn(
921
- "peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
921
+ "peer border-primary focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground h-4 w-4 shrink-0 rounded-xs border shadow-sm focus-visible:ring-1 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
922
922
  className
923
923
  ),
924
924
  "data-testid": "checkbox",
@@ -1051,11 +1051,32 @@ var ClientTablePagination = ({
1051
1051
  }) => {
1052
1052
  const { t } = useTranslation("libui");
1053
1053
  return /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between py-3", children: [
1054
- /* @__PURE__ */ jsx51("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx51("p", { className: "text-sm font-medium text-muted-foreground", children: `${firstEntry} - ${lastEntry} / ${totalEntries}` }) }),
1054
+ /* @__PURE__ */ jsx51("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsx51(
1055
+ "p",
1056
+ {
1057
+ className: "text-sm font-medium text-muted-foreground",
1058
+ "data-testid": "page-numbers",
1059
+ children: `${firstEntry} - ${lastEntry} / ${totalEntries}`
1060
+ }
1061
+ ) }),
1055
1062
  /* @__PURE__ */ jsxs13("div", { className: "flex flex-1 justify-between gap-3 sm:justify-end", children: [
1056
1063
  /* @__PURE__ */ jsx51(
1057
1064
  Button,
1058
1065
  {
1066
+ "data-testid": "first-page-button",
1067
+ disabled: currentPage === 1,
1068
+ type: "button",
1069
+ variant: "outline",
1070
+ onClick: () => {
1071
+ setCurrentPage(1);
1072
+ },
1073
+ children: t("pagination.firstPage")
1074
+ }
1075
+ ),
1076
+ /* @__PURE__ */ jsx51(
1077
+ Button,
1078
+ {
1079
+ "data-testid": "previous-page-button",
1059
1080
  disabled: currentPage === 1,
1060
1081
  type: "button",
1061
1082
  variant: "outline",
@@ -1068,6 +1089,7 @@ var ClientTablePagination = ({
1068
1089
  /* @__PURE__ */ jsx51(
1069
1090
  Button,
1070
1091
  {
1092
+ "data-testid": "next-page-button",
1071
1093
  disabled: currentPage === pageCount,
1072
1094
  type: "button",
1073
1095
  variant: "outline",
@@ -1076,6 +1098,19 @@ var ClientTablePagination = ({
1076
1098
  },
1077
1099
  children: t("pagination.next")
1078
1100
  }
1101
+ ),
1102
+ /* @__PURE__ */ jsx51(
1103
+ Button,
1104
+ {
1105
+ "data-testid": "last-page-button",
1106
+ disabled: currentPage === pageCount,
1107
+ type: "button",
1108
+ variant: "outline",
1109
+ onClick: () => {
1110
+ setCurrentPage(pageCount);
1111
+ },
1112
+ children: t("pagination.lastPage")
1113
+ }
1079
1114
  )
1080
1115
  ] })
1081
1116
  ] });
@@ -1113,9 +1148,9 @@ var ClientTable = ({
1113
1148
  const lastEntry = Math.min(firstEntry + entriesPerPage - 1, data.length);
1114
1149
  const currentEntries = data.slice(firstEntry - 1, lastEntry);
1115
1150
  const nRows = Math.max(currentEntries.length, minRows ?? -1);
1116
- return /* @__PURE__ */ jsxs14("div", { className, ...props, children: [
1117
- /* @__PURE__ */ jsx52("div", { className: "rounded-md border bg-card tracking-tight text-muted-foreground shadow-sm", children: /* @__PURE__ */ jsxs14(Table, { children: [
1118
- /* @__PURE__ */ jsx52(Table.Header, { children: /* @__PURE__ */ jsx52(Table.Row, { children: columns.map((column, i) => /* @__PURE__ */ jsx52(Table.Head, { className: "whitespace-nowrap text-foreground", children: columnDropdownOptions ? /* @__PURE__ */ jsxs14(DropdownMenu, { children: [
1151
+ return /* @__PURE__ */ jsxs14("div", { className, ...props, "data-testid": "ClientTable", children: [
1152
+ /* @__PURE__ */ jsx52("div", { className: "bg-card text-muted-foreground rounded-md border tracking-tight shadow-xs", children: /* @__PURE__ */ jsxs14(Table, { children: [
1153
+ /* @__PURE__ */ jsx52(Table.Header, { children: /* @__PURE__ */ jsx52(Table.Row, { children: columns.map((column, i) => /* @__PURE__ */ jsx52(Table.Head, { className: "text-foreground whitespace-nowrap", children: columnDropdownOptions ? /* @__PURE__ */ jsxs14(DropdownMenu, { children: [
1119
1154
  /* @__PURE__ */ jsxs14(DropdownMenu.Trigger, { className: "flex items-center justify-between gap-3", children: [
1120
1155
  /* @__PURE__ */ jsx52("span", { children: column.label }),
1121
1156
  /* @__PURE__ */ jsx52(ChevronDownIcon3, {})
@@ -1125,6 +1160,7 @@ var ClientTable = ({
1125
1160
  return /* @__PURE__ */ jsxs14(
1126
1161
  DropdownMenu.Item,
1127
1162
  {
1163
+ "data-testid": option.label + "-test-id",
1128
1164
  onClick: () => {
1129
1165
  option.onSelection(column);
1130
1166
  },
@@ -1159,7 +1195,7 @@ var ClientTable = ({
1159
1195
  Table.Cell,
1160
1196
  {
1161
1197
  className: cn(
1162
- "text-ellipsis leading-none",
1198
+ "leading-none text-ellipsis",
1163
1199
  !entry && "opacity-0",
1164
1200
  // safari does not include borders if invisible
1165
1201
  noWrap && "max-w-3xl overflow-hidden text-ellipsis whitespace-nowrap"
@@ -1251,7 +1287,7 @@ var CommandInput = forwardRef46(function CommandInput2({ className, ...props },
1251
1287
  CommandPrimitive3.Input,
1252
1288
  {
1253
1289
  className: cn(
1254
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1290
+ "placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
1255
1291
  className
1256
1292
  ),
1257
1293
  ref,
@@ -1271,7 +1307,7 @@ var CommandItem = forwardRef47(function CommandItem2({ className, ...props }, re
1271
1307
  CommandPrimitive4.Item,
1272
1308
  {
1273
1309
  className: cn(
1274
- "relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
1310
+ "aria-selected:bg-accent aria-selected:text-accent-foreground relative flex cursor-pointer items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
1275
1311
  className
1276
1312
  ),
1277
1313
  ref,
@@ -1349,7 +1385,7 @@ var ContextMenuCheckboxItem = forwardRef51(function ContextMenuCheckboxItem2({ c
1349
1385
  {
1350
1386
  checked,
1351
1387
  className: cn(
1352
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1388
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1353
1389
  className
1354
1390
  ),
1355
1391
  ref,
@@ -1389,7 +1425,7 @@ var ContextMenuItem = forwardRef53(function ContextMenuItem2({ className, inset,
1389
1425
  ContextMenuPrimitive3.Item,
1390
1426
  {
1391
1427
  className: cn(
1392
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1428
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1393
1429
  inset && "pl-8",
1394
1430
  className
1395
1431
  ),
@@ -1424,7 +1460,7 @@ var ContextMenuRadioItem = forwardRef55(function ContextMenuRadioItem2({ childre
1424
1460
  ContextMenuPrimitive5.RadioItem,
1425
1461
  {
1426
1462
  className: cn(
1427
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1463
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1428
1464
  className
1429
1465
  ),
1430
1466
  ref,
@@ -1480,7 +1516,7 @@ var ContextMenuSubTrigger = forwardRef58(function ContextMenuSubTrigger2({ child
1480
1516
  ContextMenuPrimitive8.SubTrigger,
1481
1517
  {
1482
1518
  className: cn(
1483
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
1519
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none",
1484
1520
  inset && "pl-8",
1485
1521
  className
1486
1522
  ),
@@ -1697,12 +1733,12 @@ var MONTHS = [
1697
1733
  var reducer = (previousDate, action) => {
1698
1734
  const newDate = new Date(previousDate.valueOf());
1699
1735
  switch (action.type) {
1700
- case "increment":
1701
- newDate.setMonth(newDate.getMonth() + 1);
1702
- break;
1703
1736
  case "decrement":
1704
1737
  newDate.setMonth(newDate.getMonth() - 1);
1705
1738
  break;
1739
+ case "increment":
1740
+ newDate.setMonth(newDate.getMonth() + 1);
1741
+ break;
1706
1742
  case "set-year":
1707
1743
  newDate.setFullYear(action.value);
1708
1744
  }
@@ -1843,14 +1879,14 @@ var DialogContent = forwardRef64(function DialogContent2({ children, className,
1843
1879
  Content6,
1844
1880
  {
1845
1881
  className: cn(
1846
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
1882
+ "bg-background 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",
1847
1883
  className
1848
1884
  ),
1849
1885
  ref,
1850
1886
  ...props,
1851
1887
  children: [
1852
1888
  children,
1853
- /* @__PURE__ */ jsx79(Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: /* @__PURE__ */ jsx79(XIcon, { className: "h-4 w-4" }) })
1889
+ /* @__PURE__ */ jsx79(Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: /* @__PURE__ */ jsx79(XIcon, { className: "h-4 w-4" }) })
1854
1890
  ]
1855
1891
  }
1856
1892
  )
@@ -2136,7 +2172,7 @@ var Input = React26.forwardRef(function Input2({ className, type, ...props }, re
2136
2172
  {
2137
2173
  autoComplete: "off",
2138
2174
  className: cn(
2139
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground placeholder:opacity-80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
2175
+ "border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-80 focus-visible:ring-1 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
2140
2176
  className
2141
2177
  ),
2142
2178
  "data-testid": "input",
@@ -2178,7 +2214,7 @@ var PopoverContent = React27.forwardRef(
2178
2214
  align,
2179
2215
  asChild,
2180
2216
  className: cn(
2181
- "z-50 w-72 rounded-md border bg-popover px-3 py-1.5 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2217
+ "bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border px-3 py-1.5 shadow-md outline-hidden",
2182
2218
  className
2183
2219
  ),
2184
2220
  collisionPadding,
@@ -2301,7 +2337,7 @@ var RadioGroupItem = forwardRef73(function RadioGroupItem2({ className, ...props
2301
2337
  RadioGroupPrimitive.Item,
2302
2338
  {
2303
2339
  className: cn(
2304
- "flex aspect-square h-4 w-4 items-center justify-center rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
2340
+ "border-primary text-primary focus-visible:ring-ring flex aspect-square h-4 w-4 items-center justify-center rounded-full border shadow-sm focus:outline-hidden focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
2305
2341
  className
2306
2342
  ),
2307
2343
  ref,
@@ -2460,7 +2496,7 @@ var SelectItem = forwardRef78(function SelectItem2({ children, className, ...pro
2460
2496
  SelectPrimitive4.Item,
2461
2497
  {
2462
2498
  className: cn(
2463
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2499
+ "focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2464
2500
  className
2465
2501
  ),
2466
2502
  ref,
@@ -2549,7 +2585,7 @@ var Slider = forwardRef82(
2549
2585
  return /* @__PURE__ */ jsxs33(
2550
2586
  Root13,
2551
2587
  {
2552
- className: cn("relative flex w-full touch-none select-none items-center py-1.5", className),
2588
+ className: cn("relative flex w-full touch-none items-center py-1.5 select-none", className),
2553
2589
  disabled,
2554
2590
  ref,
2555
2591
  ...props,
@@ -2558,16 +2594,16 @@ var Slider = forwardRef82(
2558
2594
  Track,
2559
2595
  {
2560
2596
  "aria-disabled": disabled,
2561
- className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary opacity-15 aria-disabled:cursor-not-allowed aria-disabled:opacity-10",
2597
+ className: "bg-primary relative h-1.5 w-full grow overflow-hidden rounded-full opacity-15 aria-disabled:cursor-not-allowed aria-disabled:opacity-10",
2562
2598
  "data-testid": "slider-track",
2563
- children: /* @__PURE__ */ jsx113(Range, { className: "absolute h-full bg-primary" })
2599
+ children: /* @__PURE__ */ jsx113(Range, { className: "bg-primary absolute h-full" })
2564
2600
  }
2565
2601
  ),
2566
2602
  /* @__PURE__ */ jsx113(
2567
2603
  Thumb,
2568
2604
  {
2569
2605
  "aria-disabled": disabled,
2570
- className: "block h-4 w-4 rounded-full border border-slate-500 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring aria-disabled:cursor-not-allowed",
2606
+ className: "bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border border-slate-500 shadow-sm transition-colors focus-visible:ring-1 focus-visible:outline-hidden aria-disabled:cursor-not-allowed",
2571
2607
  "data-testid": "slider-thumb"
2572
2608
  }
2573
2609
  )
@@ -3017,14 +3053,14 @@ var StringFieldPassword = ({
3017
3053
  /* @__PURE__ */ jsxs42(
3018
3054
  "button",
3019
3055
  {
3020
- className: "absolute right-0 flex h-full w-8 items-center justify-center text-muted-foreground",
3056
+ className: "text-muted-foreground absolute right-0 flex h-full w-8 items-center justify-center",
3021
3057
  disabled: disabled || readOnly,
3022
3058
  tabIndex: -1,
3023
3059
  type: "button",
3024
3060
  onClick: () => setShow(!show),
3025
3061
  children: [
3026
- /* @__PURE__ */ jsx125(EyeIcon, { className: cn("absolute transition-all", show ? "-rotate-90 scale-0" : "rotate-0 scale-100") }),
3027
- /* @__PURE__ */ jsx125(EyeOffIcon, { className: cn("absolute transition-all", !show ? "rotate-90 scale-0" : "rotate-0 scale-100") })
3062
+ /* @__PURE__ */ jsx125(EyeIcon, { className: cn("absolute transition-all", show ? "scale-0 -rotate-90" : "scale-100 rotate-0") }),
3063
+ /* @__PURE__ */ jsx125(EyeOffIcon, { className: cn("absolute transition-all", !show ? "scale-0 rotate-90" : "scale-100 rotate-0") })
3028
3064
  ]
3029
3065
  }
3030
3066
  )
@@ -3033,14 +3069,14 @@ var StringFieldPassword = ({
3033
3069
  motion4.div,
3034
3070
  {
3035
3071
  animate: { width: `${Math.max(strength * 25, 5)}%` },
3036
- className: "h-1 w-full overflow-hidden rounded",
3072
+ className: "h-1 w-full overflow-hidden rounded-sm",
3037
3073
  initial: { width: "5%" },
3038
3074
  transition: { duration: 0.5 },
3039
3075
  children: /* @__PURE__ */ jsx125(
3040
3076
  "div",
3041
3077
  {
3042
3078
  className: cn(
3043
- "h-full w-full bg-destructive transition-colors duration-500",
3079
+ "bg-destructive h-full w-full transition-colors duration-500",
3044
3080
  strength === 2 && "bg-yellow-500 dark:bg-yellow-700",
3045
3081
  strength === 3 && "bg-sky-500 dark:bg-sky-700",
3046
3082
  strength === 4 && "bg-green-500 dark:bg-green-700"
@@ -3151,7 +3187,7 @@ var TextArea = React32.forwardRef(function TextArea2({ className, ...props }, re
3151
3187
  {
3152
3188
  autoComplete: "off",
3153
3189
  className: cn(
3154
- "flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground placeholder:opacity-80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
3190
+ "border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-xs placeholder:opacity-80 focus-visible:ring-1 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
3155
3191
  className
3156
3192
  ),
3157
3193
  "data-testid": "text-area",
@@ -3205,16 +3241,16 @@ var StringField = (props) => {
3205
3241
  import { jsx as jsx132 } from "react/jsx-runtime";
3206
3242
  var ScalarField = ({ field, ...props }) => {
3207
3243
  switch (field.kind) {
3208
- case "string":
3209
- return /* @__PURE__ */ jsx132(StringField, { ...field, ...props });
3210
- case "number":
3211
- return /* @__PURE__ */ jsx132(NumberField, { ...field, ...props });
3212
- case "date":
3213
- return /* @__PURE__ */ jsx132(DateField, { ...field, ...props });
3214
3244
  case "boolean":
3215
3245
  return /* @__PURE__ */ jsx132(BooleanField, { ...field, ...props });
3246
+ case "date":
3247
+ return /* @__PURE__ */ jsx132(DateField, { ...field, ...props });
3248
+ case "number":
3249
+ return /* @__PURE__ */ jsx132(NumberField, { ...field, ...props });
3216
3250
  case "set":
3217
3251
  return /* @__PURE__ */ jsx132(SetField, { ...field, ...props });
3252
+ case "string":
3253
+ return /* @__PURE__ */ jsx132(StringField, { ...field, ...props });
3218
3254
  default:
3219
3255
  throw new Error(`Unexpected value for kind: ${Reflect.get(field, "kind")}`);
3220
3256
  }
@@ -3279,9 +3315,7 @@ var RecordArrayField = memo(function RecordArrayField2({
3279
3315
  readOnly: disabled || readOnly,
3280
3316
  setError: (error) => {
3281
3317
  const newArrayError = arrayError ? [...arrayError] : [];
3282
- if (!newArrayError[i]) {
3283
- newArrayError[i] = {};
3284
- }
3318
+ newArrayError[i] ?? (newArrayError[i] = {});
3285
3319
  newArrayError[i][name] = error;
3286
3320
  setArrayError(newArrayError);
3287
3321
  },
@@ -3623,7 +3657,7 @@ var HoverCardContent = forwardRef84(function HoverCardContent2({ align = "center
3623
3657
  {
3624
3658
  align,
3625
3659
  className: cn(
3626
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3660
+ "bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden",
3627
3661
  className
3628
3662
  ),
3629
3663
  ref,
@@ -3826,7 +3860,7 @@ var MenuBarCheckboxItem = forwardRef85(function MenuBarCheckboxItem2({ checked,
3826
3860
  {
3827
3861
  checked,
3828
3862
  className: cn(
3829
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3863
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3830
3864
  className
3831
3865
  ),
3832
3866
  ref,
@@ -3869,7 +3903,7 @@ var MenuBarItem = forwardRef87(function MenuBarItem2({ className, inset, ...prop
3869
3903
  Item6,
3870
3904
  {
3871
3905
  className: cn(
3872
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3906
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3873
3907
  inset && "pl-8",
3874
3908
  className
3875
3909
  ),
@@ -3897,7 +3931,7 @@ var MenuBarRadioItem = forwardRef89(function MenuBarRadioItem2({ children, class
3897
3931
  RadioItem3,
3898
3932
  {
3899
3933
  className: cn(
3900
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3934
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3901
3935
  className
3902
3936
  ),
3903
3937
  ref,
@@ -3919,7 +3953,7 @@ var MenuBarRoot = forwardRef90(
3919
3953
  return /* @__PURE__ */ jsx146(
3920
3954
  Root15,
3921
3955
  {
3922
- className: cn("flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm", className),
3956
+ className: cn("bg-background flex h-9 items-center space-x-1 rounded-md border p-1 shadow-xs", className),
3923
3957
  ref,
3924
3958
  ...props
3925
3959
  }
@@ -3970,7 +4004,7 @@ var MenuBarSubTrigger = forwardRef93(function MenuBarSubTrigger2({ children, cla
3970
4004
  SubTrigger3,
3971
4005
  {
3972
4006
  className: cn(
3973
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
4007
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none",
3974
4008
  inset && "pl-8",
3975
4009
  className
3976
4010
  ),
@@ -3993,7 +4027,7 @@ var MenuBarTrigger = forwardRef94(function MenuBarTrigger2({ className, ...props
3993
4027
  Trigger9,
3994
4028
  {
3995
4029
  className: cn(
3996
- "flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
4030
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-3 py-1 text-sm font-medium outline-hidden select-none",
3997
4031
  className
3998
4032
  ),
3999
4033
  ref,
@@ -4129,11 +4163,11 @@ var NotificationHub = ({ timeout = 5e3 }) => {
4129
4163
  /* @__PURE__ */ jsxs54("div", { className: "p-4", children: [
4130
4164
  /* @__PURE__ */ jsxs54("div", { className: "mb-2 flex items-center", children: [
4131
4165
  /* @__PURE__ */ jsx153(NotificationIcon, { type: item.type }),
4132
- /* @__PURE__ */ jsx153("h5", { className: "ml-3 flex-grow font-medium text-slate-900 dark:text-slate-100", children: item.title ?? t(`notifications.types.${item.type}`) }),
4166
+ /* @__PURE__ */ jsx153("h5", { className: "ml-3 grow font-medium text-slate-900 dark:text-slate-100", children: item.title ?? t(`notifications.types.${item.type}`) }),
4133
4167
  /* @__PURE__ */ jsx153(
4134
4168
  "button",
4135
4169
  {
4136
- className: "inline-flex rounded-md text-slate-400 hover:text-slate-500 focus:outline-none focus:ring-1 focus:ring-sky-500 dark:focus:ring-sky-600",
4170
+ className: "inline-flex rounded-md text-slate-400 hover:text-slate-500 focus:ring-1 focus:ring-sky-500 focus:outline-hidden dark:focus:ring-sky-600",
4137
4171
  type: "button",
4138
4172
  onClick: () => {
4139
4173
  dismissNotification(item.id);
@@ -4142,7 +4176,7 @@ var NotificationHub = ({ timeout = 5e3 }) => {
4142
4176
  }
4143
4177
  )
4144
4178
  ] }),
4145
- /* @__PURE__ */ jsx153("p", { className: "my-2 text-muted-foreground", children: item.message })
4179
+ /* @__PURE__ */ jsx153("p", { className: "text-muted-foreground my-2", children: item.message })
4146
4180
  ] }),
4147
4181
  /* @__PURE__ */ jsx153(
4148
4182
  motion5.div,
@@ -4281,11 +4315,11 @@ var ResizableHandle = ({ className, withHandle, ...props }) => /* @__PURE__ */ j
4281
4315
  PanelResizeHandle,
4282
4316
  {
4283
4317
  className: cn(
4284
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
4318
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
4285
4319
  className
4286
4320
  ),
4287
4321
  ...props,
4288
- children: withHandle && /* @__PURE__ */ jsx162("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx162(GripVertical, { className: "h-2.5 w-2.5" }) })
4322
+ children: withHandle && /* @__PURE__ */ jsx162("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx162(GripVertical, { className: "h-2.5 w-2.5" }) })
4289
4323
  }
4290
4324
  );
4291
4325
 
@@ -4425,7 +4459,7 @@ var SheetContent = React49.forwardRef(function SheetContent2({ children, classNa
4425
4459
  /* @__PURE__ */ jsx169(SheetOverlay, {}),
4426
4460
  /* @__PURE__ */ jsxs59(Content11, { className: cn(sheetVariants({ side }), className), ref, ...props, children: [
4427
4461
  children,
4428
- /* @__PURE__ */ jsxs59(Close2, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
4462
+ /* @__PURE__ */ jsxs59(Close2, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
4429
4463
  /* @__PURE__ */ jsx169(XIcon3, { className: "h-4 w-4" }),
4430
4464
  /* @__PURE__ */ jsx169("span", { className: "sr-only", children: "Close" })
4431
4465
  ] })
@@ -4542,7 +4576,7 @@ var Switch = forwardRef101(function Switch2({ className, ...props }, ref) {
4542
4576
  SwitchPrimitives.Root,
4543
4577
  {
4544
4578
  className: cn(
4545
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
4579
+ "peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
4546
4580
  className
4547
4581
  ),
4548
4582
  ...props,
@@ -4551,7 +4585,7 @@ var Switch = forwardRef101(function Switch2({ className, ...props }, ref) {
4551
4585
  SwitchPrimitives.Thumb,
4552
4586
  {
4553
4587
  className: cn(
4554
- "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
4588
+ "bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
4555
4589
  )
4556
4590
  }
4557
4591
  )
@@ -4568,7 +4602,7 @@ var TabsContent = forwardRef102(function TabsContent2({ className, ...props }, r
4568
4602
  TabsPrimitive.Content,
4569
4603
  {
4570
4604
  className: cn(
4571
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
4605
+ "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden",
4572
4606
  className
4573
4607
  ),
4574
4608
  ref,
@@ -4614,7 +4648,7 @@ var TabsTrigger = forwardRef105(function TabsTrigger2({ className, ...props }, r
4614
4648
  TabsPrimitive3.Trigger,
4615
4649
  {
4616
4650
  className: cn(
4617
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
4651
+ "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",
4618
4652
  className
4619
4653
  ),
4620
4654
  ref,