@hilum/ui 2.0.0 → 2.0.1

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 (75) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +350 -290
  3. package/dist/index.js +489 -435
  4. package/dist/index.js.map +1 -1
  5. package/llms.txt +9 -9
  6. package/package.json +1 -1
  7. package/src/components/accordion.tsx +5 -5
  8. package/src/components/action-panel.tsx +8 -6
  9. package/src/components/activity-feed.tsx +7 -5
  10. package/src/components/alert-dialog.tsx +5 -5
  11. package/src/components/alert.tsx +5 -5
  12. package/src/components/avatar-stack.tsx +3 -3
  13. package/src/components/avatar.tsx +4 -4
  14. package/src/components/badge.tsx +7 -7
  15. package/src/components/breadcrumb.tsx +5 -6
  16. package/src/components/button-group.tsx +7 -4
  17. package/src/components/button.tsx +7 -7
  18. package/src/components/calendar.tsx +10 -10
  19. package/src/components/card-heading.tsx +3 -3
  20. package/src/components/card.tsx +4 -4
  21. package/src/components/chart.tsx +10 -10
  22. package/src/components/checkbox.tsx +2 -2
  23. package/src/components/color-input.tsx +7 -5
  24. package/src/components/color-picker.tsx +8 -6
  25. package/src/components/combobox.tsx +66 -31
  26. package/src/components/command-palette.tsx +13 -11
  27. package/src/components/command.tsx +14 -12
  28. package/src/components/context-menu.tsx +16 -16
  29. package/src/components/data-table.tsx +18 -7
  30. package/src/components/date-picker.tsx +2 -2
  31. package/src/components/description-list.tsx +10 -8
  32. package/src/components/dialog.tsx +4 -4
  33. package/src/components/drawer.tsx +5 -5
  34. package/src/components/dropdown-menu.tsx +16 -16
  35. package/src/components/empty-state.tsx +5 -3
  36. package/src/components/field.tsx +4 -4
  37. package/src/components/grid-list.tsx +17 -13
  38. package/src/components/hover-card.tsx +1 -1
  39. package/src/components/input-group.tsx +10 -10
  40. package/src/components/input-number.tsx +7 -7
  41. package/src/components/input-otp.tsx +3 -3
  42. package/src/components/input.tsx +4 -4
  43. package/src/components/kbd.tsx +1 -1
  44. package/src/components/label.tsx +1 -1
  45. package/src/components/media-object.tsx +2 -0
  46. package/src/components/menubar.tsx +21 -21
  47. package/src/components/native-select.tsx +5 -5
  48. package/src/components/navigation-menu.tsx +10 -10
  49. package/src/components/notification.tsx +13 -11
  50. package/src/components/page-heading.tsx +8 -8
  51. package/src/components/pagination.tsx +1 -1
  52. package/src/components/popover.tsx +1 -1
  53. package/src/components/progress.tsx +1 -1
  54. package/src/components/property-row.tsx +3 -1
  55. package/src/components/radio-card.tsx +10 -8
  56. package/src/components/radio-group.tsx +4 -4
  57. package/src/components/resizable.tsx +3 -3
  58. package/src/components/scroll-area.tsx +1 -1
  59. package/src/components/section-heading.tsx +3 -3
  60. package/src/components/select.tsx +13 -13
  61. package/src/components/separator.tsx +1 -1
  62. package/src/components/sheet.tsx +4 -4
  63. package/src/components/sidebar.tsx +20 -20
  64. package/src/components/skeleton.tsx +1 -1
  65. package/src/components/slider.tsx +2 -2
  66. package/src/components/sonner.tsx +9 -8
  67. package/src/components/stacked-list.tsx +5 -5
  68. package/src/components/stat-card.tsx +9 -7
  69. package/src/components/steps.tsx +16 -14
  70. package/src/components/switch.tsx +2 -2
  71. package/src/components/table.tsx +9 -9
  72. package/src/components/tabs.tsx +2 -2
  73. package/src/components/textarea.tsx +4 -4
  74. package/src/components/toggle.tsx +9 -9
  75. package/src/components/tooltip.tsx +1 -1
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import { Toaster as Toaster$1 } from 'sonner';
20
20
  function cn(...inputs) {
21
21
  return twMerge(clsx(inputs));
22
22
  }
23
- var AccordionRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Accordion.Root, { ref, className: cn("divide-y divide-ground-100", className), ...props }));
23
+ var AccordionRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Accordion.Root, { ref, className: cn("divide-y divide-border", className), ...props }));
24
24
  AccordionRoot.displayName = "Accordion";
25
25
  var AccordionItem = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Accordion.Item, { ref, className: cn("", className), ...props }));
26
26
  AccordionItem.displayName = "AccordionItem";
