@squadbase/vantage 0.6.2-dev1.b332e5a → 0.6.2-dev1.d7c0911

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 (212) hide show
  1. package/dist/add-4GHF2TX2.js +6 -0
  2. package/dist/add-4GHF2TX2.js.map +1 -0
  3. package/dist/{build-TVKFIVFQ.js → build-X5NVCQKT.js} +7 -7
  4. package/dist/{build-TVKFIVFQ.js.map → build-X5NVCQKT.js.map} +1 -1
  5. package/dist/{check-3KHZXZMQ.js → check-ZBIH422T.js} +5 -5
  6. package/dist/{check-3KHZXZMQ.js.map → check-ZBIH422T.js.map} +1 -1
  7. package/dist/chunk-2ICNHUG6.js +1820 -0
  8. package/dist/chunk-2ICNHUG6.js.map +1 -0
  9. package/dist/{chunk-5ZOP4SQR.js → chunk-2N72FKLB.js} +12 -7
  10. package/dist/chunk-2N72FKLB.js.map +1 -0
  11. package/dist/{chunk-P7W4LR3Z.js → chunk-7DZGJQ3P.js} +3 -3
  12. package/dist/{chunk-P7W4LR3Z.js.map → chunk-7DZGJQ3P.js.map} +1 -1
  13. package/dist/{chunk-U2M6HGKQ.js → chunk-AABMKHEU.js} +4 -4
  14. package/dist/{chunk-U2M6HGKQ.js.map → chunk-AABMKHEU.js.map} +1 -1
  15. package/dist/{chunk-QI3XQKHS.js → chunk-GNXCX4WE.js} +10 -3
  16. package/dist/chunk-GNXCX4WE.js.map +1 -0
  17. package/dist/{chunk-PXRX5PEC.js → chunk-PDOBHMUQ.js} +3 -3
  18. package/dist/chunk-PDOBHMUQ.js.map +1 -0
  19. package/dist/{chunk-ZVANIULZ.js → chunk-RNTDBX6S.js} +4 -4
  20. package/dist/{chunk-ZVANIULZ.js.map → chunk-RNTDBX6S.js.map} +1 -1
  21. package/dist/{chunk-A2UUGASH.js → chunk-U736PVHY.js} +2 -2
  22. package/dist/chunk-U736PVHY.js.map +1 -0
  23. package/dist/{chunk-PVTHHV7X.js → chunk-V3LF7BE7.js} +27 -5
  24. package/dist/chunk-V3LF7BE7.js.map +1 -0
  25. package/dist/{chunk-LMUACBMA.js → chunk-WAMZWZJB.js} +53 -8
  26. package/dist/chunk-WAMZWZJB.js.map +1 -0
  27. package/dist/chunk-WRSX2MDK.js +7866 -0
  28. package/dist/chunk-WRSX2MDK.js.map +1 -0
  29. package/dist/{chunk-RPZAALCX.js → chunk-XPQSTZUU.js} +254 -164
  30. package/dist/chunk-XPQSTZUU.js.map +1 -0
  31. package/dist/{chunk-DTDVSFRY.js → chunk-XQUSGIDG.js} +17 -3
  32. package/dist/chunk-XQUSGIDG.js.map +1 -0
  33. package/dist/cli.js +12 -11
  34. package/dist/cli.js.map +1 -1
  35. package/dist/client/index.d.ts +32 -3
  36. package/dist/client/index.js +205 -12
  37. package/dist/client/index.js.map +1 -1
  38. package/dist/components/index.d.ts +1975 -28
  39. package/dist/components/index.js +4 -4
  40. package/dist/{dev-GDKATCC7.js → dev-4XEDTELV.js} +8 -8
  41. package/dist/dev-4XEDTELV.js.map +1 -0
  42. package/dist/doc/index.js +2 -2
  43. package/dist/doc/index.js.map +1 -1
  44. package/dist/{docs-EJJ3BECT.js → docs-JVP4RPKT.js} +3 -3
  45. package/dist/{docs-EJJ3BECT.js.map → docs-JVP4RPKT.js.map} +1 -1
  46. package/dist/{doctor-WQXPXP6K.js → doctor-5E2VEZPK.js} +5 -5
  47. package/dist/{doctor-WQXPXP6K.js.map → doctor-5E2VEZPK.js.map} +1 -1
  48. package/dist/markdown/index.js +1 -1
  49. package/dist/markdown/index.js.map +1 -1
  50. package/dist/{preview-OGMCNQUO.js → preview-T6CLSQVX.js} +3 -3
  51. package/dist/{preview-OGMCNQUO.js.map → preview-T6CLSQVX.js.map} +1 -1
  52. package/dist/query/index.d.ts +0 -11
  53. package/dist/query/index.js +2 -2
  54. package/dist/{routes-MWBWWOJ2.js → routes-3SGAFDMC.js} +4 -4
  55. package/dist/{routes-MWBWWOJ2.js.map → routes-3SGAFDMC.js.map} +1 -1
  56. package/dist/{search-6Y422SV6.js → search-5LC4XPB5.js} +3 -3
  57. package/dist/{search-6Y422SV6.js.map → search-5LC4XPB5.js.map} +1 -1
  58. package/dist/table/index.js +10 -9
  59. package/dist/table/index.js.map +1 -1
  60. package/dist/ui/index.d.ts +144 -11
  61. package/dist/ui/index.js +1339 -87
  62. package/dist/ui/index.js.map +1 -1
  63. package/dist/{upgrade-HCANX4GQ.js → upgrade-JHXZBGQS.js} +6 -6
  64. package/dist/{upgrade-HCANX4GQ.js.map → upgrade-JHXZBGQS.js.map} +1 -1
  65. package/dist/vite/index.d.ts +10 -0
  66. package/dist/vite/index.js +3 -3
  67. package/docs/en/components.md +29 -15
  68. package/docs/en/parts/data-table.md +22 -0
  69. package/docs/en/parts/delta.md +50 -0
  70. package/docs/en/parts/format.md +43 -0
  71. package/docs/en/parts/kpi-card.md +57 -0
  72. package/docs/en/parts/metric-value.md +3 -2
  73. package/docs/en/parts/sparkline.md +1 -1
  74. package/docs/en/parts/trend-indicator.md +17 -1
  75. package/docs/en/ui-and-theming.md +1 -1
  76. package/docs/index.json +366 -76
  77. package/docs/ja/changelog.md +31 -0
  78. package/docs/ja/components.md +57 -101
  79. package/docs/ja/page-types/csv.md +83 -0
  80. package/docs/ja/page-types/doc.md +83 -0
  81. package/docs/ja/page-types/excel.md +82 -0
  82. package/docs/ja/page-types/slide.md +132 -0
  83. package/docs/ja/page-types.md +47 -0
  84. package/docs/ja/parts/area-chart.md +61 -0
  85. package/docs/ja/parts/bar-chart.md +69 -0
  86. package/docs/ja/parts/bar-list.md +35 -0
  87. package/docs/ja/parts/category-bar.md +36 -0
  88. package/docs/ja/parts/data-table.md +22 -0
  89. package/docs/ja/parts/delta.md +50 -0
  90. package/docs/ja/parts/donut-chart.md +47 -0
  91. package/docs/ja/parts/echart.md +3 -0
  92. package/docs/ja/parts/format.md +44 -0
  93. package/docs/ja/parts/kpi-card.md +55 -0
  94. package/docs/ja/parts/line-chart.md +58 -0
  95. package/docs/ja/parts/metric-value.md +3 -2
  96. package/docs/ja/parts/progress-circle.md +34 -0
  97. package/docs/ja/parts/sparkline.md +2 -2
  98. package/docs/ja/parts/tracker.md +32 -0
  99. package/docs/ja/parts/trend-indicator.md +17 -1
  100. package/docs/ja/routing.md +8 -86
  101. package/docs/ja/ui/alert-dialog.md +41 -0
  102. package/docs/ja/ui/avatar.md +31 -0
  103. package/docs/ja/ui/combobox.md +74 -0
  104. package/docs/ja/ui/drawer.md +41 -0
  105. package/docs/ja/ui/field.md +42 -0
  106. package/docs/ja/ui/hover-card.md +21 -0
  107. package/docs/ja/ui/kbd.md +16 -0
  108. package/docs/ja/ui/pagination.md +36 -0
  109. package/docs/ja/ui/radio-group.md +21 -0
  110. package/docs/ja/ui/toast.md +46 -0
  111. package/docs/ja/ui-and-theming.md +14 -7
  112. package/package.json +13 -4
  113. package/registry/ui/accordion.tsx +76 -0
  114. package/registry/ui/alert-dialog.tsx +189 -0
  115. package/registry/ui/alert.tsx +80 -0
  116. package/registry/ui/app-shell.tsx +287 -0
  117. package/registry/ui/area-chart.tsx +3639 -0
  118. package/registry/ui/avatar.tsx +110 -0
  119. package/registry/ui/badge.tsx +56 -0
  120. package/registry/ui/bar-chart.tsx +3636 -0
  121. package/registry/ui/bar-list.tsx +3680 -0
  122. package/registry/ui/breadcrumb.tsx +128 -0
  123. package/registry/ui/button.tsx +62 -0
  124. package/registry/ui/calendar.tsx +223 -0
  125. package/registry/ui/card.tsx +107 -0
  126. package/registry/ui/category-bar.tsx +1255 -0
  127. package/registry/ui/chart-frame.tsx +1358 -0
  128. package/registry/ui/checkbox.tsx +30 -0
  129. package/registry/ui/collapsible.tsx +23 -0
  130. package/registry/ui/combobox.tsx +310 -0
  131. package/registry/ui/command.tsx +198 -0
  132. package/registry/ui/dashboard-card.tsx +217 -0
  133. package/registry/ui/data-table.tsx +693 -146
  134. package/registry/ui/date-range-picker.tsx +390 -0
  135. package/registry/ui/delta.tsx +188 -0
  136. package/registry/ui/dialog.tsx +161 -0
  137. package/registry/ui/donut-chart.tsx +3688 -0
  138. package/registry/ui/drawer.tsx +229 -0
  139. package/registry/ui/dropdown-menu.tsx +274 -0
  140. package/registry/ui/echart.tsx +890 -0
  141. package/registry/ui/field.tsx +240 -0
  142. package/registry/ui/filter-bar.tsx +392 -0
  143. package/registry/ui/funnel-steps.tsx +3541 -0
  144. package/registry/ui/heatmap.tsx +1752 -0
  145. package/registry/ui/hover-card.tsx +52 -0
  146. package/registry/ui/input-group.tsx +160 -0
  147. package/registry/ui/input.tsx +24 -0
  148. package/registry/ui/kbd.tsx +30 -0
  149. package/registry/ui/kpi-card.tsx +677 -0
  150. package/registry/ui/label.tsx +22 -0
  151. package/registry/ui/legend.tsx +3500 -0
  152. package/registry/ui/line-chart.tsx +3637 -0
  153. package/registry/ui/metric-value.tsx +62 -0
  154. package/registry/ui/multi-select.tsx +232 -0
  155. package/registry/ui/page-shell.tsx +282 -0
  156. package/registry/ui/pagination.tsx +140 -0
  157. package/registry/ui/placeholder.tsx +36 -0
  158. package/registry/ui/popover.tsx +92 -0
  159. package/registry/ui/progress-circle.tsx +867 -0
  160. package/registry/ui/progress.tsx +85 -0
  161. package/registry/ui/radio-group.tsx +39 -0
  162. package/registry/ui/sample-data.tsx +86 -0
  163. package/registry/ui/scatter-chart.tsx +4150 -0
  164. package/registry/ui/scroll-area.tsx +56 -0
  165. package/registry/ui/searchable-select.tsx +214 -0
  166. package/registry/ui/section-header.tsx +43 -0
  167. package/registry/ui/segmented-control.tsx +76 -0
  168. package/registry/ui/select.tsx +255 -0
  169. package/registry/ui/separator.tsx +27 -0
  170. package/registry/ui/sheet.tsx +139 -0
  171. package/registry/ui/sidebar.tsx +725 -0
  172. package/registry/ui/skeleton.tsx +17 -0
  173. package/registry/ui/slider.tsx +56 -0
  174. package/registry/ui/sparkline.tsx +230 -0
  175. package/registry/ui/spinner.tsx +14 -0
  176. package/registry/ui/states.tsx +90 -0
  177. package/registry/ui/status-badge.tsx +121 -0
  178. package/registry/ui/switch.tsx +34 -0
  179. package/registry/ui/table.tsx +118 -0
  180. package/registry/ui/tabs.tsx +84 -0
  181. package/registry/ui/textarea.tsx +22 -0
  182. package/registry/ui/toast.tsx +250 -0
  183. package/registry/ui/toggle-group.tsx +91 -0
  184. package/registry/ui/toggle.tsx +47 -0
  185. package/registry/ui/tooltip.tsx +68 -0
  186. package/registry/ui/tracker.tsx +843 -0
  187. package/registry/ui/trend-indicator.tsx +74 -0
  188. package/registry/ui/updated-at.tsx +122 -0
  189. package/registry/ui/waterfall-chart.tsx +4186 -0
  190. package/skills/vantage-add-feature/SKILL.md +9 -7
  191. package/skills/vantage-pitfalls/SKILL.md +5 -1
  192. package/templates/AGENTS.md +22 -1
  193. package/templates/agents/csv.md +2 -1
  194. package/templates/agents/doc.md +4 -3
  195. package/templates/agents/page.md +20 -6
  196. package/templates/agents/xlsx.md +2 -1
  197. package/theme.css +237 -136
  198. package/dist/add-DY4AXANK.js +0 -6
  199. package/dist/add-DY4AXANK.js.map +0 -1
  200. package/dist/chunk-5ZOP4SQR.js.map +0 -1
  201. package/dist/chunk-A2UUGASH.js.map +0 -1
  202. package/dist/chunk-DTDVSFRY.js.map +0 -1
  203. package/dist/chunk-LMUACBMA.js.map +0 -1
  204. package/dist/chunk-NKFBFDRZ.js +0 -2241
  205. package/dist/chunk-NKFBFDRZ.js.map +0 -1
  206. package/dist/chunk-PVTHHV7X.js.map +0 -1
  207. package/dist/chunk-PXRX5PEC.js.map +0 -1
  208. package/dist/chunk-QI3XQKHS.js.map +0 -1
  209. package/dist/chunk-RPZAALCX.js.map +0 -1
  210. package/dist/chunk-VA776YE5.js +0 -316
  211. package/dist/chunk-VA776YE5.js.map +0 -1
  212. package/dist/dev-GDKATCC7.js.map +0 -1