@@ -30,9 +30,9 @@ var AccordionTrigger = React15.forwardRef(({ className, children, ...props }, re
30
30
  ref,
31
31
  className: cn(
32
32
  "flex w-full items-center justify-between py-4",
33
- "body font-medium text-ground-900 transition-colors hover:text-ground-700",
33
+ "body font-medium text-foreground transition-colors hover:text-muted-foreground",
34
34
  "[&[data-state=open]>svg]:rotate-180",
35
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-900/15",
35
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20",
36
36
  className
37
37
  ),
38
38
  ...props,
@@ -42,7 +42,7 @@ var AccordionTrigger = React15.forwardRef(({ className, children, ...props }, re
42
42
  ChevronDown,
43
43
  {
44
44
  size: 16,
45
- className: "text-ground-400 transition-transform duration-200 shrink-0"
45
+ className: "text-muted-foreground transition-transform duration-200 shrink-0"
46
46
  }
47
47
  )
48
48
  ]
@@ -54,7 +54,7 @@ var AccordionContent = React15.forwardRef(({ className, children, ...props }, re
54
54
  {
55
55
  ref,
56
56
  className: cn(
57
- "overflow-hidden body text-ground-500",
57
+ "overflow-hidden body text-muted-foreground",
58
58
  "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
59
59
  className
60
60
  ),
@@ -75,13 +75,13 @@ var buttonVariants = cva(
75
75
  {
76
76
  variants: {
77
77
  variant: {
78
- default: "bg-brand-primary text-white hover:bg-brand-primary/90 active:bg-brand-primary/80",
79
- destructive: "bg-red-600 text-white hover:bg-red-700 active:bg-red-800",
80
- outline: "bg-white text-ground-700 shadow-natural hover:bg-ground-50 rounded-xl",
81
- secondary: "bg-ground-100 text-ground-700 hover:bg-ground-200",
82
- brand: "bg-brand-secondary text-ground-900 hover:bg-brand-secondary/90 active:bg-brand-secondary/80",
83
- ghost: "text-ground-600 hover:bg-ground-100 hover:text-ground-900",
84
- link: "text-ground-900 underline-offset-4 hover:underline"
78
+ default: "bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80",
79
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80",
80
+ outline: "bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl",
81
+ secondary: "bg-muted text-muted-foreground hover:bg-muted",
82
+ brand: "bg-brand-secondary text-foreground hover:bg-brand-secondary/90 active:bg-brand-secondary/80",
83
+ ghost: "text-muted-foreground hover:bg-muted hover:text-foreground",
84
+ link: "text-foreground underline-offset-4 hover:underline"
85
85
  },
86
86
  size: {
87
87
  default: "h-9 px-4 py-2 rounded-md",
@@ -131,7 +131,7 @@ function ActionPanel({
131
131
  "a",
132
132
  {
133
133
  href: link.href,
134
- className: "body font-medium text-ground-600 hover:text-ground-900 transition-colors inline-flex items-center gap-1",
134
+ className: "body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1",
135
135
  children: [
136
136
  link.label,
137
137
  " ",
@@ -143,7 +143,7 @@ function ActionPanel({
143
143
  {
144
144
  type: "button",
145
145
  onClick: link.onClick,
146
- className: "body font-medium text-ground-600 hover:text-ground-900 transition-colors inline-flex items-center gap-1",
146
+ className: "body font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1",
147
147
  children: [
148
148
  link.label,
149
149
  " ",
@@ -161,14 +161,14 @@ function ActionPanel({
161
161
  {
162
162
  className: cn(
163
163
  "rounded-xl border px-5 py-5",
164
- variant === "muted" ? "border-ground-100 bg-ground-50" : "border-ground-100 bg-white shadow-natural",
164
+ variant === "muted" ? "border-border bg-muted" : "border-border bg-card shadow-natural",
165
165
  layout === "inline" && "flex items-center justify-between gap-6",
166
166
  className
167
167
  ),
168
168
  children: [
169
169
  /* @__PURE__ */ jsxs("div", { className: cn("min-w-0", layout === "inline" ? "flex-1" : ""), children: [
170
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900", children: title }),
171
- description && /* @__PURE__ */ jsx("p", { className: cn("body text-ground-400", layout === "stacked" ? "mt-1" : ""), children: description }),
170
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
171
+ description && /* @__PURE__ */ jsx("p", { className: cn("body text-muted-foreground", layout === "stacked" ? "mt-1" : ""), children: description }),
172
172
  children && layout === "stacked" && /* @__PURE__ */ jsx("div", { className: "mt-4", children })
173
173
  ] }),
174
174
  layout === "stacked" ? (allActions.length > 0 || link) && /* @__PURE__ */ jsx("div", { className: "mt-4", children: renderActions() }) : /* @__PURE__ */ jsxs("div", { className: "shrink-0 flex items-center gap-3", children: [
@@ -179,6 +179,7 @@ function ActionPanel({
179
179
  }
180
180
  );
181
181
  }
182
+ ActionPanel.displayName = "ActionPanel";
182
183
  function ActivityFeed({ events, className }) {
183
184
  return /* @__PURE__ */ jsx("div", { className: cn("flow-root", className), children: /* @__PURE__ */ jsx("ul", { role: "list", className: "-mb-8", children: events.map((event, i) => {
184
185
  const isLast = i === events.length - 1;
@@ -186,7 +187,7 @@ function ActivityFeed({ events, className }) {
186
187
  !isLast && /* @__PURE__ */ jsx(
187
188
  "span",
188
189
  {
189
- className: "absolute top-4 left-4 -ml-px h-full w-0.5 bg-ground-100",
190
+ className: "absolute top-4 left-4 -ml-px h-full w-0.5 bg-muted",
190
191
  "aria-hidden": "true"
191
192
  }
192
193
  ),
@@ -195,19 +196,19 @@ function ActivityFeed({ events, className }) {
195
196
  "span",
196
197
  {
197
198
  className: cn(
198
- "flex size-8 items-center justify-center rounded-full ring-8 ring-white",
199
- event.iconBgClass ?? "bg-ground-100 text-ground-500"
199
+ "flex size-8 items-center justify-center rounded-full ring-8 ring-background",
200
+ event.iconBgClass ?? "bg-muted text-muted-foreground"
200
201
  ),
201
202
  children: event.icon
202
203
  }
203
204
  ) }),
204
205
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-baseline justify-between gap-4 pt-1", children: [
205
- /* @__PURE__ */ jsx("div", { className: "body text-ground-600", children: event.content }),
206
+ /* @__PURE__ */ jsx("div", { className: "body text-muted-foreground", children: event.content }),
206
207
  event.date && /* @__PURE__ */ jsx(
207
208
  "time",
208
209
  {
209
210
  dateTime: event.datetime ?? event.date,
210
- className: "caption whitespace-nowrap text-ground-400",
211
+ className: "caption whitespace-nowrap text-muted-foreground",
211
212
  children: event.date
212
213
  }
213
214
  )
@@ -216,6 +217,7 @@ function ActivityFeed({ events, className }) {
216
217
  ] }) }, event.id ?? i);
217
218
  }) }) });
218
219
  }
220
+ ActivityFeed.displayName = "ActivityFeed";
219
221
  var AlertDialogRoot = AlertDialog.Root;
220
222
  var AlertDialogTrigger = AlertDialog.Trigger;
221
223
  var AlertDialogPortal = AlertDialog.Portal;
@@ -241,7 +243,7 @@ var AlertDialogContent = React15.forwardRef(({ className, children, ...props },
241
243
  ref,
242
244
  className: cn(
243
245
  "fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]",
244
- "w-full max-w-md bg-white rounded-2xl shadow-elevated p-6",
246
+ "w-full max-w-md bg-card rounded-2xl shadow-elevated p-6",
245
247
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
246
248
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
247
249
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -265,12 +267,12 @@ var AlertDialogTitle = React15.forwardRef(({ className, ...props }, ref) => /* @
265
267
  AlertDialog.Title,
266
268
  {
267
269
  ref,
268
- className: cn("body-lg font-semibold text-ground-900", className),
270
+ className: cn("body-lg font-semibold text-foreground", className),
269
271
  ...props
270
272
  }
271
273
  ));
272
274
  AlertDialogTitle.displayName = "AlertDialogTitle";
273
- var AlertDialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AlertDialog.Description, { ref, className: cn("body text-ground-500", className), ...props }));
275
+ var AlertDialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AlertDialog.Description, { ref, className: cn("body text-muted-foreground", className), ...props }));
274
276
  AlertDialogDescription.displayName = "AlertDialogDescription";
275
277
  var AlertDialogAction = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
276
278
  AlertDialog.Action,
@@ -279,7 +281,7 @@ var AlertDialogAction = React15.forwardRef(({ className, ...props }, ref) => /*
279
281
  className: cn(
280
282
  "inline-flex h-9 items-center justify-center rounded-md px-4",
281
283
  "body font-medium whitespace-nowrap transition-all duration-150",
282
- "bg-brand-primary text-white hover:bg-brand-primary/90 active:bg-brand-primary/80",
284
+ "bg-brand-primary text-background hover:bg-brand-primary/90 active:bg-brand-primary/80",
283
285
  "focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none",
284
286
  "disabled:pointer-events-none disabled:opacity-50",
285
287
  className
@@ -295,7 +297,7 @@ var AlertDialogCancel = React15.forwardRef(({ className, ...props }, ref) => /*
295
297
  className: cn(
296
298
  "inline-flex h-9 items-center justify-center rounded-md px-4",
297
299
  "body font-medium whitespace-nowrap transition-all duration-150",
298
- "bg-white text-ground-700 shadow-natural hover:bg-ground-50 rounded-xl",
300
+ "bg-card text-muted-foreground shadow-natural hover:bg-muted rounded-xl",
299
301
  "focus-visible:ring-2 focus-visible:ring-brand-primary/30 focus-visible:ring-offset-1 outline-none",
300
302
  "disabled:pointer-events-none disabled:opacity-50",
301
303
  className
@@ -309,11 +311,11 @@ var alertVariants = cva(
309
311
  {
310
312
  variants: {
311
313
  variant: {
312
- default: "bg-ground-50 text-ground-800 [&>svg]:text-ground-500",
313
- info: "bg-brand-secondary/40 text-ground-700 [&>svg]:text-ground-500",
314
- success: "bg-brand-secondary/15 text-ground-800 [&>svg]:text-ground-600",
315
- warning: "bg-brand-secondary/70 text-ground-800 [&>svg]:text-ground-600",
316
- destructive: "bg-red-50 text-red-800 [&>svg]:text-red-500"
314
+ default: "bg-muted text-muted-foreground [&>svg]:text-muted-foreground",
315
+ info: "bg-brand-secondary/40 text-muted-foreground [&>svg]:text-muted-foreground",
316
+ success: "bg-brand-secondary/15 text-muted-foreground [&>svg]:text-muted-foreground",
317
+ warning: "bg-brand-secondary/70 text-muted-foreground [&>svg]:text-muted-foreground",
318
+ destructive: "bg-destructive/10 text-destructive [&>svg]:text-destructive/70"
317
319
  }
318
320
  },
319
321
  defaultVariants: { variant: "default" }
@@ -355,7 +357,7 @@ function AvatarStack({ avatars, max, size = "md", className }) {
355
357
  {
356
358
  title: avatar.name,
357
359
  className: cn(
358
- "relative inline-flex shrink-0 overflow-hidden rounded-full ring-white",
360
+ "relative inline-flex shrink-0 overflow-hidden rounded-full ring-background",
359
361
  s.wrapper
360
362
  ),
361
363
  children: avatar.src ? /* @__PURE__ */ jsx("img", { src: avatar.src, alt: avatar.name, className: "size-full object-cover" }) : /* @__PURE__ */ jsx(
@@ -364,7 +366,7 @@ function AvatarStack({ avatars, max, size = "md", className }) {
364
366
  className: cn(
365
367
  "flex size-full items-center justify-center font-medium",
366
368
  s.text,
367
- avatar.colorClass ?? "bg-ground-200 text-ground-700"
369
+ avatar.colorClass ?? "bg-muted text-muted-foreground"
368
370
  ),
369
371
  children: avatar.fallback ?? avatar.name.slice(0, 2).toUpperCase()
370
372
  }
@@ -376,7 +378,7 @@ function AvatarStack({ avatars, max, size = "md", className }) {
376
378
  "span",
377
379
  {
378
380
  className: cn(
379
- "relative inline-flex shrink-0 items-center justify-center rounded-full ring-white bg-ground-100 font-medium text-ground-600",
381
+ "relative inline-flex shrink-0 items-center justify-center rounded-full ring-background bg-muted font-medium text-muted-foreground",
380
382
  s.wrapper,
381
383
  s.text
382
384
  ),
@@ -424,7 +426,7 @@ var AvatarFallback = React15.forwardRef(({ className, ...props }, ref) => /* @__
424
426
  {
425
427
  ref,
426
428
  className: cn(
427
- "flex h-full w-full items-center justify-center rounded-full bg-ground-100 body font-semibold text-ground-600",
429
+ "flex h-full w-full items-center justify-center rounded-full bg-muted body font-semibold text-muted-foreground",
428
430
  className
429
431
  ),
430
432
  ...props
@@ -433,8 +435,8 @@ var AvatarFallback = React15.forwardRef(({ className, ...props }, ref) => /* @__
433
435
  AvatarFallback.displayName = "AvatarFallback";
434
436
  var statusColorMap = {
435
437
  online: "bg-brand-secondary",
436
- offline: "bg-ground-300",
437
- busy: "bg-red-500",
438
+ offline: "bg-muted",
439
+ busy: "bg-destructive",
438
440
  away: "bg-brand-secondary"
439
441
  };
440
442
  var statusSizeMap = {
@@ -450,7 +452,7 @@ var AvatarWithStatus = React15.forwardRef(({ status, size = "md", className, chi
450
452
  "span",
451
453
  {
452
454
  className: cn(
453
- "absolute bottom-0 right-0 rounded-full ring-white",
455
+ "absolute bottom-0 right-0 rounded-full ring-background",
454
456
  statusColorMap[status],
455
457
  statusSizeMap[size]
456
458
  )
@@ -463,13 +465,13 @@ var badgeVariants = cva(
463
465
  {
464
466
  variants: {
465
467
  variant: {
466
- default: "bg-ground-900 text-white",
467
- secondary: "bg-ground-100 text-ground-700",
468
- outline: "border border-ground-200 text-ground-600 bg-transparent",
469
- brand: "bg-brand-primary text-white",
470
- success: "bg-brand-secondary/20 text-ground-800 border border-brand-secondary/50",
471
- warning: "bg-brand-secondary/70 text-ground-700 border border-brand-secondary",
472
- destructive: "bg-red-50 text-red-700 border border-red-200"
468
+ default: "bg-foreground text-background",
469
+ secondary: "bg-muted text-muted-foreground",
470
+ outline: "border border-border text-muted-foreground bg-transparent",
471
+ brand: "bg-brand-primary text-background",
472
+ success: "bg-brand-secondary/20 text-muted-foreground border border-brand-secondary/50",
473
+ warning: "bg-brand-secondary/70 text-muted-foreground border border-brand-secondary",
474
+ destructive: "bg-destructive/10 text-destructive border border-destructive/20"
473
475
  }
474
476
  },
475
477
  defaultVariants: {
@@ -488,7 +490,7 @@ var BreadcrumbList = React15.forwardRef(
488
490
  "ol",
489
491
  {
490
492
  ref,
491
- className: cn("flex flex-wrap items-center gap-1.5 body text-ground-500", className),
493
+ className: cn("flex flex-wrap items-center gap-1.5 body text-muted-foreground", className),
492
494
  ...props
493
495
  }
494
496
  )
@@ -499,7 +501,7 @@ var BreadcrumbItem = React15.forwardRef(
499
501
  );
500
502
  BreadcrumbItem.displayName = "BreadcrumbItem";
501
503
  var BreadcrumbLink = React15.forwardRef(
502
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("a", { ref, className: cn("transition-colors hover:text-ground-900", className), ...props })
504
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("a", { ref, className: cn("transition-colors hover:text-foreground", className), ...props })
503
505
  );
504
506
  BreadcrumbLink.displayName = "BreadcrumbLink";
505
507
  var BreadcrumbPage = React15.forwardRef(
@@ -507,15 +509,14 @@ var BreadcrumbPage = React15.forwardRef(
507
509
  "span",
508
510
  {
509
511
  ref,
510
- role: "link",
511
512
  "aria-current": "page",
512
- className: cn("body font-medium text-ground-900", className),
513
+ className: cn("body font-medium text-foreground", className),
513
514
  ...props
514
515
  }
515
516
  )
516
517
  );
517
518
  BreadcrumbPage.displayName = "BreadcrumbPage";
518
- var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("text-ground-300", className), ...props, children: children ?? /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) });
519
+ var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("text-muted-foreground", className), ...props, children: children ?? /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) });
519
520
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
520
521
  var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
521
522
  "span",
@@ -524,7 +525,7 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
524
525
  "aria-hidden": "true",
525
526
  className: cn("flex size-5 items-center justify-center", className),
526
527
  ...props,
527
- children: /* @__PURE__ */ jsx(MoreHorizontal, { size: 14, className: "text-ground-400" })
528
+ children: /* @__PURE__ */ jsx(MoreHorizontal, { size: 14, className: "text-muted-foreground" })
528
529
  }
529
530
  );
530
531
  BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
@@ -533,7 +534,7 @@ function ButtonGroup({ children, className }) {
533
534
  "div",
534
535
  {
535
536
  className: cn(
536
- "inline-flex divide-x divide-ground-200 overflow-hidden rounded-lg border border-ground-200 bg-white shadow-natural",
537
+ "inline-flex divide-x divide-border overflow-hidden rounded-lg border border-border bg-card shadow-natural",
537
538
  className
538
539
  ),
539
540
  children
@@ -547,8 +548,8 @@ function ButtonGroupItem({ active, className, children, ...props }) {
547
548
  type: "button",
548
549
  className: cn(
549
550
  "relative inline-flex items-center gap-1.5 px-3.5 py-2 body font-medium transition-colors",
550
- "focus:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-400/40 focus-visible:ring-inset",
551
- active ? "bg-ground-900 text-white" : "text-ground-600 hover:bg-ground-50 hover:text-ground-900",
551
+ "focus:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:ring-inset",
552
+ active ? "bg-foreground text-background" : "text-muted-foreground hover:bg-muted hover:text-foreground",
552
553
  className
553
554
  ),
554
555
  ...props,
@@ -556,6 +557,8 @@ function ButtonGroupItem({ active, className, children, ...props }) {
556
557
  }
557
558
  );
558
559
  }
560
+ ButtonGroup.displayName = "ButtonGroup";
561
+ ButtonGroupItem.displayName = "ButtonGroupItem";
559
562
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
560
563
  return /* @__PURE__ */ jsx(
561
564
  DayPicker,
@@ -566,33 +569,33 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
566
569
  months: "flex flex-col sm:flex-row gap-4",
567
570
  month: "flex flex-col gap-4",
568
571
  month_caption: "flex justify-center pt-1 relative items-center px-10",
569
- caption_label: "body font-semibold text-ground-900",
572
+ caption_label: "body font-semibold text-foreground",
570
573
  nav: "flex items-center justify-between absolute inset-x-0 top-1",
571
574
  button_previous: cn(
572
575
  "absolute left-0 h-7 w-7 flex items-center justify-center rounded-md",
573
- "text-ground-400 hover:bg-ground-100 hover:text-ground-700 transition-colors"
576
+ "text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors"
574
577
  ),
575
578
  button_next: cn(
576
579
  "absolute right-0 h-7 w-7 flex items-center justify-center rounded-md",
577
- "text-ground-400 hover:bg-ground-100 hover:text-ground-700 transition-colors"
580
+ "text-muted-foreground hover:bg-muted hover:text-muted-foreground transition-colors"
578
581
  ),
579
582
  month_grid: "w-full border-collapse mt-1",
580
583
  weekdays: "flex",
581
- weekday: "w-9 h-9 flex items-center justify-center label text-ground-400 font-normal",
584
+ weekday: "w-9 h-9 flex items-center justify-center label text-muted-foreground font-normal",
582
585
  week: "flex w-full mt-1",
583
586
  day: "relative p-0 text-center",
584
587
  day_button: cn(
585
588
  "h-9 w-9 flex items-center justify-center rounded-full body font-normal",
586
- "text-ground-900 hover:bg-ground-100 transition-colors",
589
+ "text-foreground hover:bg-muted transition-colors",
587
590
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30"
588
591
  ),
589
- selected: "[&>button]:bg-brand-primary [&>button]:text-white [&>button]:hover:bg-brand-primary/90",
592
+ selected: "[&>button]:bg-brand-primary [&>button]:text-background [&>button]:hover:bg-brand-primary/90",
590
593
  today: "[&>button]:font-semibold [&>button]:text-brand-primary",
591
- outside: "opacity-40 [&>button]:text-ground-400",
594
+ outside: "opacity-40 [&>button]:text-muted-foreground",
592
595
  disabled: "opacity-30 [&>button]:cursor-not-allowed",
593
- range_start: "[&>button]:bg-brand-primary [&>button]:text-white [&>button]:rounded-full",
594
- range_end: "[&>button]:bg-brand-primary [&>button]:text-white [&>button]:rounded-full",
595
- range_middle: "[&>button]:bg-brand-primary/15 [&>button]:text-ground-900 [&>button]:rounded-none",
596
+ range_start: "[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full",
597
+ range_end: "[&>button]:bg-brand-primary [&>button]:text-background [&>button]:rounded-full",
598
+ range_middle: "[&>button]:bg-brand-primary/15 [&>button]:text-foreground [&>button]:rounded-none",
596
599
  hidden: "invisible",
597
600
  ...classNames
598
601
  },
@@ -609,15 +612,15 @@ function CardHeading({ title, description, actions, children, className }) {
609
612
  "div",
610
613
  {
611
614
  className: cn(
612
- "flex items-start justify-between gap-4 border-b border-ground-100 px-5 py-4",
615
+ "flex items-start justify-between gap-4 border-b border-border px-5 py-4",
613
616
  className
614
617
  ),
615
618
  children: [
616
619
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-3", children: [
617
620
  children,
618
621
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
619
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900 truncate", children: title }),
620
- description && /* @__PURE__ */ jsx("p", { className: "caption text-ground-400 mt-0.5", children: description })
622
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground truncate", children: title }),
623
+ description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground mt-0.5", children: description })
621
624
  ] })
622
625
  ] }),
623
626
  actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions.map(
@@ -639,8 +642,8 @@ function CardHeading({ title, description, actions, children, className }) {
639
642
  var cardVariants = cva("rounded-xl", {
640
643
  variants: {
641
644
  variant: {
642
- default: "bg-white shadow-natural",
643
- muted: "bg-ground-50",
645
+ default: "bg-card shadow-natural",
646
+ muted: "bg-muted",
644
647
  ghost: "bg-transparent"
645
648
  }
646
649
  },
@@ -678,7 +681,7 @@ var CardTitle = React15.forwardRef(
678
681
  {
679
682
  ref,
680
683
  "data-slot": "card-title",
681
- className: cn("subheading text-ground-900", className),
684
+ className: cn("subheading text-foreground", className),
682
685
  ...props
683
686
  }
684
687
  )
@@ -690,7 +693,7 @@ var CardDescription = React15.forwardRef(
690
693
  {
691
694
  ref,
692
695
  "data-slot": "card-description",
693
- className: cn("caption text-ground-500", className),
696
+ className: cn("caption text-muted-foreground", className),
694
697
  ...props
695
698
  }
696
699
  )
@@ -893,18 +896,12 @@ function CarouselNext({
893
896
  );
894
897
  }
895
898
  var CHART_COLORS = {
896
- primary: tokens.brand.primary,
897
- // "#C100F1" — vivid purple
899
+ primary: tokens.semantic.light.primary,
898
900
  secondary: tokens.semantic.light.success,
899
- // "#CDEA19" — lime
900
- tertiary: tokens.brand.secondary,
901
- // "#FFF5BF" — pale lemon
902
- muted: tokens.ground[400],
903
- // "#a8978a"
904
- subtle: tokens.ground[200],
905
- // "#e3dcd4"
906
- dark: tokens.ground[900]
907
- // "#26181a"
901
+ tertiary: tokens.semantic.light.warning,
902
+ muted: tokens.semantic.light.mutedForeground,
903
+ subtle: tokens.semantic.light.border,
904
+ dark: tokens.semantic.light.foreground
908
905
  };
909
906
  function ChartContainer({ children, className, height = 300 }) {
910
907
  return /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children }) });
@@ -912,8 +909,8 @@ function ChartContainer({ children, className, height = 300 }) {
912
909
  ChartContainer.displayName = "ChartContainer";
913
910
  function ChartTooltip({ active, payload, label, labelClassName }) {
914
911
  if (!active || !payload?.length) return null;
915
- return /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-ground-100 bg-white px-3 py-2 shadow-elevated", children: [
916
- label && /* @__PURE__ */ jsx("p", { className: cn("mb-1 label text-ground-400", labelClassName), children: label }),
912
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border bg-card px-3 py-2 shadow-elevated", children: [
913
+ label && /* @__PURE__ */ jsx("p", { className: cn("mb-1 label text-muted-foreground", labelClassName), children: label }),
917
914
  payload.map((entry, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
918
915
  /* @__PURE__ */ jsx(
919
916
  "span",
@@ -922,11 +919,11 @@ function ChartTooltip({ active, payload, label, labelClassName }) {
922
919
  style: { backgroundColor: entry.color }
923
920
  }
924
921
  ),
925
- /* @__PURE__ */ jsxs("span", { className: "caption text-ground-500", children: [
922
+ /* @__PURE__ */ jsxs("span", { className: "caption text-muted-foreground", children: [
926
923
  entry.name,
927
924
  ":"
928
925
  ] }),
929
- /* @__PURE__ */ jsx("span", { className: "caption font-medium text-ground-900", children: entry.value })
926
+ /* @__PURE__ */ jsx("span", { className: "caption font-medium text-foreground", children: entry.value })
930
927
  ] }, i))
931
928
  ] });
932
929
  }
@@ -936,7 +933,7 @@ var CheckboxRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PU
936
933
  {
937
934
  ref,
938
935
  className: cn(
939
- "peer size-4 shrink-0 rounded border border-ground-300 bg-white transition-colors",
936
+ "peer size-4 shrink-0 rounded border border-border bg-card transition-colors",
940
937
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
941
938
  "disabled:cursor-not-allowed disabled:opacity-50",
942
939
  "data-[state=checked]:bg-brand-primary data-[state=checked]:border-brand-primary",
@@ -944,7 +941,7 @@ var CheckboxRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PU
944
941
  className
945
942
  ),
946
943
  ...props,
947
- children: /* @__PURE__ */ jsx(Checkbox.Indicator, { className: "flex items-center justify-center text-white", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx(Minus, { size: 11, strokeWidth: 3 }) : /* @__PURE__ */ jsx(Check, { size: 11, strokeWidth: 3 }) })
944
+ children: /* @__PURE__ */ jsx(Checkbox.Indicator, { className: "flex items-center justify-center text-background", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx(Minus, { size: 11, strokeWidth: 3 }) : /* @__PURE__ */ jsx(Check, { size: 11, strokeWidth: 3 }) })
948
945
  }
949
946
  ));
950
947
  CheckboxRoot.displayName = "Checkbox";
@@ -977,8 +974,8 @@ function ColorPicker({
977
974
  disabled,
978
975
  "aria-label": ariaLabel,
979
976
  className: cn(
980
- "inline-flex h-8 w-8 items-center justify-center rounded-md border border-ground-200 bg-white",
981
- "transition-colors hover:border-ground-300",
977
+ "inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-card",
978
+ "transition-colors hover:border-border",
982
979
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary",
983
980
  "disabled:cursor-not-allowed disabled:opacity-50",
984
981
  className
@@ -998,7 +995,7 @@ function ColorPicker({
998
995
  {
999
996
  align: "start",
1000
997
  sideOffset: 6,
1001
- className: "z-50 w-56 rounded-xl bg-white p-3 shadow-natural outline-none",
998
+ className: "z-50 w-56 rounded-xl bg-card p-3 shadow-natural outline-none",
1002
999
  children: [
1003
1000
  /* @__PURE__ */ jsx(
1004
1001
  "input",
@@ -1009,11 +1006,11 @@ function ColorPicker({
1009
1006
  setHex(e.target.value);
1010
1007
  onChange(e.target.value);
1011
1008
  },
1012
- className: "h-10 w-full cursor-pointer rounded-md border border-ground-200 bg-white p-0.5"
1009
+ className: "h-10 w-full cursor-pointer rounded-md border border-border bg-card p-0.5"
1013
1010
  }
1014
1011
  ),
1015
1012
  /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center gap-2", children: [
1016
- /* @__PURE__ */ jsx("span", { className: "caption text-ground-500", children: "Hex" }),
1013
+ /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: "Hex" }),
1017
1014
  /* @__PURE__ */ jsx(
1018
1015
  "input",
1019
1016
  {
@@ -1024,7 +1021,7 @@ function ColorPicker({
1024
1021
  onKeyDown: (e) => {
1025
1022
  if (e.key === "Enter") commit(e.target.value);
1026
1023
  },
1027
- className: "flex-1 h-7 rounded-md border border-ground-200 bg-white px-2 caption text-ground-900 focus:outline-none focus:border-brand-primary"
1024
+ className: "flex-1 h-7 rounded-md border border-border bg-card px-2 caption text-foreground focus:outline-none focus:border-brand-primary"
1028
1025
  }
1029
1026
  )
1030
1027
  ] }),
@@ -1044,6 +1041,7 @@ function ColorPicker({
1044
1041
  ) })
1045
1042
  ] });
1046
1043
  }
1044
+ ColorPicker.displayName = "ColorPicker";
1047
1045
  function ColorInput({
1048
1046
  value,
1049
1047
  onChange,
@@ -1065,7 +1063,7 @@ function ColorInput({
1065
1063
  "div",
1066
1064
  {
1067
1065
  className: cn(
1068
- "inline-flex h-8 items-stretch gap-0 rounded-md border border-ground-200 bg-white overflow-hidden",
1066
+ "inline-flex h-8 items-stretch gap-0 rounded-md border border-border bg-card overflow-hidden",
1069
1067
  "focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary",
1070
1068
  disabled && "opacity-50 pointer-events-none",
1071
1069
  className
@@ -1093,10 +1091,10 @@ function ColorInput({
1093
1091
  commitHex("#" + e.target.value.replace(/^#/, ""));
1094
1092
  },
1095
1093
  spellCheck: false,
1096
- className: "w-[5.5rem] caption text-ground-900 px-2 bg-transparent border-l border-ground-100 focus:outline-none uppercase"
1094
+ className: "w-[5.5rem] caption text-foreground px-2 bg-transparent border-l border-border focus:outline-none uppercase"
1097
1095
  }
1098
1096
  ),
1099
- typeof opacity === "number" && onOpacityChange && /* @__PURE__ */ jsxs("div", { className: "relative flex items-center border-l border-ground-100", children: [
1097
+ typeof opacity === "number" && onOpacityChange && /* @__PURE__ */ jsxs("div", { className: "relative flex items-center border-l border-border", children: [
1100
1098
  /* @__PURE__ */ jsx(
1101
1099
  "input",
1102
1100
  {
@@ -1105,15 +1103,16 @@ function ColorInput({
1105
1103
  max: 100,
1106
1104
  value: Math.round(opacity),
1107
1105
  onChange: (e) => onOpacityChange(Number(e.target.value)),
1108
- className: "w-12 caption text-ground-900 px-2 bg-transparent focus:outline-none text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
1106
+ className: "w-12 caption text-foreground px-2 bg-transparent focus:outline-none text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
1109
1107
  }
1110
1108
  ),
1111
- /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "caption-xs text-ground-400 pr-2", children: "%" })
1109
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "caption-xs text-muted-foreground pr-2", children: "%" })
1112
1110
  ] })
1113
1111
  ]
1114
1112
  }
1115
1113
  );
1116
1114
  }
1115
+ ColorInput.displayName = "ColorInput";
1117
1116
  function Combobox({
1118
1117
  options,
1119
1118
  value,
@@ -1125,12 +1124,17 @@ function Combobox({
1125
1124
  }) {
1126
1125
  const [open, setOpen] = React15.useState(false);
1127
1126
  const [query, setQuery] = React15.useState("");
1127
+ const [activeIndex, setActiveIndex] = React15.useState(-1);
1128
1128
  const containerRef = React15.useRef(null);
1129
1129
  const inputRef = React15.useRef(null);
1130
+ const listboxId = React15.useId();
1130
1131
  const selectedOption = options.find((o) => o.value === value);
1131
1132
  const filtered = query === "" ? options : options.filter(
1132
1133
  (o) => o.label.toLowerCase().includes(query.toLowerCase()) || o.description?.toLowerCase().includes(query.toLowerCase())
1133
1134
  );
1135
+ React15.useEffect(() => {
1136
+ setActiveIndex(-1);
1137
+ }, [filtered.length, open]);
1134
1138
  React15.useEffect(() => {
1135
1139
  function onMouseDown(e) {
1136
1140
  if (containerRef.current && !containerRef.current.contains(e.target)) {
@@ -1141,20 +1145,45 @@ function Combobox({
1141
1145
  document.addEventListener("mousedown", onMouseDown);
1142
1146
  return () => document.removeEventListener("mousedown", onMouseDown);
1143
1147
  }, []);
1144
- React15.useEffect(() => {
1145
- if (!open) return;
1146
- function onKey(e) {
1147
- if (e.key === "Escape") {
1148
- setOpen(false);
1149
- setQuery("");
1148
+ function closeDropdown() {
1149
+ setOpen(false);
1150
+ setQuery("");
1151
+ setActiveIndex(-1);
1152
+ }
1153
+ function selectOption(opt) {
1154
+ onValueChange?.(opt.value);
1155
+ closeDropdown();
1156
+ }
1157
+ function handleInputKeyDown(e) {
1158
+ if (e.key === "Escape") {
1159
+ closeDropdown();
1160
+ return;
1161
+ }
1162
+ if (e.key === "ArrowDown") {
1163
+ e.preventDefault();
1164
+ if (!open) {
1165
+ setOpen(true);
1166
+ return;
1150
1167
  }
1168
+ setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));
1169
+ } else if (e.key === "ArrowUp") {
1170
+ e.preventDefault();
1171
+ setActiveIndex((i) => Math.max(i - 1, 0));
1172
+ } else if (e.key === "Enter") {
1173
+ e.preventDefault();
1174
+ if (!open) {
1175
+ setOpen(true);
1176
+ return;
1177
+ }
1178
+ const target = activeIndex >= 0 ? filtered[activeIndex] : filtered[0];
1179
+ if (target) selectOption(target);
1180
+ } else if (e.key === "Tab") {
1181
+ closeDropdown();
1151
1182
  }
1152
- document.addEventListener("keydown", onKey);
1153
- return () => document.removeEventListener("keydown", onKey);
1154
- }, [open]);
1183
+ }
1155
1184
  return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: cn("relative", className), children: [
1156
1185
  /* @__PURE__ */ jsxs("div", { className: "relative flex items-center", children: [
1157
- selectedOption?.avatar && !open && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute left-2.5 flex size-5 items-center justify-center rounded-full bg-ground-200 caption-xs font-semibold text-ground-700 shrink-0", children: selectedOption.avatar }),
1186
+ selectedOption?.avatar && !open && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute left-2.5 flex size-5 items-center justify-center rounded-full bg-muted caption-xs font-semibold text-muted-foreground shrink-0", children: selectedOption.avatar }),
1158
1187
  selectedOption?.statusColor && !open && /* @__PURE__ */ jsx(
1159
1188
  "div",
1160
1189
  {
@@ -1169,10 +1198,14 @@ function Combobox({
1169
1198
  type: "text",
1170
1199
  role: "combobox",
1171
1200
  "aria-expanded": open,
1201
+ "aria-haspopup": "listbox",
1202
+ "aria-controls": open ? listboxId : void 0,
1203
+ "aria-activedescendant": open && activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : void 0,
1204
+ "aria-autocomplete": "list",
1172
1205
  className: cn(
1173
- "flex h-9 w-full rounded-lg border border-ground-200 bg-white pr-8 body text-ground-900",
1174
- "placeholder:text-ground-400",
1175
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-400/30 focus-visible:border-ground-400",
1206
+ "flex h-9 w-full rounded-lg border border-border bg-card pr-8 body text-foreground",
1207
+ "placeholder:text-muted-foreground",
1208
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:border-border",
1176
1209
  "disabled:cursor-not-allowed disabled:opacity-50",
1177
1210
  selectedOption?.avatar && !open ? "pl-8" : selectedOption?.statusColor && !open ? "pl-7" : "pl-3"
1178
1211
  ),
@@ -1185,7 +1218,8 @@ function Combobox({
1185
1218
  onFocus: () => {
1186
1219
  setOpen(true);
1187
1220
  setQuery("");
1188
- }
1221
+ },
1222
+ onKeyDown: handleInputKeyDown
1189
1223
  }
1190
1224
  ),
1191
1225
  /* @__PURE__ */ jsx(
@@ -1193,11 +1227,11 @@ function Combobox({
1193
1227
  {
1194
1228
  type: "button",
1195
1229
  tabIndex: -1,
1196
- className: "absolute inset-y-0 right-0 flex items-center px-2 text-ground-400 hover:text-ground-700 transition-colors",
1230
+ "aria-label": open ? "Close" : "Open",
1231
+ className: "absolute inset-y-0 right-0 flex items-center px-2 text-muted-foreground hover:text-muted-foreground transition-colors",
1197
1232
  onClick: () => {
1198
1233
  if (open) {
1199
- setOpen(false);
1200
- setQuery("");
1234
+ closeDropdown();
1201
1235
  } else {
1202
1236
  setOpen(true);
1203
1237
  inputRef.current?.focus();
@@ -1207,30 +1241,29 @@ function Combobox({
1207
1241
  }
1208
1242
  )
1209
1243
  ] }),
1210
- open && /* @__PURE__ */ jsx("div", { className: "absolute z-50 mt-1 w-full overflow-hidden rounded-lg border border-ground-200 bg-white shadow-elevated", children: /* @__PURE__ */ jsx("ul", { role: "listbox", className: "max-h-60 overflow-auto py-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx("li", { className: "px-3 py-2 body text-ground-400", children: emptyText }) : filtered.map((option) => {
1244
+ open && /* @__PURE__ */ jsx("div", { className: "absolute z-50 mt-1 w-full overflow-hidden rounded-lg border border-border bg-card shadow-elevated", children: /* @__PURE__ */ jsx("ul", { id: listboxId, role: "listbox", className: "max-h-60 overflow-auto py-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx("li", { className: "px-3 py-2 body text-muted-foreground", children: emptyText }) : filtered.map((option, idx) => {
1211
1245
  const isSelected = option.value === value;
1246
+ const isActive = idx === activeIndex;
1212
1247
  return /* @__PURE__ */ jsxs(
1213
1248
  "li",
1214
1249
  {
1250
+ id: `${listboxId}-option-${idx}`,
1215
1251
  role: "option",
1216
1252
  "aria-selected": isSelected,
1217
1253
  className: cn(
1218
1254
  "flex cursor-pointer select-none items-center gap-2.5 px-3 py-2 body transition-colors",
1219
- isSelected ? "bg-brand-primary text-white" : "text-ground-900 hover:bg-ground-50"
1255
+ isSelected ? "bg-brand-primary text-background" : isActive ? "bg-muted text-foreground" : "text-foreground hover:bg-muted"
1220
1256
  ),
1221
1257
  onMouseDown: (e) => e.preventDefault(),
1222
- onClick: () => {
1223
- onValueChange?.(option.value);
1224
- setQuery("");
1225
- setOpen(false);
1226
- },
1258
+ onMouseEnter: () => setActiveIndex(idx),
1259
+ onClick: () => selectOption(option),
1227
1260
  children: [
1228
1261
  option.avatar && /* @__PURE__ */ jsx(
1229
1262
  "div",
1230
1263
  {
1231
1264
  className: cn(
1232
1265
  "flex size-6 shrink-0 items-center justify-center rounded-full caption-xs font-semibold",
1233
- isSelected ? "bg-white/20 text-white" : "bg-ground-200 text-ground-700"
1266
+ isSelected ? "bg-card/20 text-background" : "bg-muted text-muted-foreground"
1234
1267
  ),
1235
1268
  children: option.avatar
1236
1269
  }
@@ -1249,7 +1282,7 @@ function Combobox({
1249
1282
  {
1250
1283
  className: cn(
1251
1284
  "caption truncate",
1252
- isSelected ? "text-white/70" : "text-ground-400"
1285
+ isSelected ? "text-background/70" : "text-muted-foreground"
1253
1286
  ),
1254
1287
  children: option.description
1255
1288
  }
@@ -1263,6 +1296,7 @@ function Combobox({
1263
1296
  }) }) })
1264
1297
  ] });
1265
1298
  }
1299
+ Combobox.displayName = "Combobox";
1266
1300
  var DialogRoot = Dialog.Root;
1267
1301
  var DialogTrigger = Dialog.Trigger;
1268
1302
  var DialogClose = Dialog.Close;
@@ -1288,7 +1322,7 @@ var DialogContent = React15.forwardRef(({ className, children, ...props }, ref)
1288
1322
  ref,
1289
1323
  className: cn(
1290
1324
  "fixed left-[50%] top-[50%] z-50 translate-x-[-50%] translate-y-[-50%]",
1291
- "w-full max-w-lg bg-white rounded-2xl shadow-elevated p-6",
1325
+ "w-full max-w-lg bg-card rounded-2xl shadow-elevated p-6",
1292
1326
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1293
1327
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1294
1328
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -1297,7 +1331,7 @@ var DialogContent = React15.forwardRef(({ className, children, ...props }, ref)
1297
1331
  ...props,
1298
1332
  children: [
1299
1333
  children,
1300
- /* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-4 top-4 rounded-md p-1 text-ground-400 opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ground-900/20", children: [
1334
+ /* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20", children: [
1301
1335
  /* @__PURE__ */ jsx(X, { size: 16 }),
1302
1336
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
1303
1337
  ] })
@@ -1318,12 +1352,12 @@ var DialogTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
1318
1352
  Dialog.Title,
1319
1353
  {
1320
1354
  ref,
1321
- className: cn("body-lg font-semibold text-ground-900", className),
1355
+ className: cn("body-lg font-semibold text-foreground", className),
1322
1356
  ...props
1323
1357
  }
1324
1358
  ));
1325
1359
  DialogTitle.displayName = "DialogTitle";
1326
- var DialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Dialog.Description, { ref, className: cn("body text-ground-500", className), ...props }));
1360
+ var DialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Dialog.Description, { ref, className: cn("body text-muted-foreground", className), ...props }));
1327
1361
  DialogDescription.displayName = "DialogDescription";
1328
1362
  function CommandPalette({
1329
1363
  open,
@@ -1359,14 +1393,14 @@ function CommandPalette({
1359
1393
  onClose();
1360
1394
  }
1361
1395
  return /* @__PURE__ */ jsx(DialogRoot, { open, onOpenChange: (v) => !v && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "gap-0 overflow-hidden p-0 sm:max-w-xl", children: [
1362
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-ground-100 px-4", children: [
1363
- /* @__PURE__ */ jsx(Search, { size: 16, className: "shrink-0 text-ground-400" }),
1396
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
1397
+ /* @__PURE__ */ jsx(Search, { size: 16, className: "shrink-0 text-muted-foreground" }),
1364
1398
  /* @__PURE__ */ jsx(
1365
1399
  "input",
1366
1400
  {
1367
1401
  ref: inputRef,
1368
1402
  type: "text",
1369
- className: "h-12 flex-1 bg-transparent body text-ground-900 placeholder:text-ground-400 focus:outline-none",
1403
+ className: "h-12 flex-1 bg-transparent body text-foreground placeholder:text-muted-foreground focus:outline-none",
1370
1404
  placeholder,
1371
1405
  value: query,
1372
1406
  onChange: (e) => setQuery(e.target.value),
@@ -1376,23 +1410,23 @@ function CommandPalette({
1376
1410
  }
1377
1411
  }
1378
1412
  ),
1379
- /* @__PURE__ */ jsx("kbd", { className: "hidden items-center gap-0.5 sm:flex", children: /* @__PURE__ */ jsx("span", { className: "caption-xs font-medium text-ground-400 rounded border border-ground-200 px-1.5 py-0.5", children: "esc" }) })
1413
+ /* @__PURE__ */ jsx("kbd", { className: "hidden items-center gap-0.5 sm:flex", children: /* @__PURE__ */ jsx("span", { className: "caption-xs font-medium text-muted-foreground rounded border border-border px-1.5 py-0.5", children: "esc" }) })
1380
1414
  ] }),
1381
- /* @__PURE__ */ jsx("div", { className: "max-h-80 overflow-y-auto", children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "px-4 py-8 text-center body text-ground-400", children: emptyText }) : /* @__PURE__ */ jsx("ul", { role: "list", className: "py-2", children: categories.map((cat) => /* @__PURE__ */ jsxs("li", { children: [
1382
- cat && /* @__PURE__ */ jsx("p", { className: "label px-4 py-2 text-ground-400", children: cat }),
1415
+ /* @__PURE__ */ jsx("div", { className: "max-h-80 overflow-y-auto", children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "px-4 py-8 text-center body text-muted-foreground", children: emptyText }) : /* @__PURE__ */ jsx("ul", { role: "list", className: "py-2", children: categories.map((cat) => /* @__PURE__ */ jsxs("li", { children: [
1416
+ cat && /* @__PURE__ */ jsx("p", { className: "label px-4 py-2 text-muted-foreground", children: cat }),
1383
1417
  grouped[cat].map((item, i) => /* @__PURE__ */ jsxs(
1384
1418
  "button",
1385
1419
  {
1386
1420
  type: "button",
1387
- className: "flex w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-ground-50 focus-visible:bg-ground-50 focus-visible:outline-none",
1421
+ className: "flex w-full items-center gap-3 px-4 py-2.5 body text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none",
1388
1422
  onClick: () => handleSelect(item),
1389
1423
  children: [
1390
- item.icon && /* @__PURE__ */ jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg border border-ground-200 bg-white text-ground-500", children: item.icon }),
1424
+ item.icon && /* @__PURE__ */ jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg border border-border bg-card text-muted-foreground", children: item.icon }),
1391
1425
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
1392
- /* @__PURE__ */ jsx("p", { className: "font-medium text-ground-900 truncate", children: item.label }),
1393
- item.description && /* @__PURE__ */ jsx("p", { className: "caption text-ground-400 truncate", children: item.description })
1426
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-foreground truncate", children: item.label }),
1427
+ item.description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground truncate", children: item.description })
1394
1428
  ] }),
1395
- /* @__PURE__ */ jsx(ArrowRight, { size: 13, className: "shrink-0 text-ground-300" })
1429
+ /* @__PURE__ */ jsx(ArrowRight, { size: 13, className: "shrink-0 text-muted-foreground" })
1396
1430
  ]
1397
1431
  },
1398
1432
  item.id ?? i
@@ -1400,6 +1434,7 @@ function CommandPalette({
1400
1434
  ] }, cat)) }) })
1401
1435
  ] }) });
1402
1436
  }
1437
+ CommandPalette.displayName = "CommandPalette";
1403
1438
  var CommandCtx = React15.createContext({
1404
1439
  query: "",
1405
1440
  setQuery: () => {
@@ -1426,7 +1461,7 @@ function Command({ className, children, onSelect, ...props }) {
1426
1461
  "div",
1427
1462
  {
1428
1463
  className: cn(
1429
- "flex flex-col overflow-hidden rounded-xl border border-ground-200 bg-white",
1464
+ "flex flex-col overflow-hidden rounded-xl border border-border bg-card",
1430
1465
  className
1431
1466
  ),
1432
1467
  ...props,
@@ -1436,8 +1471,8 @@ function Command({ className, children, onSelect, ...props }) {
1436
1471
  }
1437
1472
  var CommandInput = React15.forwardRef(({ className, ...props }, ref) => {
1438
1473
  const { query, setQuery } = React15.useContext(CommandCtx);
1439
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-ground-100 px-3", children: [
1440
- /* @__PURE__ */ jsx(Search, { size: 14, className: "shrink-0 text-ground-400" }),
1474
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b border-border px-3", children: [
1475
+ /* @__PURE__ */ jsx(Search, { size: 14, className: "shrink-0 text-muted-foreground" }),
1441
1476
  /* @__PURE__ */ jsx(
1442
1477
  "input",
1443
1478
  {
@@ -1447,8 +1482,8 @@ var CommandInput = React15.forwardRef(({ className, ...props }, ref) => {
1447
1482
  autoCorrect: "off",
1448
1483
  spellCheck: false,
1449
1484
  className: cn(
1450
- "flex h-10 w-full bg-transparent body text-ground-900",
1451
- "placeholder:text-ground-400 focus:outline-none",
1485
+ "flex h-10 w-full bg-transparent body text-foreground",
1486
+ "placeholder:text-muted-foreground focus:outline-none",
1452
1487
  className
1453
1488
  ),
1454
1489
  value: query,
@@ -1505,7 +1540,7 @@ var CommandEmpty = React15.forwardRef(
1505
1540
  "div",
1506
1541
  {
1507
1542
  ref,
1508
- className: cn("py-6 text-center caption text-ground-400", className),
1543
+ className: cn("py-6 text-center caption text-muted-foreground", className),
1509
1544
  ...props,
1510
1545
  children
1511
1546
  }
@@ -1515,7 +1550,7 @@ var CommandEmpty = React15.forwardRef(
1515
1550
  CommandEmpty.displayName = "CommandEmpty";
1516
1551
  var CommandGroup = React15.forwardRef(
1517
1552
  ({ className, heading, children, ...props }, ref) => /* @__PURE__ */ jsxs("div", { ref, role: "group", className: cn("py-1", className), ...props, children: [
1518
- heading && /* @__PURE__ */ jsx("p", { className: "px-3 pb-1 pt-0.5 label text-ground-400", children: heading }),
1553
+ heading && /* @__PURE__ */ jsx("p", { className: "px-3 pb-1 pt-0.5 label text-muted-foreground", children: heading }),
1519
1554
  children
1520
1555
  ] })
1521
1556
  );
@@ -1547,9 +1582,9 @@ var CommandItem = React15.forwardRef(
1547
1582
  tabIndex: disabled ? void 0 : 0,
1548
1583
  className: cn(
1549
1584
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5 mx-1",
1550
- "body text-ground-700 outline-none transition-colors",
1551
- "hover:bg-ground-50 hover:text-ground-900",
1552
- "focus:bg-ground-50 focus:text-ground-900",
1585
+ "body text-muted-foreground outline-none transition-colors",
1586
+ "hover:bg-muted hover:text-foreground",
1587
+ "focus:bg-muted focus:text-foreground",
1553
1588
  disabled && "pointer-events-none opacity-40",
1554
1589
  className
1555
1590
  ),
@@ -1568,19 +1603,20 @@ var CommandItem = React15.forwardRef(
1568
1603
  );
1569
1604
  CommandItem.displayName = "CommandItem";
1570
1605
  var CommandSeparator = React15.forwardRef(
1571
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("my-1 h-px bg-ground-100", className), ...props })
1606
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("my-1 h-px bg-muted", className), ...props })
1572
1607
  );
1573
1608
  CommandSeparator.displayName = "CommandSeparator";
1574
1609
  function CommandShortcut({ className, ...props }) {
1575
1610
  return /* @__PURE__ */ jsx(
1576
1611
  "span",
1577
1612
  {
1578
- className: cn("ml-auto caption text-ground-300 tracking-widest font-medium", className),
1613
+ className: cn("ml-auto caption text-muted-foreground tracking-widest font-medium", className),
1579
1614
  ...props
1580
1615
  }
1581
1616
  );
1582
1617
  }
1583
1618
  CommandShortcut.displayName = "CommandShortcut";
1619
+ Command.displayName = "Command";
1584
1620
  var ContextMenuRoot = ContextMenu.Root;
1585
1621
  var ContextMenuTrigger = ContextMenu.Trigger;
1586
1622
  var ContextMenuGroup = ContextMenu.Group;
@@ -1592,7 +1628,7 @@ var ContextMenuContent = React15.forwardRef(({ className, ...props }, ref) => /*
1592
1628
  {
1593
1629
  ref,
1594
1630
  className: cn(
1595
- "z-50 min-w-[8rem] bg-white rounded-xl shadow-natural p-1",
1631
+ "z-50 min-w-[8rem] bg-card rounded-xl shadow-natural p-1",
1596
1632
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1597
1633
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1598
1634
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -1611,7 +1647,7 @@ var ContextMenuItem = React15.forwardRef(({ className, inset, destructive, ...pr
1611
1647
  className: cn(
1612
1648
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
1613
1649
  "body outline-none transition-colors",
1614
- destructive ? "text-red-600 focus:bg-red-50 focus:text-red-700" : "text-ground-700 focus:bg-ground-50 focus:text-ground-900",
1650
+ destructive ? "text-destructive focus:bg-destructive/10 focus:text-destructive" : "text-muted-foreground focus:bg-muted focus:text-foreground",
1615
1651
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1616
1652
  inset && "pl-8",
1617
1653
  className
@@ -1626,14 +1662,14 @@ var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...prop
1626
1662
  ref,
1627
1663
  className: cn(
1628
1664
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
1629
- "body text-ground-700 outline-none transition-colors",
1630
- "focus:bg-ground-50 focus:text-ground-900",
1665
+ "body text-muted-foreground outline-none transition-colors",
1666
+ "focus:bg-muted focus:text-foreground",
1631
1667
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1632
1668
  className
1633
1669
  ),
1634
1670
  ...props,
1635
1671
  children: [
1636
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-ground-900" }) }) }),
1672
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-foreground" }) }) }),
1637
1673
  children
1638
1674
  ]
1639
1675
  }
@@ -1645,14 +1681,14 @@ var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }
1645
1681
  ref,
1646
1682
  className: cn(
1647
1683
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
1648
- "body text-ground-700 outline-none transition-colors",
1649
- "focus:bg-ground-50 focus:text-ground-900",
1684
+ "body text-muted-foreground outline-none transition-colors",
1685
+ "focus:bg-muted focus:text-foreground",
1650
1686
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1651
1687
  className
1652
1688
  ),
1653
1689
  ...props,
1654
1690
  children: [
1655
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-ground-900 text-ground-900" }) }) }),
1691
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-foreground text-foreground" }) }) }),
1656
1692
  children
1657
1693
  ]
1658
1694
  }
@@ -1662,7 +1698,7 @@ var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref)
1662
1698
  ContextMenu.Label,
1663
1699
  {
1664
1700
  ref,
1665
- className: cn("px-2.5 py-1 label text-ground-400", inset && "pl-8", className),
1701
+ className: cn("px-2.5 py-1 label text-muted-foreground", inset && "pl-8", className),
1666
1702
  ...props
1667
1703
  }
1668
1704
  ));
@@ -1671,7 +1707,7 @@ var ContextMenuSeparator = React15.forwardRef(({ className, ...props }, ref) =>
1671
1707
  ContextMenu.Separator,
1672
1708
  {
1673
1709
  ref,
1674
- className: cn("mx-1 my-1 h-px bg-ground-100", className),
1710
+ className: cn("mx-1 my-1 h-px bg-muted", className),
1675
1711
  ...props
1676
1712
  }
1677
1713
  ));
@@ -1682,15 +1718,15 @@ var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ..
1682
1718
  ref,
1683
1719
  className: cn(
1684
1720
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
1685
- "body text-ground-700 outline-none transition-colors",
1686
- "focus:bg-ground-50 focus:text-ground-900 data-[state=open]:bg-ground-50",
1721
+ "body text-muted-foreground outline-none transition-colors",
1722
+ "focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
1687
1723
  inset && "pl-8",
1688
1724
  className
1689
1725
  ),
1690
1726
  ...props,
1691
1727
  children: [
1692
1728
  children,
1693
- /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-ground-400" })
1729
+ /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-muted-foreground" })
1694
1730
  ]
1695
1731
  }
1696
1732
  ));
@@ -1700,7 +1736,7 @@ var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) =>
1700
1736
  {
1701
1737
  ref,
1702
1738
  className: cn(
1703
- "z-50 min-w-[8rem] bg-white rounded-xl border border-ground-100 shadow-natural p-1",
1739
+ "z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1",
1704
1740
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1705
1741
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1706
1742
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -1712,32 +1748,32 @@ var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) =>
1712
1748
  ));
1713
1749
  ContextMenuSubContent.displayName = "ContextMenuSubContent";
1714
1750
  function ContextMenuShortcut({ className, ...props }) {
1715
- return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-ground-400", className), ...props });
1751
+ return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-muted-foreground", className), ...props });
1716
1752
  }
1717
1753
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1718
1754
  var Table = React15.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1719
1755
  "div",
1720
1756
  {
1721
1757
  className: cn(
1722
- "w-full overflow-hidden rounded-xl border border-ground-100 bg-white",
1758
+ "w-full overflow-hidden rounded-xl border border-border bg-card",
1723
1759
  containerClassName
1724
1760
  ),
1725
1761
  children: /* @__PURE__ */ jsx(
1726
1762
  "table",
1727
1763
  {
1728
1764
  ref,
1729
- className: cn("min-w-full caption-bottom divide-y divide-ground-200", className),
1765
+ className: cn("min-w-full caption-bottom divide-y divide-border", className),
1730
1766
  ...props
1731
1767
  }
1732
1768
  )
1733
1769
  }
1734
1770
  ));
1735
1771
  Table.displayName = "Table";
1736
- var TableHeader = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("bg-ground-50", className), ...props }));
1772
+ var TableHeader = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("bg-muted", className), ...props }));
1737
1773
  TableHeader.displayName = "TableHeader";
1738
- var TableBody = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("tbody", { ref, className: cn("divide-y divide-ground-100 bg-white", className), ...props }));
1774
+ var TableBody = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("tbody", { ref, className: cn("divide-y divide-border bg-card", className), ...props }));
1739
1775
  TableBody.displayName = "TableBody";
1740
- var TableFooter = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("tfoot", { ref, className: cn("bg-ground-50 font-medium", className), ...props }));
1776
+ var TableFooter = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("tfoot", { ref, className: cn("bg-muted font-medium", className), ...props }));
1741
1777
  TableFooter.displayName = "TableFooter";
1742
1778
  var TableRow = React15.forwardRef(
1743
1779
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
@@ -1745,7 +1781,7 @@ var TableRow = React15.forwardRef(
1745
1781
  {
1746
1782
  ref,
1747
1783
  className: cn(
1748
- "transition-colors hover:bg-ground-50/50 data-[state=selected]:bg-ground-50",
1784
+ "transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
1749
1785
  className
1750
1786
  ),
1751
1787
  ...props
@@ -1758,7 +1794,7 @@ var TableHead = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1758
1794
  {
1759
1795
  ref,
1760
1796
  className: cn(
1761
- "px-6 py-3 text-left align-middle label text-ground-400",
1797
+ "px-6 py-3 text-left align-middle label text-muted-foreground",
1762
1798
  "[&:has([role=checkbox])]:pr-0",
1763
1799
  className
1764
1800
  ),
@@ -1771,7 +1807,7 @@ var TableCell = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1771
1807
  {
1772
1808
  ref,
1773
1809
  className: cn(
1774
- "px-6 py-4 align-middle body text-ground-500",
1810
+ "px-6 py-4 align-middle body text-muted-foreground",
1775
1811
  "[&:has([role=checkbox])]:pr-0",
1776
1812
  className
1777
1813
  ),
@@ -1779,7 +1815,7 @@ var TableCell = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1779
1815
  }
1780
1816
  ));
1781
1817
  TableCell.displayName = "TableCell";
1782
- var TableCaption = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("caption", { ref, className: cn("mt-4 caption text-ground-400", className), ...props }));
1818
+ var TableCaption = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("caption", { ref, className: cn("mt-4 caption text-muted-foreground", className), ...props }));
1783
1819
  TableCaption.displayName = "TableCaption";
1784
1820
  function Input({ className, type, ...props }) {
1785
1821
  return /* @__PURE__ */ jsx(
@@ -1788,12 +1824,12 @@ function Input({ className, type, ...props }) {
1788
1824
  type,
1789
1825
  "data-slot": "input",
1790
1826
  className: cn(
1791
- "flex h-9 w-full rounded-md border border-ground-200 bg-white px-3 py-1",
1792
- "body text-ground-900 placeholder:text-ground-400",
1827
+ "flex h-9 w-full rounded-md border border-border bg-card px-3 py-1",
1828
+ "body text-foreground placeholder:text-muted-foreground",
1793
1829
  "transition-colors duration-150",
1794
1830
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary",
1795
- "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-ground-50",
1796
- "file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-ground-900",
1831
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted",
1832
+ "file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground",
1797
1833
  className
1798
1834
  ),
1799
1835
  ...props
@@ -1834,30 +1870,37 @@ function DataTable({
1834
1870
  }
1835
1871
  ),
1836
1872
  /* @__PURE__ */ jsxs(Table, { children: [
1837
- /* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHead, { children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs(
1838
- "button",
1873
+ /* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
1874
+ TableHead,
1839
1875
  {
1840
- className: cn(
1841
- "flex items-center gap-1 transition-colors hover:text-ground-700",
1842
- header.column.getIsSorted() && "text-ground-900"
1843
- ),
1844
- onClick: header.column.getToggleSortingHandler(),
1845
- children: [
1846
- flexRender(header.column.columnDef.header, header.getContext()),
1847
- header.column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx(ChevronUp, { size: 12, className: "text-brand-primary" }) : header.column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx(ChevronDown, { size: 12, className: "text-brand-primary" }) : /* @__PURE__ */ jsx(ChevronsUpDown, { size: 12, className: "text-ground-300" })
1848
- ]
1849
- }
1850
- ) : flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }, headerGroup.id)) }),
1851
- /* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, { colSpan: columns.length, className: "h-24 text-center text-ground-400", children: "No results." }) }) })
1876
+ "aria-sort": header.column.getCanSort() ? header.column.getIsSorted() === "asc" ? "ascending" : header.column.getIsSorted() === "desc" ? "descending" : "none" : void 0,
1877
+ children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs(
1878
+ "button",
1879
+ {
1880
+ className: cn(
1881
+ "flex items-center gap-1 transition-colors hover:text-muted-foreground",
1882
+ header.column.getIsSorted() && "text-foreground"
1883
+ ),
1884
+ onClick: header.column.getToggleSortingHandler(),
1885
+ children: [
1886
+ flexRender(header.column.columnDef.header, header.getContext()),
1887
+ header.column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx(ChevronUp, { size: 12, className: "text-brand-primary" }) : header.column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx(ChevronDown, { size: 12, className: "text-brand-primary" }) : /* @__PURE__ */ jsx(ChevronsUpDown, { size: 12, className: "text-muted-foreground" })
1888
+ ]
1889
+ }
1890
+ ) : flexRender(header.column.columnDef.header, header.getContext())
1891
+ },
1892
+ header.id
1893
+ )) }, headerGroup.id)) }),
1894
+ /* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, { colSpan: columns.length, className: "h-24 text-center text-muted-foreground", children: "No results." }) }) })
1852
1895
  ] }),
1853
1896
  showPagination && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1854
- /* @__PURE__ */ jsxs("p", { className: "caption text-ground-400", children: [
1897
+ /* @__PURE__ */ jsxs("p", { className: "caption text-muted-foreground", children: [
1855
1898
  table.getFilteredRowModel().rows.length,
1856
1899
  " result",
1857
1900
  table.getFilteredRowModel().rows.length !== 1 ? "s" : ""
1858
1901
  ] }),
1859
1902
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1860
- /* @__PURE__ */ jsxs("span", { className: "caption text-ground-400", children: [
1903
+ /* @__PURE__ */ jsxs("span", { className: "caption text-muted-foreground", children: [
1861
1904
  "Page ",
1862
1905
  table.getState().pagination.pageIndex + 1,
1863
1906
  " of ",
@@ -1897,7 +1940,7 @@ var PopoverContent = React15.forwardRef(({ className, align = "center", sideOffs
1897
1940
  align,
1898
1941
  sideOffset,
1899
1942
  className: cn(
1900
- "z-50 w-72 rounded-xl bg-white p-4 shadow-natural outline-none",
1943
+ "z-50 w-72 rounded-xl bg-card p-4 shadow-natural outline-none",
1901
1944
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1902
1945
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1903
1946
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -1928,12 +1971,12 @@ function DatePicker({
1928
1971
  variant: "outline",
1929
1972
  className: cn(
1930
1973
  "w-[240px] justify-start gap-2 text-left font-normal",
1931
- !value && "text-ground-400",
1974
+ !value && "text-muted-foreground",
1932
1975
  className
1933
1976
  ),
1934
1977
  disabled,
1935
1978
  children: [
1936
- /* @__PURE__ */ jsx(CalendarIcon, { size: 14, className: "text-ground-400 shrink-0" }),
1979
+ /* @__PURE__ */ jsx(CalendarIcon, { size: 14, className: "text-muted-foreground shrink-0" }),
1937
1980
  value ? formatDate(value) : /* @__PURE__ */ jsx("span", { children: placeholder })
1938
1981
  ]
1939
1982
  }
@@ -1960,21 +2003,21 @@ function DescriptionList({
1960
2003
  }) {
1961
2004
  return /* @__PURE__ */ jsxs("div", { className, children: [
1962
2005
  (title || description) && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
1963
- title && /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900", children: title }),
1964
- description && /* @__PURE__ */ jsx("p", { className: "mt-1 caption text-ground-400", children: description })
2006
+ title && /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
2007
+ description && /* @__PURE__ */ jsx("p", { className: "mt-1 caption text-muted-foreground", children: description })
1965
2008
  ] }),
1966
- /* @__PURE__ */ jsx("dl", { className: cn("border-t border-ground-100", columns === 2 && "sm:grid sm:grid-cols-2"), children: items.map((item, i) => /* @__PURE__ */ jsxs(
2009
+ /* @__PURE__ */ jsx("dl", { className: cn("border-t border-border", columns === 2 && "sm:grid sm:grid-cols-2"), children: items.map((item, i) => /* @__PURE__ */ jsxs(
1967
2010
  "div",
1968
2011
  {
1969
2012
  className: cn(
1970
2013
  "py-3.5",
1971
- columns === 1 ? "grid grid-cols-3 gap-4 items-baseline" : "flex flex-col gap-1 border-b border-ground-100",
1972
- columns === 1 && i !== items.length - 1 && "border-b border-ground-100",
1973
- striped && i % 2 === 0 && "bg-ground-50 -mx-4 px-4 rounded"
2014
+ columns === 1 ? "grid grid-cols-3 gap-4 items-baseline" : "flex flex-col gap-1 border-b border-border",
2015
+ columns === 1 && i !== items.length - 1 && "border-b border-border",
2016
+ striped && i % 2 === 0 && "bg-muted -mx-4 px-4 rounded"
1974
2017
  ),
1975
2018
  children: [
1976
- /* @__PURE__ */ jsx("dt", { className: "caption font-semibold text-ground-500 uppercase tracking-wide", children: item.term }),
1977
- /* @__PURE__ */ jsx("dd", { className: cn("body text-ground-900", columns === 1 ? "col-span-2" : ""), children: item.action ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
2019
+ /* @__PURE__ */ jsx("dt", { className: "caption font-semibold text-muted-foreground uppercase tracking-wide", children: item.term }),
2020
+ /* @__PURE__ */ jsx("dd", { className: cn("body text-foreground", columns === 1 ? "col-span-2" : ""), children: item.action ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
1978
2021
  /* @__PURE__ */ jsx("span", { children: item.details }),
1979
2022
  item.action
1980
2023
  ] }) : item.details })
@@ -1984,6 +2027,7 @@ function DescriptionList({
1984
2027
  )) })
1985
2028
  ] });
1986
2029
  }
2030
+ DescriptionList.displayName = "DescriptionList";
1987
2031
  var DrawerRoot = Drawer.Root;
1988
2032
  var DrawerTrigger = Drawer.Trigger;
1989
2033
  var DrawerPortal = Drawer.Portal;
@@ -1992,7 +2036,7 @@ var DrawerOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__P
1992
2036
  Drawer.Overlay,
1993
2037
  {
1994
2038
  ref,
1995
- className: cn("fixed inset-0 z-50 bg-ground-950/40 backdrop-blur-[1px]", className),
2039
+ className: cn("fixed inset-0 z-50 bg-foreground/40 backdrop-blur-[1px]", className),
1996
2040
  ...props
1997
2041
  }
1998
2042
  ));
@@ -2004,12 +2048,12 @@ var DrawerContent = React15.forwardRef(({ className, children, ...props }, ref)
2004
2048
  {
2005
2049
  ref,
2006
2050
  className: cn(
2007
- "fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-2xl border border-ground-100 bg-white",
2051
+ "fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-2xl border border-border bg-card",
2008
2052
  className
2009
2053
  ),
2010
2054
  ...props,
2011
2055
  children: [
2012
- /* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 h-1 w-12 rounded-full bg-ground-200" }),
2056
+ /* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 h-1 w-12 rounded-full bg-muted" }),
2013
2057
  children
2014
2058
  ]
2015
2059
  }
@@ -2024,7 +2068,7 @@ var DrawerTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
2024
2068
  Drawer.Title,
2025
2069
  {
2026
2070
  ref,
2027
- className: cn("subheading text-ground-900", className),
2071
+ className: cn("subheading text-foreground", className),
2028
2072
  ...props
2029
2073
  }
2030
2074
  ));
@@ -2033,7 +2077,7 @@ var DrawerDescription = React15.forwardRef(({ className, ...props }, ref) => /*
2033
2077
  Drawer.Description,
2034
2078
  {
2035
2079
  ref,
2036
- className: cn("body text-ground-500", className),
2080
+ className: cn("body text-muted-foreground", className),
2037
2081
  ...props
2038
2082
  }
2039
2083
  ));
@@ -2050,7 +2094,7 @@ var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, ...pr
2050
2094
  ref,
2051
2095
  sideOffset,
2052
2096
  className: cn(
2053
- "z-50 min-w-[8rem] bg-white rounded-xl shadow-natural p-1",
2097
+ "z-50 min-w-[8rem] bg-card rounded-xl shadow-natural p-1",
2054
2098
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2055
2099
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2056
2100
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -2069,7 +2113,7 @@ var DropdownMenuItem = React15.forwardRef(({ className, inset, destructive, ...p
2069
2113
  className: cn(
2070
2114
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
2071
2115
  "body outline-none transition-colors",
2072
- destructive ? "text-red-600 focus:bg-red-50 focus:text-red-700" : "text-ground-700 focus:bg-ground-50 focus:text-ground-900",
2116
+ destructive ? "text-destructive focus:bg-destructive/10 focus:text-destructive" : "text-muted-foreground focus:bg-muted focus:text-foreground",
2073
2117
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2074
2118
  inset && "pl-8",
2075
2119
  className
@@ -2084,14 +2128,14 @@ var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, ...pro
2084
2128
  ref,
2085
2129
  className: cn(
2086
2130
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
2087
- "body text-ground-700 outline-none transition-colors",
2088
- "focus:bg-ground-50 focus:text-ground-900",
2131
+ "body text-muted-foreground outline-none transition-colors",
2132
+ "focus:bg-muted focus:text-foreground",
2089
2133
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2090
2134
  className
2091
2135
  ),
2092
2136
  ...props,
2093
2137
  children: [
2094
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-ground-900" }) }) }),
2138
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-foreground" }) }) }),
2095
2139
  children
2096
2140
  ]
2097
2141
  }
@@ -2103,14 +2147,14 @@ var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props
2103
2147
  ref,
2104
2148
  className: cn(
2105
2149
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
2106
- "body text-ground-700 outline-none transition-colors",
2107
- "focus:bg-ground-50 focus:text-ground-900",
2150
+ "body text-muted-foreground outline-none transition-colors",
2151
+ "focus:bg-muted focus:text-foreground",
2108
2152
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2109
2153
  className
2110
2154
  ),
2111
2155
  ...props,
2112
2156
  children: [
2113
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-ground-900 text-ground-900" }) }) }),
2157
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-foreground text-foreground" }) }) }),
2114
2158
  children
2115
2159
  ]
2116
2160
  }
@@ -2120,7 +2164,7 @@ var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref)
2120
2164
  DropdownMenu.Label,
2121
2165
  {
2122
2166
  ref,
2123
- className: cn("px-2.5 py-1 label text-ground-400", inset && "pl-8", className),
2167
+ className: cn("px-2.5 py-1 label text-muted-foreground", inset && "pl-8", className),
2124
2168
  ...props
2125
2169
  }
2126
2170
  ));
@@ -2129,7 +2173,7 @@ var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) =>
2129
2173
  DropdownMenu.Separator,
2130
2174
  {
2131
2175
  ref,
2132
- className: cn("mx-1 my-1 h-px bg-ground-100", className),
2176
+ className: cn("mx-1 my-1 h-px bg-muted", className),
2133
2177
  ...props
2134
2178
  }
2135
2179
  ));
@@ -2140,15 +2184,15 @@ var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, .
2140
2184
  ref,
2141
2185
  className: cn(
2142
2186
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
2143
- "body text-ground-700 outline-none transition-colors",
2144
- "focus:bg-ground-50 focus:text-ground-900 data-[state=open]:bg-ground-50",
2187
+ "body text-muted-foreground outline-none transition-colors",
2188
+ "focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
2145
2189
  inset && "pl-8",
2146
2190
  className
2147
2191
  ),
2148
2192
  ...props,
2149
2193
  children: [
2150
2194
  children,
2151
- /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-ground-400" })
2195
+ /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-muted-foreground" })
2152
2196
  ]
2153
2197
  }
2154
2198
  ));
@@ -2158,7 +2202,7 @@ var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) =
2158
2202
  {
2159
2203
  ref,
2160
2204
  className: cn(
2161
- "z-50 min-w-[8rem] bg-white rounded-xl border border-ground-100 shadow-natural p-1",
2205
+ "z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1",
2162
2206
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2163
2207
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2164
2208
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -2170,25 +2214,26 @@ var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) =
2170
2214
  ));
2171
2215
  DropdownMenuSubContent.displayName = "DropdownMenuSubContent";
2172
2216
  function DropdownMenuShortcut({ className, ...props }) {
2173
- return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-ground-400", className), ...props });
2217
+ return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-muted-foreground", className), ...props });
2174
2218
  }
2175
2219
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2176
2220
  function EmptyState({ icon, title, description, action, className }) {
2177
2221
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-4 px-6 py-14 text-center", className), children: [
2178
- icon && /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-xl bg-brand-secondary/20 text-ground-700", children: icon }),
2222
+ icon && /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-xl bg-brand-secondary/20 text-muted-foreground", children: icon }),
2179
2223
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5", children: [
2180
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900", children: title }),
2181
- description && /* @__PURE__ */ jsx("p", { className: "body max-w-xs text-ground-400", children: description })
2224
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
2225
+ description && /* @__PURE__ */ jsx("p", { className: "body max-w-xs text-muted-foreground", children: description })
2182
2226
  ] }),
2183
2227
  action && (action.href ? /* @__PURE__ */ jsx(Button, { size: "sm", asChild: true, children: /* @__PURE__ */ jsx("a", { href: action.href, children: action.label }) }) : /* @__PURE__ */ jsx(Button, { size: "sm", onClick: action.onClick, children: action.label }))
2184
2228
  ] });
2185
2229
  }
2230
+ EmptyState.displayName = "EmptyState";
2186
2231
  var Label = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2187
2232
  Label$1.Root,
2188
2233
  {
2189
2234
  ref,
2190
2235
  className: cn(
2191
- "body font-medium leading-none text-ground-700",
2236
+ "body font-medium leading-none text-muted-foreground",
2192
2237
  "peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
2193
2238
  className
2194
2239
  ),
@@ -2212,12 +2257,12 @@ function Field({
2212
2257
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
2213
2258
  /* @__PURE__ */ jsxs(Label, { htmlFor, "aria-required": required, children: [
2214
2259
  label,
2215
- required && /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-red-600", "aria-hidden": "true", children: "*" })
2260
+ required && /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-destructive", "aria-hidden": "true", children: "*" })
2216
2261
  ] }),
2217
- cornerHint && /* @__PURE__ */ jsx("span", { className: "caption text-ground-400", children: cornerHint })
2262
+ cornerHint && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: cornerHint })
2218
2263
  ] }),
2219
2264
  children,
2220
- error ? /* @__PURE__ */ jsx("p", { id: descriptionId, role: "alert", className: "caption text-red-600", children: error }) : hint ? /* @__PURE__ */ jsx("p", { id: descriptionId, className: "caption text-ground-400", children: hint }) : null
2265
+ error ? /* @__PURE__ */ jsx("p", { id: descriptionId, role: "alert", className: "caption text-destructive", children: error }) : hint ? /* @__PURE__ */ jsx("p", { id: descriptionId, className: "caption text-muted-foreground", children: hint }) : null
2221
2266
  ] });
2222
2267
  }
2223
2268
  Field.displayName = "Field";
@@ -2247,17 +2292,17 @@ function GridListCard({
2247
2292
  "div",
2248
2293
  {
2249
2294
  className: cn(
2250
- "flex h-full flex-col gap-1 rounded-xl border border-ground-100 bg-white p-4 shadow-natural transition-shadow",
2295
+ "flex h-full flex-col gap-1 rounded-xl border border-border bg-card p-4 shadow-natural transition-shadow",
2251
2296
  href && "hover:shadow-elevated",
2252
2297
  className
2253
2298
  ),
2254
2299
  children: [
2255
2300
  accent && /* @__PURE__ */ jsx("div", { className: "mb-2", children: accent }),
2256
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900", children: title }),
2257
- description && /* @__PURE__ */ jsx("p", { className: "caption text-ground-400", children: description }),
2301
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
2302
+ description && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground", children: description }),
2258
2303
  (meta || trailing) && /* @__PURE__ */ jsxs("div", { className: "mt-auto flex items-center justify-between pt-3", children: [
2259
- meta && /* @__PURE__ */ jsx("span", { className: "caption text-ground-400", children: meta }),
2260
- trailing && /* @__PURE__ */ jsx("span", { className: "caption text-ground-400", children: trailing })
2304
+ meta && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: meta }),
2305
+ trailing && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: trailing })
2261
2306
  ] })
2262
2307
  ]
2263
2308
  }
@@ -2266,7 +2311,7 @@ function GridListCard({
2266
2311
  "a",
2267
2312
  {
2268
2313
  href,
2269
- className: "block h-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-400/40 rounded-xl",
2314
+ className: "block h-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl",
2270
2315
  children: inner
2271
2316
  }
2272
2317
  ) : inner });
@@ -2275,7 +2320,7 @@ function GridListAccentCard({
2275
2320
  title,
2276
2321
  meta,
2277
2322
  href,
2278
- accentClass = "bg-ground-900",
2323
+ accentClass = "bg-foreground",
2279
2324
  initials,
2280
2325
  trailing,
2281
2326
  className
@@ -2284,7 +2329,7 @@ function GridListAccentCard({
2284
2329
  "div",
2285
2330
  {
2286
2331
  className: cn(
2287
- "flex overflow-hidden rounded-xl border border-ground-100 bg-white shadow-natural transition-shadow",
2332
+ "flex overflow-hidden rounded-xl border border-border bg-card shadow-natural transition-shadow",
2288
2333
  href && "hover:shadow-elevated",
2289
2334
  className
2290
2335
  ),
@@ -2293,16 +2338,16 @@ function GridListAccentCard({
2293
2338
  "div",
2294
2339
  {
2295
2340
  className: cn(
2296
- "flex w-14 shrink-0 items-center justify-center body font-semibold text-white",
2341
+ "flex w-14 shrink-0 items-center justify-center body font-semibold text-background",
2297
2342
  accentClass
2298
2343
  ),
2299
2344
  children: initials
2300
2345
  }
2301
2346
  ),
2302
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between truncate border-l border-ground-100 px-4 py-3", children: [
2347
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center justify-between truncate border-l border-border px-4 py-3", children: [
2303
2348
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
2304
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900 truncate", children: title }),
2305
- meta && /* @__PURE__ */ jsx("p", { className: "caption text-ground-400", children: meta })
2349
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground truncate", children: title }),
2350
+ meta && /* @__PURE__ */ jsx("p", { className: "caption text-muted-foreground", children: meta })
2306
2351
  ] }),
2307
2352
  trailing && /* @__PURE__ */ jsx("div", { className: "shrink-0 pl-2", children: trailing })
2308
2353
  ] })
@@ -2313,11 +2358,14 @@ function GridListAccentCard({
2313
2358
  "a",
2314
2359
  {
2315
2360
  href,
2316
- className: "block focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-400/40 rounded-xl",
2361
+ className: "block focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30 rounded-xl",
2317
2362
  children: inner
2318
2363
  }
2319
2364
  ) : inner });
2320
2365
  }
2366
+ GridList.displayName = "GridList";
2367
+ GridListCard.displayName = "GridListCard";
2368
+ GridListAccentCard.displayName = "GridListAccentCard";
2321
2369
  var HoverCardRoot = HoverCard.Root;
2322
2370
  var HoverCardTrigger = HoverCard.Trigger;
2323
2371
  var HoverCardContent = React15.forwardRef(({ className, align = "center", sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(HoverCard.Portal, { children: /* @__PURE__ */ jsx(
@@ -2327,7 +2375,7 @@ var HoverCardContent = React15.forwardRef(({ className, align = "center", sideOf
2327
2375
  align,
2328
2376
  sideOffset,
2329
2377
  className: cn(
2330
- "z-50 w-64 rounded-xl border border-ground-100 bg-white p-4 shadow-elevated outline-none",
2378
+ "z-50 w-64 rounded-xl border border-border bg-card p-4 shadow-elevated outline-none",
2331
2379
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2332
2380
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2333
2381
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -2356,9 +2404,9 @@ var InputGroup = React15.forwardRef(
2356
2404
  const hasLeading = leadingAddon || leadingIcon;
2357
2405
  const hasTrailing = trailingAddon || trailingIcon || trailingButton || error;
2358
2406
  const baseInput = cn(
2359
- "flex h-9 w-full border bg-white body text-ground-900 placeholder:text-ground-400",
2407
+ "flex h-9 w-full border bg-card body text-foreground placeholder:text-muted-foreground",
2360
2408
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:disabled:cursor-not-allowed disabled:opacity-50",
2361
- error ? "border-red-400 focus-visible:ring-red-200 focus-visible:border-red-500" : "border-ground-200 focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary"
2409
+ error ? "border-destructive focus-visible:ring-destructive/20 focus-visible:border-destructive" : "border-border focus-visible:ring-brand-primary/20 focus-visible:border-brand-primary"
2362
2410
  );
2363
2411
  if (!hasLeading && !hasTrailing) {
2364
2412
  return /* @__PURE__ */ jsx("input", { ref, className: cn(baseInput, radius, "px-3", className), ...props });
@@ -2368,15 +2416,15 @@ var InputGroup = React15.forwardRef(
2368
2416
  "span",
2369
2417
  {
2370
2418
  className: cn(
2371
- "inline-flex items-center border border-r-0 bg-ground-50 px-3 body text-ground-500 select-none",
2372
- error ? "border-red-400" : "border-ground-200",
2419
+ "inline-flex items-center border border-r-0 bg-muted px-3 body text-muted-foreground select-none",
2420
+ error ? "border-destructive" : "border-border",
2373
2421
  pill ? "rounded-l-full" : "rounded-l-lg"
2374
2422
  ),
2375
2423
  children: leadingAddon
2376
2424
  }
2377
2425
  ),
2378
2426
  /* @__PURE__ */ jsxs("div", { className: "relative flex-1", children: [
2379
- leadingIcon && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-ground-400", children: leadingIcon }),
2427
+ leadingIcon && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-muted-foreground", children: leadingIcon }),
2380
2428
  /* @__PURE__ */ jsx(
2381
2429
  "input",
2382
2430
  {
@@ -2390,14 +2438,14 @@ var InputGroup = React15.forwardRef(
2390
2438
  ...props
2391
2439
  }
2392
2440
  ),
2393
- (trailingIcon || error) && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3", children: error ? /* @__PURE__ */ jsx(AlertCircle, { size: 15, className: "text-red-500" }) : /* @__PURE__ */ jsx("span", { className: "text-ground-400", children: trailingIcon }) })
2441
+ (trailingIcon || error) && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3", children: error ? /* @__PURE__ */ jsx(AlertCircle, { size: 15, className: "text-destructive" }) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: trailingIcon }) })
2394
2442
  ] }),
2395
2443
  trailingAddon && /* @__PURE__ */ jsx(
2396
2444
  "span",
2397
2445
  {
2398
2446
  className: cn(
2399
- "inline-flex items-center border border-l-0 bg-ground-50 px-3 body text-ground-500 select-none",
2400
- error ? "border-red-400" : "border-ground-200",
2447
+ "inline-flex items-center border border-l-0 bg-muted px-3 body text-muted-foreground select-none",
2448
+ error ? "border-destructive" : "border-border",
2401
2449
  pill ? "rounded-r-full" : "rounded-r-lg"
2402
2450
  ),
2403
2451
  children: trailingAddon
@@ -2457,7 +2505,7 @@ var InputNumber = React15.forwardRef(
2457
2505
  "div",
2458
2506
  {
2459
2507
  className: cn(
2460
- "inline-flex h-8 items-stretch rounded-md border border-ground-200 bg-white overflow-hidden",
2508
+ "inline-flex h-8 items-stretch rounded-md border border-border bg-card overflow-hidden",
2461
2509
  "focus-within:ring-2 focus-within:ring-brand-primary/20 focus-within:border-brand-primary",
2462
2510
  disabled && "opacity-50 pointer-events-none",
2463
2511
  className
@@ -2475,12 +2523,12 @@ var InputNumber = React15.forwardRef(
2475
2523
  onBlur: (e) => commit(e.target.value),
2476
2524
  onKeyDown,
2477
2525
  disabled,
2478
- className: "w-full caption text-ground-900 px-2 bg-transparent focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none text-right",
2526
+ className: "w-full caption text-foreground px-2 bg-transparent focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none text-right",
2479
2527
  ...rest
2480
2528
  }
2481
2529
  ),
2482
- unit && /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "caption-xs text-ground-400 self-center pr-1.5 select-none", children: unit }),
2483
- !hideSteppers && /* @__PURE__ */ jsxs("div", { className: "flex flex-col border-l border-ground-100", children: [
2530
+ unit && /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "caption-xs text-muted-foreground self-center pr-1.5 select-none", children: unit }),
2531
+ !hideSteppers && /* @__PURE__ */ jsxs("div", { className: "flex flex-col border-l border-border", children: [
2484
2532
  /* @__PURE__ */ jsx(
2485
2533
  "button",
2486
2534
  {
@@ -2488,11 +2536,11 @@ var InputNumber = React15.forwardRef(
2488
2536
  tabIndex: -1,
2489
2537
  onClick: () => bump(step),
2490
2538
  "aria-label": "Increment",
2491
- className: "flex-1 px-1 hover:bg-ground-50 active:bg-ground-100 transition-colors text-ground-500",
2539
+ className: "flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground",
2492
2540
  children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 8 5", width: "8", height: "5", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M0 5 L4 0 L8 5 Z" }) })
2493
2541
  }
2494
2542
  ),
2495
- /* @__PURE__ */ jsx("div", { className: "border-t border-ground-100" }),
2543
+ /* @__PURE__ */ jsx("div", { className: "border-t border-border" }),
2496
2544
  /* @__PURE__ */ jsx(
2497
2545
  "button",
2498
2546
  {
@@ -2500,7 +2548,7 @@ var InputNumber = React15.forwardRef(
2500
2548
  tabIndex: -1,
2501
2549
  onClick: () => bump(-step),
2502
2550
  "aria-label": "Decrement",
2503
- className: "flex-1 px-1 hover:bg-ground-50 active:bg-ground-100 transition-colors text-ground-500",
2551
+ className: "flex-1 px-1 hover:bg-muted active:bg-muted transition-colors text-muted-foreground",
2504
2552
  children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 8 5", width: "8", height: "5", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M0 0 L4 5 L8 0 Z" }) })
2505
2553
  }
2506
2554
  )
@@ -2534,7 +2582,7 @@ var InputOTPSlot = React15.forwardRef(({ index, className, ...props }, ref) => {
2534
2582
  ref,
2535
2583
  className: cn(
2536
2584
  "relative flex h-12 w-11 items-center justify-center",
2537
- "border-y border-r border-ground-200 body font-medium text-ground-900",
2585
+ "border-y border-r border-border body font-medium text-foreground",
2538
2586
  "first:rounded-l-xl first:border-l last:rounded-r-xl",
2539
2587
  "transition-all",
2540
2588
  isActive && "z-10 ring-2 ring-brand-primary/40 border-brand-primary",
@@ -2543,14 +2591,14 @@ var InputOTPSlot = React15.forwardRef(({ index, className, ...props }, ref) => {
2543
2591
  ...props,
2544
2592
  children: [
2545
2593
  char,
2546
- hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-5 w-px animate-caret-blink bg-ground-900 duration-1000" }) })
2594
+ hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-5 w-px animate-caret-blink bg-foreground duration-1000" }) })
2547
2595
  ]
2548
2596
  }
2549
2597
  );
2550
2598
  });
2551
2599
  InputOTPSlot.displayName = "InputOTPSlot";
2552
2600
  var InputOTPSeparator = React15.forwardRef(
2553
- ({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, { size: 14, className: "text-ground-300" }) })
2601
+ ({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, { size: 14, className: "text-muted-foreground" }) })
2554
2602
  );
2555
2603
  InputOTPSeparator.displayName = "InputOTPSeparator";
2556
2604
  var Kbd = React15.forwardRef(
@@ -2559,7 +2607,7 @@ var Kbd = React15.forwardRef(
2559
2607
  {
2560
2608
  ref,
2561
2609
  className: cn(
2562
- "inline-flex h-5 min-w-5 items-center justify-center rounded border border-ground-200 bg-ground-50 px-1.5 font-mono caption-xs font-medium text-ground-500",
2610
+ "inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono caption-xs font-medium text-muted-foreground",
2563
2611
  className
2564
2612
  ),
2565
2613
  ...props
@@ -2602,12 +2650,13 @@ function MediaObject({
2602
2650
  }
2603
2651
  );
2604
2652
  }
2653
+ MediaObject.displayName = "MediaObject";
2605
2654
  var MenubarRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2606
2655
  Menubar.Root,
2607
2656
  {
2608
2657
  ref,
2609
2658
  className: cn(
2610
- "flex h-9 items-center gap-0.5 rounded-lg border border-ground-100 bg-white px-1",
2659
+ "flex h-9 items-center gap-0.5 rounded-lg border border-border bg-card px-1",
2611
2660
  className
2612
2661
  ),
2613
2662
  ...props
@@ -2623,10 +2672,10 @@ var MenubarTrigger = React15.forwardRef(({ className, ...props }, ref) => /* @__
2623
2672
  {
2624
2673
  ref,
2625
2674
  className: cn(
2626
- "flex cursor-default items-center rounded-md px-3 py-1 body font-medium text-ground-700 select-none outline-none",
2627
- "hover:bg-ground-50",
2628
- "data-[state=open]:bg-ground-100 data-[state=open]:text-ground-900",
2629
- "focus:bg-ground-50",
2675
+ "flex cursor-default items-center rounded-md px-3 py-1 body font-medium text-muted-foreground select-none outline-none",
2676
+ "hover:bg-muted",
2677
+ "data-[state=open]:bg-muted data-[state=open]:text-foreground",
2678
+ "focus:bg-muted",
2630
2679
  className
2631
2680
  ),
2632
2681
  ...props
@@ -2641,7 +2690,7 @@ var MenubarContent = React15.forwardRef(({ className, align = "start", alignOffs
2641
2690
  alignOffset,
2642
2691
  sideOffset,
2643
2692
  className: cn(
2644
- "z-50 min-w-[12rem] bg-white rounded-xl shadow-natural p-1",
2693
+ "z-50 min-w-[12rem] bg-card rounded-xl shadow-natural p-1",
2645
2694
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2646
2695
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2647
2696
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -2659,8 +2708,8 @@ var MenubarItem = React15.forwardRef(({ className, inset, ...props }, ref) => /*
2659
2708
  ref,
2660
2709
  className: cn(
2661
2710
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
2662
- "body text-ground-700 outline-none transition-colors",
2663
- "focus:bg-ground-50 focus:text-ground-900",
2711
+ "body text-muted-foreground outline-none transition-colors",
2712
+ "focus:bg-muted focus:text-foreground",
2664
2713
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2665
2714
  inset && "pl-8",
2666
2715
  className
@@ -2675,14 +2724,14 @@ var MenubarCheckboxItem = React15.forwardRef(({ className, children, ...props },
2675
2724
  ref,
2676
2725
  className: cn(
2677
2726
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
2678
- "body text-ground-700 outline-none transition-colors",
2679
- "focus:bg-ground-50 focus:text-ground-900",
2727
+ "body text-muted-foreground outline-none transition-colors",
2728
+ "focus:bg-muted focus:text-foreground",
2680
2729
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2681
2730
  className
2682
2731
  ),
2683
2732
  ...props,
2684
2733
  children: [
2685
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-ground-900" }) }) }),
2734
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-foreground" }) }) }),
2686
2735
  children
2687
2736
  ]
2688
2737
  }
@@ -2694,14 +2743,14 @@ var MenubarRadioItem = React15.forwardRef(({ className, children, ...props }, re
2694
2743
  ref,
2695
2744
  className: cn(
2696
2745
  "relative flex cursor-default select-none items-center gap-2 rounded-md pl-8 pr-2.5 py-1.5",
2697
- "body text-ground-700 outline-none transition-colors",
2698
- "focus:bg-ground-50 focus:text-ground-900",
2746
+ "body text-muted-foreground outline-none transition-colors",
2747
+ "focus:bg-muted focus:text-foreground",
2699
2748
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2700
2749
  className
2701
2750
  ),
2702
2751
  ...props,
2703
2752
  children: [
2704
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-ground-900 text-ground-900" }) }) }),
2753
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Menubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-foreground text-foreground" }) }) }),
2705
2754
  children
2706
2755
  ]
2707
2756
  }
@@ -2711,7 +2760,7 @@ var MenubarLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /
2711
2760
  Menubar.Label,
2712
2761
  {
2713
2762
  ref,
2714
- className: cn("px-2.5 py-1 label text-ground-400", inset && "pl-8", className),
2763
+ className: cn("px-2.5 py-1 label text-muted-foreground", inset && "pl-8", className),
2715
2764
  ...props
2716
2765
  }
2717
2766
  ));
@@ -2720,7 +2769,7 @@ var MenubarSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @
2720
2769
  Menubar.Separator,
2721
2770
  {
2722
2771
  ref,
2723
- className: cn("mx-1 my-1 h-px bg-ground-100", className),
2772
+ className: cn("mx-1 my-1 h-px bg-muted", className),
2724
2773
  ...props
2725
2774
  }
2726
2775
  ));
@@ -2731,15 +2780,15 @@ var MenubarSubTrigger = React15.forwardRef(({ className, inset, children, ...pro
2731
2780
  ref,
2732
2781
  className: cn(
2733
2782
  "relative flex cursor-default select-none items-center gap-2 rounded-md px-2.5 py-1.5",
2734
- "body text-ground-700 outline-none transition-colors",
2735
- "focus:bg-ground-50 focus:text-ground-900 data-[state=open]:bg-ground-50",
2783
+ "body text-muted-foreground outline-none transition-colors",
2784
+ "focus:bg-muted focus:text-foreground data-[state=open]:bg-muted",
2736
2785
  inset && "pl-8",
2737
2786
  className
2738
2787
  ),
2739
2788
  ...props,
2740
2789
  children: [
2741
2790
  children,
2742
- /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-ground-400" })
2791
+ /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-muted-foreground" })
2743
2792
  ]
2744
2793
  }
2745
2794
  ));
@@ -2749,7 +2798,7 @@ var MenubarSubContent = React15.forwardRef(({ className, ...props }, ref) => /*
2749
2798
  {
2750
2799
  ref,
2751
2800
  className: cn(
2752
- "z-50 min-w-[8rem] bg-white rounded-xl border border-ground-100 shadow-natural p-1",
2801
+ "z-50 min-w-[8rem] bg-card rounded-xl border border-border shadow-natural p-1",
2753
2802
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2754
2803
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2755
2804
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -2761,7 +2810,7 @@ var MenubarSubContent = React15.forwardRef(({ className, ...props }, ref) => /*
2761
2810
  ));
2762
2811
  MenubarSubContent.displayName = "MenubarSubContent";
2763
2812
  function MenubarShortcut({ className, ...props }) {
2764
- return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-ground-400", className), ...props });
2813
+ return /* @__PURE__ */ jsx("span", { className: cn("ml-auto caption text-muted-foreground", className), ...props });
2765
2814
  }
2766
2815
  MenubarShortcut.displayName = "MenubarShortcut";
2767
2816
  var NativeSelect = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "relative", children: [
@@ -2770,11 +2819,11 @@ var NativeSelect = React15.forwardRef(({ className, children, ...props }, ref) =
2770
2819
  {
2771
2820
  ref,
2772
2821
  className: cn(
2773
- "peer h-9 w-full appearance-none rounded-lg border border-ground-200 bg-white pl-3 pr-8",
2774
- "body text-ground-900",
2775
- "focus:outline-none focus:ring-2 focus:ring-ground-400/30 focus:border-ground-400",
2822
+ "peer h-9 w-full appearance-none rounded-lg border border-border bg-card pl-3 pr-8",
2823
+ "body text-foreground",
2824
+ "focus:outline-none focus:ring-2 focus:ring-ring/30 focus:border-border",
2776
2825
  "disabled:cursor-not-allowed disabled:opacity-50",
2777
- "aria-[invalid=true]:border-red-500 aria-[invalid=true]:focus:ring-red-500/20",
2826
+ "aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:ring-destructive/20",
2778
2827
  className
2779
2828
  ),
2780
2829
  ...props,
@@ -2785,7 +2834,7 @@ var NativeSelect = React15.forwardRef(({ className, children, ...props }, ref) =
2785
2834
  ChevronDown,
2786
2835
  {
2787
2836
  size: 14,
2788
- className: "pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-ground-400 peer-disabled:opacity-50"
2837
+ className: "pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground peer-disabled:opacity-50"
2789
2838
  }
2790
2839
  )
2791
2840
  ] }));
@@ -2820,9 +2869,9 @@ var NavigationMenuTrigger = React15.forwardRef(({ className, children, ...props
2820
2869
  ref,
2821
2870
  className: cn(
2822
2871
  "group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2",
2823
- "body font-medium text-ground-700",
2824
- "hover:bg-ground-100 hover:text-ground-900",
2825
- "data-[active]:bg-ground-100 data-[state=open]:bg-ground-100",
2872
+ "body font-medium text-muted-foreground",
2873
+ "hover:bg-muted hover:text-foreground",
2874
+ "data-[active]:bg-muted data-[state=open]:bg-muted",
2826
2875
  "outline-none transition-colors",
2827
2876
  className
2828
2877
  ),
@@ -2863,8 +2912,8 @@ var NavigationMenuLink = React15.forwardRef(({ className, ...props }, ref) => /*
2863
2912
  {
2864
2913
  ref,
2865
2914
  className: cn(
2866
- "block select-none rounded-md px-3 py-2 body text-ground-700",
2867
- "hover:bg-ground-50 hover:text-ground-900",
2915
+ "block select-none rounded-md px-3 py-2 body text-muted-foreground",
2916
+ "hover:bg-muted hover:text-foreground",
2868
2917
  "outline-none transition-colors",
2869
2918
  className
2870
2919
  ),
@@ -2877,7 +2926,7 @@ var NavigationMenuViewport = React15.forwardRef(({ className, ...props }, ref) =
2877
2926
  {
2878
2927
  ref,
2879
2928
  className: cn(
2880
- "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-xl border border-ground-100 bg-white shadow-elevated",
2929
+ "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-xl border border-border bg-card shadow-elevated",
2881
2930
  "md:w-[var(--radix-navigation-menu-viewport-width)]",
2882
2931
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
2883
2932
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90",
@@ -2898,31 +2947,31 @@ var NavigationMenuIndicator = React15.forwardRef(({ className, ...props }, ref)
2898
2947
  className
2899
2948
  ),
2900
2949
  ...props,
2901
- children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-ground-100 shadow-elevated" })
2950
+ children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-muted shadow-elevated" })
2902
2951
  }
2903
2952
  ));
2904
2953
  NavigationMenuIndicator.displayName = "NavigationMenuIndicator";
2905
2954
  function navigationMenuTriggerStyle() {
2906
2955
  return cn(
2907
2956
  "group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md px-3 py-2",
2908
- "body font-medium text-ground-700",
2909
- "hover:bg-ground-100 hover:text-ground-900",
2910
- "data-[active]:bg-ground-100 data-[state=open]:bg-ground-100",
2957
+ "body font-medium text-muted-foreground",
2958
+ "hover:bg-muted hover:text-foreground",
2959
+ "data-[active]:bg-muted data-[state=open]:bg-muted",
2911
2960
  "outline-none transition-colors"
2912
2961
  );
2913
2962
  }
2914
2963
  var variantConfig = {
2915
- default: { icon: null, iconClass: "text-ground-400" },
2964
+ default: { icon: null, iconClass: "text-muted-foreground" },
2916
2965
  success: {
2917
2966
  icon: CheckCircle,
2918
- iconClass: "bg-brand-secondary/25 text-ground-700 rounded-full p-1"
2967
+ iconClass: "bg-brand-secondary/25 text-muted-foreground rounded-full p-1"
2919
2968
  },
2920
- error: { icon: AlertCircle, iconClass: "text-red-500" },
2969
+ error: { icon: AlertCircle, iconClass: "text-destructive" },
2921
2970
  warning: {
2922
2971
  icon: AlertTriangle,
2923
- iconClass: "bg-brand-secondary/80 text-ground-700 rounded-full p-1"
2972
+ iconClass: "bg-brand-secondary/80 text-muted-foreground rounded-full p-1"
2924
2973
  },
2925
- info: { icon: Info, iconClass: "text-ground-400" }
2974
+ info: { icon: Info, iconClass: "text-muted-foreground" }
2926
2975
  };
2927
2976
  function Notification({
2928
2977
  title,
@@ -2940,14 +2989,14 @@ function Notification({
2940
2989
  "div",
2941
2990
  {
2942
2991
  className: cn(
2943
- "pointer-events-auto w-full max-w-sm overflow-hidden rounded-xl border border-ground-100 bg-white shadow-elevated",
2992
+ "pointer-events-auto w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-elevated",
2944
2993
  className
2945
2994
  ),
2946
2995
  children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2947
2996
  resolvedIcon && /* @__PURE__ */ jsx("div", { className: cn("shrink-0 mt-0.5", config.iconClass), children: resolvedIcon }),
2948
2997
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2949
- /* @__PURE__ */ jsx("p", { className: "body font-semibold text-ground-900", children: title }),
2950
- description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 body text-ground-500", children: description }),
2998
+ /* @__PURE__ */ jsx("p", { className: "body font-semibold text-foreground", children: title }),
2999
+ description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 body text-muted-foreground", children: description }),
2951
3000
  actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex gap-3", children: actions.map((action, i) => /* @__PURE__ */ jsx(
2952
3001
  "button",
2953
3002
  {
@@ -2955,7 +3004,7 @@ function Notification({
2955
3004
  onClick: action.onClick,
2956
3005
  className: cn(
2957
3006
  "body font-semibold transition-colors",
2958
- action.variant === "ghost" ? "text-ground-400 hover:text-ground-700" : "text-ground-900 hover:text-ground-600"
3007
+ action.variant === "ghost" ? "text-muted-foreground hover:text-muted-foreground" : "text-foreground hover:text-muted-foreground"
2959
3008
  ),
2960
3009
  children: action.label
2961
3010
  },
@@ -2967,7 +3016,7 @@ function Notification({
2967
3016
  {
2968
3017
  type: "button",
2969
3018
  onClick: onClose,
2970
- className: "rounded-md text-ground-400 hover:text-ground-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-400/40",
3019
+ className: "rounded-md text-muted-foreground hover:text-muted-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30",
2971
3020
  children: [
2972
3021
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" }),
2973
3022
  /* @__PURE__ */ jsx(X, { size: 16 })
@@ -2978,6 +3027,7 @@ function Notification({
2978
3027
  }
2979
3028
  );
2980
3029
  }
3030
+ Notification.displayName = "Notification";
2981
3031
  function PageHeading({
2982
3032
  title,
2983
3033
  description,
@@ -2987,27 +3037,27 @@ function PageHeading({
2987
3037
  badge,
2988
3038
  className
2989
3039
  }) {
2990
- return /* @__PURE__ */ jsxs("div", { className: cn("border-b border-ground-100 pb-6", className), children: [
3040
+ return /* @__PURE__ */ jsxs("div", { className: cn("border-b border-border pb-6", className), children: [
2991
3041
  breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx("nav", { className: "mb-3 flex items-center gap-1.5", "aria-label": "Breadcrumb", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React15.Fragment, { children: [
2992
- i > 0 && /* @__PURE__ */ jsx(ChevronRight, { size: 12, className: "text-ground-300 shrink-0" }),
3042
+ i > 0 && /* @__PURE__ */ jsx(ChevronRight, { size: 12, className: "text-muted-foreground shrink-0" }),
2993
3043
  crumb.href ? /* @__PURE__ */ jsx(
2994
3044
  "a",
2995
3045
  {
2996
3046
  href: crumb.href,
2997
- className: "caption text-ground-400 hover:text-ground-700 transition-colors",
3047
+ className: "caption text-muted-foreground hover:text-muted-foreground transition-colors",
2998
3048
  children: crumb.label
2999
3049
  }
3000
- ) : /* @__PURE__ */ jsx("span", { className: "caption font-semibold text-ground-700", children: crumb.label })
3050
+ ) : /* @__PURE__ */ jsx("span", { className: "caption font-semibold text-muted-foreground", children: crumb.label })
3001
3051
  ] }, i)) }),
3002
3052
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
3003
3053
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3004
3054
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
3005
- /* @__PURE__ */ jsx("h1", { className: "display text-ground-900 truncate", children: title }),
3055
+ /* @__PURE__ */ jsx("h1", { className: "display text-foreground truncate", children: title }),
3006
3056
  badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: badge }) : /* @__PURE__ */ jsx(Badge, { variant: badge.variant ?? "secondary", children: badge.label }))
3007
3057
  ] }),
3008
- description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 body text-ground-400 max-w-2xl", children: description }),
3009
- meta && meta.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap items-center gap-4", children: meta.map((m, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 caption text-ground-400", children: [
3010
- m.icon && /* @__PURE__ */ jsx("span", { className: "text-ground-400", children: m.icon }),
3058
+ description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 body text-muted-foreground max-w-2xl", children: description }),
3059
+ meta && meta.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap items-center gap-4", children: meta.map((m, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 caption text-muted-foreground", children: [
3060
+ m.icon && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: m.icon }),
3011
3061
  /* @__PURE__ */ jsx("span", { children: m.text })
3012
3062
  ] }, i)) })
3013
3063
  ] }),
@@ -3099,7 +3149,7 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
3099
3149
  "span",
3100
3150
  {
3101
3151
  "aria-hidden": true,
3102
- className: cn("flex size-8 items-center justify-center text-ground-400", className),
3152
+ className: cn("flex size-8 items-center justify-center text-muted-foreground", className),
3103
3153
  ...props,
3104
3154
  children: /* @__PURE__ */ jsx(MoreHorizontal, { size: 14 })
3105
3155
  }
@@ -3109,7 +3159,7 @@ var ProgressRoot = React15.forwardRef(({ className, value, ...props }, ref) => /
3109
3159
  Progress.Root,
3110
3160
  {
3111
3161
  ref,
3112
- className: cn("relative h-2 w-full overflow-hidden rounded-full bg-ground-100", className),
3162
+ className: cn("relative h-2 w-full overflow-hidden rounded-full bg-muted", className),
3113
3163
  value,
3114
3164
  ...props,
3115
3165
  children: /* @__PURE__ */ jsx(
@@ -3143,7 +3193,7 @@ function PropertyRow({
3143
3193
  label !== void 0 && /* @__PURE__ */ jsx(
3144
3194
  "div",
3145
3195
  {
3146
- className: "caption text-ground-500 shrink-0 select-none",
3196
+ className: "caption text-muted-foreground shrink-0 select-none",
3147
3197
  style: { width: typeof labelWidth === "number" ? `${labelWidth}px` : labelWidth },
3148
3198
  children: label
3149
3199
  }
@@ -3153,6 +3203,7 @@ function PropertyRow({
3153
3203
  }
3154
3204
  );
3155
3205
  }
3206
+ PropertyRow.displayName = "PropertyRow";
3156
3207
  function RadioCards({ options, value, onValueChange, columns = 3, className }) {
3157
3208
  const colMap2 = {
3158
3209
  1: "grid-cols-1",
@@ -3174,7 +3225,7 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
3174
3225
  "relative flex cursor-pointer flex-col gap-1 rounded-xl border p-4 text-left transition-all",
3175
3226
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
3176
3227
  "disabled:cursor-not-allowed disabled:opacity-50",
3177
- isSelected ? "border-brand-primary bg-white shadow-natural" : "border-ground-200 bg-white hover:border-ground-400"
3228
+ isSelected ? "border-brand-primary bg-card shadow-natural" : "border-border bg-card hover:border-border"
3178
3229
  ),
3179
3230
  children: [
3180
3231
  isSelected && /* @__PURE__ */ jsx(
@@ -3186,27 +3237,27 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
3186
3237
  ),
3187
3238
  /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
3188
3239
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3189
- option.icon && /* @__PURE__ */ jsx("div", { className: "mb-2 text-ground-500", children: option.icon }),
3240
+ option.icon && /* @__PURE__ */ jsx("div", { className: "mb-2 text-muted-foreground", children: option.icon }),
3190
3241
  /* @__PURE__ */ jsx(
3191
3242
  "p",
3192
3243
  {
3193
3244
  className: cn(
3194
3245
  "body font-semibold",
3195
- isSelected ? "text-ground-900" : "text-ground-800"
3246
+ isSelected ? "text-foreground" : "text-muted-foreground"
3196
3247
  ),
3197
3248
  children: option.label
3198
3249
  }
3199
3250
  ),
3200
- option.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 caption text-ground-400", children: option.description })
3251
+ option.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 caption text-muted-foreground", children: option.description })
3201
3252
  ] }),
3202
3253
  /* @__PURE__ */ jsx(
3203
3254
  "div",
3204
3255
  {
3205
3256
  className: cn(
3206
3257
  "flex size-5 shrink-0 items-center justify-center rounded-full border-2 transition-colors",
3207
- isSelected ? "border-brand-primary bg-brand-primary" : "border-ground-300 bg-white"
3258
+ isSelected ? "border-brand-primary bg-brand-primary" : "border-border bg-card"
3208
3259
  ),
3209
- children: isSelected && /* @__PURE__ */ jsx(Check, { size: 10, className: "text-white", strokeWidth: 3 })
3260
+ children: isSelected && /* @__PURE__ */ jsx(Check, { size: 10, className: "text-background", strokeWidth: 3 })
3210
3261
  }
3211
3262
  )
3212
3263
  ] }),
@@ -3215,7 +3266,7 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
3215
3266
  {
3216
3267
  className: cn(
3217
3268
  "caption font-semibold mt-2",
3218
- isSelected ? "text-ground-900" : "text-ground-400"
3269
+ isSelected ? "text-foreground" : "text-muted-foreground"
3219
3270
  ),
3220
3271
  children: option.meta
3221
3272
  }
@@ -3226,6 +3277,7 @@ function RadioCards({ options, value, onValueChange, columns = 3, className }) {
3226
3277
  );
3227
3278
  }) });
3228
3279
  }
3280
+ RadioCards.displayName = "RadioCards";
3229
3281
  var RadioGroupRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroup.Root, { ref, className: cn("grid gap-2", className), ...props }));
3230
3282
  RadioGroupRoot.displayName = "RadioGroup";
3231
3283
  var RadioGroupItem = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
@@ -3233,15 +3285,15 @@ var RadioGroupItem = React15.forwardRef(({ className, ...props }, ref) => /* @__
3233
3285
  {
3234
3286
  ref,
3235
3287
  className: cn(
3236
- "aspect-square size-4 rounded-full border border-ground-300 text-ground-900",
3288
+ "aspect-square size-4 rounded-full border border-border text-foreground",
3237
3289
  "shadow-none transition-colors",
3238
- "focus:outline-none focus-visible:ring-2 focus-visible:ring-ground-900/20",
3290
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/20",
3239
3291
  "disabled:cursor-not-allowed disabled:opacity-50",
3240
- "data-[state=checked]:bg-ground-900 data-[state=checked]:border-ground-900",
3292
+ "data-[state=checked]:bg-foreground data-[state=checked]:border-foreground",
3241
3293
  className
3242
3294
  ),
3243
3295
  ...props,
3244
- children: /* @__PURE__ */ jsx(RadioGroup.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "size-2 rounded-full bg-white" }) })
3296
+ children: /* @__PURE__ */ jsx(RadioGroup.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "size-2 rounded-full bg-card" }) })
3245
3297
  }
3246
3298
  ));
3247
3299
  RadioGroupItem.displayName = "RadioGroupItem";
@@ -3272,7 +3324,7 @@ function ResizableHandle({ className, withHandle = true, ...props }) {
3272
3324
  Separator$1,
3273
3325
  {
3274
3326
  className: cn(
3275
- "relative flex shrink-0 items-center justify-center bg-ground-100",
3327
+ "relative flex shrink-0 items-center justify-center bg-muted",
3276
3328
  "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-brand-primary/50",
3277
3329
  // Horizontal (default): vertical bar
3278
3330
  "[&:not([aria-orientation=vertical])]:h-full [&:not([aria-orientation=vertical])]:w-px",
@@ -3286,7 +3338,7 @@ function ResizableHandle({ className, withHandle = true, ...props }) {
3286
3338
  className
3287
3339
  ),
3288
3340
  ...props,
3289
- children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-ground-100 bg-white shadow-natural", children: /* @__PURE__ */ jsx(GripVertical, { size: 10, className: "text-ground-400" }) })
3341
+ children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-card shadow-natural", children: /* @__PURE__ */ jsx(GripVertical, { size: 10, className: "text-muted-foreground" }) })
3290
3342
  }
3291
3343
  );
3292
3344
  }
@@ -3310,7 +3362,7 @@ var ScrollAreaScrollbar = React15.forwardRef(({ className, orientation = "vertic
3310
3362
  className
3311
3363
  ),
3312
3364
  ...props,
3313
- children: /* @__PURE__ */ jsx(ScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-ground-200 hover:bg-ground-300 transition-colors" })
3365
+ children: /* @__PURE__ */ jsx(ScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-muted hover:bg-muted transition-colors" })
3314
3366
  }
3315
3367
  ));
3316
3368
  ScrollAreaScrollbar.displayName = "ScrollAreaScrollbar";
@@ -3326,13 +3378,13 @@ function SectionHeading({
3326
3378
  {
3327
3379
  className: cn(
3328
3380
  "flex flex-col gap-1 pb-4 sm:flex-row sm:items-start sm:justify-between",
3329
- border && "border-b border-ground-100",
3381
+ border && "border-b border-border",
3330
3382
  className
3331
3383
  ),
3332
3384
  children: [
3333
3385
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
3334
- /* @__PURE__ */ jsx("h2", { className: "heading text-ground-900 truncate", children: title }),
3335
- description && /* @__PURE__ */ jsx("p", { className: "mt-1 body text-ground-400", children: description })
3386
+ /* @__PURE__ */ jsx("h2", { className: "heading text-foreground truncate", children: title }),
3387
+ description && /* @__PURE__ */ jsx("p", { className: "mt-1 body text-muted-foreground", children: description })
3336
3388
  ] }),
3337
3389
  actions && actions.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2 pt-1", children: actions.map(
3338
3390
  (action, i) => action.href ? /* @__PURE__ */ jsx(Button, { size: "sm", variant: action.variant ?? "default", asChild: true, children: /* @__PURE__ */ jsx("a", { href: action.href, children: action.label }) }, i) : /* @__PURE__ */ jsx(
@@ -3358,18 +3410,18 @@ var SelectTrigger = React15.forwardRef(({ className, children, ...props }, ref)
3358
3410
  {
3359
3411
  ref,
3360
3412
  className: cn(
3361
- "flex h-9 w-full items-center justify-between rounded-xl bg-white px-3 py-2",
3362
- "body text-ground-900 shadow-natural",
3363
- "focus:outline-none focus:ring-2 focus:ring-ground-900/15",
3413
+ "flex h-9 w-full items-center justify-between rounded-xl bg-card px-3 py-2",
3414
+ "body text-foreground shadow-natural",
3415
+ "focus:outline-none focus:ring-2 focus:ring-ring/20",
3364
3416
  "disabled:opacity-50 disabled:cursor-not-allowed",
3365
- "data-[placeholder]:text-ground-400",
3417
+ "data-[placeholder]:text-muted-foreground",
3366
3418
  "[&>span]:line-clamp-1",
3367
3419
  className
3368
3420
  ),
3369
3421
  ...props,
3370
3422
  children: [
3371
3423
  children,
3372
- /* @__PURE__ */ jsx(Select.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { size: 15, className: "text-ground-400 shrink-0" }) })
3424
+ /* @__PURE__ */ jsx(Select.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { size: 15, className: "text-muted-foreground shrink-0" }) })
3373
3425
  ]
3374
3426
  }
3375
3427
  ));
@@ -3380,7 +3432,7 @@ var SelectContent = React15.forwardRef(({ className, children, position = "poppe
3380
3432
  ref,
3381
3433
  className: cn(
3382
3434
  "relative z-50 max-h-96 min-w-[8rem] overflow-hidden",
3383
- "bg-white rounded-xl shadow-natural p-1",
3435
+ "bg-card rounded-xl shadow-natural p-1",
3384
3436
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
3385
3437
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
3386
3438
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -3391,7 +3443,7 @@ var SelectContent = React15.forwardRef(({ className, children, position = "poppe
3391
3443
  position,
3392
3444
  ...props,
3393
3445
  children: [
3394
- /* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ jsx(ChevronUp, { size: 14, className: "text-ground-400" }) }),
3446
+ /* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ jsx(ChevronUp, { size: 14, className: "text-muted-foreground" }) }),
3395
3447
  /* @__PURE__ */ jsx(
3396
3448
  Select.Viewport,
3397
3449
  {
@@ -3401,7 +3453,7 @@ var SelectContent = React15.forwardRef(({ className, children, position = "poppe
3401
3453
  children
3402
3454
  }
3403
3455
  ),
3404
- /* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ jsx(ChevronDown, { size: 14, className: "text-ground-400" }) })
3456
+ /* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ jsx(ChevronDown, { size: 14, className: "text-muted-foreground" }) })
3405
3457
  ]
3406
3458
  }
3407
3459
  ) }));
@@ -3412,14 +3464,14 @@ var SelectItem = React15.forwardRef(({ className, children, ...props }, ref) =>
3412
3464
  ref,
3413
3465
  className: cn(
3414
3466
  "relative flex w-full cursor-default select-none items-center rounded-md px-2.5 py-1.5",
3415
- "body text-ground-700 outline-none",
3416
- "focus:bg-ground-50 focus:text-ground-900",
3467
+ "body text-muted-foreground outline-none",
3468
+ "focus:bg-muted focus:text-foreground",
3417
3469
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3418
3470
  className
3419
3471
  ),
3420
3472
  ...props,
3421
3473
  children: [
3422
- /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Select.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-ground-900" }) }) }),
3474
+ /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(Select.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 13, className: "text-foreground" }) }) }),
3423
3475
  /* @__PURE__ */ jsx(Select.ItemText, { children })
3424
3476
  ]
3425
3477
  }
@@ -3429,12 +3481,12 @@ var SelectLabel = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
3429
3481
  Select.Label,
3430
3482
  {
3431
3483
  ref,
3432
- className: cn("px-2.5 py-1 label text-ground-400", className),
3484
+ className: cn("px-2.5 py-1 label text-muted-foreground", className),
3433
3485
  ...props
3434
3486
  }
3435
3487
  ));
3436
3488
  SelectLabel.displayName = "SelectLabel";
3437
- var SelectSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Select.Separator, { ref, className: cn("mx-1 my-1 h-px bg-ground-100", className), ...props }));
3489
+ var SelectSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Select.Separator, { ref, className: cn("mx-1 my-1 h-px bg-muted", className), ...props }));
3438
3490
  SelectSeparator.displayName = "SelectSeparator";
3439
3491
  var Separator2 = React15.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
3440
3492
  Separator.Root,
@@ -3443,7 +3495,7 @@ var Separator2 = React15.forwardRef(({ className, orientation = "horizontal", de
3443
3495
  decorative,
3444
3496
  orientation,
3445
3497
  className: cn(
3446
- "shrink-0 bg-ground-100",
3498
+ "shrink-0 bg-muted",
3447
3499
  orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
3448
3500
  className
3449
3501
  ),
@@ -3470,7 +3522,7 @@ var SheetOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PU
3470
3522
  SheetOverlay.displayName = "SheetOverlay";
3471
3523
  var sheetContentVariants = cva(
3472
3524
  [
3473
- "fixed z-50 bg-white shadow-elevated p-6",
3525
+ "fixed z-50 bg-card shadow-elevated p-6",
3474
3526
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
3475
3527
  "transition ease-in-out duration-300"
3476
3528
  ],
@@ -3499,7 +3551,7 @@ var SheetContent = React15.forwardRef(
3499
3551
  ...props,
3500
3552
  children: [
3501
3553
  children,
3502
- /* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-4 top-4 rounded-md p-1 text-ground-400 opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ground-900/20", children: [
3554
+ /* @__PURE__ */ jsxs(Dialog.Close, { className: "absolute right-4 top-4 rounded-md p-1 text-muted-foreground opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring/20", children: [
3503
3555
  /* @__PURE__ */ jsx(X, { size: 16 }),
3504
3556
  /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
3505
3557
  ] })
@@ -3521,12 +3573,12 @@ var SheetTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE
3521
3573
  Dialog.Title,
3522
3574
  {
3523
3575
  ref,
3524
- className: cn("body-lg font-semibold text-ground-900", className),
3576
+ className: cn("body-lg font-semibold text-foreground", className),
3525
3577
  ...props
3526
3578
  }
3527
3579
  ));
3528
3580
  SheetTitle.displayName = "SheetTitle";
3529
- var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Dialog.Description, { ref, className: cn("body text-ground-500", className), ...props }));
3581
+ var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Dialog.Description, { ref, className: cn("body text-muted-foreground", className), ...props }));
3530
3582
  SheetDescription.displayName = "SheetDescription";
3531
3583
  function TooltipProvider({
3532
3584
  children,
@@ -3542,7 +3594,7 @@ var TooltipContent = React15.forwardRef(({ className, sideOffset = 4, ...props }
3542
3594
  ref,
3543
3595
  sideOffset,
3544
3596
  className: cn(
3545
- "z-50 rounded-lg bg-ground-900 px-2.5 py-1.5 caption text-white",
3597
+ "z-50 rounded-lg bg-foreground px-2.5 py-1.5 caption text-background",
3546
3598
  "animate-in fade-in-0 zoom-in-95",
3547
3599
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
3548
3600
  "data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1",
@@ -3625,7 +3677,7 @@ function Sidebar({
3625
3677
  "data-variant": variant,
3626
3678
  "data-collapsible": "none",
3627
3679
  className: cn(
3628
- "flex flex-col h-svh bg-white border-r border-ground-100 w-(--sidebar-width)",
3680
+ "flex flex-col h-svh bg-card border-r border-border w-(--sidebar-width)",
3629
3681
  side === "right" && "border-r-0 border-l",
3630
3682
  className
3631
3683
  ),
@@ -3643,7 +3695,7 @@ function Sidebar({
3643
3695
  "data-variant": variant,
3644
3696
  "data-collapsible": "offcanvas",
3645
3697
  className: cn(
3646
- "group peer flex flex-col h-svh bg-white border-r border-ground-100",
3698
+ "group peer flex flex-col h-svh bg-card border-r border-border",
3647
3699
  "transition-[width,transform] duration-200 ease-linear",
3648
3700
  "data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-0 data-[state=collapsed]:-translate-x-full",
3649
3701
  side === "right" && "border-r-0 border-l data-[state=collapsed]:translate-x-full",
@@ -3662,7 +3714,7 @@ function Sidebar({
3662
3714
  "data-variant": variant,
3663
3715
  "data-collapsible": "icon",
3664
3716
  className: cn(
3665
- "group peer hidden md:flex flex-col h-svh bg-white border-r border-ground-100",
3717
+ "group peer hidden md:flex flex-col h-svh bg-card border-r border-border",
3666
3718
  "transition-[width] duration-200 ease-linear overflow-hidden",
3667
3719
  "data-[state=expanded]:w-(--sidebar-width) data-[state=collapsed]:w-(--sidebar-width-icon)",
3668
3720
  side === "right" && "border-r-0 border-l",
@@ -3723,7 +3775,7 @@ function SidebarInset({ className, ...props }) {
3723
3775
  "main",
3724
3776
  {
3725
3777
  "data-sidebar": "inset",
3726
- className: cn("relative flex min-h-svh flex-1 flex-col bg-white overflow-hidden", className),
3778
+ className: cn("relative flex min-h-svh flex-1 flex-col bg-card overflow-hidden", className),
3727
3779
  ...props
3728
3780
  }
3729
3781
  );
@@ -3733,7 +3785,7 @@ function SidebarHeader({ className, ...props }) {
3733
3785
  "div",
3734
3786
  {
3735
3787
  "data-sidebar": "header",
3736
- className: cn("flex flex-col gap-2 p-3 border-b border-ground-100", className),
3788
+ className: cn("flex flex-col gap-2 p-3 border-b border-border", className),
3737
3789
  ...props
3738
3790
  }
3739
3791
  );
@@ -3753,7 +3805,7 @@ function SidebarFooter({ className, ...props }) {
3753
3805
  "div",
3754
3806
  {
3755
3807
  "data-sidebar": "footer",
3756
- className: cn("flex flex-col gap-2 p-3 border-t border-ground-100", className),
3808
+ className: cn("flex flex-col gap-2 p-3 border-t border-border", className),
3757
3809
  ...props
3758
3810
  }
3759
3811
  );
@@ -3763,7 +3815,7 @@ function SidebarSeparator({ className, ...props }) {
3763
3815
  Separator2,
3764
3816
  {
3765
3817
  "data-sidebar": "separator",
3766
- className: cn("mx-2 my-1 bg-ground-100", className),
3818
+ className: cn("mx-2 my-1 bg-muted", className),
3767
3819
  ...props
3768
3820
  }
3769
3821
  );
@@ -3789,8 +3841,8 @@ function SidebarGroupLabel({
3789
3841
  {
3790
3842
  "data-sidebar": "group-label",
3791
3843
  className: cn(
3792
- "flex h-8 shrink-0 items-center rounded-md px-2 label text-ground-400",
3793
- "outline-none ring-ground-900 transition-[margin,opacity] duration-200 ease-linear",
3844
+ "flex h-8 shrink-0 items-center rounded-md px-2 label text-muted-foreground",
3845
+ "outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear",
3794
3846
  "group-data-[state=collapsed]/sidebar-wrapper:opacity-0",
3795
3847
  "group-data-[state=collapsed]/sidebar-wrapper:h-0",
3796
3848
  "group-data-[state=collapsed]/sidebar-wrapper:m-0",
@@ -3817,7 +3869,7 @@ function SidebarGroupAction({
3817
3869
  "data-sidebar": "group-action",
3818
3870
  className: cn(
3819
3871
  "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center",
3820
- "rounded-md text-ground-400 hover:bg-ground-100 hover:text-ground-900",
3872
+ "rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
3821
3873
  "outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
3822
3874
  className
3823
3875
  ),
@@ -3857,11 +3909,11 @@ function SidebarMenuButton({
3857
3909
  className: cn(
3858
3910
  // Base
3859
3911
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 body-sm text-left",
3860
- "outline-none ring-ground-900",
3912
+ "outline-none ring-ring",
3861
3913
  "transition-[width,height,padding] duration-150",
3862
- "hover:bg-ground-100 hover:text-ground-900",
3914
+ "hover:bg-muted hover:text-foreground",
3863
3915
  "focus-visible:ring-2 focus-visible:ring-brand-primary/30",
3864
- "active:bg-ground-100",
3916
+ "active:bg-muted",
3865
3917
  "disabled:pointer-events-none disabled:opacity-50",
3866
3918
  "[&>svg]:size-4 [&>svg]:shrink-0",
3867
3919
  // Size variants
@@ -3913,7 +3965,7 @@ function SidebarMenuAction({
3913
3965
  "data-sidebar": "menu-action",
3914
3966
  className: cn(
3915
3967
  "absolute right-1 top-1/2 -translate-y-1/2 flex aspect-square w-5 items-center justify-center",
3916
- "rounded-md text-ground-400 hover:bg-ground-100 hover:text-ground-900",
3968
+ "rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
3917
3969
  "outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
3918
3970
  showOnHover && [
3919
3971
  "opacity-0 transition-opacity",
@@ -3934,7 +3986,7 @@ function SidebarMenuBadge({ className, ...props }) {
3934
3986
  "data-sidebar": "menu-badge",
3935
3987
  className: cn(
3936
3988
  "absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-full",
3937
- "caption font-medium bg-ground-100 text-ground-700 px-1",
3989
+ "caption font-medium bg-muted text-muted-foreground px-1",
3938
3990
  "group-data-[state=collapsed]/sidebar-wrapper:hidden",
3939
3991
  className
3940
3992
  ),
@@ -3957,11 +4009,11 @@ function SidebarMenuSkeleton({
3957
4009
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
3958
4010
  ...props,
3959
4011
  children: [
3960
- showIcon && /* @__PURE__ */ jsx("div", { className: "size-4 shrink-0 rounded-md bg-ground-200 animate-pulse" }),
4012
+ showIcon && /* @__PURE__ */ jsx("div", { className: "size-4 shrink-0 rounded-md bg-muted animate-pulse" }),
3961
4013
  /* @__PURE__ */ jsx(
3962
4014
  "div",
3963
4015
  {
3964
- className: "h-4 max-w-(--skeleton-width) flex-1 rounded-md bg-ground-200 animate-pulse",
4016
+ className: "h-4 max-w-(--skeleton-width) flex-1 rounded-md bg-muted animate-pulse",
3965
4017
  style: { "--skeleton-width": width }
3966
4018
  }
3967
4019
  )
@@ -3975,7 +4027,7 @@ function SidebarMenuSub({ className, ...props }) {
3975
4027
  {
3976
4028
  "data-sidebar": "menu-sub",
3977
4029
  className: cn(
3978
- "mx-3.5 flex min-w-0 flex-col gap-1 border-l border-ground-100 pl-3",
4030
+ "mx-3.5 flex min-w-0 flex-col gap-1 border-l border-border pl-3",
3979
4031
  "group-data-[state=collapsed]/sidebar-wrapper:hidden",
3980
4032
  className
3981
4033
  ),
@@ -4007,9 +4059,9 @@ function SidebarMenuSubButton({
4007
4059
  "data-active": isActive,
4008
4060
  className: cn(
4009
4061
  "flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2",
4010
- "body text-ground-500 outline-none",
4062
+ "body text-muted-foreground outline-none",
4011
4063
  "transition-colors duration-150",
4012
- "hover:text-ground-900 hover:bg-ground-100",
4064
+ "hover:text-foreground hover:bg-muted",
4013
4065
  "focus-visible:ring-2 focus-visible:ring-brand-primary/30",
4014
4066
  "disabled:pointer-events-none disabled:opacity-50",
4015
4067
  "[&>svg]:size-3.5 [&>svg]:shrink-0",
@@ -4025,7 +4077,7 @@ function Skeleton({ className, ...props }) {
4025
4077
  "div",
4026
4078
  {
4027
4079
  "data-slot": "skeleton",
4028
- className: cn("animate-pulse rounded-md bg-ground-100", className),
4080
+ className: cn("animate-pulse rounded-md bg-muted", className),
4029
4081
  ...props
4030
4082
  }
4031
4083
  );
@@ -4037,8 +4089,8 @@ var SliderRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE
4037
4089
  className: cn("relative flex w-full touch-none select-none items-center", className),
4038
4090
  ...props,
4039
4091
  children: [
4040
- /* @__PURE__ */ jsx(Slider.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-ground-100", children: /* @__PURE__ */ jsx(Slider.Range, { className: "absolute h-full bg-brand-primary" }) }),
4041
- /* @__PURE__ */ jsx(Slider.Thumb, { className: "block size-4 rounded-full border-2 border-brand-primary bg-white shadow-natural transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50" })
4092
+ /* @__PURE__ */ jsx(Slider.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(Slider.Range, { className: "absolute h-full bg-brand-primary" }) }),
4093
+ /* @__PURE__ */ jsx(Slider.Thumb, { className: "block size-4 rounded-full border-2 border-brand-primary bg-card shadow-natural transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30 disabled:pointer-events-none disabled:opacity-50" })
4042
4094
  ]
4043
4095
  }
4044
4096
  ));
@@ -4051,14 +4103,14 @@ function Toaster({ ...props }) {
4051
4103
  className: "toaster group",
4052
4104
  toastOptions: {
4053
4105
  classNames: {
4054
- toast: "group toast font-sans text-sm group-[.toaster]:bg-white group-[.toaster]:text-ground-900 group-[.toaster]:border group-[.toaster]:border-ground-100 group-[.toaster]:shadow-elevated group-[.toaster]:rounded-xl",
4055
- description: "group-[.toast]:text-ground-500 group-[.toast]:text-xs",
4056
- actionButton: "group-[.toast]:bg-brand-primary group-[.toast]:text-white group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium",
4057
- cancelButton: "group-[.toast]:bg-ground-100 group-[.toast]:text-ground-600 group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium",
4058
- success: "group-[.toaster]:border-brand-secondary/40 group-[.toaster]:text-ground-900",
4059
- error: "group-[.toaster]:bg-red-50 group-[.toaster]:text-red-700 group-[.toaster]:border-red-200",
4060
- warning: "group-[.toaster]:bg-yellow-50 group-[.toaster]:text-yellow-800 group-[.toaster]:border-yellow-200",
4061
- info: "group-[.toaster]:border-ground-200"
4106
+ toast: "group toast font-sans text-sm group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border group-[.toaster]:border-border group-[.toaster]:shadow-elevated group-[.toaster]:rounded-xl",
4107
+ description: "group-[.toast]:text-muted-foreground group-[.toast]:text-xs",
4108
+ actionButton: "group-[.toast]:bg-brand-primary group-[.toast]:text-background group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium",
4109
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground group-[.toast]:rounded-md group-[.toast]:text-xs group-[.toast]:font-medium",
4110
+ success: "group-[.toaster]:border-brand-secondary/40 group-[.toaster]:text-foreground",
4111
+ error: "group-[.toaster]:bg-destructive/10 group-[.toaster]:text-destructive group-[.toaster]:border-destructive/20",
4112
+ warning: "group-[.toaster]:bg-warning group-[.toaster]:text-warning-foreground group-[.toaster]:border-warning/40",
4113
+ info: "group-[.toaster]:border-border"
4062
4114
  }
4063
4115
  },
4064
4116
  ...props
@@ -4099,9 +4151,9 @@ function StackedList({ children, divided = true, bordered = true, className }) {
4099
4151
  {
4100
4152
  role: "list",
4101
4153
  className: cn(
4102
- "overflow-hidden rounded-xl bg-white",
4103
- bordered && "border border-ground-100 shadow-natural",
4104
- divided && "divide-y divide-ground-100",
4154
+ "overflow-hidden rounded-xl bg-card",
4155
+ bordered && "border border-border shadow-natural",
4156
+ divided && "divide-y divide-border",
4105
4157
  className
4106
4158
  ),
4107
4159
  children
@@ -4111,14 +4163,14 @@ function StackedList({ children, divided = true, bordered = true, className }) {
4111
4163
  function StackedListItem({ children, href, onClick, className }) {
4112
4164
  const inner = /* @__PURE__ */ jsx("div", { className: cn("px-4 py-3.5", className), children });
4113
4165
  if (href) {
4114
- return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href, className: "block hover:bg-ground-50 transition-colors", children: inner }) });
4166
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href, className: "block hover:bg-muted transition-colors", children: inner }) });
4115
4167
  }
4116
4168
  if (onClick) {
4117
4169
  return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
4118
4170
  "button",
4119
4171
  {
4120
4172
  type: "button",
4121
- className: "w-full text-left hover:bg-ground-50 transition-colors",
4173
+ className: "w-full text-left hover:bg-muted transition-colors",
4122
4174
  onClick,
4123
4175
  children: inner
4124
4176
  }
@@ -4128,21 +4180,21 @@ function StackedListItem({ children, href, onClick, className }) {
4128
4180
  }
4129
4181
  function StatCard({ label, value, trend, icon, className }) {
4130
4182
  const trendColor = {
4131
- up: "text-ground-800 bg-brand-secondary/30 rounded-full px-2 py-0.5 w-fit",
4132
- down: "text-red-600",
4133
- neutral: "text-ground-400"
4183
+ up: "text-muted-foreground bg-brand-secondary/30 rounded-full px-2 py-0.5 w-fit",
4184
+ down: "text-destructive",
4185
+ neutral: "text-muted-foreground"
4134
4186
  };
4135
4187
  const TrendIcon = {
4136
4188
  up: TrendingUp,
4137
4189
  down: TrendingDown,
4138
4190
  neutral: Minus
4139
4191
  };
4140
- return /* @__PURE__ */ jsxs("div", { className: cn("rounded-xl border border-ground-100 bg-white p-5", className), children: [
4192
+ return /* @__PURE__ */ jsxs("div", { className: cn("rounded-xl border border-border bg-card p-5", className), children: [
4141
4193
  /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
4142
- /* @__PURE__ */ jsx("p", { className: "label text-ground-400", children: label }),
4143
- icon && /* @__PURE__ */ jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg bg-ground-50 text-ground-400", children: icon })
4194
+ /* @__PURE__ */ jsx("p", { className: "label text-muted-foreground", children: label }),
4195
+ icon && /* @__PURE__ */ jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground", children: icon })
4144
4196
  ] }),
4145
- /* @__PURE__ */ jsx("p", { className: "heading-xl mt-2 text-ground-900", children: value }),
4197
+ /* @__PURE__ */ jsx("p", { className: "heading-xl mt-2 text-foreground", children: value }),
4146
4198
  trend && (() => {
4147
4199
  const Icon = TrendIcon[trend.direction];
4148
4200
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-2 flex items-center gap-1", trendColor[trend.direction]), children: [
@@ -4152,6 +4204,7 @@ function StatCard({ label, value, trend, icon, className }) {
4152
4204
  })()
4153
4205
  ] });
4154
4206
  }
4207
+ StatCard.displayName = "StatCard";
4155
4208
  function CirclesSteps({ steps, className }) {
4156
4209
  return /* @__PURE__ */ jsx("nav", { "aria-label": "Progress", className, children: /* @__PURE__ */ jsx("ol", { role: "list", className: "flex items-center", children: steps.map((step, i) => {
4157
4210
  const isLast = i === steps.length - 1;
@@ -4161,7 +4214,7 @@ function CirclesSteps({ steps, className }) {
4161
4214
  {
4162
4215
  className: cn(
4163
4216
  "h-full",
4164
- step.status === "complete" ? "bg-brand-primary" : "bg-ground-200"
4217
+ step.status === "complete" ? "bg-brand-primary" : "bg-muted"
4165
4218
  )
4166
4219
  }
4167
4220
  ) }),
@@ -4178,10 +4231,10 @@ function CirclesSteps({ steps, className }) {
4178
4231
  className: cn(
4179
4232
  "relative z-10 flex size-8 items-center justify-center rounded-full transition-colors",
4180
4233
  step.status === "complete" && "bg-brand-primary group-hover:bg-brand-primary/80",
4181
- step.status === "current" && "border-2 border-brand-primary bg-white",
4182
- step.status === "upcoming" && "border-2 border-ground-300 bg-white group-hover:border-ground-400"
4234
+ step.status === "current" && "border-2 border-brand-primary bg-card",
4235
+ step.status === "upcoming" && "border-2 border-border bg-card group-hover:border-border"
4183
4236
  ),
4184
- children: step.status === "complete" ? /* @__PURE__ */ jsx(Check, { size: 14, className: "text-white", strokeWidth: 2.5 }) : step.status === "current" ? /* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-brand-primary" }) : /* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-transparent group-hover:bg-ground-300" })
4237
+ children: step.status === "complete" ? /* @__PURE__ */ jsx(Check, { size: 14, className: "text-background", strokeWidth: 2.5 }) : step.status === "current" ? /* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-brand-primary" }) : /* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-transparent group-hover:bg-muted" })
4185
4238
  }
4186
4239
  ),
4187
4240
  /* @__PURE__ */ jsxs("span", { className: "flex flex-col items-center", children: [
@@ -4190,12 +4243,12 @@ function CirclesSteps({ steps, className }) {
4190
4243
  {
4191
4244
  className: cn(
4192
4245
  "caption font-semibold",
4193
- step.status === "upcoming" ? "text-ground-400" : "text-ground-900"
4246
+ step.status === "upcoming" ? "text-muted-foreground" : "text-foreground"
4194
4247
  ),
4195
4248
  children: step.name
4196
4249
  }
4197
4250
  ),
4198
- step.description && /* @__PURE__ */ jsx("span", { className: "caption text-ground-400", children: step.description })
4251
+ step.description && /* @__PURE__ */ jsx("span", { className: "caption text-muted-foreground", children: step.description })
4199
4252
  ] })
4200
4253
  ]
4201
4254
  }
@@ -4206,7 +4259,7 @@ function CirclesSteps({ steps, className }) {
4206
4259
  function BulletsSteps({ steps, className }) {
4207
4260
  const currentIdx = steps.findIndex((s) => s.status === "current");
4208
4261
  return /* @__PURE__ */ jsxs("nav", { className: cn("flex items-center gap-4", className), "aria-label": "Progress", children: [
4209
- /* @__PURE__ */ jsxs("p", { className: "body font-medium text-ground-700", children: [
4262
+ /* @__PURE__ */ jsxs("p", { className: "body font-medium text-muted-foreground", children: [
4210
4263
  "Step ",
4211
4264
  currentIdx + 1,
4212
4265
  " of ",
@@ -4222,24 +4275,24 @@ function BulletsSteps({ steps, className }) {
4222
4275
  "span",
4223
4276
  {
4224
4277
  className: "block size-2.5 rounded-full bg-brand-primary hover:bg-brand-primary/80 transition-colors",
4225
- title: step.name
4278
+ "aria-label": `${step.name}: completed`
4226
4279
  }
4227
4280
  ) : step.status === "current" ? /* @__PURE__ */ jsxs(
4228
4281
  "span",
4229
4282
  {
4230
4283
  className: "relative flex size-4 items-center justify-center",
4231
4284
  "aria-current": "step",
4285
+ "aria-label": `${step.name}: current step`,
4232
4286
  children: [
4233
4287
  /* @__PURE__ */ jsx("span", { className: "absolute size-4 rounded-full bg-brand-primary/20" }),
4234
- /* @__PURE__ */ jsx("span", { className: "relative size-2.5 rounded-full bg-brand-primary" }),
4235
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: step.name })
4288
+ /* @__PURE__ */ jsx("span", { className: "relative size-2.5 rounded-full bg-brand-primary" })
4236
4289
  ]
4237
4290
  }
4238
4291
  ) : /* @__PURE__ */ jsx(
4239
4292
  "span",
4240
4293
  {
4241
- className: "block size-2.5 rounded-full bg-ground-200 hover:bg-ground-300 transition-colors",
4242
- title: step.name
4294
+ className: "block size-2.5 rounded-full bg-muted hover:bg-muted transition-colors",
4295
+ "aria-label": `${step.name}: upcoming`
4243
4296
  }
4244
4297
  )
4245
4298
  }
@@ -4251,7 +4304,7 @@ function ProgressSteps({ steps, className }) {
4251
4304
  const currentIdx = steps.findIndex((s) => s.status === "current");
4252
4305
  const progress = (completeCount + (currentIdx >= 0 ? 0.5 : 0)) / steps.length * 100;
4253
4306
  return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
4254
- /* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-ground-100", children: /* @__PURE__ */ jsx(
4307
+ /* @__PURE__ */ jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx(
4255
4308
  "div",
4256
4309
  {
4257
4310
  className: "h-full rounded-full bg-brand-primary transition-all duration-500",
@@ -4266,7 +4319,7 @@ function ProgressSteps({ steps, className }) {
4266
4319
  className: cn(
4267
4320
  "caption font-medium",
4268
4321
  i === 0 ? "text-left" : isLast ? "text-right" : "text-center",
4269
- step.status === "upcoming" ? "text-ground-400" : "text-ground-900"
4322
+ step.status === "upcoming" ? "text-muted-foreground" : "text-foreground"
4270
4323
  ),
4271
4324
  children: step.name
4272
4325
  },
@@ -4281,6 +4334,7 @@ function Steps({ steps, variant = "circles", className }) {
4281
4334
  if (variant === "progress") return /* @__PURE__ */ jsx(ProgressSteps, { steps, ...classNameProp });
4282
4335
  return /* @__PURE__ */ jsx(CirclesSteps, { steps, ...classNameProp });
4283
4336
  }
4337
+ Steps.displayName = "Steps";
4284
4338
  var SwitchRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4285
4339
  Switch.Root,
4286
4340
  {
@@ -4290,7 +4344,7 @@ var SwitchRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE
4290
4344
  "border-2 border-transparent transition-colors",
4291
4345
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary/30",
4292
4346
  "disabled:cursor-not-allowed disabled:opacity-50",
4293
- "data-[state=unchecked]:bg-ground-200 data-[state=checked]:bg-brand-primary",
4347
+ "data-[state=unchecked]:bg-muted data-[state=checked]:bg-brand-primary",
4294
4348
  className
4295
4349
  ),
4296
4350
  ...props,
@@ -4298,7 +4352,7 @@ var SwitchRoot = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE
4298
4352
  Switch.Thumb,
4299
4353
  {
4300
4354
  className: cn(
4301
- "pointer-events-none block size-4 rounded-full bg-white shadow-natural",
4355
+ "pointer-events-none block size-4 rounded-full bg-card shadow-natural",
4302
4356
  "transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:translate-x-4"
4303
4357
  )
4304
4358
  }
@@ -4312,7 +4366,7 @@ var TabsList = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__
4312
4366
  Tabs.List,
4313
4367
  {
4314
4368
  ref,
4315
- className: cn("inline-flex items-center gap-1 border-b border-ground-100 w-full", className),
4369
+ className: cn("inline-flex items-center gap-1 border-b border-border w-full", className),
4316
4370
  ...props
4317
4371
  }
4318
4372
  ));
@@ -4322,7 +4376,7 @@ var TabsTrigger = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
4322
4376
  {
4323
4377
  ref,
4324
4378
  className: cn(
4325
- "px-0 pb-2.5 body font-medium text-ground-400",
4379
+ "px-0 pb-2.5 body font-medium text-muted-foreground",
4326
4380
  "border-b-2 border-transparent -mb-px",
4327
4381
  "transition-colors cursor-pointer",
4328
4382
  "data-[state=active]:text-brand-primary data-[state=active]:border-brand-primary",
@@ -4342,11 +4396,11 @@ function Textarea({ className, ...props }) {
4342
4396
  {
4343
4397
  "data-slot": "textarea",
4344
4398
  className: cn(
4345
- "flex min-h-[80px] w-full rounded-md border border-ground-200 bg-white px-3 py-2",
4346
- "body text-ground-900 placeholder:text-ground-400",
4399
+ "flex min-h-[80px] w-full rounded-md border border-border bg-card px-3 py-2",
4400
+ "body text-foreground placeholder:text-muted-foreground",
4347
4401
  "resize-none transition-colors duration-150",
4348
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ground-900/15 focus-visible:border-ground-400",
4349
- "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-ground-50",
4402
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/20 focus-visible:border-border",
4403
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted",
4350
4404
  className
4351
4405
  ),
4352
4406
  ...props
@@ -4366,19 +4420,19 @@ var toggleVariants = cva(
4366
4420
  variants: {
4367
4421
  variant: {
4368
4422
  default: [
4369
- "bg-transparent text-ground-600",
4370
- "hover:bg-ground-100 hover:text-ground-900",
4371
- "data-[state=on]:bg-ground-100 data-[state=on]:text-ground-900"
4423
+ "bg-transparent text-muted-foreground",
4424
+ "hover:bg-muted hover:text-foreground",
4425
+ "data-[state=on]:bg-muted data-[state=on]:text-foreground"
4372
4426
  ],
4373
4427
  outline: [
4374
- "border border-ground-200 bg-white text-ground-600 shadow-natural",
4375
- "hover:bg-ground-50 hover:text-ground-900",
4376
- "data-[state=on]:bg-ground-100 data-[state=on]:text-ground-900 data-[state=on]:border-ground-300"
4428
+ "border border-border bg-card text-muted-foreground shadow-natural",
4429
+ "hover:bg-muted hover:text-foreground",
4430
+ "data-[state=on]:bg-muted data-[state=on]:text-foreground data-[state=on]:border-border"
4377
4431
  ],
4378
4432
  brand: [
4379
- "bg-transparent text-ground-600",
4380
- "hover:bg-ground-100 hover:text-ground-900",
4381
- "data-[state=on]:bg-brand-primary data-[state=on]:text-white"
4433
+ "bg-transparent text-muted-foreground",
4434
+ "hover:bg-muted hover:text-foreground",
4435
+ "data-[state=on]:bg-brand-primary data-[state=on]:text-background"
4382
4436
  ]
4383
4437
  },
4384
4438
  size: {