@@ -1,21 +1,21 @@
1
- import { buttonVariants, Button } from './chunk-PXRX5PEC.js';
2
- import { cn } from './chunk-A2UUGASH.js';
1
+ import { buttonVariants, Button } from './chunk-PDOBHMUQ.js';
2
+ import { cn } from './chunk-U736PVHY.js';
3
3
  import { mergeProps } from '@base-ui/react/merge-props';
4
4
  import { useRender } from '@base-ui/react/use-render';
5
5
  import { cva } from 'class-variance-authority';
6
- import * as React12 from 'react';
6
+ import * as React13 from 'react';
7
7
  import { getDefaultClassNames, DayPicker } from 'react-day-picker';
8
8
  import { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, CheckIcon, XIcon, SearchIcon, ChevronUpIcon, PanelLeftIcon } from 'lucide-react';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
  import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
11
11
  import { Collapsible as Collapsible$1 } from '@base-ui/react/collapsible';
12
- import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
13
12
  import { Input as Input$1 } from '@base-ui/react/input';
13
+ import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
14
14
  import { Command as Command$1 } from 'cmdk';
15
15
  import { Menu } from '@base-ui/react/menu';
16
+ import { Separator as Separator$1 } from '@base-ui/react/separator';
16
17
  import { Popover as Popover$1 } from '@base-ui/react/popover';
17
18
  import { Select as Select$1 } from '@base-ui/react/select';
18
- import { Separator as Separator$1 } from '@base-ui/react/separator';
19
19
  import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
20
20
  import { Toggle as Toggle$1 } from '@base-ui/react/toggle';
21
21
  import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
@@ -213,8 +213,8 @@ function CalendarDayButton({
213
213
  ...props
214
214
  }) {
215
215
  const defaultClassNames = getDefaultClassNames();
216
- const ref = React12.useRef(null);
217
- React12.useEffect(() => {
216
+ const ref = React13.useRef(null);
217
+ React13.useEffect(() => {
218
218
  if (modifiers.focused) ref.current?.focus();
219
219
  }, [modifiers.focused]);
220
220
  return /* @__PURE__ */ jsx(
@@ -236,167 +236,126 @@ function CalendarDayButton({
236
236
  }
237
237
  );
238
238
  }
239
- function Checkbox({ className, ...props }) {
239
+ function Card({
240
+ className,
241
+ size = "default",
242
+ ...props
243
+ }) {
240
244
  return /* @__PURE__ */ jsx(
241
- Checkbox$1.Root,
245
+ "div",
242
246
  {
243
- "data-slot": "checkbox",
247
+ "data-slot": "card",
248
+ "data-size": size,
244
249
  className: cn(
245
- "peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
250
+ "group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl border bg-card shadow-[var(--shadow-card)] py-(--card-spacing) text-sm text-card-foreground [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
246
251
  className
247
252
  ),
248
- ...props,
249
- children: /* @__PURE__ */ jsx(
250
- Checkbox$1.Indicator,
251
- {
252
- "data-slot": "checkbox-indicator",
253
- className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
254
- children: /* @__PURE__ */ jsx(CheckIcon, {})
255
- }
256
- )
253
+ ...props
257
254
  }
258
255
  );
259
256
  }
260
- function Collapsible({ ...props }) {
261
- return /* @__PURE__ */ jsx(Collapsible$1.Root, { "data-slot": "collapsible", ...props });
262
- }
263
- function CollapsibleTrigger({ ...props }) {
264
- return /* @__PURE__ */ jsx(Collapsible$1.Trigger, { "data-slot": "collapsible-trigger", ...props });
265
- }
266
- function CollapsibleContent({ ...props }) {
267
- return /* @__PURE__ */ jsx(Collapsible$1.Panel, { "data-slot": "collapsible-content", ...props });
268
- }
269
- function Dialog({ ...props }) {
270
- return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
271
- }
272
- function DialogTrigger({ ...props }) {
273
- return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
274
- }
275
- function DialogPortal({ ...props }) {
276
- return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
277
- }
278
- function DialogClose({ ...props }) {
279
- return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
280
- }
281
- function DialogOverlay({
282
- className,
283
- ...props
284
- }) {
257
+ function CardHeader({ className, ...props }) {
285
258
  return /* @__PURE__ */ jsx(
286
- Dialog$1.Backdrop,
259
+ "div",
287
260
  {
288
- "data-slot": "dialog-overlay",
261
+ "data-slot": "card-header",
289
262
  className: cn(
290
- "fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
263
+ "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",
291
264
  className
292
265
  ),
293
266
  ...props
294
267
  }
295
268
  );
296
269
  }
297
- function DialogContent({
298
- className,
299
- children,
300
- showCloseButton = true,
301
- ...props
302
- }) {
303
- return /* @__PURE__ */ jsxs(DialogPortal, { children: [
304
- /* @__PURE__ */ jsx(DialogOverlay, {}),
305
- /* @__PURE__ */ jsxs(
306
- Dialog$1.Popup,
307
- {
308
- "data-slot": "dialog-content",
309
- className: cn(
310
- "fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
311
- className
312
- ),
313
- ...props,
314
- children: [
315
- children,
316
- showCloseButton && /* @__PURE__ */ jsxs(
317
- Dialog$1.Close,
318
- {
319
- "data-slot": "dialog-close",
320
- render: /* @__PURE__ */ jsx(
321
- Button,
322
- {
323
- variant: "ghost",
324
- className: "absolute top-2 right-2",
325
- size: "icon-sm"
326
- }
327
- ),
328
- children: [
329
- /* @__PURE__ */ jsx(XIcon, {}),
330
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
331
- ]
332
- }
333
- )
334
- ]
335
- }
336
- )
337
- ] });
270
+ function CardTitle({ className, ...props }) {
271
+ return /* @__PURE__ */ jsx(
272
+ "div",
273
+ {
274
+ "data-slot": "card-title",
275
+ className: cn(
276
+ "cn-font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",
277
+ className
278
+ ),
279
+ ...props
280
+ }
281
+ );
338
282
  }
339
- function DialogHeader({ className, ...props }) {
283
+ function CardDescription({ className, ...props }) {
340
284
  return /* @__PURE__ */ jsx(
341
285
  "div",
342
286
  {
343
- "data-slot": "dialog-header",
344
- className: cn("flex flex-col gap-2", className),
287
+ "data-slot": "card-description",
288
+ className: cn("text-sm text-muted-foreground", className),
345
289
  ...props
346
290
  }
347
291
  );
348
292
  }
349
- function DialogFooter({
350
- className,
351
- showCloseButton = false,
352
- children,
353
- ...props
354
- }) {
355
- return /* @__PURE__ */ jsxs(
293
+ function CardAction({ className, ...props }) {
294
+ return /* @__PURE__ */ jsx(
356
295
  "div",
357
296
  {
358
- "data-slot": "dialog-footer",
297
+ "data-slot": "card-action",
359
298
  className: cn(
360
- "-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",
299
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
361
300
  className
362
301
  ),
363
- ...props,
364
- children: [
365
- children,
366
- showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button, { variant: "outline" }), children: "Close" })
367
- ]
302
+ ...props
368
303
  }
369
304
  );
370
305
  }
371
- function DialogTitle({ className, ...props }) {
306
+ function CardContent({ className, ...props }) {
372
307
  return /* @__PURE__ */ jsx(
373
- Dialog$1.Title,
308
+ "div",
374
309
  {
375
- "data-slot": "dialog-title",
310
+ "data-slot": "card-content",
311
+ className: cn("px-(--card-spacing)", className),
312
+ ...props
313
+ }
314
+ );
315
+ }
316
+ function CardFooter({ className, ...props }) {
317
+ return /* @__PURE__ */ jsx(
318
+ "div",
319
+ {
320
+ "data-slot": "card-footer",
376
321
  className: cn(
377
- "cn-font-heading text-base leading-none font-medium",
322
+ "flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)",
378
323
  className
379
324
  ),
380
325
  ...props
381
326
  }
382
327
  );
383
328
  }
384
- function DialogDescription({
385
- className,
386
- ...props
387
- }) {
329
+ function Checkbox({ className, ...props }) {
388
330
  return /* @__PURE__ */ jsx(
389
- Dialog$1.Description,
331
+ Checkbox$1.Root,
390
332
  {
391
- "data-slot": "dialog-description",
333
+ "data-slot": "checkbox",
392
334
  className: cn(
393
- "text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
335
+ "peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
394
336
  className
395
337
  ),
396
- ...props
338
+ ...props,
339
+ children: /* @__PURE__ */ jsx(
340
+ Checkbox$1.Indicator,
341
+ {
342
+ "data-slot": "checkbox-indicator",
343
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
344
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
345
+ }
346
+ )
397
347
  }
398
348
  );
399
349
  }
350
+ function Collapsible({ ...props }) {
351
+ return /* @__PURE__ */ jsx(Collapsible$1.Root, { "data-slot": "collapsible", ...props });
352
+ }
353
+ function CollapsibleTrigger({ ...props }) {
354
+ return /* @__PURE__ */ jsx(Collapsible$1.Trigger, { "data-slot": "collapsible-trigger", ...props });
355
+ }
356
+ function CollapsibleContent({ ...props }) {
357
+ return /* @__PURE__ */ jsx(Collapsible$1.Panel, { "data-slot": "collapsible-content", ...props });
358
+ }
400
359
  function Input({ className, type, ...props }) {
401
360
  return /* @__PURE__ */ jsx(
402
361
  Input$1,
@@ -554,6 +513,137 @@ function InputGroupTextarea({
554
513
  }
555
514
  );
556
515
  }
516
+ function Dialog({ ...props }) {
517
+ return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
518
+ }
519
+ function DialogTrigger({ ...props }) {
520
+ return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
521
+ }
522
+ function DialogPortal({ ...props }) {
523
+ return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
524
+ }
525
+ function DialogClose({ ...props }) {
526
+ return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
527
+ }
528
+ function DialogOverlay({
529
+ className,
530
+ ...props
531
+ }) {
532
+ return /* @__PURE__ */ jsx(
533
+ Dialog$1.Backdrop,
534
+ {
535
+ "data-slot": "dialog-overlay",
536
+ className: cn(
537
+ "fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
538
+ className
539
+ ),
540
+ ...props
541
+ }
542
+ );
543
+ }
544
+ function DialogContent({
545
+ className,
546
+ children,
547
+ showCloseButton = true,
548
+ ...props
549
+ }) {
550
+ return /* @__PURE__ */ jsxs(DialogPortal, { children: [
551
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
552
+ /* @__PURE__ */ jsxs(
553
+ Dialog$1.Popup,
554
+ {
555
+ "data-slot": "dialog-content",
556
+ className: cn(
557
+ "fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
558
+ className
559
+ ),
560
+ ...props,
561
+ children: [
562
+ children,
563
+ showCloseButton && /* @__PURE__ */ jsxs(
564
+ Dialog$1.Close,
565
+ {
566
+ "data-slot": "dialog-close",
567
+ render: /* @__PURE__ */ jsx(
568
+ Button,
569
+ {
570
+ variant: "ghost",
571
+ className: "absolute top-2 right-2",
572
+ size: "icon-sm"
573
+ }
574
+ ),
575
+ children: [
576
+ /* @__PURE__ */ jsx(XIcon, {}),
577
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
578
+ ]
579
+ }
580
+ )
581
+ ]
582
+ }
583
+ )
584
+ ] });
585
+ }
586
+ function DialogHeader({ className, ...props }) {
587
+ return /* @__PURE__ */ jsx(
588
+ "div",
589
+ {
590
+ "data-slot": "dialog-header",
591
+ className: cn("flex flex-col gap-2", className),
592
+ ...props
593
+ }
594
+ );
595
+ }
596
+ function DialogFooter({
597
+ className,
598
+ showCloseButton = false,
599
+ children,
600
+ ...props
601
+ }) {
602
+ return /* @__PURE__ */ jsxs(
603
+ "div",
604
+ {
605
+ "data-slot": "dialog-footer",
606
+ className: cn(
607
+ "-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",
608
+ className
609
+ ),
610
+ ...props,
611
+ children: [
612
+ children,
613
+ showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button, { variant: "outline" }), children: "Close" })
614
+ ]
615
+ }
616
+ );
617
+ }
618
+ function DialogTitle({ className, ...props }) {
619
+ return /* @__PURE__ */ jsx(
620
+ Dialog$1.Title,
621
+ {
622
+ "data-slot": "dialog-title",
623
+ className: cn(
624
+ "cn-font-heading text-base leading-none font-medium",
625
+ className
626
+ ),
627
+ ...props
628
+ }
629
+ );
630
+ }
631
+ function DialogDescription({
632
+ className,
633
+ ...props
634
+ }) {
635
+ return /* @__PURE__ */ jsx(
636
+ Dialog$1.Description,
637
+ {
638
+ "data-slot": "dialog-description",
639
+ className: cn(
640
+ "text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
641
+ className
642
+ ),
643
+ ...props
644
+ }
645
+ );
646
+ }
557
647
  function Command({
558
648
  className,
559
649
  ...props
@@ -740,7 +830,7 @@ function DropdownMenuContent({
740
830
  {
741
831
  "data-slot": "dropdown-menu-content",
742
832
  className: cn(
743
- "cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",
833
+ "cn-menu-target cn-menu-translucent z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",
744
834
  className
745
835
  ),
746
836
  ...props
@@ -829,7 +919,7 @@ function DropdownMenuSubContent({
829
919
  {
830
920
  "data-slot": "dropdown-menu-sub-content",
831
921
  className: cn(
832
- "cn-menu-target cn-menu-translucent w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
922
+ "cn-menu-target cn-menu-translucent w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 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 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
833
923
  className
834
924
  ),
835
925
  align,
@@ -940,6 +1030,24 @@ function DropdownMenuShortcut({
940
1030
  }
941
1031
  );
942
1032
  }
1033
+ function Separator({
1034
+ className,
1035
+ orientation = "horizontal",
1036
+ ...props
1037
+ }) {
1038
+ return /* @__PURE__ */ jsx(
1039
+ Separator$1,
1040
+ {
1041
+ "data-slot": "separator",
1042
+ orientation,
1043
+ className: cn(
1044
+ "shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",
1045
+ className
1046
+ ),
1047
+ ...props
1048
+ }
1049
+ );
1050
+ }
943
1051
  function Popover({ ...props }) {
944
1052
  return /* @__PURE__ */ jsx(Popover$1.Root, { "data-slot": "popover", ...props });
945
1053
  }
@@ -967,7 +1075,7 @@ function PopoverContent({
967
1075
  {
968
1076
  "data-slot": "popover-content",
969
1077
  className: cn(
970
- "z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1078
+ "z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
971
1079
  className
972
1080
  ),
973
1081
  ...props
@@ -1010,8 +1118,8 @@ function PopoverDescription({
1010
1118
  );
1011
1119
  }
1012
1120
  function collectSelectItems(node, into = []) {
1013
- React12.Children.forEach(node, (child) => {
1014
- if (!React12.isValidElement(child)) return;
1121
+ React13.Children.forEach(node, (child) => {
1122
+ if (!React13.isValidElement(child)) return;
1015
1123
  const props = child.props;
1016
1124
  if (child.type === SelectItem) {
1017
1125
  if (props.value !== void 0) into.push({ label: props.children, value: props.value });
@@ -1026,7 +1134,7 @@ function Select({
1026
1134
  children,
1027
1135
  ...props
1028
1136
  }) {
1029
- const derivedItems = React12.useMemo(() => {
1137
+ const derivedItems = React13.useMemo(() => {
1030
1138
  if (items) return items;
1031
1139
  const collected = collectSelectItems(children);
1032
1140
  return collected.length > 0 ? collected : void 0;
@@ -1106,7 +1214,7 @@ function SelectContent({
1106
1214
  "data-slot": "select-content",
1107
1215
  "data-align-trigger": alignItemWithTrigger,
1108
1216
  className: cn(
1109
- "cn-menu-target cn-menu-translucent relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1217
+ "cn-menu-target cn-menu-translucent relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1110
1218
  className
1111
1219
  ),
1112
1220
  ...props,
@@ -1207,24 +1315,6 @@ function SelectScrollDownButton({
1207
1315
  }
1208
1316
  );
1209
1317
  }
1210
- function Separator({
1211
- className,
1212
- orientation = "horizontal",
1213
- ...props
1214
- }) {
1215
- return /* @__PURE__ */ jsx(
1216
- Separator$1,
1217
- {
1218
- "data-slot": "separator",
1219
- orientation,
1220
- className: cn(
1221
- "shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",
1222
- className
1223
- ),
1224
- ...props
1225
- }
1226
- );
1227
- }
1228
1318
  function Sheet({ ...props }) {
1229
1319
  return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "sheet", ...props });
1230
1320
  }
@@ -1265,7 +1355,7 @@ function SheetContent({
1265
1355
  "data-slot": "sheet-content",
1266
1356
  "data-side": side,
1267
1357
  className: cn(
1268
- "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
1358
+ "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-out data-ending-style:opacity-0 data-starting-style:opacity-0 motion-reduce:data-ending-style:translate-none! motion-reduce:data-starting-style:translate-none! data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
1269
1359
  className
1270
1360
  ),
1271
1361
  ...props,
@@ -1342,8 +1432,8 @@ function SheetDescription({
1342
1432
  }
1343
1433
  var MOBILE_BREAKPOINT = 768;
1344
1434
  function useIsMobile() {
1345
- const [isMobile, setIsMobile] = React12.useState(void 0);
1346
- React12.useEffect(() => {
1435
+ const [isMobile, setIsMobile] = React13.useState(void 0);
1436
+ React13.useEffect(() => {
1347
1437
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
1348
1438
  const onChange = () => {
1349
1439
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -1359,7 +1449,7 @@ function Skeleton({ className, ...props }) {
1359
1449
  "div",
1360
1450
  {
1361
1451
  "data-slot": "skeleton",
1362
- className: cn("animate-pulse rounded-md bg-muted", className),
1452
+ className: cn("animate-pulse motion-reduce:animate-none rounded-md bg-muted", className),
1363
1453
  ...props
1364
1454
  }
1365
1455
  );
@@ -1405,7 +1495,7 @@ function TooltipContent({
1405
1495
  {
1406
1496
  "data-slot": "tooltip-content",
1407
1497
  className: cn(
1408
- "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1498
+ "z-50 inline-flex w-fit data-instant:animate-none max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in motion-reduce:animate-none! data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1409
1499
  className
1410
1500
  ),
1411
1501
  ...props,
@@ -1424,9 +1514,9 @@ var SIDEBAR_WIDTH = "16rem";
1424
1514
  var SIDEBAR_WIDTH_MOBILE = "18rem";
1425
1515
  var SIDEBAR_WIDTH_ICON = "3rem";
1426
1516
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
1427
- var SidebarContext = React12.createContext(null);
1517
+ var SidebarContext = React13.createContext(null);
1428
1518
  function useSidebar() {
1429
- const context = React12.useContext(SidebarContext);
1519
+ const context = React13.useContext(SidebarContext);
1430
1520
  if (!context) {
1431
1521
  throw new Error("useSidebar must be used within a SidebarProvider.");
1432
1522
  }
@@ -1442,10 +1532,10 @@ function SidebarProvider({
1442
1532
  ...props
1443
1533
  }) {
1444
1534
  const isMobile = useIsMobile();
1445
- const [openMobile, setOpenMobile] = React12.useState(false);
1446
- const [_open, _setOpen] = React12.useState(defaultOpen);
1535
+ const [openMobile, setOpenMobile] = React13.useState(false);
1536
+ const [_open, _setOpen] = React13.useState(defaultOpen);
1447
1537
  const open = openProp ?? _open;
1448
- const setOpen = React12.useCallback(
1538
+ const setOpen = React13.useCallback(
1449
1539
  (value) => {
1450
1540
  const openState = typeof value === "function" ? value(open) : value;
1451
1541
  if (setOpenProp) {
@@ -1457,10 +1547,10 @@ function SidebarProvider({
1457
1547
  },
1458
1548
  [setOpenProp, open]
1459
1549
  );
1460
- const toggleSidebar = React12.useCallback(() => {
1550
+ const toggleSidebar = React13.useCallback(() => {
1461
1551
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
1462
1552
  }, [isMobile, setOpen, setOpenMobile]);
1463
- React12.useEffect(() => {
1553
+ React13.useEffect(() => {
1464
1554
  const handleKeyDown = (event) => {
1465
1555
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
1466
1556
  event.preventDefault();
@@ -1471,7 +1561,7 @@ function SidebarProvider({
1471
1561
  return () => window.removeEventListener("keydown", handleKeyDown);
1472
1562
  }, [toggleSidebar]);
1473
1563
  const state = open ? "expanded" : "collapsed";
1474
- const contextValue = React12.useMemo(
1564
+ const contextValue = React13.useMemo(
1475
1565
  () => ({
1476
1566
  state,
1477
1567
  open,
@@ -1635,7 +1725,7 @@ function SidebarRail({ className, ...props }) {
1635
1725
  onClick: toggleSidebar,
1636
1726
  title: "Toggle Sidebar",
1637
1727
  className: cn(
1638
- "absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2",
1728
+ "absolute inset-y-0 z-20 hidden w-4 transition-[background-color,translate,left,right] ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2",
1639
1729
  "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
1640
1730
  "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
1641
1731
  "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
@@ -1931,7 +2021,7 @@ function SidebarMenuSkeleton({
1931
2021
  showIcon = false,
1932
2022
  ...props
1933
2023
  }) {
1934
- const [width] = React12.useState(() => {
2024
+ const [width] = React13.useState(() => {
1935
2025
  return `${Math.floor(Math.random() * 40) + 50}%`;
1936
2026
  });
1937
2027
  return /* @__PURE__ */ jsxs(
@@ -2087,7 +2177,7 @@ function TableHead({ className, ...props }) {
2087
2177
  {
2088
2178
  "data-slot": "table-head",
2089
2179
  className: cn(
2090
- "h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",
2180
+ "h-10 px-2 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0",
2091
2181
  className
2092
2182
  ),
2093
2183
  ...props
@@ -2155,7 +2245,7 @@ function Toggle({
2155
2245
  }
2156
2246
  );
2157
2247
  }
2158
- var ToggleGroupContext = React12.createContext({
2248
+ var ToggleGroupContext = React13.createContext({
2159
2249
  size: "default",
2160
2250
  variant: "default",
2161
2251
  spacing: 2,
@@ -2201,7 +2291,7 @@ function ToggleGroupItem({
2201
2291
  size = "default",
2202
2292
  ...props
2203
2293
  }) {
2204
- const context = React12.useContext(ToggleGroupContext);
2294
+ const context = React13.useContext(ToggleGroupContext);
2205
2295
  return /* @__PURE__ */ jsx(
2206
2296
  Toggle$1,
2207
2297
  {
@@ -2223,6 +2313,6 @@ function ToggleGroupItem({
2223
2313
  );
2224
2314
  }
2225
2315
 
2226
- export { Badge, Calendar, CalendarDayButton, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, toggleVariants, useIsMobile, useSidebar };
2227
- //# sourceMappingURL=chunk-RPZAALCX.js.map
2228
- //# sourceMappingURL=chunk-RPZAALCX.js.map
2316
+ export { Badge, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, toggleVariants, useIsMobile, useSidebar };
2317
+ //# sourceMappingURL=chunk-XPQSTZUU.js.map
2318
+ //# sourceMappingURL=chunk-XPQSTZUU.js.map