@powerhousedao/design-system 6.2.0-dev.9 → 6.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/{command-vPaCve7_.d.ts → command-tFzjgzge.d.ts} +8 -8
  2. package/dist/{command-vPaCve7_.d.ts.map → command-tFzjgzge.d.ts.map} +1 -1
  3. package/dist/connect/components/toast/toast.d.ts.map +1 -1
  4. package/dist/connect/components/toast/toast.js +5 -5
  5. package/dist/connect/components/toast/toast.js.map +1 -1
  6. package/dist/connect/index.d.ts +24 -3
  7. package/dist/connect/index.d.ts.map +1 -1
  8. package/dist/connect/index.js +641 -584
  9. package/dist/connect/index.js.map +1 -1
  10. package/dist/{enum-field-UxIet5Lp.d.ts → enum-field-CwZVs3Ux.d.ts} +2 -2
  11. package/dist/{enum-field-UxIet5Lp.d.ts.map → enum-field-CwZVs3Ux.d.ts.map} +1 -1
  12. package/dist/id-autocomplete-list-option-CB5B07Hi.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/json-viewer-DaTgmzkS.d.ts.map +1 -1
  15. package/dist/{src-BrrPQVce.js → src-CfIIbIOi.js} +11 -11
  16. package/dist/src-CfIIbIOi.js.map +1 -0
  17. package/dist/style.css +79 -16
  18. package/dist/ui/components/button/button.js +1 -1
  19. package/dist/ui/components/button/button.js.map +1 -1
  20. package/dist/ui/components/character-counter/character-counter.js +6 -6
  21. package/dist/ui/components/character-counter/character-counter.js.map +1 -1
  22. package/dist/ui/components/checkbox/checkbox-base.js +1 -1
  23. package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
  24. package/dist/ui/components/checkbox/checkbox.js +1 -1
  25. package/dist/ui/components/checkbox/checkbox.js.map +1 -1
  26. package/dist/ui/components/command/command.d.ts +1 -1
  27. package/dist/ui/components/command/command.js +5 -5
  28. package/dist/ui/components/command/command.js.map +1 -1
  29. package/dist/ui/components/enum-field/enum-field.d.ts +1 -1
  30. package/dist/ui/components/form-description/form-description.js +1 -1
  31. package/dist/ui/components/form-description/form-description.js.map +1 -1
  32. package/dist/ui/components/form-label/form-label.js +3 -3
  33. package/dist/ui/components/form-label/form-label.js.map +1 -1
  34. package/dist/ui/components/form-message/form-message.js +3 -3
  35. package/dist/ui/components/form-message/form-message.js.map +1 -1
  36. package/dist/ui/components/form-message/message-list.js +3 -3
  37. package/dist/ui/components/form-message/message-list.js.map +1 -1
  38. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +3 -3
  39. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
  40. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +10 -10
  41. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
  42. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js +1 -1
  43. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js.map +1 -1
  44. package/dist/ui/components/id-autocomplete/id-autocomplete.js +1 -1
  45. package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
  46. package/dist/ui/components/index.d.ts +2 -2
  47. package/dist/ui/components/input/input.js +1 -1
  48. package/dist/ui/components/input/input.js.map +1 -1
  49. package/dist/ui/components/input/splitted-input-diff.js +2 -2
  50. package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
  51. package/dist/ui/components/input/subcomponent/input-diff.js +1 -1
  52. package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
  53. package/dist/ui/components/input/subcomponent/text-diff.js +3 -3
  54. package/dist/ui/components/input/subcomponent/text-diff.js.map +1 -1
  55. package/dist/ui/components/json-viewer/json-viewer.js +6 -5
  56. package/dist/ui/components/json-viewer/json-viewer.js.map +1 -1
  57. package/dist/ui/components/popover/popover.js +1 -1
  58. package/dist/ui/components/popover/popover.js.map +1 -1
  59. package/dist/ui/components/radio-group-field/radio.js +3 -3
  60. package/dist/ui/components/radio-group-field/radio.js.map +1 -1
  61. package/dist/ui/components/search-autocomplete/search-autocomplete.js +13 -13
  62. package/dist/ui/components/search-autocomplete/search-autocomplete.js.map +1 -1
  63. package/dist/ui/components/select-field/content.js +8 -8
  64. package/dist/ui/components/select-field/content.js.map +1 -1
  65. package/dist/ui/components/select-field/select-field.js +1 -1
  66. package/dist/ui/components/select-field/select-field.js.map +1 -1
  67. package/dist/ui/components/select-field/selected-content.js +7 -7
  68. package/dist/ui/components/select-field/selected-content.js.map +1 -1
  69. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts.map +1 -1
  70. package/dist/ui/components/select-field/subcomponents/CommandItemList.js +9 -9
  71. package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
  72. package/dist/ui/components/sidebar/sidebar.js +5 -5
  73. package/dist/ui/components/sidebar/sidebar.js.map +1 -1
  74. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js +1 -1
  75. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js.map +1 -1
  76. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js +3 -3
  77. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js.map +1 -1
  78. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js +7 -7
  79. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js.map +1 -1
  80. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js +1 -1
  81. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js.map +1 -1
  82. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js +1 -1
  83. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js.map +1 -1
  84. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js +4 -4
  85. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js.map +1 -1
  86. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js +5 -5
  87. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js.map +1 -1
  88. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js +2 -2
  89. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js.map +1 -1
  90. package/dist/ui/components/sidebar/subcomponents/status-icon.js +6 -6
  91. package/dist/ui/components/sidebar/subcomponents/status-icon.js.map +1 -1
  92. package/dist/ui/components/tooltip/tooltip.js +1 -1
  93. package/dist/ui/components/tooltip/tooltip.js.map +1 -1
  94. package/dist/ui/index.d.ts +2 -2
  95. package/package.json +23 -8
  96. package/theme.css +145 -17
  97. package/dist/src-BrrPQVce.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as DropdownMenuTrigger, c as SidebarHeader, d as PackageAnimation, f as Modal, h as DropdownMenuItem, l as SidebarPanel, m as DropdownMenuContent, n as usePagination, o as Sidebar, p as DropdownMenu, s as SidebarFooter, u as Pagination, v as PowerhouseButton } from "../src-BrrPQVce.js";
1
+ import { _ as DropdownMenuTrigger, c as SidebarHeader, d as PackageAnimation, f as Modal, h as DropdownMenuItem, l as SidebarPanel, m as DropdownMenuContent, n as usePagination, o as Sidebar, p as DropdownMenu, s as SidebarFooter, u as Pagination, v as PowerhouseButton } from "../src-CfIIbIOi.js";
2
2
  import { n as getDimensions, t as Icon } from "../icon-C4QOpsdI.js";
3
3
  import { Popover, PopoverContent, PopoverTrigger } from "../ui/components/popover/popover.js";
4
4
  import { SelectFieldRaw } from "../ui/components/select-field/select-field.js";
@@ -18,6 +18,7 @@ import Select, { components } from "react-select";
18
18
  import { Content as Content$2, List, Root as Root$2, Trigger as Trigger$2 } from "@radix-ui/react-tabs";
19
19
  import { addProp, defaultTo, entries, filter, funnel, hasAtLeast, isArray, isDefined, isIncludedIn, isStrictEqual, isString, isTruthy, keys, map, pipe, prop, values } from "remeda";
20
20
  import { garbageCollect, redo, sortOperations, undo } from "@powerhousedao/shared/document-model";
21
+ import { RenownLogo } from "@powerhousedao/reactor-browser/renown";
21
22
  import { JsonView } from "@uiw/react-json-view";
22
23
  import { darkTheme } from "@uiw/react-json-view/dark";
23
24
  import { lightTheme } from "@uiw/react-json-view/light";
@@ -132,14 +133,14 @@ function Breadcrumbs() {
132
133
  const hasSelectedDrive = !!selectedDrive;
133
134
  const hasNodePath = !!selectedNodePath.length;
134
135
  return /* @__PURE__ */ jsxs("div", {
135
- className: "flex h-9 flex-row items-center gap-2 p-6 text-gray-500 dark:text-slate-400",
136
+ className: "flex h-9 flex-row items-center gap-2 p-6 text-muted-foreground",
136
137
  children: [
137
138
  hasSelectedDrive && /* @__PURE__ */ jsxs(Fragment$1, { children: [
138
139
  /* @__PURE__ */ jsx("button", {
139
140
  type: "button",
140
141
  "aria-label": "Back to home",
141
142
  title: "Back to home",
142
- className: "flex items-center justify-center rounded-md p-1 text-gray-700 transition-colors hover:bg-gray-100 hover:text-gray-800 dark:text-slate-200 dark:hover:bg-slate-700 dark:hover:text-slate-100",
143
+ className: "flex items-center justify-center rounded-md p-1 text-foreground transition-colors hover:hover-effect",
143
144
  onClick: () => setSelectedDrive(void 0),
144
145
  children: /* @__PURE__ */ jsx(Icon, {
145
146
  name: "ArrowLeft",
@@ -161,14 +162,14 @@ function Breadcrumbs() {
161
162
  onClick: () => setSelectedNode(node)
162
163
  }), /* @__PURE__ */ jsx("span", { children: "/" })] }, node.id)),
163
164
  isAllowedToCreateDocuments && (isCreating ? /* @__PURE__ */ jsx(NodeInput, {
164
- className: "text-gray-900 dark:text-slate-100",
165
+ className: "text-foreground",
165
166
  defaultValue: "New Folder",
166
167
  onCancel,
167
168
  onSubmit,
168
169
  placeholder: "New Folder"
169
170
  }) : /* @__PURE__ */ jsxs("button", {
170
171
  type: "button",
171
- className: "ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 text-gray-700 transition-colors hover:bg-gray-200 hover:text-gray-800 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100",
172
+ className: "ml-1 flex items-center justify-center gap-2 rounded-md bg-background px-2 py-1.5 text-foreground transition-colors hover:hover-effect",
172
173
  onClick: onAddNew,
173
174
  children: [/* @__PURE__ */ jsx(Icon, {
174
175
  name: "Plus",
@@ -185,7 +186,7 @@ function Breadcrumb(props) {
185
186
  parentId: parentId ?? void 0
186
187
  });
187
188
  const { isDropTarget, ...dropProps } = useDropNode(id);
188
- const containerStyles = twMerge("cursor-pointer transition-colors last-of-type:text-gray-800 hover:text-gray-800 dark:text-slate-200 last-of-type:dark:text-slate-100 dark:hover:text-slate-100", isDragging ? "opacity-60" : isDropTarget ? "bg-blue-100 dark:bg-blue-800" : "");
189
+ const containerStyles = twMerge("cursor-pointer transition-colors last-of-type:text-foreground hover:hover-effect", isDragging ? "opacity-60" : isDropTarget ? "bg-info/10" : "");
189
190
  return /* @__PURE__ */ jsx("div", {
190
191
  ...dragProps,
191
192
  ...dropProps,
@@ -221,7 +222,7 @@ function MenuList(props) {
221
222
  return /* @__PURE__ */ jsxs(components.MenuList, {
222
223
  ...rest,
223
224
  children: [props.children, hasAddItemButton ? /* @__PURE__ */ jsx("button", {
224
- className: "w-full px-2 py-3 hover:bg-gray-50 dark:hover:bg-slate-800",
225
+ className: "w-full px-2 py-3 hover:hover-effect",
225
226
  onClick,
226
227
  children: label
227
228
  }) : null]
@@ -242,7 +243,7 @@ function Combobox(props) {
242
243
  ...addItemButtonProps
243
244
  })
244
245
  },
245
- classNames: { menuList: () => "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-rounded-md scrollbar-thumb-gray-300 dark:scrollbar-thumb-slate-600" },
246
+ classNames: { menuList: () => "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-rounded-md scrollbar-thumb-border" },
246
247
  styles: {
247
248
  dropdownIndicator: () => {
248
249
  return {
@@ -270,7 +271,7 @@ function Combobox(props) {
270
271
  placeholder: (baseStyles) => {
271
272
  return {
272
273
  ...baseStyles,
273
- color: invalid ? dark ? "var(--color-red-400)" : "var(--color-red-800)" : dark ? "var(--color-slate-100)" : "var(--color-gray-500)"
274
+ color: invalid ? dark ? "var(--color-red-400)" : "var(--color-red-900)" : dark ? "var(--color-slate-100)" : "var(--color-gray-500)"
274
275
  };
275
276
  },
276
277
  control: () => {
@@ -359,12 +360,12 @@ const CookieBanner = (props) => {
359
360
  className: "cursor-pointer",
360
361
  children: [/* @__PURE__ */ jsx("input", {
361
362
  checked: cookie.value,
362
- className: "mr-1 size-3 cursor-pointer rounded-sm border-2 border-gray-900 accent-gray-900 focus:outline-none dark:border-slate-50",
363
+ className: "mr-1 size-3 cursor-pointer rounded-sm border-2 border-foreground accent-primary focus:outline-none",
363
364
  id: cookie.id,
364
365
  onChange: handleOnChange,
365
366
  type: "checkbox"
366
367
  }), /* @__PURE__ */ jsx("label", {
367
- className: "cursor-pointer text-gray-900 select-none dark:text-slate-50",
368
+ className: "cursor-pointer text-foreground select-none",
368
369
  htmlFor: cookie.id,
369
370
  children: cookie.label
370
371
  })]
@@ -390,11 +391,11 @@ const CookieBanner = (props) => {
390
391
  };
391
392
  //#endregion
392
393
  //#region src/connect/components/modal/modal-button.tsx
393
- const defaultStyle = "min-h-12 min-w-35.5 flex-1 transform place-items-center rounded-xl px-6 py-3 text-base font-semibold transition-all outline-none hover:scale-105 active:opacity-75 disabled:cursor-not-allowed disabled:hover:scale-none";
394
+ const defaultStyle = "min-h-12 min-w-35.5 flex-1 transform place-items-center rounded-xl px-6 py-3 text-base font-semibold transition-all outline-none hover:hover-effect active:active-effect disabled:disabled-effect";
394
395
  function ModalButton(props) {
395
396
  const { variant, className, ...rest } = props;
396
- const confirmStyle = twMerge(defaultStyle, "bg-gray-800 text-gray-50 dark:bg-slate-100 dark:text-slate-900");
397
- const cancelStyle = twMerge(defaultStyle, "bg-gray-400 text-gray-50 dark:bg-slate-400 dark:text-slate-900");
397
+ const confirmStyle = twMerge(defaultStyle, "bg-primary text-primary-foreground");
398
+ const cancelStyle = twMerge(defaultStyle, "bg-muted text-muted-foreground");
398
399
  return /* @__PURE__ */ jsx("button", {
399
400
  className: twMerge(variant === "confirm" ? confirmStyle : cancelStyle, className),
400
401
  ...rest
@@ -413,11 +414,11 @@ function ConnectConfirmationModal(props) {
413
414
  className: "w-[400px] p-6",
414
415
  children: [
415
416
  /* @__PURE__ */ jsx("div", {
416
- className: "pb-2 text-2xl font-bold text-gray-900 dark:text-slate-100",
417
+ className: "pb-2 text-2xl font-bold text-foreground",
417
418
  children: header
418
419
  }),
419
420
  /* @__PURE__ */ jsx("div", {
420
- className: "my-6 rounded-md bg-gray-50 p-4 text-center text-gray-900 dark:bg-slate-700 dark:text-slate-100",
421
+ className: "my-6 rounded-md bg-background p-4 text-center text-foreground",
421
422
  children: body
422
423
  }),
423
424
  /* @__PURE__ */ jsxs("div", {
@@ -446,12 +447,12 @@ function TreeItem({ label, depth, expanded, selected, hasChildren, icon, onToggl
446
447
  onToggle?.();
447
448
  };
448
449
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
449
- className: twMerge("flex cursor-pointer items-center gap-1 py-1 pr-2 text-sm hover:bg-gray-100 dark:hover:bg-slate-700", selected && "bg-blue-50 dark:bg-blue-900"),
450
+ className: twMerge("flex cursor-pointer items-center gap-1 py-1 pr-2 text-sm hover:hover-effect", selected && "bg-info/10"),
450
451
  style: { paddingLeft: depth * INDENT_PX + 4 },
451
452
  onClick,
452
453
  children: [
453
454
  hasChildren ? /* @__PURE__ */ jsx("button", {
454
- className: "flex size-4 shrink-0 items-center justify-center text-gray-500 hover:text-gray-700 dark:text-slate-200 dark:hover:text-slate-100",
455
+ className: "flex size-4 shrink-0 items-center justify-center text-muted-foreground hover:hover-effect",
455
456
  onClick: handleChevronClick,
456
457
  type: "button",
457
458
  children: /* @__PURE__ */ jsx(Icon, {
@@ -461,21 +462,21 @@ function TreeItem({ label, depth, expanded, selected, hasChildren, icon, onToggl
461
462
  })
462
463
  }) : /* @__PURE__ */ jsx("span", { className: "w-4 shrink-0" }),
463
464
  icon && /* @__PURE__ */ jsx("span", {
464
- className: "shrink-0 text-gray-500 dark:text-slate-400",
465
+ className: "shrink-0 text-muted-foreground",
465
466
  children: icon
466
467
  }),
467
468
  /* @__PURE__ */ jsx("span", {
468
- className: "min-w-0 flex-1 truncate text-gray-700 dark:text-slate-200",
469
+ className: "min-w-0 flex-1 truncate text-foreground",
469
470
  children: label
470
471
  }),
471
- selected && /* @__PURE__ */ jsx("span", { className: "ml-auto size-2 shrink-0 rounded-full bg-blue-500 dark:bg-blue-400" })
472
+ selected && /* @__PURE__ */ jsx("span", { className: "ml-auto size-2 shrink-0 rounded-full bg-info" })
472
473
  ]
473
474
  }), expanded && children] });
474
475
  }
475
476
  function ColumnItem({ column, depth }) {
476
477
  const typeLabel = column.dataType.length > 10 ? column.dataType.slice(0, 10) + "…" : column.dataType;
477
478
  return /* @__PURE__ */ jsxs("div", {
478
- className: "flex items-center gap-1 py-0.5 pr-2 text-xs text-gray-500 dark:text-slate-200",
479
+ className: "flex items-center gap-1 py-0.5 pr-2 text-xs text-muted-foreground",
479
480
  style: { paddingLeft: depth * INDENT_PX + 4 },
480
481
  children: [
481
482
  /* @__PURE__ */ jsx("span", { className: "w-4 shrink-0" }),
@@ -484,7 +485,7 @@ function ColumnItem({ column, depth }) {
484
485
  children: column.name
485
486
  }),
486
487
  /* @__PURE__ */ jsxs("span", {
487
- className: "ml-auto shrink-0 text-gray-400 dark:text-slate-200",
488
+ className: "ml-auto shrink-0 text-muted-foreground",
488
489
  children: [
489
490
  "(",
490
491
  typeLabel,
@@ -530,7 +531,7 @@ function SchemaTreeSidebar({ schema, tables, selectedTable, onSelectTable, onRef
530
531
  className: "truncate",
531
532
  children: schema
532
533
  }), onRefresh && /* @__PURE__ */ jsx("button", {
533
- className: "ml-auto p-0.5 text-gray-400 hover:text-gray-600 dark:text-slate-200 dark:hover:text-slate-100",
534
+ className: "ml-auto p-0.5 text-muted-foreground hover:hover-effect",
534
535
  onClick: handleRefreshClick,
535
536
  type: "button",
536
537
  disabled: loading,
@@ -586,12 +587,12 @@ const ConnectSelect = /* @__PURE__ */ fixedForwardRef(function Select(props, ref
586
587
  }
587
588
  const itemsToShow = items.filter((item) => item.value !== value);
588
589
  return /* @__PURE__ */ jsxs("div", {
589
- className: twMerge("border border-gray-200 bg-gray-50 text-gray-900 transition-[border-radius] dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", absolutePositionMenu && "relative", containerClassName),
590
+ className: twMerge("border border-border bg-background text-foreground transition-[border-radius]", absolutePositionMenu && "relative", containerClassName),
590
591
  "data-open": showItems,
591
592
  ref,
592
593
  style: { borderRadius },
593
594
  children: [/* @__PURE__ */ jsxs("div", {
594
- className: twMerge("flex min-w-[360px] cursor-pointer items-center justify-between pr-3 text-gray-900 outline-none dark:text-slate-100", menuClassName),
595
+ className: twMerge("flex min-w-[360px] cursor-pointer items-center justify-between pr-3 text-foreground outline-none", menuClassName),
595
596
  id,
596
597
  onClick: () => setShowItems(!showItems),
597
598
  children: [/* @__PURE__ */ jsx(ItemContainer, {
@@ -615,13 +616,13 @@ const ConnectSelect = /* @__PURE__ */ fixedForwardRef(function Select(props, ref
615
616
  function ItemContainer(props) {
616
617
  const { className, disabled, onItemClick, icon, displayValue, value, description } = props;
617
618
  return /* @__PURE__ */ jsxs("div", {
618
- className: twMerge(disabled ? "cursor-not-allowed text-gray-500 dark:text-slate-400" : "text-gray-900 dark:text-slate-100", "flex size-full cursor-pointer items-center gap-2 bg-inherit py-3 pl-3 text-start outline-none", className),
619
+ className: twMerge(disabled ? "cursor-not-allowed text-muted-foreground" : "text-foreground", "flex size-full cursor-pointer items-center gap-2 bg-inherit py-3 pl-3 text-start outline-none", className),
619
620
  onClick: onItemClick,
620
621
  children: [icon, /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
621
622
  className: "text-inherit capitalize",
622
623
  children: displayValue ?? value.toLowerCase()
623
624
  }), /* @__PURE__ */ jsx("p", {
624
- className: "text-xs text-gray-700 dark:text-slate-200",
625
+ className: "text-xs text-foreground",
625
626
  children: description
626
627
  })] })]
627
628
  });
@@ -714,7 +715,7 @@ function FilterClauseComponent({ clause, columns, onUpdate, onRemove, showConnec
714
715
  id: `connector-${clause.id}`,
715
716
  items: connectorItems,
716
717
  itemClassName: "px-2 py-1 text-xs",
717
- menuClassName: "px-2 py-1 text-xs min-w-[80px]",
718
+ menuClassName: "min-w-[80px] px-2 py-1 text-xs",
718
719
  value: connector,
719
720
  onChange: onConnectorChange
720
721
  }),
@@ -725,7 +726,7 @@ function FilterClauseComponent({ clause, columns, onUpdate, onRemove, showConnec
725
726
  id: `column-${clause.id}`,
726
727
  items: columnItems,
727
728
  itemClassName: "px-2 py-1 text-xs",
728
- menuClassName: "px-2 py-1 text-xs min-w-[150px]",
729
+ menuClassName: "min-w-[150px] px-2 py-1 text-xs",
729
730
  value: clause.column,
730
731
  onChange: handleColumnChange
731
732
  }),
@@ -736,18 +737,18 @@ function FilterClauseComponent({ clause, columns, onUpdate, onRemove, showConnec
736
737
  id: `operator-${clause.id}`,
737
738
  items: operatorItems,
738
739
  itemClassName: "px-2 py-1 text-xs",
739
- menuClassName: "px-2 py-1 text-xs min-w-[100px]",
740
+ menuClassName: "min-w-[100px] px-2 py-1 text-xs",
740
741
  value: clause.operator,
741
742
  onChange: handleOperatorChange
742
743
  }),
743
744
  showValueInput && /* @__PURE__ */ jsx("input", {
744
- className: "min-w-[150px] rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
745
+ className: "min-w-[150px] rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground",
745
746
  type: inputType,
746
747
  value: clause.value,
747
748
  onChange: (e) => handleValueChange(e.target.value)
748
749
  }),
749
750
  /* @__PURE__ */ jsx("button", {
750
- className: "flex items-center justify-center rounded-sm p-1 text-gray-500 hover:bg-gray-200 hover:text-gray-700 dark:text-slate-400 dark:hover:bg-slate-600 dark:hover:text-slate-100",
751
+ className: "flex items-center justify-center rounded-sm p-1 text-muted-foreground hover:hover-effect",
751
752
  onClick: onRemove,
752
753
  title: "Remove filter",
753
754
  type: "button",
@@ -812,11 +813,11 @@ function FilterBar({ columns, filters, onFiltersChange }) {
812
813
  }, [filters, onFiltersChange]);
813
814
  const hasFilters = filters && filters.clauses.length > 0;
814
815
  return /* @__PURE__ */ jsxs("div", {
815
- className: "flex shrink-0 flex-col gap-2 rounded-lg border border-gray-300 bg-gray-50 p-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
816
+ className: "flex shrink-0 flex-col gap-2 rounded-lg border border-border bg-background p-2",
816
817
  children: [/* @__PURE__ */ jsxs("div", {
817
818
  className: "flex items-center justify-between",
818
819
  children: [/* @__PURE__ */ jsxs("button", {
819
- className: "flex items-center gap-1 text-xs text-gray-700 hover:text-gray-900 dark:text-slate-200 dark:hover:text-slate-50",
820
+ className: "flex items-center gap-1 text-xs text-foreground hover:hover-effect",
820
821
  onClick: () => setIsExpanded(!isExpanded),
821
822
  type: "button",
822
823
  children: [
@@ -827,12 +828,12 @@ function FilterBar({ columns, filters, onFiltersChange }) {
827
828
  }),
828
829
  /* @__PURE__ */ jsx("span", { children: "Filters" }),
829
830
  hasFilters && /* @__PURE__ */ jsx("span", {
830
- className: "rounded-sm bg-blue-100 px-1.5 py-0.5 text-xs text-blue-700 dark:bg-blue-800 dark:text-blue-100",
831
+ className: "rounded-sm bg-info/10 px-1.5 py-0.5 text-xs text-info",
831
832
  children: filters.clauses.length
832
833
  })
833
834
  ]
834
835
  }), /* @__PURE__ */ jsxs("button", {
835
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
836
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect",
836
837
  onClick: handleAddFilter,
837
838
  type: "button",
838
839
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -954,10 +955,10 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
954
955
  children: [/* @__PURE__ */ jsxs("div", {
955
956
  className: "flex items-center gap-2",
956
957
  children: [/* @__PURE__ */ jsx("span", {
957
- className: "text-gray-700 dark:text-slate-200",
958
+ className: "text-foreground",
958
959
  children: loading ? "Loading..." : total !== null ? `Showing ${startItem.toLocaleString()}-${endItem.toLocaleString()} of ${total.toLocaleString()}` : `Showing ${rows.length.toLocaleString()} rows`
959
960
  }), rows.length > 0 && /* @__PURE__ */ jsxs("button", {
960
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
961
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect disabled:disabled-effect",
961
962
  disabled: loading || copying,
962
963
  onClick: () => void handleCopyAll(),
963
964
  title: "Copy all rows as CSV",
@@ -971,14 +972,14 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
971
972
  className: "flex gap-1",
972
973
  children: [
973
974
  /* @__PURE__ */ jsx("button", {
974
- className: "rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
975
+ className: "rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect disabled:disabled-effect",
975
976
  disabled: currentPage === 0,
976
977
  onClick: () => goToPage(0),
977
978
  type: "button",
978
979
  children: "First"
979
980
  }),
980
981
  /* @__PURE__ */ jsx("button", {
981
- className: "rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
982
+ className: "rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect disabled:disabled-effect",
982
983
  disabled: currentPage === 0,
983
984
  onClick: () => goToPage(currentPage - 1),
984
985
  type: "button",
@@ -989,21 +990,21 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
989
990
  })
990
991
  }),
991
992
  visiblePages[0] > 0 && /* @__PURE__ */ jsx("span", {
992
- className: "flex items-center px-1 text-xs text-gray-500 dark:text-slate-400",
993
+ className: "flex items-center px-1 text-xs text-muted-foreground",
993
994
  children: "..."
994
995
  }),
995
996
  visiblePages.map((page) => /* @__PURE__ */ jsx("button", {
996
- className: twMerge("min-w-8 rounded-sm border px-2 py-1 text-xs", page === currentPage ? "border-blue-500 bg-blue-50 text-blue-700 dark:border-blue-400 dark:bg-blue-900 dark:text-blue-100" : "border-gray-300 bg-gray-50 text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700"),
997
+ className: twMerge("min-w-8 rounded-sm border px-2 py-1 text-xs", page === currentPage ? "border-info bg-info/10 text-info" : "border-border bg-background text-foreground hover:hover-effect"),
997
998
  onClick: () => goToPage(page),
998
999
  type: "button",
999
1000
  children: page + 1
1000
1001
  }, page)),
1001
1002
  visiblePages[visiblePages.length - 1] < totalPages - 1 && /* @__PURE__ */ jsx("span", {
1002
- className: "flex items-center px-1 text-xs text-gray-500 dark:text-slate-400",
1003
+ className: "flex items-center px-1 text-xs text-muted-foreground",
1003
1004
  children: "..."
1004
1005
  }),
1005
1006
  /* @__PURE__ */ jsx("button", {
1006
- className: "rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
1007
+ className: "rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect disabled:disabled-effect",
1007
1008
  disabled: currentPage >= totalPages - 1,
1008
1009
  onClick: () => goToPage(currentPage + 1),
1009
1010
  type: "button",
@@ -1014,7 +1015,7 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
1014
1015
  })
1015
1016
  }),
1016
1017
  /* @__PURE__ */ jsx("button", {
1017
- className: "rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-xs text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
1018
+ className: "rounded-sm border border-border bg-background px-2 py-1 text-xs text-foreground hover:hover-effect disabled:disabled-effect",
1018
1019
  disabled: currentPage >= totalPages - 1,
1019
1020
  onClick: () => goToPage(totalPages - 1),
1020
1021
  type: "button",
@@ -1024,13 +1025,13 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
1024
1025
  })]
1025
1026
  }),
1026
1027
  /* @__PURE__ */ jsx("div", {
1027
- className: twMerge("max-h-full overflow-auto rounded-lg border border-gray-300 transition-opacity dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", "scrollbar-thin scrollbar-thumb-rounded-md scrollbar-track-transparent", "scrollbar-thumb-gray-300 dark:scrollbar-thumb-slate-600", loading && "pointer-events-none opacity-50"),
1028
+ className: twMerge("max-h-full overflow-auto rounded-lg border border-border transition-opacity", "scrollbar-thin scrollbar-thumb-rounded-md scrollbar-track-transparent", "scrollbar-thumb-border", loading && "pointer-events-none opacity-50"),
1028
1029
  children: /* @__PURE__ */ jsxs("table", {
1029
1030
  className: "w-full border-collapse",
1030
1031
  children: [/* @__PURE__ */ jsx("thead", {
1031
- className: "sticky top-0 bg-gray-100 dark:bg-slate-700",
1032
+ className: "sticky top-0 bg-muted",
1032
1033
  children: /* @__PURE__ */ jsxs("tr", { children: [/* @__PURE__ */ jsx("th", {
1033
- className: "w-12 p-2 text-center text-xs font-medium text-gray-700 dark:text-slate-200",
1034
+ className: "w-12 p-2 text-center text-xs font-medium text-foreground",
1034
1035
  children: /* @__PURE__ */ jsx("span", {
1035
1036
  className: "sr-only",
1036
1037
  children: "Copy"
@@ -1039,7 +1040,7 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
1039
1040
  const isActive = currentSort?.column === column.name;
1040
1041
  const sortDirection = isActive ? currentSort.direction : "asc";
1041
1042
  return /* @__PURE__ */ jsx("th", {
1042
- className: twMerge("group px-3 py-2 text-left text-xs font-medium text-gray-700 dark:text-slate-200", index > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", onSort && "cursor-pointer hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-slate-600 dark:hover:text-slate-100"),
1043
+ className: twMerge("group px-3 py-2 text-left text-xs font-medium text-foreground", index > 0 && "border-l border-border", onSort && "cursor-pointer hover:hover-effect"),
1043
1044
  onClick: () => onSort && handleSort(column.name),
1044
1045
  children: /* @__PURE__ */ jsxs("div", {
1045
1046
  className: "flex items-center gap-1",
@@ -1054,15 +1055,15 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
1054
1055
  }, column.name);
1055
1056
  })] })
1056
1057
  }), /* @__PURE__ */ jsx("tbody", { children: rows.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
1057
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
1058
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
1058
1059
  colSpan: columns.length + 1,
1059
1060
  children: "No data"
1060
1061
  }) }) : rows.map((row, rowIndex) => /* @__PURE__ */ jsxs("tr", {
1061
- className: "odd:bg-white even:bg-gray-50 hover:bg-blue-50 dark:odd:bg-slate-800 dark:even:bg-slate-800 dark:hover:bg-blue-900",
1062
+ className: "odd:bg-card even:bg-background hover:hover-effect",
1062
1063
  children: [/* @__PURE__ */ jsx("td", {
1063
1064
  className: "p-2 text-center",
1064
1065
  children: /* @__PURE__ */ jsx("button", {
1065
- className: "flex items-center justify-center rounded-sm p-1 text-gray-500 hover:bg-gray-200 hover:text-gray-700 dark:text-slate-400 dark:hover:bg-slate-600 dark:hover:text-slate-100",
1066
+ className: "flex items-center justify-center rounded-sm p-1 text-muted-foreground hover:hover-effect",
1066
1067
  onClick: () => void handleCopyRow(rowIndex),
1067
1068
  title: "Copy row as CSV",
1068
1069
  type: "button",
@@ -1072,9 +1073,9 @@ function TableView({ columns, rows, pagination, onPageChange, onSort, currentSor
1072
1073
  })
1073
1074
  })
1074
1075
  }), columns.map((column, colIndex) => /* @__PURE__ */ jsx("td", {
1075
- className: twMerge("px-3 py-2 text-xs text-gray-900 dark:text-slate-50", colIndex > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100"),
1076
+ className: twMerge("px-3 py-2 text-xs text-foreground", colIndex > 0 && "border-l border-border"),
1076
1077
  children: /* @__PURE__ */ jsx("span", {
1077
- className: twMerge("block truncate", row[column.name] === null && "text-gray-400 italic dark:text-slate-500"),
1078
+ className: twMerge("block truncate", row[column.name] === null && "text-muted-foreground italic"),
1078
1079
  title: formatCellValue(row[column.name]),
1079
1080
  children: formatCellValue(row[column.name])
1080
1081
  })
@@ -1275,7 +1276,7 @@ function DBExplorer({ schema, getTables, getTableRows, getDefaultSort, pageSize
1275
1276
  onContinue: () => void handleResetConfirm()
1276
1277
  }),
1277
1278
  /* @__PURE__ */ jsxs("div", {
1278
- className: "flex w-64 shrink-0 flex-col border-r border-gray-200 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
1279
+ className: "flex w-64 shrink-0 flex-col border-r border-border",
1279
1280
  children: [/* @__PURE__ */ jsx("div", {
1280
1281
  className: "flex-1 overflow-auto",
1281
1282
  children: /* @__PURE__ */ jsx(SchemaTreeSidebar, {
@@ -1287,30 +1288,30 @@ function DBExplorer({ schema, getTables, getTableRows, getDefaultSort, pageSize
1287
1288
  loading: tablesLoading || loading
1288
1289
  })
1289
1290
  }), (onImportDb || onExportDb || pgVersionControl) && /* @__PURE__ */ jsxs("div", {
1290
- className: "flex shrink-0 flex-col gap-2 border-t border-gray-200 p-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
1291
+ className: "flex shrink-0 flex-col gap-2 border-t border-border p-2",
1291
1292
  children: [
1292
1293
  onImportDb && /* @__PURE__ */ jsx("button", {
1293
- className: "rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
1294
+ className: "rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
1294
1295
  onClick: handleImportClick,
1295
1296
  type: "button",
1296
1297
  children: "Import DB"
1297
1298
  }),
1298
1299
  onExportDb && /* @__PURE__ */ jsx("button", {
1299
- className: "rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
1300
+ className: "rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
1300
1301
  onClick: handleExportClick,
1301
1302
  type: "button",
1302
1303
  children: "Export DB"
1303
1304
  }),
1304
1305
  pgVersionControl && /* @__PURE__ */ jsxs("div", {
1305
- className: "flex flex-col gap-1 border-t border-gray-200 pt-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
1306
+ className: "flex flex-col gap-1 border-t border-border pt-2",
1306
1307
  children: [/* @__PURE__ */ jsxs("div", {
1307
- className: "flex items-center justify-between text-xs text-gray-700 dark:text-slate-200",
1308
+ className: "flex items-center justify-between text-xs text-foreground",
1308
1309
  children: [/* @__PURE__ */ jsx("span", { children: "Postgres version" }), /* @__PURE__ */ jsx("span", {
1309
- className: "font-semibold text-gray-900 dark:text-slate-50",
1310
+ className: "font-semibold text-foreground",
1310
1311
  children: pgVersionControl.currentPgVersion === null ? "—" : `PG${pgVersionControl.currentPgVersion}`
1311
1312
  })]
1312
1313
  }), resetTargetMajor !== null && /* @__PURE__ */ jsx("button", {
1313
- className: "rounded-sm border border-red-300 bg-red-50 px-3 py-1.5 text-sm text-red-700 hover:bg-red-100 disabled:opacity-50 dark:border-red-600 dark:bg-red-900 dark:text-red-100 dark:hover:bg-red-800",
1314
+ className: "rounded-sm border border-destructive bg-destructive/10 px-3 py-1.5 text-sm text-destructive hover:hover-effect disabled:disabled-effect",
1314
1315
  onClick: () => setPendingResetMajor(resetTargetMajor),
1315
1316
  disabled: resetting,
1316
1317
  type: "button",
@@ -1323,10 +1324,10 @@ function DBExplorer({ schema, getTables, getTableRows, getDefaultSort, pageSize
1323
1324
  /* @__PURE__ */ jsx("div", {
1324
1325
  className: "flex-1 overflow-auto p-4",
1325
1326
  children: !selectedTable ? /* @__PURE__ */ jsx("div", {
1326
- className: "text-sm text-gray-500 dark:text-slate-400",
1327
+ className: "text-sm text-muted-foreground",
1327
1328
  children: "Select a table to view data"
1328
1329
  }) : !tableData && loading ? /* @__PURE__ */ jsx("div", {
1329
- className: "text-sm text-gray-500 dark:text-slate-400",
1330
+ className: "text-sm text-muted-foreground",
1330
1331
  children: "Loading..."
1331
1332
  }) : tableData ? /* @__PURE__ */ jsx(TableView, {
1332
1333
  columns,
@@ -1376,20 +1377,20 @@ function DebugInspector({ supportedPgVersions, currentPgVersion, onResetToPgVers
1376
1377
  children: [
1377
1378
  /* @__PURE__ */ jsxs("div", { children: [
1378
1379
  /* @__PURE__ */ jsx("h2", {
1379
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
1380
+ className: "text-lg font-semibold text-foreground",
1380
1381
  children: "PGlite data dir"
1381
1382
  }),
1382
1383
  /* @__PURE__ */ jsx("p", {
1383
- className: "mt-1 text-sm text-gray-700 dark:text-slate-200",
1384
+ className: "mt-1 text-sm text-foreground",
1384
1385
  children: "Kill the reactor, delete the local IndexedDB, initialize a fresh Postgres cluster at the chosen major version, then reload. Useful for testing version-detection and migration flows."
1385
1386
  }),
1386
1387
  /* @__PURE__ */ jsxs("div", {
1387
- className: "mt-2 inline-flex items-center gap-2 rounded-sm bg-gray-100 px-3 py-1 text-sm dark:bg-slate-700",
1388
+ className: "mt-2 inline-flex items-center gap-2 rounded-sm bg-muted px-3 py-1 text-sm",
1388
1389
  children: [/* @__PURE__ */ jsx("span", {
1389
- className: "text-gray-700 dark:text-slate-200",
1390
+ className: "text-foreground",
1390
1391
  children: "Current version:"
1391
1392
  }), /* @__PURE__ */ jsx("span", {
1392
- className: "font-semibold text-gray-900 dark:text-slate-50",
1393
+ className: "font-semibold text-foreground",
1393
1394
  children: currentPgVersion === null ? "None (no data dir)" : `Postgres ${currentPgVersion}`
1394
1395
  })]
1395
1396
  })
@@ -1401,16 +1402,16 @@ function DebugInspector({ supportedPgVersions, currentPgVersion, onResetToPgVers
1401
1402
  type: "button",
1402
1403
  disabled: running,
1403
1404
  onClick: () => setConfirmMajor(major),
1404
- className: "flex items-center gap-1 rounded-sm border border-red-300 bg-red-50 px-3 py-1.5 text-sm text-red-700 hover:bg-red-100 disabled:opacity-50 dark:border-red-600 dark:bg-red-900 dark:text-red-100 dark:hover:bg-red-800",
1405
+ className: "flex items-center gap-1 rounded-sm border border-destructive bg-destructive/10 px-3 py-1.5 text-sm text-destructive hover:hover-effect disabled:disabled-effect",
1405
1406
  children: pendingMajor === major && running ? `Resetting to PG${major}…` : `Reset to PG${major}`
1406
1407
  }, major);
1407
1408
  })
1408
1409
  }),
1409
1410
  confirmMajor !== null && /* @__PURE__ */ jsxs("div", {
1410
- className: "flex shrink-0 items-center gap-3 rounded-sm border border-yellow-400 bg-yellow-50 px-3 py-2 dark:border-yellow-500 dark:bg-yellow-900",
1411
+ className: "flex shrink-0 items-center gap-3 rounded-sm border border-warning bg-warning/10 px-3 py-2",
1411
1412
  children: [
1412
1413
  /* @__PURE__ */ jsxs("span", {
1413
- className: "text-sm text-yellow-900 dark:text-yellow-100",
1414
+ className: "text-sm text-warning",
1414
1415
  children: [
1415
1416
  "This will permanently delete all local reactor data and recreate an empty database under Postgres ",
1416
1417
  confirmMajor,
@@ -1420,19 +1421,19 @@ function DebugInspector({ supportedPgVersions, currentPgVersion, onResetToPgVers
1420
1421
  /* @__PURE__ */ jsxs("button", {
1421
1422
  type: "button",
1422
1423
  onClick: () => void handleReset(confirmMajor),
1423
- className: "rounded-sm bg-yellow-600 px-3 py-1 text-sm text-white hover:bg-yellow-700 dark:bg-yellow-300 dark:text-slate-900 dark:hover:bg-yellow-200",
1424
+ className: "rounded-sm bg-warning px-3 py-1 text-sm text-warning-foreground hover:hover-effect",
1424
1425
  children: ["Confirm reset to PG", confirmMajor]
1425
1426
  }),
1426
1427
  /* @__PURE__ */ jsx("button", {
1427
1428
  type: "button",
1428
1429
  onClick: () => setConfirmMajor(null),
1429
- className: "rounded-sm border border-gray-300 bg-gray-50 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-800",
1430
+ className: "rounded-sm border border-border bg-background px-3 py-1 text-sm text-foreground hover:hover-effect",
1430
1431
  children: "Cancel"
1431
1432
  })
1432
1433
  ]
1433
1434
  }),
1434
1435
  error && /* @__PURE__ */ jsx("div", {
1435
- className: "rounded-sm border border-red-300 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-600 dark:bg-red-900 dark:text-red-100",
1436
+ className: "rounded-sm border border-destructive bg-destructive/10 px-3 py-2 text-sm text-destructive",
1436
1437
  children: error
1437
1438
  })
1438
1439
  ]
@@ -1573,7 +1574,7 @@ function LogoAnimation({ size = 48, className = "" }) {
1573
1574
  viewBox: "-1 -2 50 52",
1574
1575
  fill: "none",
1575
1576
  xmlns: "http://www.w3.org/2000/svg",
1576
- className: twMerge("text-gray-900 dark:text-slate-50", className),
1577
+ className: twMerge("text-foreground", className),
1577
1578
  "aria-label": "Animated logo",
1578
1579
  children: SEQUENCE.map(({ id }) => /* @__PURE__ */ jsx("path", {
1579
1580
  ref: refFor(id),
@@ -1588,7 +1589,7 @@ function LogoAnimation({ size = 48, className = "" }) {
1588
1589
  function DefaultEditorLoader(props) {
1589
1590
  const { message = "Loading editor", ...divProps } = props;
1590
1591
  return /* @__PURE__ */ jsx("div", {
1591
- className: "grid h-full place-items-center text-gray-800 dark:text-slate-100",
1592
+ className: "grid h-full place-items-center text-foreground",
1592
1593
  ...divProps,
1593
1594
  children: /* @__PURE__ */ jsxs("div", {
1594
1595
  className: "-mt-20 grid place-items-center",
@@ -1606,7 +1607,7 @@ function Disclosure(props) {
1606
1607
  return /* @__PURE__ */ jsxs("div", {
1607
1608
  className: twMerge(containerClassName),
1608
1609
  children: [/* @__PURE__ */ jsxs("div", {
1609
- className: twMerge("flex cursor-pointer justify-between text-gray-500 dark:text-slate-400", toggleClassName),
1610
+ className: twMerge("flex cursor-pointer justify-between text-muted-foreground", toggleClassName),
1610
1611
  onClick: onOpenChange,
1611
1612
  children: [/* @__PURE__ */ jsx("h2", {
1612
1613
  className: "font-semibold text-inherit",
@@ -1627,7 +1628,7 @@ function Disclosure(props) {
1627
1628
  function Divider(props) {
1628
1629
  return /* @__PURE__ */ jsx("div", {
1629
1630
  ...props,
1630
- className: twMerge("h-px bg-gray-200 dark:bg-slate-600 dark:text-slate-100", props.className)
1631
+ className: twMerge("h-px bg-secondary", props.className)
1631
1632
  });
1632
1633
  }
1633
1634
  //#endregion
@@ -1648,12 +1649,12 @@ function Tabs({ children, defaultValue }) {
1648
1649
  children: [/* @__PURE__ */ jsx("div", {
1649
1650
  className: "flex w-full shrink-0 justify-between",
1650
1651
  children: /* @__PURE__ */ jsx(List, {
1651
- className: "flex w-full gap-x-2 rounded-xl p-1 text-sm font-semibold text-gray-700 outline-none dark:text-slate-200",
1652
+ className: "flex w-full gap-x-2 rounded-xl p-1 text-sm font-semibold text-foreground outline-none",
1652
1653
  children: React.Children.map(children, (child, _i) => {
1653
1654
  if (!/* @__PURE__ */ React.isValidElement(child)) return;
1654
1655
  const { label, disabled } = child.props;
1655
1656
  return /* @__PURE__ */ jsx(Trigger$2, {
1656
- className: "flex min-h-7 flex-1 items-center justify-center rounded-lg border border-gray-100 bg-gray-50 py-2 text-gray-900 transition duration-300 data-disabled:cursor-not-allowed data-disabled:text-gray-400 data-[state='active']:bg-gray-100 data-[state='active']:text-gray-900 dark:border-slate-600 dark:bg-slate-600 dark:text-slate-200 dark:data-disabled:text-slate-500 dark:data-[state='active']:bg-slate-500 dark:data-[state='active']:text-slate-100",
1657
+ className: "flex min-h-7 flex-1 items-center justify-center rounded-lg border border-border bg-background py-2 text-foreground transition duration-300 data-disabled:disabled-effect data-[state=active]:bg-accent data-[state=active]:text-foreground",
1657
1658
  value: label,
1658
1659
  disabled: disabled ?? false,
1659
1660
  children: label
@@ -1661,7 +1662,7 @@ function Tabs({ children, defaultValue }) {
1661
1662
  })
1662
1663
  })
1663
1664
  }), /* @__PURE__ */ jsx("div", {
1664
- className: "mt-3 min-h-0 flex-1 rounded-md bg-gray-50 dark:bg-slate-800",
1665
+ className: "mt-3 min-h-0 flex-1 rounded-md bg-background",
1665
1666
  children: React.Children.map(children, (child, i) => {
1666
1667
  if (!/* @__PURE__ */ React.isValidElement(child)) return;
1667
1668
  const { label } = child.props;
@@ -1684,7 +1685,7 @@ function DocumentStateViewer({ state, ignoredScopes = ["auth", "document"], defa
1684
1685
  const scopes = useMemo(() => Object.keys(state).filter((scope) => !ignoredScopes.includes(scope)), [state, ignoredScopes]);
1685
1686
  const initialScope = defaultScope || scopes.at(0) || "global";
1686
1687
  if (scopes.length === 0) return /* @__PURE__ */ jsx("div", {
1687
- className: "text-sm text-gray-500 dark:text-slate-400",
1688
+ className: "text-sm text-muted-foreground",
1688
1689
  children: "No state data"
1689
1690
  });
1690
1691
  return /* @__PURE__ */ jsx(Tabs, {
@@ -1693,7 +1694,7 @@ function DocumentStateViewer({ state, ignoredScopes = ["auth", "document"], defa
1693
1694
  label: formatScopeLabel(scope),
1694
1695
  description: scope,
1695
1696
  children: /* @__PURE__ */ jsx("div", {
1696
- className: twMerge("-mt-2 rounded-md border border-gray-300 bg-gray-50 p-3 font-mono text-sm dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
1697
+ className: twMerge("-mt-2 rounded-md border border-border bg-background p-3 font-mono text-sm", className),
1697
1698
  children: /* @__PURE__ */ jsx(JsonViewer, { data: state[scope] })
1698
1699
  })
1699
1700
  }, scope))
@@ -1715,7 +1716,7 @@ function ConnectTooltip(props) {
1715
1716
  ...rest,
1716
1717
  side,
1717
1718
  sideOffset,
1718
- className: twMerge("z-50 rounded-lg border border-gray-200 bg-gray-50 p-2 text-xs shadow-tooltip dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
1719
+ className: twMerge("z-50 rounded-lg border border-border bg-popover p-2 text-xs text-popover-foreground shadow-tooltip", className),
1719
1720
  children: content
1720
1721
  }) })]
1721
1722
  });
@@ -1751,7 +1752,7 @@ const HDivider = (props) => {
1751
1752
  children: [
1752
1753
  !!title && /* @__PURE__ */ jsx("div", { children: title }),
1753
1754
  !!subtitle && /* @__PURE__ */ jsx("div", {
1754
- className: "text-gray-300 dark:text-slate-600",
1755
+ className: "text-foreground",
1755
1756
  children: subtitle
1756
1757
  }),
1757
1758
  !!timestamp && /* @__PURE__ */ jsx("div", { children: formatTimestamp(timestamp) })
@@ -1773,7 +1774,7 @@ const HDivider = (props) => {
1773
1774
  size: 10,
1774
1775
  className: "absolute top-[-11px] z-40"
1775
1776
  }), /* @__PURE__ */ jsx(ConnectTooltip, {
1776
- className: "rounded-md bg-gray-900 text-white dark:bg-slate-50 dark:text-slate-900",
1777
+ className: "rounded-md bg-primary text-primary-foreground",
1777
1778
  content: tooltipContent,
1778
1779
  open: open && hasContent,
1779
1780
  onOpenChange: setOpen,
@@ -1781,12 +1782,12 @@ const HDivider = (props) => {
1781
1782
  side: "bottom",
1782
1783
  sideOffset: 5,
1783
1784
  children: /* @__PURE__ */ jsx("div", {
1784
- className: twMerge("mx-0.5 flex h-6.25 w-1.5 cursor-pointer flex-col items-center justify-center rounded-xs hover:bg-blue-300 dark:hover:bg-blue-600", isSelected && "bg-blue-300 dark:bg-blue-600", className),
1785
+ className: twMerge("mx-0.5 flex h-6.25 w-1.5 cursor-pointer flex-col items-center justify-center rounded-xs hover:hover-effect", isSelected && "bg-info/10", className),
1785
1786
  onClick,
1786
1787
  "data-title": title,
1787
1788
  "data-subtitle": subtitle,
1788
1789
  "data-timestamp": timestamp,
1789
- children: /* @__PURE__ */ jsx("div", { className: "h-0.5 w-1 rounded-full bg-gray-500 dark:bg-slate-400" })
1790
+ children: /* @__PURE__ */ jsx("div", { className: "h-0.5 w-1 rounded-full bg-muted" })
1790
1791
  })
1791
1792
  })]
1792
1793
  });
@@ -1821,11 +1822,11 @@ const TimelineBar = ({ onClick, className, timestampUtcMs: timestamp, additions,
1821
1822
  children: [
1822
1823
  /* @__PURE__ */ jsx("div", { children: formatTimestamp$1(timestamp) }),
1823
1824
  /* @__PURE__ */ jsx("div", {
1824
- className: "text-green-900 dark:text-green-100",
1825
+ className: "text-success",
1825
1826
  children: `${additions} additions +`
1826
1827
  }),
1827
1828
  /* @__PURE__ */ jsx("div", {
1828
- className: "text-red-700 dark:text-red-100",
1829
+ className: "text-destructive",
1829
1830
  children: `${deletions} deletions -`
1830
1831
  })
1831
1832
  ]
@@ -1846,12 +1847,12 @@ const TimelineBar = ({ onClick, className, timestampUtcMs: timestamp, additions,
1846
1847
  size: 10,
1847
1848
  className: "absolute top-[-11px] left-[-2px] z-40"
1848
1849
  }), noChanges ? /* @__PURE__ */ jsx("div", {
1849
- className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300 dark:hover:bg-blue-600", className),
1850
+ className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:hover-effect", className),
1850
1851
  "data-timestamp": timestamp,
1851
1852
  onClick,
1852
- children: /* @__PURE__ */ jsx("div", { className: "size-[3px] rounded-full bg-gray-500 dark:bg-slate-400" })
1853
+ children: /* @__PURE__ */ jsx("div", { className: "size-[3px] rounded-full bg-muted-foreground" })
1853
1854
  }) : /* @__PURE__ */ jsx(ConnectTooltip, {
1854
- className: "rounded-md bg-gray-900 text-white dark:bg-slate-50 dark:text-slate-900",
1855
+ className: "rounded-md bg-primary text-primary-foreground",
1855
1856
  content: tooltipContent,
1856
1857
  open,
1857
1858
  onOpenChange: setOpen,
@@ -1859,15 +1860,15 @@ const TimelineBar = ({ onClick, className, timestampUtcMs: timestamp, additions,
1859
1860
  side: "bottom",
1860
1861
  sideOffset: 5,
1861
1862
  children: /* @__PURE__ */ jsxs("div", {
1862
- className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:bg-blue-300 dark:hover:bg-blue-600", className, isSelected && "bg-blue-300 dark:bg-blue-600"),
1863
+ className: twMerge("flex h-[25px] w-1.5 cursor-pointer flex-col items-center justify-center rounded-[2px] hover:hover-effect", className, isSelected && "bg-info/10"),
1863
1864
  "data-timestamp": timestamp,
1864
1865
  onClick,
1865
1866
  children: [/* @__PURE__ */ jsx("div", {
1866
1867
  className: "flex h-3 w-0.5 items-end",
1867
- children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-t-full bg-green-600 dark:bg-green-300", addBarHeight) })
1868
+ children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-t-full bg-success", addBarHeight) })
1868
1869
  }), /* @__PURE__ */ jsx("div", {
1869
1870
  className: "flex h-3 w-0.5 items-start",
1870
- children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-b-full bg-red-600 dark:bg-red-300", delBarHeight) })
1871
+ children: /* @__PURE__ */ jsx("div", { className: twMerge("h-3 w-0.5 rounded-b-full bg-destructive", delBarHeight) })
1871
1872
  })]
1872
1873
  })
1873
1874
  })]
@@ -1934,14 +1935,14 @@ const DocumentTimeline = (props) => {
1934
1935
  className: "relative h-[36px] w-full",
1935
1936
  children: [
1936
1937
  /* @__PURE__ */ jsx("div", {
1937
- className: "absolute left-0 z-20 h-[17px] w-[6px] bg-gray-50 dark:bg-slate-800",
1938
- children: /* @__PURE__ */ jsx("div", { className: "mt-[11px] h-[6px] w-[6px] rounded-tl-md bg-gray-50 dark:bg-slate-800" })
1938
+ className: "absolute left-0 z-20 h-[17px] w-[6px] bg-background",
1939
+ children: /* @__PURE__ */ jsx("div", { className: "mt-[11px] h-[6px] w-[6px] rounded-tl-md bg-background" })
1939
1940
  }),
1940
1941
  /* @__PURE__ */ jsx("div", {
1941
- className: "absolute top-[11px] right-0 z-20 h-[6px] w-[6px] bg-gray-50 dark:bg-slate-800",
1942
- children: /* @__PURE__ */ jsx("div", { className: "h-[6px] w-[6px] rounded-tr-md bg-gray-50 dark:bg-slate-800" })
1942
+ className: "absolute top-[11px] right-0 z-20 h-[6px] w-[6px] bg-background",
1943
+ children: /* @__PURE__ */ jsx("div", { className: "h-[6px] w-[6px] rounded-tr-md bg-background" })
1943
1944
  }),
1944
- /* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 h-[25px] rounded-md bg-gray-50 dark:bg-slate-800" }),
1945
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 h-[25px] rounded-md bg-background" }),
1945
1946
  /* @__PURE__ */ jsx("div", {
1946
1947
  className: "absolute inset-x-0 bottom-0 h-[36px]",
1947
1948
  children: /* @__PURE__ */ jsx("div", {
@@ -1953,14 +1954,14 @@ const DocumentTimeline = (props) => {
1953
1954
  className: "flex",
1954
1955
  children: unselectedContent
1955
1956
  }), /* @__PURE__ */ jsx("div", {
1956
- className: "flex rounded-sm bg-blue-200 dark:bg-blue-700",
1957
+ className: "flex rounded-sm bg-info/10",
1957
1958
  children: selectedContent
1958
1959
  })]
1959
1960
  })
1960
1961
  })
1961
1962
  }),
1962
- /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute bottom-0 left-0 z-10 h-[25px] w-2 rounded-l-md bg-gray-50 dark:bg-slate-800" }),
1963
- /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute right-0 bottom-0 z-10 h-[25px] w-2 rounded-r-md bg-gray-50 dark:bg-slate-800" })
1963
+ /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute bottom-0 left-0 z-10 h-[25px] w-2 rounded-l-md bg-background" }),
1964
+ /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute right-0 bottom-0 z-10 h-[25px] w-2 rounded-r-md bg-background" })
1964
1965
  ]
1965
1966
  })
1966
1967
  });
@@ -1978,7 +1979,7 @@ function ToolbarContainer(props) {
1978
1979
  const { children, className, ...rest } = props;
1979
1980
  return /* @__PURE__ */ jsx("div", {
1980
1981
  ...rest,
1981
- className: twMerge("flex h-12 w-full items-center justify-between rounded-xl border border-gray-200 bg-gray-50 px-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
1982
+ className: twMerge("flex h-12 w-full items-center justify-between rounded-xl border border-border bg-background px-4", className),
1982
1983
  children
1983
1984
  });
1984
1985
  }
@@ -2048,7 +2049,7 @@ function ToolbarButton(props) {
2048
2049
  return /* @__PURE__ */ jsx("button", {
2049
2050
  ...rest,
2050
2051
  disabled,
2051
- className: twMerge("grid size-fit place-items-center rounded-lg border border-gray-200 bg-gray-50 p-1 text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", disabled ? "cursor-not-allowed text-gray-500 dark:text-slate-400" : "cursor-pointer active:opacity-70", className),
2052
+ className: twMerge("grid size-fit place-items-center rounded-lg border border-border bg-background p-1 text-foreground hover:hover-effect active:active-effect disabled:disabled-effect", className),
2052
2053
  children
2053
2054
  });
2054
2055
  }
@@ -2208,7 +2209,7 @@ function ToolbarInput(props) {
2208
2209
  const { defaultValue, className, onSubmit, onCancel, "aria-label": ariaLabel } = props;
2209
2210
  return /* @__PURE__ */ jsx(NodeInput, {
2210
2211
  defaultValue,
2211
- className: twMerge("text-center text-sm font-medium text-gray-500 dark:text-slate-400", className),
2212
+ className: twMerge("text-center text-sm font-medium text-muted-foreground", className),
2212
2213
  "aria-label": ariaLabel,
2213
2214
  onCancel,
2214
2215
  onSubmit
@@ -2246,7 +2247,7 @@ function ToolbarName(props) {
2246
2247
  "aria-label": "Document name"
2247
2248
  });
2248
2249
  return /* @__PURE__ */ jsx("h1", {
2249
- className: twMerge("cursor-pointer text-sm font-medium text-gray-500 hover:text-gray-700 dark:text-slate-400 dark:hover:text-slate-200", titleClassName),
2250
+ className: twMerge("cursor-pointer text-sm font-medium text-muted-foreground hover:hover-effect", titleClassName),
2250
2251
  onClick: activateEditing,
2251
2252
  title: "Click to edit",
2252
2253
  children: documentName
@@ -2438,6 +2439,39 @@ function ControlsContainerSlot(props) {
2438
2439
  });
2439
2440
  }
2440
2441
  //#endregion
2442
+ //#region src/connect/components/drive-auth-gate/drive-auth-gate.tsx
2443
+ /**
2444
+ * Reusable "log in to access this drive" card. Used both as the content of the
2445
+ * drive-add auth modal and as the full-page gate shown when the user logs out
2446
+ * while inside a protected drive — so the two stay visually identical.
2447
+ */
2448
+ function DriveAuthGate(props) {
2449
+ const { onLogin, className } = props;
2450
+ return /* @__PURE__ */ jsxs("div", {
2451
+ className: twMerge("flex w-[28rem] max-w-[calc(100%-2rem)] flex-col items-center gap-4 rounded-3xl bg-background p-8 text-center shadow-2xl ring-1 ring-black/5 dark:ring-white/10", className),
2452
+ children: [
2453
+ /* @__PURE__ */ jsx("h2", {
2454
+ className: "text-xl font-semibold text-foreground",
2455
+ children: "Log in to access this drive"
2456
+ }),
2457
+ /* @__PURE__ */ jsx("p", {
2458
+ className: "text-sm text-muted-foreground",
2459
+ children: "This drive requires you to sign in with Renown to view or edit it."
2460
+ }),
2461
+ /* @__PURE__ */ jsxs("button", {
2462
+ type: "button",
2463
+ onClick: onLogin,
2464
+ className: "mt-2 flex items-center gap-2 rounded-lg border border-border bg-card px-6 py-2.5 text-sm font-semibold text-foreground shadow-sm transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2465
+ children: [/* @__PURE__ */ jsx("span", { children: "Log in with" }), /* @__PURE__ */ jsx(RenownLogo, {
2466
+ width: 58,
2467
+ height: 16,
2468
+ className: "-translate-y-[3px]"
2469
+ })]
2470
+ })
2471
+ ]
2472
+ });
2473
+ }
2474
+ //#endregion
2441
2475
  //#region src/connect/components/modal/replace-duplicate-modal.tsx
2442
2476
  function ConnectReplaceDuplicateModal(props) {
2443
2477
  const { open, onOpenChange, title = "Document Already Exists", fileName, message, duplicateLabel = "Create Copy", onDuplicate, overlayProps, contentProps } = props;
@@ -2453,11 +2487,11 @@ function ConnectReplaceDuplicateModal(props) {
2453
2487
  /* @__PURE__ */ jsxs("div", {
2454
2488
  className: "flex items-center justify-between pb-2",
2455
2489
  children: [/* @__PURE__ */ jsx("div", {
2456
- className: "text-2xl font-bold text-gray-900 dark:text-slate-100",
2490
+ className: "text-2xl font-bold text-foreground",
2457
2491
  children: title
2458
2492
  }), /* @__PURE__ */ jsx("button", {
2459
2493
  type: "button",
2460
- className: "flex size-6 items-center justify-center rounded-md outline-none hover:bg-gray-100 dark:hover:bg-slate-700",
2494
+ className: "flex size-6 items-center justify-center rounded-md outline-none hover:hover-effect",
2461
2495
  onClick: () => onOpenChange?.(false),
2462
2496
  children: /* @__PURE__ */ jsx(Icon, {
2463
2497
  name: "XmarkLight",
@@ -2466,7 +2500,7 @@ function ConnectReplaceDuplicateModal(props) {
2466
2500
  })]
2467
2501
  }),
2468
2502
  /* @__PURE__ */ jsx("div", {
2469
- className: "my-6 rounded-md bg-gray-50 p-4 text-center text-gray-900 dark:bg-slate-700 dark:text-slate-100",
2503
+ className: "my-6 rounded-md bg-background p-4 text-center text-foreground",
2470
2504
  children: message || defaultMessage
2471
2505
  }),
2472
2506
  /* @__PURE__ */ jsx("div", {
@@ -2487,7 +2521,7 @@ function UploadFileItemErrorDetails(props) {
2487
2521
  const { status, errorDetails } = props;
2488
2522
  if (!((status === "failed" || status === "unsupported-document-type") && errorDetails)) return null;
2489
2523
  return /* @__PURE__ */ jsx("div", {
2490
- className: "text-xs leading-[18px] wrap-break-word text-gray-500 dark:text-slate-400",
2524
+ className: "text-xs leading-[18px] wrap-break-word text-muted-foreground",
2491
2525
  children: errorDetails
2492
2526
  });
2493
2527
  }
@@ -2517,16 +2551,16 @@ function UploadFileItemHeader(props) {
2517
2551
  children: /* @__PURE__ */ jsx(Icon, {
2518
2552
  name: getDocumentIcon(documentType),
2519
2553
  size: 48,
2520
- className: "text-gray-700 dark:text-slate-200"
2554
+ className: "text-foreground"
2521
2555
  })
2522
2556
  }),
2523
2557
  /* @__PURE__ */ jsxs("div", {
2524
2558
  className: "flex flex-1 flex-col gap-0.5",
2525
2559
  children: [/* @__PURE__ */ jsx("div", {
2526
- className: "text-xs leading-[18px] font-medium text-gray-900 dark:text-slate-50",
2560
+ className: "text-xs leading-[18px] font-medium text-foreground",
2527
2561
  children: fileName
2528
2562
  }), /* @__PURE__ */ jsx("div", {
2529
- className: "text-xs leading-[18px] font-medium text-gray-500 dark:text-slate-400",
2563
+ className: "text-xs leading-[18px] font-medium text-muted-foreground",
2530
2564
  children: fileSize
2531
2565
  })]
2532
2566
  }),
@@ -2535,7 +2569,7 @@ function UploadFileItemHeader(props) {
2535
2569
  children: /* @__PURE__ */ jsx("button", {
2536
2570
  type: "button",
2537
2571
  onClick: onClose,
2538
- className: "flex h-[18px] w-[18px] items-center justify-center text-gray-700 hover:text-gray-800 dark:text-slate-200 dark:hover:text-slate-100",
2572
+ className: "flex h-[18px] w-[18px] items-center justify-center text-foreground hover:hover-effect",
2539
2573
  "aria-label": "Close",
2540
2574
  children: /* @__PURE__ */ jsx(Icon, {
2541
2575
  name: "XmarkLight",
@@ -2552,9 +2586,9 @@ function UploadFileItemProgressBar(props) {
2552
2586
  const { status, progress = 0 } = props;
2553
2587
  if (status !== "uploading") return null;
2554
2588
  return /* @__PURE__ */ jsx("div", {
2555
- className: "h-2 w-full overflow-hidden rounded-sm bg-gray-200 dark:bg-slate-600 dark:text-slate-100",
2589
+ className: "h-2 w-full overflow-hidden rounded-sm bg-secondary",
2556
2590
  children: /* @__PURE__ */ jsx("div", {
2557
- className: "h-full bg-blue-900 transition-all duration-300 ease-out dark:bg-blue-50",
2591
+ className: "h-full bg-info transition-all duration-300 ease-out",
2558
2592
  style: { width: `${Math.min(100, Math.max(0, progress))}%` }
2559
2593
  })
2560
2594
  });
@@ -2574,13 +2608,13 @@ function getStatusText(status) {
2574
2608
  }
2575
2609
  function getStatusColor(status) {
2576
2610
  switch (status) {
2577
- case "success": return "text-green-700 dark:text-green-100";
2611
+ case "success": return "text-success";
2578
2612
  case "failed":
2579
2613
  case "unsupported-document-type":
2580
2614
  case "pending":
2581
- case "conflict": return "text-red-900 dark:text-red-400";
2582
- case "uploading": return "text-gray-900 dark:text-slate-50";
2583
- default: return "text-gray-900 dark:text-slate-50";
2615
+ case "conflict": return "text-destructive";
2616
+ case "uploading": return "text-foreground";
2617
+ default: return "text-foreground";
2584
2618
  }
2585
2619
  }
2586
2620
  function shouldShowCTA(status, onOpenDocument, onFindResolution) {
@@ -2606,13 +2640,13 @@ function UploadFileItemStatusRow(props) {
2606
2640
  children: getStatusText(status)
2607
2641
  }),
2608
2642
  status === "uploading" && /* @__PURE__ */ jsxs("div", {
2609
- className: "text-xs leading-[18px] font-medium text-gray-900 dark:text-slate-50",
2643
+ className: "text-xs leading-[18px] font-medium text-foreground",
2610
2644
  children: [Math.round(progress), "%"]
2611
2645
  }),
2612
2646
  shouldShowCTA(status, onOpenDocument, onFindResolution) && /* @__PURE__ */ jsx("button", {
2613
2647
  type: "button",
2614
2648
  onClick: handleCTAClick,
2615
- className: "text-xs leading-[18px] text-blue-900 hover:opacity-80 dark:text-blue-100",
2649
+ className: "text-xs leading-[18px] text-info hover:hover-effect",
2616
2650
  children: getCTAText(status)
2617
2651
  })
2618
2652
  ]
@@ -2624,7 +2658,7 @@ const UploadFileItem = /* @__PURE__ */ forwardRef(function UploadFileItem(props,
2624
2658
  const { fileName, fileSize, status, documentType, progress = 0, errorDetails, onClose, onOpenDocument, onFindResolution, className, ...delegatedProps } = props;
2625
2659
  return /* @__PURE__ */ jsxs("div", {
2626
2660
  ref,
2627
- className: twMerge("flex w-full flex-col gap-0.5 rounded-md border border-gray-100 bg-gray-50 p-2 shadow-sidebar dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
2661
+ className: twMerge("flex w-full flex-col gap-0.5 rounded-md border border-border bg-background p-2 shadow-sidebar", className),
2628
2662
  ...delegatedProps,
2629
2663
  children: [/* @__PURE__ */ jsx(UploadFileItemHeader, {
2630
2664
  fileName,
@@ -2665,7 +2699,7 @@ function UploadFileList(props) {
2665
2699
  const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
2666
2700
  const computedTitle = useMemo(() => getUploadListTitle(items.length, title), [items.length, title]);
2667
2701
  return /* @__PURE__ */ jsxs("div", {
2668
- className: twMerge("w-89.5 rounded-md border border-gray-100 bg-gray-50 p-4 shadow-charcoal dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
2702
+ className: twMerge("w-89.5 rounded-md border border-border bg-background p-4 shadow-charcoal", className),
2669
2703
  ...delegatedProps,
2670
2704
  children: [/* @__PURE__ */ jsxs("div", {
2671
2705
  className: "flex items-center justify-between",
@@ -2674,7 +2708,7 @@ function UploadFileList(props) {
2674
2708
  "aria-expanded": !isCollapsed,
2675
2709
  "aria-label": isCollapsed ? "Expand list" : "Collapse list",
2676
2710
  onClick: () => setIsCollapsed((v) => !v),
2677
- className: "min-w-0 flex-1 text-left text-sm/4 font-medium text-gray-900 hover:opacity-80 dark:text-slate-50",
2711
+ className: "min-w-0 flex-1 text-left text-sm/4 font-medium text-foreground hover:hover-effect",
2678
2712
  children: computedTitle
2679
2713
  }), /* @__PURE__ */ jsxs("div", {
2680
2714
  className: "flex shrink-0 items-center gap-4",
@@ -2682,7 +2716,7 @@ function UploadFileList(props) {
2682
2716
  type: "button",
2683
2717
  "aria-label": isCollapsed ? "Expand" : "Collapse",
2684
2718
  onClick: () => setIsCollapsed((v) => !v),
2685
- className: "text-gray-900 hover:opacity-80 dark:text-slate-50",
2719
+ className: "text-foreground hover:hover-effect",
2686
2720
  children: /* @__PURE__ */ jsx("span", {
2687
2721
  className: twMerge("inline-block size-4 transition-transform select-none", isCollapsed ? "-rotate-90" : "rotate-0"),
2688
2722
  children: /* @__PURE__ */ jsx(Icon, {
@@ -2695,7 +2729,7 @@ function UploadFileList(props) {
2695
2729
  type: "button",
2696
2730
  "aria-label": "Close",
2697
2731
  onClick: onClose,
2698
- className: "text-gray-900 hover:opacity-80 dark:text-slate-50",
2732
+ className: "text-foreground hover:hover-effect",
2699
2733
  children: /* @__PURE__ */ jsx("span", {
2700
2734
  className: "inline-block size-4 select-none",
2701
2735
  children: /* @__PURE__ */ jsx(Icon, {
@@ -3029,18 +3063,18 @@ function DropZone(props) {
3029
3063
  children: [
3030
3064
  children,
3031
3065
  enable && isDropTarget && /* @__PURE__ */ jsx("div", {
3032
- className: "pointer-events-none fixed inset-0 z-1000 flex min-h-screen w-screen items-center justify-center bg-gray-900/50 dark:bg-slate-900/50",
3066
+ className: "pointer-events-none fixed inset-0 z-1000 flex min-h-screen w-screen items-center justify-center bg-primary/50",
3033
3067
  children: /* @__PURE__ */ jsx("div", {
3034
- className: "rounded-3xl bg-gray-50 p-6 shadow-charcoal dark:bg-slate-800",
3068
+ className: "rounded-3xl bg-background p-6 shadow-charcoal",
3035
3069
  children: /* @__PURE__ */ jsxs("div", {
3036
- className: "relative flex h-32.5 w-100 flex-col items-center justify-start overflow-visible rounded-lg border border-dashed border-gray-900 px-4 py-6",
3070
+ className: "relative flex h-32.5 w-100 flex-col items-center justify-start overflow-visible rounded-lg border border-dashed border-foreground px-4 py-6",
3037
3071
  children: [
3038
3072
  /* @__PURE__ */ jsx("div", {
3039
- className: "text-center text-base/5 text-gray-500 dark:text-slate-400",
3073
+ className: "text-center text-base/5 text-muted-foreground",
3040
3074
  children: title
3041
3075
  }),
3042
3076
  /* @__PURE__ */ jsx("div", {
3043
- className: "text-center text-base/5 text-gray-500 dark:text-slate-400",
3077
+ className: "text-center text-base/5 text-muted-foreground",
3044
3078
  children: subtitle
3045
3079
  }),
3046
3080
  /* @__PURE__ */ jsx("span", {
@@ -3102,9 +3136,9 @@ function ConnectDropdownMenu(props) {
3102
3136
  className: "outline-none",
3103
3137
  children
3104
3138
  }), /* @__PURE__ */ jsx(DropdownMenuContent, {
3105
- className: twMerge("cursor-pointer rounded-2xl border border-gray-200 bg-gray-50 text-sm font-medium text-gray-500 shadow-lg dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", menuClassName),
3139
+ className: twMerge("cursor-pointer rounded-2xl border border-border bg-popover text-sm font-medium text-muted-foreground shadow-lg", menuClassName),
3106
3140
  children: items.map(({ id, label, icon, className }) => /* @__PURE__ */ jsxs(DropdownMenuItem, {
3107
- className: twMerge("flex items-center px-5 py-2 outline-none first-of-type:rounded-t-2xl first-of-type:pt-3 last-of-type:rounded-b-2xl last-of-type:pb-3 hover:bg-gray-50 dark:hover:bg-slate-800", className),
3141
+ className: twMerge("flex items-center px-5 py-2 outline-none first-of-type:rounded-t-2xl first-of-type:pt-3 last-of-type:rounded-b-2xl last-of-type:pb-3 hover:hover-effect", className),
3108
3142
  onClick: (e) => e.stopPropagation(),
3109
3143
  onSelect: () => onItemClick(id),
3110
3144
  children: [icon ? /* @__PURE__ */ jsx("span", {
@@ -3123,7 +3157,7 @@ function EditorActionButtons(props) {
3123
3157
  className: "flex items-center gap-x-2",
3124
3158
  children: [
3125
3159
  onSwitchboardLinkClick && /* @__PURE__ */ jsx("button", {
3126
- className: "grid size-8 place-items-center rounded-lg border border-gray-200 bg-gray-50 text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:disabled:text-slate-400",
3160
+ className: "grid size-8 place-items-center rounded-lg border border-border bg-background text-foreground disabled:disabled-effect",
3127
3161
  onClick: onSwitchboardLinkClick,
3128
3162
  disabled: !onSwitchboardLinkClick,
3129
3163
  children: /* @__PURE__ */ jsx(Icon, {
@@ -3132,7 +3166,7 @@ function EditorActionButtons(props) {
3132
3166
  })
3133
3167
  }),
3134
3168
  onShowRevisionHistory && /* @__PURE__ */ jsx("button", {
3135
- className: "grid size-8 place-items-center rounded-lg border border-gray-200 bg-gray-50 text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:disabled:text-slate-400",
3169
+ className: "grid size-8 place-items-center rounded-lg border border-border bg-background text-foreground disabled:disabled-effect",
3136
3170
  onClick: onShowRevisionHistory,
3137
3171
  disabled: !onShowRevisionHistory,
3138
3172
  children: /* @__PURE__ */ jsx(Icon, {
@@ -3141,7 +3175,7 @@ function EditorActionButtons(props) {
3141
3175
  })
3142
3176
  }),
3143
3177
  onShowTimeline && /* @__PURE__ */ jsx("button", {
3144
- className: "grid size-8 place-items-center rounded-lg border border-gray-200 bg-gray-50 text-gray-900 disabled:cursor-not-allowed disabled:text-gray-500 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:disabled:text-slate-400",
3178
+ className: "grid size-8 place-items-center rounded-lg border border-border bg-background text-foreground disabled:disabled-effect",
3145
3179
  onClick: onShowTimeline,
3146
3180
  disabled: !onShowTimeline,
3147
3181
  children: /* @__PURE__ */ jsx(Icon, {
@@ -3150,7 +3184,7 @@ function EditorActionButtons(props) {
3150
3184
  })
3151
3185
  }),
3152
3186
  /* @__PURE__ */ jsx("button", {
3153
- className: "grid size-8 place-items-center rounded-lg border border-gray-200 bg-gray-50 text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
3187
+ className: "grid size-8 place-items-center rounded-lg border border-border bg-background text-foreground",
3154
3188
  onClick: onClose,
3155
3189
  children: /* @__PURE__ */ jsx(Icon, {
3156
3190
  name: "XmarkLight",
@@ -3164,15 +3198,15 @@ function EditorActionButtons(props) {
3164
3198
  //#region src/connect/components/editor-undo-redo-buttons/editor-undo-redo-buttons.tsx
3165
3199
  function EditorUndoRedoButtons(props) {
3166
3200
  const { canUndo, canRedo, undo, redo } = props;
3167
- const buttonStyles = "w-8 h-8 rounded-lg flex justify-center items-center rounded border border-gray-200 bg-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100";
3201
+ const buttonStyles = "w-8 h-8 rounded-lg flex justify-center items-center rounded border border-border bg-background";
3168
3202
  return /* @__PURE__ */ jsxs("div", {
3169
- className: "flex gap-x-2 text-gray-500 dark:text-slate-400",
3203
+ className: "flex gap-x-2 text-muted-foreground",
3170
3204
  children: [/* @__PURE__ */ jsx("button", {
3171
3205
  className: buttonStyles,
3172
3206
  disabled: !canUndo,
3173
3207
  onClick: undo,
3174
3208
  children: /* @__PURE__ */ jsx(Icon, {
3175
- className: twMerge("-scale-x-100", canUndo ? "text-gray-900 active:opacity-50 dark:text-slate-50" : "text-gray-500 dark:text-slate-400"),
3209
+ className: twMerge("-scale-x-100", canUndo ? "text-foreground active:active-effect" : "text-muted-foreground"),
3176
3210
  name: "RedoArrow",
3177
3211
  size: 18
3178
3212
  })
@@ -3181,7 +3215,7 @@ function EditorUndoRedoButtons(props) {
3181
3215
  disabled: !canRedo,
3182
3216
  onClick: redo,
3183
3217
  children: /* @__PURE__ */ jsx(Icon, {
3184
- className: twMerge(canRedo ? "text-gray-900 active:opacity-50 dark:text-slate-50" : "text-gray-500 dark:text-slate-400"),
3218
+ className: twMerge(canRedo ? "text-foreground active:active-effect" : "text-muted-foreground"),
3185
3219
  name: "RedoArrow",
3186
3220
  size: 18
3187
3221
  })
@@ -3286,7 +3320,7 @@ const debugNodeOptionsMap = {
3286
3320
  ADD_TRIGGER: {
3287
3321
  label: "Add Trigger",
3288
3322
  icon: /* @__PURE__ */ jsx(Icon, {
3289
- className: "text-orange-900 dark:text-orange-100",
3323
+ className: "text-warning",
3290
3324
  name: "Plus",
3291
3325
  size: 16
3292
3326
  })
@@ -3294,7 +3328,7 @@ const debugNodeOptionsMap = {
3294
3328
  REMOVE_TRIGGER: {
3295
3329
  label: "Remove Trigger",
3296
3330
  icon: /* @__PURE__ */ jsx(Icon, {
3297
- className: "text-orange-900 dark:text-orange-100",
3331
+ className: "text-warning",
3298
3332
  name: "Xmark",
3299
3333
  size: 16
3300
3334
  })
@@ -3302,7 +3336,7 @@ const debugNodeOptionsMap = {
3302
3336
  ADD_INVALID_TRIGGER: {
3303
3337
  label: "Add Trigger",
3304
3338
  icon: /* @__PURE__ */ jsx(Icon, {
3305
- className: "text-orange-900 dark:text-orange-100",
3339
+ className: "text-warning",
3306
3340
  name: "Exclamation",
3307
3341
  size: 16
3308
3342
  })
@@ -3329,7 +3363,7 @@ const folderNodeDropdownOptions = {
3329
3363
  name: "Trash",
3330
3364
  size: 16
3331
3365
  }),
3332
- className: "text-red-900 dark:text-red-400"
3366
+ className: "text-destructive"
3333
3367
  }
3334
3368
  };
3335
3369
  const fileNodeDropdownOptions = {
@@ -3378,37 +3412,37 @@ function SyncStatusIcon(props) {
3378
3412
  [INITIAL_SYNC]: /* @__PURE__ */ jsx(Icon, {
3379
3413
  size: 16,
3380
3414
  ...iconProps,
3381
- className: twMerge("text-blue-900 dark:text-blue-100", className),
3415
+ className: twMerge("text-info", className),
3382
3416
  name: icons[INITIAL_SYNC]
3383
3417
  }),
3384
3418
  [SYNCING]: /* @__PURE__ */ jsx(Icon, {
3385
3419
  size: 16,
3386
3420
  ...iconProps,
3387
- className: twMerge("text-blue-900 dark:text-blue-100", className),
3421
+ className: twMerge("text-info", className),
3388
3422
  name: icons[SYNCING]
3389
3423
  }),
3390
3424
  [SUCCESS]: /* @__PURE__ */ jsx(Icon, {
3391
3425
  size: 16,
3392
3426
  ...iconProps,
3393
- className: twMerge("text-green-900 dark:text-green-100", className),
3427
+ className: twMerge("text-success", className),
3394
3428
  name: icons[SUCCESS]
3395
3429
  }),
3396
3430
  [CONFLICT]: /* @__PURE__ */ jsx(Icon, {
3397
3431
  size: 16,
3398
3432
  ...iconProps,
3399
- className: twMerge("text-orange-900 dark:text-orange-100", className),
3433
+ className: twMerge("text-warning", className),
3400
3434
  name: icons[CONFLICT]
3401
3435
  }),
3402
3436
  [MISSING]: /* @__PURE__ */ jsx(Icon, {
3403
3437
  size: 16,
3404
3438
  ...iconProps,
3405
- className: twMerge("text-red-900 dark:text-red-400", className),
3439
+ className: twMerge("text-destructive", className),
3406
3440
  name: icons[MISSING]
3407
3441
  }),
3408
3442
  [ERROR]: /* @__PURE__ */ jsx(Icon, {
3409
3443
  size: 16,
3410
3444
  ...iconProps,
3411
- className: twMerge("text-red-900 dark:text-red-400", className),
3445
+ className: twMerge("text-destructive", className),
3412
3446
  name: icons[ERROR]
3413
3447
  })
3414
3448
  }[syncStatus];
@@ -3476,7 +3510,7 @@ function FileItem(props) {
3476
3510
  width: 32,
3477
3511
  draggable: false
3478
3512
  }) : /* @__PURE__ */ jsx(DefaultFileIcon, {}), isReadMode && syncStatus && /* @__PURE__ */ jsx("div", {
3479
- className: "absolute right-0 bottom-[-2px] size-3 rounded-full bg-gray-50 dark:bg-slate-800",
3513
+ className: "absolute right-0 bottom-[-2px] size-3 rounded-full bg-background",
3480
3514
  children: /* @__PURE__ */ jsx("div", {
3481
3515
  className: "absolute top-[-2px] left-[-2px]",
3482
3516
  children: /* @__PURE__ */ jsx(SyncStatusIcon, {
@@ -3486,16 +3520,16 @@ function FileItem(props) {
3486
3520
  })
3487
3521
  })]
3488
3522
  });
3489
- const containerStyles = twMerge("group flex h-12 cursor-pointer items-center rounded-lg bg-gray-200 px-2 text-gray-700 select-none hover:text-gray-800 dark:bg-slate-600 dark:text-slate-100 dark:hover:text-slate-100", isDragging ? "opacity-60" : "", className);
3523
+ const containerStyles = twMerge("group flex h-12 cursor-pointer items-center rounded-lg bg-muted px-2 text-foreground select-none hover:hover-effect", isDragging ? "opacity-60" : "", className);
3490
3524
  const content = isReadMode ? /* @__PURE__ */ jsxs("div", {
3491
3525
  className: "flex w-52 items-center justify-between",
3492
3526
  children: [/* @__PURE__ */ jsxs("div", {
3493
3527
  className: "mr-2 truncate group-hover:mr-0",
3494
3528
  children: [/* @__PURE__ */ jsx("div", {
3495
- className: "max-h-6 truncate text-sm font-medium text-gray-700 group-hover:text-gray-800 dark:text-slate-200 dark:group-hover:text-slate-100",
3529
+ className: "max-h-6 truncate text-sm font-medium text-foreground group-hover:hover-effect",
3496
3530
  children: fileNode.name
3497
3531
  }), /* @__PURE__ */ jsx("div", {
3498
- className: "max-h-6 truncate text-xs font-medium text-gray-700 group-hover:text-gray-800 dark:text-slate-200 dark:group-hover:text-slate-100",
3532
+ className: "max-h-6 truncate text-xs font-medium text-muted-foreground group-hover:hover-effect",
3499
3533
  children: fileNode.documentType
3500
3534
  })]
3501
3535
  }), isAllowedToCreateDocuments ? /* @__PURE__ */ jsx(ConnectDropdownMenu, {
@@ -3510,7 +3544,7 @@ function FileItem(props) {
3510
3544
  setIsDropdownMenuOpen(true);
3511
3545
  },
3512
3546
  children: /* @__PURE__ */ jsx(Icon, {
3513
- className: "text-gray-700 dark:text-slate-200",
3547
+ className: "text-foreground",
3514
3548
  name: "VerticalDots"
3515
3549
  })
3516
3550
  })
@@ -3539,7 +3573,7 @@ function FileItem(props) {
3539
3573
  }
3540
3574
  function DefaultFileIcon() {
3541
3575
  return /* @__PURE__ */ jsx("div", {
3542
- className: "text-white dark:text-slate-800",
3576
+ className: "text-primary-foreground",
3543
3577
  children: /* @__PURE__ */ jsxs("svg", {
3544
3578
  width: "32",
3545
3579
  height: "40",
@@ -3685,7 +3719,7 @@ function FolderItem(props) {
3685
3719
  setIsDropdownMenuOpen(false);
3686
3720
  }
3687
3721
  const content = isReadMode || !isAllowedToCreateDocuments ? /* @__PURE__ */ jsx("div", {
3688
- className: "ml-3 max-h-6 truncate font-medium text-gray-700 group-hover:text-gray-800 dark:text-slate-200 dark:group-hover:text-slate-100",
3722
+ className: "ml-3 max-h-6 truncate font-medium text-foreground group-hover:hover-effect",
3689
3723
  children: folderNode.name
3690
3724
  }) : /* @__PURE__ */ jsx(NodeInput, {
3691
3725
  className: "ml-3 font-medium",
@@ -3693,9 +3727,9 @@ function FolderItem(props) {
3693
3727
  onCancel,
3694
3728
  onSubmit
3695
3729
  });
3696
- const containerStyles = twMerge("group flex h-12 cursor-pointer items-center rounded-lg bg-gray-200 px-2 select-none dark:bg-slate-600 dark:text-slate-100", isDragging ? "opacity-60" : isDropTarget ? "bg-blue-100 dark:bg-blue-800" : "", className);
3730
+ const containerStyles = twMerge("group flex h-12 cursor-pointer items-center rounded-lg bg-muted px-2 select-none", isDragging ? "opacity-60" : isDropTarget ? "bg-info/10" : "", className);
3697
3731
  return /* @__PURE__ */ jsx("div", {
3698
- className: "relative w-64",
3732
+ className: "relative w-64 hover:hover-effect",
3699
3733
  onClick: isReadMode ? () => setSelectedNode(folderNode) : void 0,
3700
3734
  children: /* @__PURE__ */ jsxs("div", {
3701
3735
  ...dragProps,
@@ -3706,7 +3740,7 @@ function FolderItem(props) {
3706
3740
  children: [/* @__PURE__ */ jsx("div", {
3707
3741
  className: "p-1",
3708
3742
  children: /* @__PURE__ */ jsx("div", {
3709
- className: "relative text-gray-700 dark:text-slate-200",
3743
+ className: "relative text-foreground",
3710
3744
  children: /* @__PURE__ */ jsx(Icon, {
3711
3745
  name: "FolderClose",
3712
3746
  size: 24
@@ -3725,7 +3759,7 @@ function FolderItem(props) {
3725
3759
  setIsDropdownMenuOpen(true);
3726
3760
  },
3727
3761
  children: /* @__PURE__ */ jsx(Icon, {
3728
- className: "text-gray-700 dark:text-slate-200",
3762
+ className: "text-foreground",
3729
3763
  name: "VerticalDots"
3730
3764
  })
3731
3765
  })
@@ -3746,7 +3780,7 @@ function FooterLink(props) {
3746
3780
  //#region src/connect/components/footer/footer.tsx
3747
3781
  const Footer = ({ children, className, ...props }) => {
3748
3782
  return /* @__PURE__ */ jsx("footer", {
3749
- className: twMerge("flex items-center gap-x-6 text-xs font-medium text-gray-300 dark:text-slate-600", typeof className === "string" && className),
3783
+ className: twMerge("flex items-center gap-x-6 text-xs font-medium text-foreground", typeof className === "string" && className),
3750
3784
  ...props,
3751
3785
  children
3752
3786
  });
@@ -3758,9 +3792,9 @@ const FormInput = /* @__PURE__ */ forwardRef(function FormInput(props, ref) {
3758
3792
  const type = props.type ?? "text";
3759
3793
  const isError = !!errorMessage;
3760
3794
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
3761
- className: twMerge("mb-1 flex gap-2 rounded-md border border-gray-200 bg-gray-50 p-3 text-gray-900 placeholder:text-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-900", isError && "border-red-900 dark:border-red-50", containerClassName),
3795
+ className: twMerge("mb-1 flex gap-2 rounded-md border border-border bg-background p-3 text-foreground placeholder:text-muted-foreground disabled:disabled-effect", isError && "border-destructive", containerClassName),
3762
3796
  children: [icon && /* @__PURE__ */ jsx("span", {
3763
- className: twJoin((!isDirty || isError) && "text-gray-200 dark:text-slate-200"),
3797
+ className: twJoin((!isDirty || isError) && "text-foreground"),
3764
3798
  children: icon
3765
3799
  }), /* @__PURE__ */ jsx("input", {
3766
3800
  ...delegatedProps,
@@ -3769,7 +3803,7 @@ const FormInput = /* @__PURE__ */ forwardRef(function FormInput(props, ref) {
3769
3803
  type
3770
3804
  })]
3771
3805
  }), /* @__PURE__ */ jsx("p", {
3772
- className: twMerge("hidden min-h-4 text-xs text-red-900 dark:text-red-400", isError && "block", hideErrors && "hidden", errorMessageClassName),
3806
+ className: twMerge("hidden min-h-4 text-xs text-destructive", isError && "block", hideErrors && "hidden", errorMessageClassName),
3773
3807
  children: errorMessage
3774
3808
  })] });
3775
3809
  });
@@ -3809,22 +3843,22 @@ const Toggle = /* @__PURE__ */ forwardRef(function Toggle(props, ref) {
3809
3843
  type: "checkbox",
3810
3844
  value: "",
3811
3845
  ...props
3812
- }), /* @__PURE__ */ jsx("div", { className: "peer h-6 w-11 rounded-full bg-gray-500 peer-checked:bg-blue-900 peer-focus:outline-none after:absolute after:inset-s-0.5 after:top-0.5 after:size-5 after:rounded-full after:border after:border-none after:bg-gray-50 after:transition-all peer-checked:after:translate-x-full dark:bg-slate-400 dark:after:bg-slate-800" })]
3846
+ }), /* @__PURE__ */ jsx("div", { className: "peer h-6 w-11 rounded-full bg-muted-foreground peer-checked:bg-info peer-focus:outline-none after:absolute after:inset-s-0.5 after:top-0.5 after:size-5 after:rounded-full after:border after:border-none after:bg-background after:transition-all peer-checked:after:translate-x-full" })]
3813
3847
  });
3814
3848
  });
3815
3849
  //#endregion
3816
3850
  //#region src/connect/components/form/inputs/available-offline-toggle.tsx
3817
3851
  const AvailableOfflineToggle = /* @__PURE__ */ forwardRef(function AvailableOfflineToggle(props, ref) {
3818
3852
  return /* @__PURE__ */ jsxs("div", {
3819
- className: "flex items-center rounded-md border border-gray-200 bg-gray-50 p-3 text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
3853
+ className: "flex items-center rounded-md border border-border bg-background p-3 text-foreground",
3820
3854
  children: [/* @__PURE__ */ jsxs("div", {
3821
3855
  className: "flex-1",
3822
3856
  children: [/* @__PURE__ */ jsx("label", {
3823
- className: "font-medium text-gray-900 dark:text-slate-50",
3857
+ className: "font-medium text-foreground",
3824
3858
  htmlFor: "availableOffline",
3825
3859
  children: "Make available offline"
3826
3860
  }), /* @__PURE__ */ jsxs("p", {
3827
- className: "text-xs text-gray-700 dark:text-slate-200",
3861
+ className: "text-xs text-foreground",
3828
3862
  children: [
3829
3863
  "Check this options if you keep a local backup",
3830
3864
  /* @__PURE__ */ jsx("br", {}),
@@ -3844,7 +3878,7 @@ function Label(props) {
3844
3878
  const { children, className, ...labelProps } = props;
3845
3879
  return /* @__PURE__ */ jsx("label", {
3846
3880
  ...labelProps,
3847
- className: twMerge("block font-semibold text-gray-500 dark:text-slate-400", className),
3881
+ className: twMerge("block font-semibold text-muted-foreground", className),
3848
3882
  children
3849
3883
  });
3850
3884
  }
@@ -3881,7 +3915,7 @@ function AddLocalDriveForm(props) {
3881
3915
  children: [
3882
3916
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Label, {
3883
3917
  htmlFor: "name",
3884
- className: "text-sm font-medium text-gray-900 dark:text-slate-100",
3918
+ className: "text-sm font-medium text-foreground",
3885
3919
  children: "Drive Name"
3886
3920
  }), /* @__PURE__ */ jsx(FormInput, {
3887
3921
  ...register("name", { required: "Drive name is required" }),
@@ -3890,7 +3924,7 @@ function AddLocalDriveForm(props) {
3890
3924
  })] }),
3891
3925
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Label, {
3892
3926
  htmlFor: "driveApp",
3893
- className: "text-sm font-medium text-gray-900 dark:text-slate-100",
3927
+ className: "text-sm font-medium text-foreground",
3894
3928
  children: "Drive App"
3895
3929
  }), /* @__PURE__ */ jsx(AppFormInput, {
3896
3930
  control,
@@ -3898,7 +3932,7 @@ function AddLocalDriveForm(props) {
3898
3932
  })] }),
3899
3933
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Label, {
3900
3934
  htmlFor: "sharingType",
3901
- className: "text-sm font-medium text-gray-900 dark:text-slate-100",
3935
+ className: "text-sm font-medium text-foreground",
3902
3936
  children: "Location"
3903
3937
  }), /* @__PURE__ */ jsx(SharingTypeFormInput, { control })] }),
3904
3938
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(AvailableOfflineToggle, { ...register("availableOffline") }) }),
@@ -3915,9 +3949,9 @@ function AddLocalDriveForm(props) {
3915
3949
  //#region src/connect/components/form/inputs/drive-name.tsx
3916
3950
  function DriveName(props) {
3917
3951
  return /* @__PURE__ */ jsxs("div", {
3918
- className: "flex gap-2 rounded-xl bg-gray-100 p-3 font-semibold text-gray-500 dark:bg-slate-700 dark:text-slate-400",
3952
+ className: "flex gap-2 rounded-xl bg-muted p-3 font-semibold text-muted-foreground",
3919
3953
  children: [/* @__PURE__ */ jsx(Icon, {
3920
- className: "text-gray-700 dark:text-slate-200",
3954
+ className: "text-foreground",
3921
3955
  name: "Drive"
3922
3956
  }), props.driveName]
3923
3957
  });
@@ -3929,9 +3963,9 @@ function LocationInfo(props) {
3929
3963
  const locationInfo = locationInfoByLocation[location];
3930
3964
  return /* @__PURE__ */ jsxs("div", {
3931
3965
  ...divProps,
3932
- className: twMerge("my-3 flex items-center gap-2 rounded-xl border border-gray-100 bg-gray-50 p-3 text-gray-900 shadow-sm dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
3966
+ className: twMerge("my-3 flex items-center gap-2 rounded-xl border border-border bg-background p-3 text-foreground shadow-sm", className),
3933
3967
  children: [locationInfo.icon, /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", { children: locationInfo.title }), /* @__PURE__ */ jsx("p", {
3934
- className: "text-xs text-gray-200 dark:text-slate-700",
3968
+ className: "text-xs text-foreground",
3935
3969
  children: locationInfo.description
3936
3970
  })] })]
3937
3971
  });
@@ -4040,14 +4074,14 @@ function FormattedJsonViewer(props) {
4040
4074
  children: [/* @__PURE__ */ jsx(JsonView.Copied, { render: ({ onClick, ...props }) => {
4041
4075
  if (props["data-copied"]) return /* @__PURE__ */ jsx(Icon, {
4042
4076
  ...props,
4043
- className: "inline-block text-green-800 dark:text-green-100",
4077
+ className: "inline-block text-success",
4044
4078
  name: "FilesEarmark",
4045
4079
  size: 16
4046
4080
  });
4047
4081
  return /* @__PURE__ */ jsx(Icon, {
4048
4082
  ...props,
4049
4083
  onClick,
4050
- className: "inline-block cursor-pointer text-gray-700 dark:text-slate-200",
4084
+ className: "inline-block cursor-pointer text-foreground",
4051
4085
  name: "FilesEarmark",
4052
4086
  size: 16
4053
4087
  });
@@ -4088,7 +4122,7 @@ const HomeBackgroundImage = ({ src } = {}) => {
4088
4122
  })
4089
4123
  });
4090
4124
  return /* @__PURE__ */ jsx("div", {
4091
- className: "pointer-events-none fixed top-0 z-0 size-full bg-gray-50 dark:bg-slate-800",
4125
+ className: "pointer-events-none fixed top-0 z-0 size-full bg-background",
4092
4126
  children: /* @__PURE__ */ jsxs("svg", {
4093
4127
  width: "1858",
4094
4128
  height: "1256",
@@ -4175,15 +4209,15 @@ const HomeBackgroundImage = ({ src } = {}) => {
4175
4209
  const HomeScreenItem = function HomeScreenItem(props) {
4176
4210
  const { icon, title, description, containerClassName, shareable, onClick } = props;
4177
4211
  return /* @__PURE__ */ jsxs("div", {
4178
- className: twMerge("hover-bg-transparent relative flex h-24 w-40 cursor-pointer flex-col items-center justify-center overflow-hidden rounded-md p-2 text-center text-sm text-gray-900 dark:text-slate-50", containerClassName, onClick && "cursor-pointer"),
4212
+ className: twMerge("relative flex h-24 w-40 cursor-pointer flex-col items-center justify-center overflow-hidden rounded-md p-2 text-center text-sm text-foreground hover:hover-effect", containerClassName, onClick && "cursor-pointer"),
4179
4213
  onClick,
4180
4214
  children: [
4181
4215
  /* @__PURE__ */ jsx("div", {
4182
4216
  className: "mx-auto pb-2",
4183
4217
  children: icon || /* @__PURE__ */ jsx("div", {
4184
- className: "size-8 items-center justify-center rounded-lg bg-gray-900 pt-1 dark:bg-slate-50",
4218
+ className: "size-8 items-center justify-center rounded-lg bg-primary pt-1",
4185
4219
  children: /* @__PURE__ */ jsx("span", {
4186
- className: "w-6 text-white dark:text-slate-900",
4220
+ className: "w-6 text-primary-foreground",
4187
4221
  children: title.slice(0, 1).toUpperCase()
4188
4222
  })
4189
4223
  })
@@ -4191,10 +4225,10 @@ const HomeScreenItem = function HomeScreenItem(props) {
4191
4225
  /* @__PURE__ */ jsxs("div", {
4192
4226
  className: "w-full max-w-full",
4193
4227
  children: [/* @__PURE__ */ jsx("h3", {
4194
- className: "w-full max-w-full truncate px-2 text-gray-900 dark:text-slate-50",
4228
+ className: "w-full max-w-full truncate px-2 text-foreground",
4195
4229
  children: title
4196
4230
  }), description && /* @__PURE__ */ jsx("p", {
4197
- className: "text-gray-500 dark:text-slate-400",
4231
+ className: "text-muted-foreground",
4198
4232
  children: description
4199
4233
  })]
4200
4234
  }),
@@ -4230,7 +4264,7 @@ const HomeScreen = function HomeScreen(props) {
4230
4264
  return /* @__PURE__ */ jsx("div", {
4231
4265
  className: twMerge("relative container mx-auto flex h-full flex-col", containerClassName),
4232
4266
  children: /* @__PURE__ */ jsxs("div", {
4233
- className: "m-8 flex flex-wrap justify-center gap-4 bg-gray-50 pt-12 dark:bg-slate-800",
4267
+ className: "m-8 flex flex-wrap justify-center gap-4 bg-background pt-12",
4234
4268
  children: [/* @__PURE__ */ jsx(HomeBackgroundImage, { src: homeBackground ?? void 0 }), children]
4235
4269
  })
4236
4270
  });
@@ -4308,7 +4342,7 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4308
4342
  /* @__PURE__ */ jsx("div", {
4309
4343
  className: "flex shrink-0 items-center justify-between",
4310
4344
  children: /* @__PURE__ */ jsx("h2", {
4311
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
4345
+ className: "text-lg font-semibold text-foreground",
4312
4346
  children: "Integrity Inspector"
4313
4347
  })
4314
4348
  }),
@@ -4318,10 +4352,10 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4318
4352
  /* @__PURE__ */ jsxs("div", {
4319
4353
  className: "flex flex-1 flex-col gap-1",
4320
4354
  children: [/* @__PURE__ */ jsx("label", {
4321
- className: "text-xs font-medium text-gray-700 dark:text-slate-200",
4355
+ className: "text-xs font-medium text-foreground",
4322
4356
  children: "Document ID"
4323
4357
  }), /* @__PURE__ */ jsx("input", {
4324
- className: "rounded-sm border border-gray-300 px-3 py-1.5 text-sm outline-none focus:border-blue-400 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:focus:border-blue-500",
4358
+ className: "rounded-sm border border-border px-3 py-1.5 text-sm outline-none focus:border-info",
4325
4359
  onChange: (e) => setDocumentId(e.target.value),
4326
4360
  placeholder: "Enter document ID",
4327
4361
  type: "text",
@@ -4331,10 +4365,10 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4331
4365
  /* @__PURE__ */ jsxs("div", {
4332
4366
  className: "flex w-40 flex-col gap-1",
4333
4367
  children: [/* @__PURE__ */ jsx("label", {
4334
- className: "text-xs font-medium text-gray-700 dark:text-slate-200",
4368
+ className: "text-xs font-medium text-foreground",
4335
4369
  children: "Branch (optional)"
4336
4370
  }), /* @__PURE__ */ jsx("input", {
4337
- className: "rounded-sm border border-gray-300 px-3 py-1.5 text-sm outline-none focus:border-blue-400 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:focus:border-blue-500",
4371
+ className: "rounded-sm border border-border px-3 py-1.5 text-sm outline-none focus:border-info",
4338
4372
  onChange: (e) => setBranch(e.target.value),
4339
4373
  placeholder: "main",
4340
4374
  type: "text",
@@ -4345,7 +4379,7 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4345
4379
  className: "flex gap-2",
4346
4380
  children: [
4347
4381
  /* @__PURE__ */ jsxs("button", {
4348
- className: "flex items-center gap-1 rounded-sm border border-blue-300 bg-blue-50 px-3 py-1.5 text-sm text-blue-700 hover:bg-blue-100 disabled:opacity-50 dark:border-blue-600 dark:bg-blue-900 dark:text-blue-100 dark:hover:bg-blue-800",
4382
+ className: "flex items-center gap-1 rounded-sm border border-info bg-info/10 px-3 py-1.5 text-sm text-info hover:hover-effect disabled:disabled-effect",
4349
4383
  disabled: !documentId.trim() || status === "running" || confirmAction !== null,
4350
4384
  onClick: () => void handleValidate(),
4351
4385
  type: "button",
@@ -4355,7 +4389,7 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4355
4389
  }), "Validate"]
4356
4390
  }),
4357
4391
  /* @__PURE__ */ jsxs("button", {
4358
- className: "flex items-center gap-1 rounded-sm border border-yellow-300 bg-yellow-50 px-3 py-1.5 text-sm text-yellow-700 hover:bg-yellow-100 disabled:opacity-50 dark:border-yellow-600 dark:bg-yellow-900 dark:text-yellow-100 dark:hover:bg-yellow-800",
4392
+ className: "flex items-center gap-1 rounded-sm border border-warning bg-warning/10 px-3 py-1.5 text-sm text-warning hover:hover-effect disabled:disabled-effect",
4359
4393
  disabled: !documentId.trim() || status === "running" || confirmAction !== null,
4360
4394
  onClick: () => setConfirmAction("keyframes"),
4361
4395
  type: "button",
@@ -4365,7 +4399,7 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4365
4399
  }), "Rebuild Keyframes"]
4366
4400
  }),
4367
4401
  /* @__PURE__ */ jsxs("button", {
4368
- className: "flex items-center gap-1 rounded-sm border border-yellow-300 bg-yellow-50 px-3 py-1.5 text-sm text-yellow-700 hover:bg-yellow-100 disabled:opacity-50 dark:border-yellow-600 dark:bg-yellow-900 dark:text-yellow-100 dark:hover:bg-yellow-800",
4402
+ className: "flex items-center gap-1 rounded-sm border border-warning bg-warning/10 px-3 py-1.5 text-sm text-warning hover:hover-effect disabled:disabled-effect",
4369
4403
  disabled: !documentId.trim() || status === "running" || confirmAction !== null,
4370
4404
  onClick: () => setConfirmAction("snapshots"),
4371
4405
  type: "button",
@@ -4379,14 +4413,14 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4379
4413
  ]
4380
4414
  }),
4381
4415
  confirmAction && /* @__PURE__ */ jsxs("div", {
4382
- className: "flex shrink-0 items-center gap-3 rounded-sm border border-yellow-400 bg-yellow-50 px-3 py-2 dark:border-yellow-500 dark:bg-yellow-900",
4416
+ className: "flex shrink-0 items-center gap-3 rounded-sm border border-warning bg-warning/10 px-3 py-2",
4383
4417
  children: [
4384
4418
  /* @__PURE__ */ jsx("span", {
4385
- className: "text-sm text-yellow-800 dark:text-yellow-100",
4419
+ className: "text-sm text-warning",
4386
4420
  children: confirmAction === "keyframes" ? "This will delete all keyframes for this document. Continue?" : "This will invalidate all cached snapshots for this document. Continue?"
4387
4421
  }),
4388
4422
  /* @__PURE__ */ jsx("button", {
4389
- className: "rounded-sm bg-yellow-600 px-3 py-1 text-sm text-white hover:bg-yellow-700 dark:bg-yellow-300 dark:text-slate-900 dark:hover:bg-yellow-200",
4423
+ className: "rounded-sm bg-warning px-3 py-1 text-sm text-warning-foreground hover:hover-effect",
4390
4424
  onClick: () => {
4391
4425
  if (confirmAction === "keyframes") handleRebuildKeyframes();
4392
4426
  else handleRebuildSnapshots();
@@ -4395,7 +4429,7 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4395
4429
  children: "Confirm"
4396
4430
  }),
4397
4431
  /* @__PURE__ */ jsx("button", {
4398
- className: "rounded-sm border border-gray-300 bg-gray-50 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-800",
4432
+ className: "rounded-sm border border-border bg-background px-3 py-1 text-sm text-foreground hover:hover-effect",
4399
4433
  onClick: () => setConfirmAction(null),
4400
4434
  type: "button",
4401
4435
  children: "Cancel"
@@ -4403,18 +4437,18 @@ function IntegrityInspector({ onValidate, onRebuildKeyframes, onRebuildSnapshots
4403
4437
  ]
4404
4438
  }),
4405
4439
  /* @__PURE__ */ jsxs("div", {
4406
- className: "min-h-0 flex-1 overflow-auto rounded-lg border border-gray-300 p-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4440
+ className: "min-h-0 flex-1 overflow-auto rounded-lg border border-border p-4",
4407
4441
  children: [
4408
4442
  status === "idle" && /* @__PURE__ */ jsx("div", {
4409
- className: "flex h-full items-center justify-center text-sm text-gray-400 dark:text-slate-500",
4443
+ className: "flex h-full items-center justify-center text-sm text-muted-foreground",
4410
4444
  children: "Enter a document ID and run an action"
4411
4445
  }),
4412
4446
  status === "running" && /* @__PURE__ */ jsx("div", {
4413
- className: "flex h-full items-center justify-center text-sm text-gray-500 dark:text-slate-400",
4447
+ className: "flex h-full items-center justify-center text-sm text-muted-foreground",
4414
4448
  children: "Running..."
4415
4449
  }),
4416
4450
  status === "error" && error && /* @__PURE__ */ jsx("div", {
4417
- className: "rounded-sm bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900 dark:text-red-100",
4451
+ className: "rounded-sm bg-destructive/10 p-3 text-sm text-destructive",
4418
4452
  children: error
4419
4453
  }),
4420
4454
  status === "done" && validationResult && /* @__PURE__ */ jsx(ValidationResultView, { result: validationResult }),
@@ -4431,67 +4465,67 @@ function ValidationResultView({ result }) {
4431
4465
  children: [
4432
4466
  /* @__PURE__ */ jsxs("div", {
4433
4467
  className: "flex items-center gap-2",
4434
- children: [/* @__PURE__ */ jsx("span", { className: twMerge("size-3 rounded-full", result.isConsistent ? "bg-green-500 dark:bg-green-400" : "bg-red-500 dark:bg-red-400") }), /* @__PURE__ */ jsx("span", {
4468
+ children: [/* @__PURE__ */ jsx("span", { className: twMerge("size-3 rounded-full", result.isConsistent ? "bg-success" : "bg-destructive") }), /* @__PURE__ */ jsx("span", {
4435
4469
  className: "text-sm font-medium",
4436
4470
  children: result.isConsistent ? "Document is consistent" : `Found ${totalIssues} issue(s)`
4437
4471
  })]
4438
4472
  }),
4439
4473
  /* @__PURE__ */ jsxs("div", {
4440
- className: "text-xs text-gray-500 dark:text-slate-400",
4474
+ className: "text-xs text-muted-foreground",
4441
4475
  children: ["Document: ", result.documentId]
4442
4476
  }),
4443
4477
  result.keyframeIssues.length > 0 && /* @__PURE__ */ jsxs("div", {
4444
4478
  className: "flex flex-col gap-1",
4445
4479
  children: [/* @__PURE__ */ jsx("h3", {
4446
- className: "text-sm font-medium text-gray-700 dark:text-slate-200",
4480
+ className: "text-sm font-medium text-foreground",
4447
4481
  children: "Keyframe Issues"
4448
4482
  }), /* @__PURE__ */ jsxs("table", {
4449
4483
  className: "w-full border-collapse text-xs",
4450
4484
  children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", {
4451
- className: "bg-gray-100 dark:bg-slate-700",
4485
+ className: "bg-muted",
4452
4486
  children: [
4453
4487
  /* @__PURE__ */ jsx("th", {
4454
- className: "px-2 py-1 text-left font-medium text-gray-700 dark:text-slate-200",
4488
+ className: "px-2 py-1 text-left font-medium text-foreground",
4455
4489
  children: "Scope"
4456
4490
  }),
4457
4491
  /* @__PURE__ */ jsx("th", {
4458
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4492
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4459
4493
  children: "Branch"
4460
4494
  }),
4461
4495
  /* @__PURE__ */ jsx("th", {
4462
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4496
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4463
4497
  children: "Revision"
4464
4498
  }),
4465
4499
  /* @__PURE__ */ jsx("th", {
4466
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4500
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4467
4501
  children: "Keyframe Hash"
4468
4502
  }),
4469
4503
  /* @__PURE__ */ jsx("th", {
4470
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4504
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4471
4505
  children: "Replayed Hash"
4472
4506
  })
4473
4507
  ]
4474
4508
  }) }), /* @__PURE__ */ jsx("tbody", { children: result.keyframeIssues.map((issue, i) => /* @__PURE__ */ jsxs("tr", {
4475
- className: "odd:bg-white even:bg-gray-50 dark:odd:bg-slate-800 dark:even:bg-slate-800",
4509
+ className: "odd:bg-card even:bg-background",
4476
4510
  children: [
4477
4511
  /* @__PURE__ */ jsx("td", {
4478
4512
  className: "px-2 py-1",
4479
4513
  children: issue.scope
4480
4514
  }),
4481
4515
  /* @__PURE__ */ jsx("td", {
4482
- className: "border-l border-gray-300 px-2 py-1 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4516
+ className: "border-l border-border px-2 py-1",
4483
4517
  children: issue.branch
4484
4518
  }),
4485
4519
  /* @__PURE__ */ jsx("td", {
4486
- className: "border-l border-gray-300 px-2 py-1 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4520
+ className: "border-l border-border px-2 py-1",
4487
4521
  children: issue.revision
4488
4522
  }),
4489
4523
  /* @__PURE__ */ jsx("td", {
4490
- className: "border-l border-gray-300 px-2 py-1 font-mono dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4524
+ className: "border-l border-border px-2 py-1 font-mono",
4491
4525
  children: issue.keyframeHash
4492
4526
  }),
4493
4527
  /* @__PURE__ */ jsx("td", {
4494
- className: "border-l border-gray-300 px-2 py-1 font-mono dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4528
+ className: "border-l border-border px-2 py-1 font-mono",
4495
4529
  children: issue.replayedHash
4496
4530
  })
4497
4531
  ]
@@ -4501,47 +4535,47 @@ function ValidationResultView({ result }) {
4501
4535
  result.snapshotIssues.length > 0 && /* @__PURE__ */ jsxs("div", {
4502
4536
  className: "flex flex-col gap-1",
4503
4537
  children: [/* @__PURE__ */ jsx("h3", {
4504
- className: "text-sm font-medium text-gray-700 dark:text-slate-200",
4538
+ className: "text-sm font-medium text-foreground",
4505
4539
  children: "Snapshot Issues"
4506
4540
  }), /* @__PURE__ */ jsxs("table", {
4507
4541
  className: "w-full border-collapse text-xs",
4508
4542
  children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", {
4509
- className: "bg-gray-100 dark:bg-slate-700",
4543
+ className: "bg-muted",
4510
4544
  children: [
4511
4545
  /* @__PURE__ */ jsx("th", {
4512
- className: "px-2 py-1 text-left font-medium text-gray-700 dark:text-slate-200",
4546
+ className: "px-2 py-1 text-left font-medium text-foreground",
4513
4547
  children: "Scope"
4514
4548
  }),
4515
4549
  /* @__PURE__ */ jsx("th", {
4516
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4550
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4517
4551
  children: "Branch"
4518
4552
  }),
4519
4553
  /* @__PURE__ */ jsx("th", {
4520
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4554
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4521
4555
  children: "Snapshot Hash"
4522
4556
  }),
4523
4557
  /* @__PURE__ */ jsx("th", {
4524
- className: "border-l border-gray-300 px-2 py-1 text-left font-medium text-gray-700 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4558
+ className: "border-l border-border px-2 py-1 text-left font-medium text-foreground",
4525
4559
  children: "Replayed Hash"
4526
4560
  })
4527
4561
  ]
4528
4562
  }) }), /* @__PURE__ */ jsx("tbody", { children: result.snapshotIssues.map((issue, i) => /* @__PURE__ */ jsxs("tr", {
4529
- className: "odd:bg-white even:bg-gray-50 dark:odd:bg-slate-800 dark:even:bg-slate-800",
4563
+ className: "odd:bg-card even:bg-background",
4530
4564
  children: [
4531
4565
  /* @__PURE__ */ jsx("td", {
4532
4566
  className: "px-2 py-1",
4533
4567
  children: issue.scope
4534
4568
  }),
4535
4569
  /* @__PURE__ */ jsx("td", {
4536
- className: "border-l border-gray-300 px-2 py-1 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4570
+ className: "border-l border-border px-2 py-1",
4537
4571
  children: issue.branch
4538
4572
  }),
4539
4573
  /* @__PURE__ */ jsx("td", {
4540
- className: "border-l border-gray-300 px-2 py-1 font-mono dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4574
+ className: "border-l border-border px-2 py-1 font-mono",
4541
4575
  children: issue.snapshotHash
4542
4576
  }),
4543
4577
  /* @__PURE__ */ jsx("td", {
4544
- className: "border-l border-gray-300 px-2 py-1 font-mono dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
4578
+ className: "border-l border-border px-2 py-1 font-mono",
4545
4579
  children: issue.replayedHash
4546
4580
  })
4547
4581
  ]
@@ -4557,21 +4591,21 @@ function RebuildResultView({ result }) {
4557
4591
  children: [
4558
4592
  /* @__PURE__ */ jsxs("div", {
4559
4593
  className: "flex items-center gap-2",
4560
- children: [/* @__PURE__ */ jsx("span", { className: "size-3 rounded-full bg-green-500 dark:bg-green-400" }), /* @__PURE__ */ jsx("span", {
4594
+ children: [/* @__PURE__ */ jsx("span", { className: "size-3 rounded-full bg-success" }), /* @__PURE__ */ jsx("span", {
4561
4595
  className: "text-sm font-medium",
4562
4596
  children: "Rebuild complete"
4563
4597
  })]
4564
4598
  }),
4565
4599
  /* @__PURE__ */ jsxs("div", {
4566
- className: "text-xs text-gray-500 dark:text-slate-400",
4600
+ className: "text-xs text-muted-foreground",
4567
4601
  children: ["Document: ", result.documentId]
4568
4602
  }),
4569
4603
  result.keyframesDeleted > 0 && /* @__PURE__ */ jsxs("div", {
4570
- className: "text-sm text-gray-700 dark:text-slate-200",
4604
+ className: "text-sm text-foreground",
4571
4605
  children: ["Keyframes deleted: ", result.keyframesDeleted]
4572
4606
  }),
4573
4607
  result.scopesInvalidated > 0 && /* @__PURE__ */ jsxs("div", {
4574
- className: "text-sm text-gray-700 dark:text-slate-200",
4608
+ className: "text-sm text-foreground",
4575
4609
  children: ["Scopes invalidated: ", result.scopesInvalidated]
4576
4610
  })
4577
4611
  ]
@@ -4583,7 +4617,7 @@ const LoadingScreen = (props) => {
4583
4617
  const { showLoadingScreen, loadingComponent, size, className } = props;
4584
4618
  if (loadingComponent && showLoadingScreen) return loadingComponent;
4585
4619
  return /* @__PURE__ */ jsx("div", {
4586
- className: twMerge("absolute inset-0 z-10 flex items-center justify-center bg-gray-50 dark:bg-slate-800", !showLoadingScreen && "hidden", className),
4620
+ className: twMerge("absolute inset-0 z-10 flex items-center justify-center bg-background", !showLoadingScreen && "hidden", className),
4587
4621
  children: /* @__PURE__ */ jsx(LogoAnimation, { size })
4588
4622
  });
4589
4623
  };
@@ -4601,7 +4635,7 @@ function AddDriveModal(props) {
4601
4635
  open,
4602
4636
  children: /* @__PURE__ */ jsx("div", {
4603
4637
  ...containerProps,
4604
- className: twMerge("w-102 rounded-2xl bg-gray-50 p-6 dark:bg-slate-800", containerProps?.className),
4638
+ className: twMerge("w-102 rounded-2xl bg-background p-6", containerProps?.className),
4605
4639
  children: /* @__PURE__ */ jsxs(Tabs, {
4606
4640
  defaultValue: "Create Drive",
4607
4641
  children: [/* @__PURE__ */ jsx(TabContent, {
@@ -4660,17 +4694,17 @@ function CreateDocumentModal(props) {
4660
4694
  ...restProps,
4661
4695
  children: /* @__PURE__ */ jsxs("form", {
4662
4696
  name: "create-document",
4663
- className: "w-100 rounded-xl bg-gray-50 p-6 text-gray-300 dark:bg-slate-800 dark:text-slate-600",
4697
+ className: "w-100 rounded-xl bg-background p-6 text-foreground",
4664
4698
  onSubmit: handleSubmit,
4665
4699
  children: [
4666
4700
  /* @__PURE__ */ jsx("div", {
4667
- className: "pb-2 text-2xl font-bold text-gray-900 dark:text-slate-100",
4701
+ className: "pb-2 text-2xl font-bold text-foreground",
4668
4702
  children: "Create a new document"
4669
4703
  }),
4670
4704
  /* @__PURE__ */ jsxs("div", {
4671
4705
  className: "my-6",
4672
4706
  children: [!isValid && nodeName && /* @__PURE__ */ jsx("div", {
4673
- className: "mb-2 text-red-500 dark:text-red-100",
4707
+ className: "mb-2 text-destructive",
4674
4708
  children: "Document name must not be empty or contain control characters."
4675
4709
  }), /* @__PURE__ */ jsx(FormInput, {
4676
4710
  icon: /* @__PURE__ */ jsx(Icon, { name: "BrickGlobe" }),
@@ -4711,7 +4745,7 @@ const ConnectDeleteDriveModal = (props) => {
4711
4745
  ...confirmationModalProps,
4712
4746
  continueDisabled: inputName !== driveName,
4713
4747
  body: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
4714
- className: "my-6 rounded-md bg-gray-50 p-4 text-center dark:bg-slate-800",
4748
+ className: "my-6 rounded-md bg-background p-4 text-center",
4715
4749
  children: body
4716
4750
  }), /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(FormInput, {
4717
4751
  hideErrors: true,
@@ -4754,7 +4788,7 @@ function DeleteDrive(props) {
4754
4788
  }
4755
4789
  return /* @__PURE__ */ jsxs("div", { children: [
4756
4790
  /* @__PURE__ */ jsx("p", {
4757
- className: "mb-2 rounded-md bg-gray-50 p-4 text-center text-gray-200 dark:bg-slate-800 dark:text-slate-200",
4791
+ className: "mb-2 rounded-md bg-background p-4 text-center text-foreground",
4758
4792
  children: "Are you sure you want to delete this drive? All files and subfolders within it will be removed. Do you want to proceed?"
4759
4793
  }),
4760
4794
  /* @__PURE__ */ jsx(DriveNameInput, {
@@ -4822,19 +4856,19 @@ function DriveSettingsForm(props) {
4822
4856
  title: "About this drive",
4823
4857
  children: [
4824
4858
  systemInfo.status === "local" && /* @__PURE__ */ jsx("p", {
4825
- className: "py-2 text-sm text-gray-500 dark:text-slate-400",
4859
+ className: "py-2 text-sm text-muted-foreground",
4826
4860
  children: "Local drive — N/A"
4827
4861
  }),
4828
4862
  systemInfo.status === "loading" && /* @__PURE__ */ jsx("p", {
4829
- className: "py-2 text-sm text-gray-400 dark:text-slate-500",
4863
+ className: "py-2 text-sm text-muted-foreground",
4830
4864
  children: "Loading…"
4831
4865
  }),
4832
4866
  systemInfo.status === "error" && /* @__PURE__ */ jsx("p", {
4833
- className: "py-2 text-sm text-red-600 dark:text-red-100",
4867
+ className: "py-2 text-sm text-destructive",
4834
4868
  children: "Could not load system info"
4835
4869
  }),
4836
4870
  systemInfo.status === "ready" && /* @__PURE__ */ jsxs("div", {
4837
- className: "py-2 text-sm text-gray-700 dark:text-slate-200",
4871
+ className: "py-2 text-sm text-foreground",
4838
4872
  children: [/* @__PURE__ */ jsxs("div", { children: [
4839
4873
  /* @__PURE__ */ jsx("span", {
4840
4874
  className: "font-medium",
@@ -4859,7 +4893,7 @@ function DriveSettingsForm(props) {
4859
4893
  onOpenChange: () => setShowDangerZone(!showDangerZone),
4860
4894
  title: "Danger zone",
4861
4895
  children: /* @__PURE__ */ jsxs("button", {
4862
- className: "flex gap-2 py-3 font-semibold text-red-900 transition hover:brightness-125 dark:text-red-400",
4896
+ className: "flex gap-2 py-3 font-semibold text-destructive transition hover:hover-effect",
4863
4897
  onClick: () => setShowDeleteDrive(true),
4864
4898
  type: "button",
4865
4899
  children: [/* @__PURE__ */ jsx(Icon, { name: "Trash" }), "Delete drive"]
@@ -4901,15 +4935,15 @@ function DriveSettingsModal(props) {
4901
4935
  open,
4902
4936
  children: /* @__PURE__ */ jsxs("div", {
4903
4937
  ...containerProps,
4904
- className: twMerge("max-w-[408px] rounded-2xl bg-gray-50 p-6 dark:bg-slate-800", containerProps?.className),
4938
+ className: twMerge("max-w-[408px] rounded-2xl bg-background p-6", containerProps?.className),
4905
4939
  children: [
4906
4940
  /* @__PURE__ */ jsxs("div", {
4907
4941
  className: "flex justify-between",
4908
4942
  children: [/* @__PURE__ */ jsx("h1", {
4909
- className: "text-xl font-bold text-gray-900 dark:text-slate-50",
4943
+ className: "text-xl font-bold text-foreground",
4910
4944
  children: "Drive settings"
4911
4945
  }), /* @__PURE__ */ jsx("button", {
4912
- className: "flex size-8 items-center justify-center rounded-md bg-gray-100 text-gray-500 outline-none hover:text-gray-900 dark:bg-slate-700 dark:text-slate-400 dark:hover:text-slate-50",
4946
+ className: "flex size-8 items-center justify-center rounded-md bg-muted text-muted-foreground outline-none hover:hover-effect",
4913
4947
  onClick: handleCancel,
4914
4948
  tabIndex: -1,
4915
4949
  children: /* @__PURE__ */ jsx(Icon, {
@@ -4964,14 +4998,14 @@ function ObjectInspectorModal({ open, onOpenChange, title, object }) {
4964
4998
  open,
4965
4999
  title,
4966
5000
  children: /* @__PURE__ */ jsxs("div", {
4967
- className: "flex size-full flex-col bg-gray-50 dark:bg-slate-800",
5001
+ className: "flex size-full flex-col bg-background",
4968
5002
  children: [/* @__PURE__ */ jsxs("div", {
4969
- className: "flex shrink-0 items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5003
+ className: "flex shrink-0 items-center justify-between border-b border-border px-4 py-3",
4970
5004
  children: [/* @__PURE__ */ jsx("h2", {
4971
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
5005
+ className: "text-lg font-semibold text-foreground",
4972
5006
  children: title
4973
5007
  }), /* @__PURE__ */ jsx("button", {
4974
- className: "flex size-6 cursor-pointer items-center justify-center rounded-md text-gray-500 outline-none hover:text-gray-900 dark:text-slate-400 dark:hover:text-slate-50",
5008
+ className: "flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:hover-effect",
4975
5009
  onClick: () => onOpenChange(false),
4976
5010
  type: "button",
4977
5011
  children: /* @__PURE__ */ jsx(Icon, {
@@ -4982,7 +5016,7 @@ function ObjectInspectorModal({ open, onOpenChange, title, object }) {
4982
5016
  }), /* @__PURE__ */ jsx("div", {
4983
5017
  className: "flex-1 overflow-auto p-4",
4984
5018
  children: serializableObject ? /* @__PURE__ */ jsx(JsonViewer, { data: serializableObject }) : /* @__PURE__ */ jsx("p", {
4985
- className: "text-gray-500 dark:text-slate-400",
5019
+ className: "text-muted-foreground",
4986
5020
  children: "No data to display"
4987
5021
  })
4988
5022
  })]
@@ -5146,12 +5180,12 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5146
5180
  /* @__PURE__ */ jsxs("div", {
5147
5181
  className: "flex shrink-0 items-center justify-between",
5148
5182
  children: [/* @__PURE__ */ jsx("h2", {
5149
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
5183
+ className: "text-lg font-semibold text-foreground",
5150
5184
  children: "Processors Inspector"
5151
5185
  }), /* @__PURE__ */ jsx("div", {
5152
5186
  className: "flex items-center gap-2",
5153
5187
  children: /* @__PURE__ */ jsxs("button", {
5154
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
5188
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
5155
5189
  disabled: loading,
5156
5190
  onClick: () => void handleRefresh(),
5157
5191
  type: "button",
@@ -5163,19 +5197,19 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5163
5197
  })]
5164
5198
  }),
5165
5199
  /* @__PURE__ */ jsxs("div", {
5166
- className: "flex shrink-0 items-center gap-4 rounded-lg bg-gray-100 px-4 py-2 text-sm dark:bg-slate-700",
5200
+ className: "flex shrink-0 items-center gap-4 rounded-lg bg-muted px-4 py-2 text-sm",
5167
5201
  children: [
5168
5202
  /* @__PURE__ */ jsxs("div", {
5169
- className: "text-gray-700 dark:text-slate-200",
5203
+ className: "text-foreground",
5170
5204
  children: ["Total: ", /* @__PURE__ */ jsx("span", {
5171
5205
  className: "font-medium",
5172
5206
  children: processors.length
5173
5207
  })]
5174
5208
  }),
5175
5209
  /* @__PURE__ */ jsxs("div", {
5176
- className: "flex items-center gap-2 text-gray-700 dark:text-slate-200",
5210
+ className: "flex items-center gap-2 text-foreground",
5177
5211
  children: [
5178
- /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-green-500 dark:bg-green-400" }),
5212
+ /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-success" }),
5179
5213
  "Active: ",
5180
5214
  /* @__PURE__ */ jsx("span", {
5181
5215
  className: "font-medium",
@@ -5184,9 +5218,9 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5184
5218
  ]
5185
5219
  }),
5186
5220
  /* @__PURE__ */ jsxs("div", {
5187
- className: "flex items-center gap-2 text-gray-700 dark:text-slate-200",
5221
+ className: "flex items-center gap-2 text-foreground",
5188
5222
  children: [
5189
- /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-red-500 dark:bg-red-400" }),
5223
+ /* @__PURE__ */ jsx("span", { className: "size-2 rounded-full bg-destructive" }),
5190
5224
  "Errored: ",
5191
5225
  /* @__PURE__ */ jsx("span", {
5192
5226
  className: "font-medium",
@@ -5197,20 +5231,20 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5197
5231
  ]
5198
5232
  }),
5199
5233
  error && /* @__PURE__ */ jsxs("div", {
5200
- className: "shrink-0 rounded-lg border border-red-300 bg-red-50 px-4 py-2 text-sm text-red-700 dark:border-red-600 dark:bg-red-900 dark:text-red-100",
5234
+ className: "shrink-0 rounded-lg border border-destructive bg-destructive/10 px-4 py-2 text-sm text-destructive",
5201
5235
  children: ["Failed to load processors: ", error]
5202
5236
  }),
5203
5237
  /* @__PURE__ */ jsx("div", {
5204
- className: "max-h-full overflow-auto rounded-lg border border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5238
+ className: "max-h-full overflow-auto rounded-lg border border-border",
5205
5239
  children: /* @__PURE__ */ jsxs("table", {
5206
5240
  className: "w-full border-collapse",
5207
5241
  children: [/* @__PURE__ */ jsx("thead", {
5208
- className: "sticky top-0 bg-gray-100 dark:bg-slate-700",
5242
+ className: "sticky top-0 bg-muted",
5209
5243
  children: /* @__PURE__ */ jsx("tr", { children: COLUMNS$2.map((column, index) => {
5210
5244
  const isActive = sort?.column === column.key;
5211
5245
  const sortDirection = isActive ? sort.direction : "asc";
5212
5246
  return /* @__PURE__ */ jsx("th", {
5213
- className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100", index > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100"),
5247
+ className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-foreground hover:hover-effect", index > 0 && "border-l border-border"),
5214
5248
  onClick: () => handleSort(column.key),
5215
5249
  style: { width: column.width },
5216
5250
  children: /* @__PURE__ */ jsxs("div", {
@@ -5226,38 +5260,38 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5226
5260
  }, column.key);
5227
5261
  }) })
5228
5262
  }), /* @__PURE__ */ jsx("tbody", { children: loading && sortedProcessors.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
5229
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
5263
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
5230
5264
  colSpan: COLUMNS$2.length,
5231
5265
  children: "Loading..."
5232
5266
  }) }) : sortedProcessors.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
5233
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
5267
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
5234
5268
  colSpan: COLUMNS$2.length,
5235
5269
  children: "No processors registered"
5236
5270
  }) }) : sortedProcessors.map((processor) => /* @__PURE__ */ jsxs("tr", {
5237
- className: twMerge("hover:bg-blue-50 dark:hover:bg-blue-900", processor.status === "errored" ? "bg-red-50 dark:bg-red-900" : "odd:bg-white even:bg-gray-50 dark:odd:bg-slate-800 dark:even:bg-slate-800"),
5271
+ className: twMerge("hover:hover-effect", processor.status === "errored" ? "bg-destructive/10" : "odd:bg-card even:bg-background"),
5238
5272
  children: [
5239
5273
  /* @__PURE__ */ jsx("td", {
5240
5274
  className: "px-3 py-2 text-xs",
5241
5275
  children: /* @__PURE__ */ jsx("button", {
5242
- className: "flex items-center gap-1 rounded-sm bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100 dark:bg-blue-900 dark:text-blue-100 dark:hover:bg-blue-800",
5276
+ className: "flex items-center gap-1 rounded-sm bg-info/10 px-2 py-1 text-xs text-info hover:hover-effect",
5243
5277
  onClick: () => setSelectedProcessor(processor),
5244
5278
  type: "button",
5245
5279
  children: "View"
5246
5280
  })
5247
5281
  }),
5248
5282
  /* @__PURE__ */ jsx("td", {
5249
- className: "border-l border-gray-300 px-3 py-2 text-xs dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5283
+ className: "border-l border-border px-3 py-2 text-xs",
5250
5284
  children: /* @__PURE__ */ jsxs("span", {
5251
- className: twMerge("inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5", processor.status === "active" ? "bg-green-100 text-green-700 dark:bg-green-800 dark:text-green-100" : "bg-red-100 text-red-700 dark:bg-red-800 dark:text-red-100"),
5285
+ className: twMerge("inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5", processor.status === "active" ? "bg-success/10 text-success" : "bg-destructive/10 text-destructive"),
5252
5286
  children: [
5253
- processor.status === "active" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 rounded-full bg-green-500 dark:bg-green-400" }),
5254
- processor.status === "errored" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 rounded-full bg-red-500 dark:bg-red-400" }),
5287
+ processor.status === "active" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 rounded-full bg-success" }),
5288
+ processor.status === "errored" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 rounded-full bg-destructive" }),
5255
5289
  processor.status
5256
5290
  ]
5257
5291
  })
5258
5292
  }),
5259
5293
  /* @__PURE__ */ jsx("td", {
5260
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5294
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5261
5295
  children: /* @__PURE__ */ jsx("span", {
5262
5296
  className: "block truncate",
5263
5297
  title: processor.processorId,
@@ -5265,7 +5299,7 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5265
5299
  })
5266
5300
  }),
5267
5301
  /* @__PURE__ */ jsx("td", {
5268
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5302
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5269
5303
  children: /* @__PURE__ */ jsx("span", {
5270
5304
  className: "block truncate",
5271
5305
  title: processor.factoryId,
@@ -5273,7 +5307,7 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5273
5307
  })
5274
5308
  }),
5275
5309
  /* @__PURE__ */ jsx("td", {
5276
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5310
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5277
5311
  children: /* @__PURE__ */ jsx("span", {
5278
5312
  className: "block truncate",
5279
5313
  title: processor.driveId,
@@ -5281,39 +5315,39 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5281
5315
  })
5282
5316
  }),
5283
5317
  /* @__PURE__ */ jsx("td", {
5284
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5318
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5285
5319
  children: processor.processorIndex
5286
5320
  }),
5287
5321
  /* @__PURE__ */ jsx("td", {
5288
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5322
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5289
5323
  children: processor.lastOrdinal
5290
5324
  }),
5291
5325
  /* @__PURE__ */ jsx("td", {
5292
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5326
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5293
5327
  children: processor.lastError ? /* @__PURE__ */ jsx("span", {
5294
- className: "block truncate text-red-600 dark:text-red-100",
5328
+ className: "block truncate text-destructive",
5295
5329
  title: processor.lastError,
5296
5330
  children: processor.lastError
5297
5331
  }) : /* @__PURE__ */ jsx("span", {
5298
- className: "text-gray-400 dark:text-slate-500",
5332
+ className: "text-muted-foreground",
5299
5333
  children: "-"
5300
5334
  })
5301
5335
  }),
5302
5336
  /* @__PURE__ */ jsx("td", {
5303
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5337
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5304
5338
  children: processor.lastErrorTimestamp ? /* @__PURE__ */ jsx("span", {
5305
5339
  className: "block truncate",
5306
5340
  title: processor.lastErrorTimestamp.toISOString(),
5307
5341
  children: processor.lastErrorTimestamp.toLocaleString()
5308
5342
  }) : /* @__PURE__ */ jsx("span", {
5309
- className: "text-gray-400 dark:text-slate-500",
5343
+ className: "text-muted-foreground",
5310
5344
  children: "-"
5311
5345
  })
5312
5346
  }),
5313
5347
  /* @__PURE__ */ jsx("td", {
5314
- className: "border-l border-gray-300 px-3 py-2 text-xs dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5348
+ className: "border-l border-border px-3 py-2 text-xs",
5315
5349
  children: processor.status === "errored" && onRetry && /* @__PURE__ */ jsx("button", {
5316
- className: "flex items-center gap-1 rounded-sm bg-yellow-50 px-2 py-1 text-xs text-yellow-700 hover:bg-yellow-100 disabled:opacity-50 dark:bg-yellow-900 dark:text-yellow-100 dark:hover:bg-yellow-800",
5350
+ className: "flex items-center gap-1 rounded-sm bg-warning/10 px-2 py-1 text-xs text-warning hover:hover-effect disabled:disabled-effect",
5317
5351
  disabled: retryingId === processor.processorId,
5318
5352
  onClick: () => void handleRetry(processor.processorId),
5319
5353
  type: "button",
@@ -5325,7 +5359,7 @@ function ProcessorsInspector({ getProcessors, onRetry }) {
5325
5359
  })
5326
5360
  }),
5327
5361
  /* @__PURE__ */ jsxs("div", {
5328
- className: "shrink-0 text-sm text-gray-700 dark:text-slate-200",
5362
+ className: "shrink-0 text-sm text-foreground",
5329
5363
  children: [
5330
5364
  "Showing ",
5331
5365
  sortedProcessors.length,
@@ -5501,12 +5535,12 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5501
5535
  /* @__PURE__ */ jsxs("div", {
5502
5536
  className: "flex shrink-0 items-center justify-between",
5503
5537
  children: [/* @__PURE__ */ jsx("h2", {
5504
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
5538
+ className: "text-lg font-semibold text-foreground",
5505
5539
  children: "Queue Inspector"
5506
5540
  }), /* @__PURE__ */ jsxs("div", {
5507
5541
  className: "flex items-center gap-2",
5508
5542
  children: [/* @__PURE__ */ jsxs("button", {
5509
- className: twMerge("flex items-center gap-1 rounded-sm border px-3 py-1.5 text-sm disabled:opacity-50", state.isPaused ? "border-green-300 bg-green-50 text-green-700 hover:bg-green-100 dark:border-green-600 dark:bg-green-900 dark:text-green-100 dark:hover:bg-green-800" : "border-yellow-300 bg-yellow-50 text-yellow-700 hover:bg-yellow-100 dark:border-yellow-600 dark:bg-yellow-900 dark:text-yellow-100 dark:hover:bg-yellow-800"),
5543
+ className: twMerge("flex items-center gap-1 rounded-sm border px-3 py-1.5 text-sm disabled:disabled-effect", state.isPaused ? "border-success bg-success/10 text-success hover:hover-effect" : "border-warning bg-warning/10 text-warning hover:hover-effect"),
5510
5544
  disabled: actionInProgress,
5511
5545
  onClick: () => void handlePauseResume(),
5512
5546
  type: "button",
@@ -5515,7 +5549,7 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5515
5549
  size: 14
5516
5550
  }), state.isPaused ? "Resume" : "Pause"]
5517
5551
  }), /* @__PURE__ */ jsxs("button", {
5518
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
5552
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
5519
5553
  disabled: loading,
5520
5554
  onClick: () => void handleRefresh(),
5521
5555
  type: "button",
@@ -5527,24 +5561,24 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5527
5561
  })]
5528
5562
  }),
5529
5563
  /* @__PURE__ */ jsxs("div", {
5530
- className: "flex shrink-0 items-center gap-4 rounded-lg bg-gray-100 px-4 py-2 text-sm dark:bg-slate-700",
5564
+ className: "flex shrink-0 items-center gap-4 rounded-lg bg-muted px-4 py-2 text-sm",
5531
5565
  children: [
5532
5566
  /* @__PURE__ */ jsxs("div", {
5533
5567
  className: "flex items-center gap-2",
5534
- children: [/* @__PURE__ */ jsx("span", { className: twMerge("size-2 rounded-full", state.isPaused ? "bg-yellow-500 dark:bg-yellow-400" : "bg-green-500 dark:bg-green-400") }), /* @__PURE__ */ jsx("span", {
5535
- className: "font-medium text-gray-700 dark:text-slate-200",
5568
+ children: [/* @__PURE__ */ jsx("span", { className: twMerge("size-2 rounded-full", state.isPaused ? "bg-warning" : "bg-success") }), /* @__PURE__ */ jsx("span", {
5569
+ className: "font-medium text-foreground",
5536
5570
  children: state.isPaused ? "Paused" : "Running"
5537
5571
  })]
5538
5572
  }),
5539
5573
  /* @__PURE__ */ jsxs("div", {
5540
- className: "text-gray-700 dark:text-slate-200",
5574
+ className: "text-foreground",
5541
5575
  children: ["Pending: ", /* @__PURE__ */ jsx("span", {
5542
5576
  className: "font-medium",
5543
5577
  children: state.totalPending
5544
5578
  })]
5545
5579
  }),
5546
5580
  /* @__PURE__ */ jsxs("div", {
5547
- className: "text-gray-700 dark:text-slate-200",
5581
+ className: "text-foreground",
5548
5582
  children: ["Executing: ", /* @__PURE__ */ jsx("span", {
5549
5583
  className: "font-medium",
5550
5584
  children: state.totalExecuting
@@ -5553,16 +5587,16 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5553
5587
  ]
5554
5588
  }),
5555
5589
  /* @__PURE__ */ jsx("div", {
5556
- className: "max-h-full overflow-auto rounded-lg border border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5590
+ className: "max-h-full overflow-auto rounded-lg border border-border",
5557
5591
  children: /* @__PURE__ */ jsxs("table", {
5558
5592
  className: "w-full border-collapse",
5559
5593
  children: [/* @__PURE__ */ jsx("thead", {
5560
- className: "sticky top-0 bg-gray-100 dark:bg-slate-700",
5594
+ className: "sticky top-0 bg-muted",
5561
5595
  children: /* @__PURE__ */ jsx("tr", { children: COLUMNS$1.map((column, index) => {
5562
5596
  const isActive = sort?.column === column.key;
5563
5597
  const sortDirection = isActive ? sort.direction : "asc";
5564
5598
  return /* @__PURE__ */ jsx("th", {
5565
- className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100", index > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100"),
5599
+ className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-foreground hover:hover-effect", index > 0 && "border-l border-border"),
5566
5600
  onClick: () => handleSort(column.key),
5567
5601
  style: { width: column.width },
5568
5602
  children: /* @__PURE__ */ jsxs("div", {
@@ -5578,27 +5612,27 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5578
5612
  }, column.key);
5579
5613
  }) })
5580
5614
  }), /* @__PURE__ */ jsx("tbody", { children: loading && sortedJobs.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
5581
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
5615
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
5582
5616
  colSpan: COLUMNS$1.length,
5583
5617
  children: "Loading..."
5584
5618
  }) }) : sortedJobs.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
5585
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
5619
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
5586
5620
  colSpan: COLUMNS$1.length,
5587
5621
  children: "No jobs in queue"
5588
5622
  }) }) : sortedJobs.map((job) => /* @__PURE__ */ jsxs("tr", {
5589
- className: "odd:bg-white even:bg-gray-50 hover:bg-blue-50 dark:odd:bg-slate-800 dark:even:bg-slate-800 dark:hover:bg-blue-900",
5623
+ className: "odd:bg-card even:bg-background hover:hover-effect",
5590
5624
  children: [
5591
5625
  /* @__PURE__ */ jsx("td", {
5592
5626
  className: "px-3 py-2 text-xs",
5593
5627
  children: /* @__PURE__ */ jsx("button", {
5594
- className: "flex items-center gap-1 rounded-sm bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100 dark:bg-blue-900 dark:text-blue-100 dark:hover:bg-blue-800",
5628
+ className: "flex items-center gap-1 rounded-sm bg-info/10 px-2 py-1 text-xs text-info hover:hover-effect",
5595
5629
  onClick: () => setSelectedJob(job),
5596
5630
  type: "button",
5597
5631
  children: "View"
5598
5632
  })
5599
5633
  }),
5600
5634
  /* @__PURE__ */ jsx("td", {
5601
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5635
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5602
5636
  children: /* @__PURE__ */ jsx("span", {
5603
5637
  className: "block truncate",
5604
5638
  title: job.id,
@@ -5606,14 +5640,14 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5606
5640
  })
5607
5641
  }),
5608
5642
  /* @__PURE__ */ jsx("td", {
5609
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5643
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5610
5644
  children: /* @__PURE__ */ jsx("span", {
5611
- className: twMerge("inline-block rounded-sm px-1.5 py-0.5", job.kind === "mutation" ? "bg-purple-100 text-purple-700 dark:bg-purple-800 dark:text-purple-100" : "bg-blue-100 text-blue-700 dark:bg-blue-800 dark:text-blue-100"),
5645
+ className: twMerge("inline-block rounded-sm px-1.5 py-0.5", job.kind === "mutation" ? "bg-info/10 text-info" : "bg-info/10 text-info"),
5612
5646
  children: job.kind
5613
5647
  })
5614
5648
  }),
5615
5649
  /* @__PURE__ */ jsx("td", {
5616
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5650
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5617
5651
  children: /* @__PURE__ */ jsx("span", {
5618
5652
  className: "block truncate",
5619
5653
  title: job.documentId,
@@ -5621,7 +5655,7 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5621
5655
  })
5622
5656
  }),
5623
5657
  /* @__PURE__ */ jsx("td", {
5624
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5658
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5625
5659
  children: /* @__PURE__ */ jsx("span", {
5626
5660
  className: "block truncate",
5627
5661
  title: job.scope,
@@ -5629,7 +5663,7 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5629
5663
  })
5630
5664
  }),
5631
5665
  /* @__PURE__ */ jsx("td", {
5632
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5666
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5633
5667
  children: /* @__PURE__ */ jsx("span", {
5634
5668
  className: "block truncate",
5635
5669
  title: job.branch,
@@ -5637,7 +5671,7 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5637
5671
  })
5638
5672
  }),
5639
5673
  /* @__PURE__ */ jsx("td", {
5640
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5674
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5641
5675
  children: /* @__PURE__ */ jsx("span", {
5642
5676
  className: "block truncate",
5643
5677
  title: job.createdAt,
@@ -5645,14 +5679,14 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5645
5679
  })
5646
5680
  }),
5647
5681
  /* @__PURE__ */ jsx("td", {
5648
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5682
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5649
5683
  children: job.retryCount ?? 0
5650
5684
  }),
5651
5685
  /* @__PURE__ */ jsx("td", {
5652
- className: "border-l border-gray-300 px-3 py-2 text-xs dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5686
+ className: "border-l border-border px-3 py-2 text-xs",
5653
5687
  children: /* @__PURE__ */ jsxs("span", {
5654
- className: twMerge("inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5", job.status === "executing" ? "bg-green-100 text-green-700 dark:bg-green-800 dark:text-green-100" : "bg-gray-100 text-gray-700 dark:bg-slate-700 dark:text-slate-200"),
5655
- children: [job.status === "executing" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 animate-pulse rounded-full bg-green-500 dark:bg-green-400" }), job.status]
5688
+ className: twMerge("inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5", job.status === "executing" ? "bg-success/10 text-success" : "bg-muted text-foreground"),
5689
+ children: [job.status === "executing" && /* @__PURE__ */ jsx("span", { className: "inline-block size-1.5 animate-pulse rounded-full bg-success" }), job.status]
5656
5690
  })
5657
5691
  })
5658
5692
  ]
@@ -5660,7 +5694,7 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5660
5694
  })
5661
5695
  }),
5662
5696
  /* @__PURE__ */ jsxs("div", {
5663
- className: "shrink-0 text-sm text-gray-700 dark:text-slate-200",
5697
+ className: "shrink-0 text-sm text-foreground",
5664
5698
  children: [
5665
5699
  "Showing ",
5666
5700
  sortedJobs.length,
@@ -5679,15 +5713,15 @@ function QueueInspector({ getQueueState, onPause, onResume }) {
5679
5713
  //#endregion
5680
5714
  //#region src/connect/components/remotes-inspector/components/connection-state-badge.tsx
5681
5715
  const stateStyles = {
5682
- connected: "bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100",
5683
- connecting: "bg-blue-100 text-blue-800 dark:bg-blue-800 dark:text-blue-100",
5684
- reconnecting: "bg-yellow-100 text-yellow-800 dark:bg-yellow-800 dark:text-yellow-100",
5685
- error: "bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100",
5686
- disconnected: "bg-gray-100 text-gray-700 dark:bg-slate-700 dark:text-slate-200"
5716
+ connected: "bg-success/10 text-success",
5717
+ connecting: "bg-info/10 text-info",
5718
+ reconnecting: "bg-warning/10 text-warning",
5719
+ error: "bg-destructive/10 text-destructive",
5720
+ disconnected: "bg-muted text-foreground"
5687
5721
  };
5688
5722
  function ConnectionStateBadge({ state, failureCount }) {
5689
5723
  return /* @__PURE__ */ jsxs("span", {
5690
- className: twMerge("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", stateStyles[state] ?? "bg-gray-100 text-gray-700 dark:bg-slate-700 dark:text-slate-200"),
5724
+ className: twMerge("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", stateStyles[state] ?? "bg-muted text-foreground"),
5691
5725
  children: [state, failureCount > 0 && /* @__PURE__ */ jsxs("span", {
5692
5726
  className: "text-xs opacity-75",
5693
5727
  children: [
@@ -5857,7 +5891,7 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5857
5891
  /* @__PURE__ */ jsxs("div", {
5858
5892
  className: "flex items-center justify-between",
5859
5893
  children: [/* @__PURE__ */ jsxs("button", {
5860
- className: "flex items-center gap-2 text-left text-sm font-medium text-gray-700 hover:text-gray-900 dark:text-slate-200 dark:hover:text-slate-50",
5894
+ className: "flex items-center gap-2 text-left text-sm font-medium text-foreground hover:hover-effect",
5861
5895
  onClick: onToggleCollapse,
5862
5896
  type: "button",
5863
5897
  children: [
@@ -5874,7 +5908,7 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5874
5908
  ")"
5875
5909
  ]
5876
5910
  }), operations.length > 0 && /* @__PURE__ */ jsxs("button", {
5877
- className: "flex items-center gap-1 rounded-sm bg-gray-100 px-2 py-1 text-xs text-gray-700 hover:bg-gray-200 dark:bg-slate-700 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100",
5911
+ className: "flex items-center gap-1 rounded-sm bg-muted px-2 py-1 text-xs text-foreground hover:hover-effect",
5878
5912
  onClick: () => void handleCopyAll(),
5879
5913
  type: "button",
5880
5914
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -5884,16 +5918,16 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5884
5918
  })]
5885
5919
  }),
5886
5920
  !collapsed && /* @__PURE__ */ jsx("div", {
5887
- className: "scrollbar-thin overflow-auto rounded-lg border border-gray-300 scrollbar-thumb-gray-300 scrollbar-thumb-rounded-md scrollbar-track-transparent dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:scrollbar-thumb-slate-600",
5921
+ className: "scrollbar-thin overflow-auto rounded-lg border border-border scrollbar-thumb-border scrollbar-thumb-rounded-md scrollbar-track-transparent",
5888
5922
  children: /* @__PURE__ */ jsxs("table", {
5889
5923
  className: "w-full border-collapse",
5890
5924
  children: [/* @__PURE__ */ jsx("thead", {
5891
- className: "sticky top-0 bg-gray-100 dark:bg-slate-700",
5925
+ className: "sticky top-0 bg-muted",
5892
5926
  children: /* @__PURE__ */ jsx("tr", { children: columns.map((column, index) => {
5893
5927
  const isActive = sort?.column === column.key;
5894
5928
  const sortDirection = isActive ? sort.direction : "asc";
5895
5929
  return /* @__PURE__ */ jsx("th", {
5896
- className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-gray-700 hover:bg-gray-200 hover:text-gray-900 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100", index > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100"),
5930
+ className: twMerge("group cursor-pointer px-3 py-2 text-left text-xs font-medium text-foreground hover:hover-effect", index > 0 && "border-l border-border"),
5897
5931
  onClick: () => handleSort(column.key),
5898
5932
  style: { width: column.width },
5899
5933
  children: /* @__PURE__ */ jsxs("div", {
@@ -5909,23 +5943,23 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5909
5943
  }, column.key);
5910
5944
  }) })
5911
5945
  }), /* @__PURE__ */ jsx("tbody", { children: sortedOps.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
5912
- className: "px-3 py-4 text-center text-sm text-gray-500 dark:text-slate-400",
5946
+ className: "px-3 py-4 text-center text-sm text-muted-foreground",
5913
5947
  colSpan: columns.length,
5914
5948
  children: "No operations"
5915
5949
  }) }) : sortedOps.map((op) => /* @__PURE__ */ jsxs("tr", {
5916
- className: "odd:bg-white even:bg-gray-50 hover:bg-blue-50 dark:odd:bg-slate-800 dark:even:bg-slate-800 dark:hover:bg-blue-900",
5950
+ className: "odd:bg-card even:bg-background hover:hover-effect",
5917
5951
  children: [
5918
5952
  /* @__PURE__ */ jsx("td", {
5919
5953
  className: "px-3 py-2 text-xs",
5920
5954
  children: /* @__PURE__ */ jsx("button", {
5921
- className: "flex items-center gap-1 rounded-sm bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100 dark:bg-blue-900 dark:text-blue-100 dark:hover:bg-blue-800",
5955
+ className: "flex items-center gap-1 rounded-sm bg-info/10 px-2 py-1 text-xs text-info hover:hover-effect",
5922
5956
  onClick: () => setSelectedOperation(op),
5923
5957
  type: "button",
5924
5958
  children: "View"
5925
5959
  })
5926
5960
  }),
5927
5961
  /* @__PURE__ */ jsx("td", {
5928
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5962
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5929
5963
  children: /* @__PURE__ */ jsx("span", {
5930
5964
  className: "block truncate",
5931
5965
  title: op.documentId,
@@ -5933,7 +5967,7 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5933
5967
  })
5934
5968
  }),
5935
5969
  /* @__PURE__ */ jsx("td", {
5936
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5970
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5937
5971
  children: /* @__PURE__ */ jsx("span", {
5938
5972
  className: "block truncate",
5939
5973
  title: op.branch,
@@ -5941,7 +5975,7 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5941
5975
  })
5942
5976
  }),
5943
5977
  /* @__PURE__ */ jsx("td", {
5944
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5978
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5945
5979
  children: /* @__PURE__ */ jsx("span", {
5946
5980
  className: "block truncate",
5947
5981
  title: op.scopes.join(", "),
@@ -5949,20 +5983,20 @@ function MailboxTable({ title, mailboxType, operations, sort, onSort, collapsed,
5949
5983
  })
5950
5984
  }),
5951
5985
  mailboxType === "deadLetter" ? /* @__PURE__ */ jsx("td", {
5952
- className: "border-l border-gray-300 px-3 py-2 text-xs dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5986
+ className: "border-l border-border px-3 py-2 text-xs",
5953
5987
  children: /* @__PURE__ */ jsx("span", {
5954
- className: "block truncate text-red-600 dark:text-red-100",
5988
+ className: "block truncate text-destructive",
5955
5989
  title: getErrorMessage(op.error),
5956
5990
  children: getErrorMessage(op.error) || "Unknown error"
5957
5991
  })
5958
5992
  }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("td", {
5959
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5993
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5960
5994
  children: /* @__PURE__ */ jsxs("span", {
5961
5995
  className: "flex items-center gap-1",
5962
5996
  children: [getStatusIcon(op.status), getStatusLabel(op.status)]
5963
5997
  })
5964
5998
  }), /* @__PURE__ */ jsx("td", {
5965
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
5999
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
5966
6000
  children: op.operations.length
5967
6001
  })] })
5968
6002
  ]
@@ -6078,7 +6112,7 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6078
6112
  children: [/* @__PURE__ */ jsxs("div", {
6079
6113
  className: "flex items-center gap-2",
6080
6114
  children: [/* @__PURE__ */ jsxs("button", {
6081
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6115
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-2 py-1 text-sm text-foreground hover:hover-effect",
6082
6116
  onClick: onBack,
6083
6117
  type: "button",
6084
6118
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -6087,11 +6121,11 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6087
6121
  size: 14
6088
6122
  }), "Back"]
6089
6123
  }), /* @__PURE__ */ jsxs("h2", {
6090
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
6124
+ className: "text-lg font-semibold text-foreground",
6091
6125
  children: ["Channel: ", remoteName]
6092
6126
  })]
6093
6127
  }), onRefresh && /* @__PURE__ */ jsxs("button", {
6094
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6128
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6095
6129
  onClick: onRefresh,
6096
6130
  type: "button",
6097
6131
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -6101,12 +6135,12 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6101
6135
  })]
6102
6136
  }),
6103
6137
  connectionState && /* @__PURE__ */ jsxs("div", {
6104
- className: "rounded-sm border border-gray-200 bg-gray-50 p-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6138
+ className: "rounded-sm border border-border bg-background p-4",
6105
6139
  children: [/* @__PURE__ */ jsx("h3", {
6106
- className: "mb-3 text-sm font-semibold text-gray-900 dark:text-slate-50",
6140
+ className: "mb-3 text-sm font-semibold text-foreground",
6107
6141
  children: "Connection State"
6108
6142
  }), /* @__PURE__ */ jsxs("div", {
6109
- className: "flex flex-wrap items-center gap-4 text-sm text-gray-700 dark:text-slate-200",
6143
+ className: "flex flex-wrap items-center gap-4 text-sm text-foreground",
6110
6144
  children: [
6111
6145
  /* @__PURE__ */ jsxs("div", {
6112
6146
  className: "flex items-center gap-2",
@@ -6122,11 +6156,11 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6122
6156
  "Push:",
6123
6157
  " ",
6124
6158
  /* @__PURE__ */ jsx("span", {
6125
- className: connectionState.pushBlocked ? "text-red-600 dark:text-red-100" : "text-green-600 dark:text-green-100",
6159
+ className: connectionState.pushBlocked ? "text-destructive" : "text-success",
6126
6160
  children: connectionState.pushBlocked ? "Blocked" : "OK"
6127
6161
  }),
6128
6162
  connectionState.pushFailureCount > 0 && /* @__PURE__ */ jsxs("span", {
6129
- className: "ml-1 text-red-600 dark:text-red-100",
6163
+ className: "ml-1 text-destructive",
6130
6164
  children: [
6131
6165
  "(",
6132
6166
  connectionState.pushFailureCount,
@@ -6138,21 +6172,21 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6138
6172
  })]
6139
6173
  }),
6140
6174
  pollerControls && /* @__PURE__ */ jsxs("div", {
6141
- className: "rounded-sm border border-gray-200 bg-gray-50 p-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6175
+ className: "rounded-sm border border-border bg-background p-4",
6142
6176
  children: [/* @__PURE__ */ jsx("h3", {
6143
- className: "mb-3 text-sm font-semibold text-gray-900 dark:text-slate-50",
6177
+ className: "mb-3 text-sm font-semibold text-foreground",
6144
6178
  children: "Poller"
6145
6179
  }), /* @__PURE__ */ jsxs("div", {
6146
6180
  className: "flex items-center justify-between",
6147
6181
  children: [/* @__PURE__ */ jsxs("div", {
6148
6182
  className: "flex items-center gap-4",
6149
6183
  children: [/* @__PURE__ */ jsxs("div", {
6150
- className: "text-sm text-gray-700 dark:text-slate-200",
6184
+ className: "text-sm text-foreground",
6151
6185
  children: [
6152
6186
  "Status:",
6153
6187
  " ",
6154
6188
  /* @__PURE__ */ jsx("span", {
6155
- className: pollerState.isPaused ? "text-yellow-600 dark:text-yellow-100" : "text-green-600 dark:text-green-100",
6189
+ className: pollerState.isPaused ? "text-warning" : "text-success",
6156
6190
  children: pollerState.isPaused ? "Paused" : "Running"
6157
6191
  })
6158
6192
  ]
@@ -6160,12 +6194,12 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6160
6194
  className: "flex items-center gap-1",
6161
6195
  children: [
6162
6196
  /* @__PURE__ */ jsx("label", {
6163
- className: "text-sm text-gray-700 dark:text-slate-200",
6197
+ className: "text-sm text-foreground",
6164
6198
  htmlFor: "poll-interval",
6165
6199
  children: "Interval:"
6166
6200
  }),
6167
6201
  /* @__PURE__ */ jsx("input", {
6168
- className: "w-20 rounded-sm border border-gray-300 px-2 py-1 text-sm dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6202
+ className: "w-20 rounded-sm border border-border px-2 py-1 text-sm",
6169
6203
  id: "poll-interval",
6170
6204
  min: 100,
6171
6205
  onChange: (e) => setIntervalMs(Number(e.target.value)),
@@ -6176,11 +6210,11 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6176
6210
  value: intervalMs
6177
6211
  }),
6178
6212
  /* @__PURE__ */ jsx("span", {
6179
- className: "text-sm text-gray-500 dark:text-slate-400",
6213
+ className: "text-sm text-muted-foreground",
6180
6214
  children: "ms"
6181
6215
  }),
6182
6216
  /* @__PURE__ */ jsx("button", {
6183
- className: "ml-1 rounded-sm border border-gray-300 bg-gray-50 px-2 py-1 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6217
+ className: "ml-1 rounded-sm border border-border bg-background px-2 py-1 text-sm text-foreground hover:hover-effect",
6184
6218
  onClick: handleApplyInterval,
6185
6219
  type: "button",
6186
6220
  children: "Apply"
@@ -6190,17 +6224,17 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6190
6224
  }), /* @__PURE__ */ jsxs("div", {
6191
6225
  className: "flex gap-2",
6192
6226
  children: [pollerState.isPaused ? /* @__PURE__ */ jsx("button", {
6193
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6227
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6194
6228
  onClick: handleResume,
6195
6229
  type: "button",
6196
6230
  children: "Resume"
6197
6231
  }) : /* @__PURE__ */ jsx("button", {
6198
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6232
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6199
6233
  onClick: handlePause,
6200
6234
  type: "button",
6201
6235
  children: "Pause"
6202
6236
  }), /* @__PURE__ */ jsx("button", {
6203
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6237
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
6204
6238
  disabled: !pollerState.isPaused,
6205
6239
  onClick: handlePollNow,
6206
6240
  type: "button",
@@ -6210,25 +6244,25 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6210
6244
  })]
6211
6245
  }),
6212
6246
  /* @__PURE__ */ jsxs("div", {
6213
- className: "rounded-sm border border-gray-200 bg-gray-50 p-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6247
+ className: "rounded-sm border border-border bg-background p-4",
6214
6248
  children: [/* @__PURE__ */ jsx("h3", {
6215
- className: "mb-3 text-sm font-semibold text-gray-900 dark:text-slate-50",
6249
+ className: "mb-3 text-sm font-semibold text-foreground",
6216
6250
  children: "Mailbox Processing"
6217
6251
  }), /* @__PURE__ */ jsxs("div", {
6218
6252
  className: "flex flex-col gap-3",
6219
6253
  children: [/* @__PURE__ */ jsxs("div", {
6220
6254
  className: "flex items-center justify-between",
6221
6255
  children: [/* @__PURE__ */ jsxs("div", {
6222
- className: "flex items-center gap-3 text-sm text-gray-700 dark:text-slate-200",
6256
+ className: "flex items-center gap-3 text-sm text-foreground",
6223
6257
  children: [/* @__PURE__ */ jsxs("span", { children: [
6224
6258
  "Inbox:",
6225
6259
  " ",
6226
6260
  /* @__PURE__ */ jsx("span", {
6227
- className: mailboxStates.inbox.isPaused ? "text-yellow-600 dark:text-yellow-100" : "text-green-600 dark:text-green-100",
6261
+ className: mailboxStates.inbox.isPaused ? "text-warning" : "text-success",
6228
6262
  children: mailboxStates.inbox.isPaused ? "Paused" : "Active"
6229
6263
  })
6230
6264
  ] }), /* @__PURE__ */ jsxs("span", {
6231
- className: "font-mono text-sm text-gray-500 dark:text-slate-400",
6265
+ className: "font-mono text-sm text-muted-foreground",
6232
6266
  children: [
6233
6267
  "We ack'd (theirs): ",
6234
6268
  channel.inbox.ackOrdinal,
@@ -6240,17 +6274,17 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6240
6274
  }), /* @__PURE__ */ jsxs("div", {
6241
6275
  className: "flex gap-2",
6242
6276
  children: [mailboxStates.inbox.isPaused ? /* @__PURE__ */ jsx("button", {
6243
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6277
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6244
6278
  onClick: () => handleMailboxResume("inbox"),
6245
6279
  type: "button",
6246
6280
  children: "Resume"
6247
6281
  }) : /* @__PURE__ */ jsx("button", {
6248
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6282
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6249
6283
  onClick: () => handleMailboxPause("inbox"),
6250
6284
  type: "button",
6251
6285
  children: "Pause"
6252
6286
  }), /* @__PURE__ */ jsx("button", {
6253
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6287
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
6254
6288
  disabled: !mailboxStates.inbox.isPaused,
6255
6289
  onClick: () => handleMailboxFlush("inbox"),
6256
6290
  type: "button",
@@ -6260,16 +6294,16 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6260
6294
  }), /* @__PURE__ */ jsxs("div", {
6261
6295
  className: "flex items-center justify-between",
6262
6296
  children: [/* @__PURE__ */ jsxs("div", {
6263
- className: "flex items-center gap-3 text-sm text-gray-700 dark:text-slate-200",
6297
+ className: "flex items-center gap-3 text-sm text-foreground",
6264
6298
  children: [/* @__PURE__ */ jsxs("span", { children: [
6265
6299
  "Outbox:",
6266
6300
  " ",
6267
6301
  /* @__PURE__ */ jsx("span", {
6268
- className: mailboxStates.outbox.isPaused ? "text-yellow-600 dark:text-yellow-100" : "text-green-600 dark:text-green-100",
6302
+ className: mailboxStates.outbox.isPaused ? "text-warning" : "text-success",
6269
6303
  children: mailboxStates.outbox.isPaused ? "Paused" : "Active"
6270
6304
  })
6271
6305
  ] }), /* @__PURE__ */ jsxs("span", {
6272
- className: "font-mono text-sm text-gray-500 dark:text-slate-400",
6306
+ className: "font-mono text-sm text-muted-foreground",
6273
6307
  children: [
6274
6308
  "They ack'd (ours): ",
6275
6309
  channel.outbox.ackOrdinal,
@@ -6281,17 +6315,17 @@ function ChannelInspector({ remoteName, channel, onBack, onRefresh, connectionSt
6281
6315
  }), /* @__PURE__ */ jsxs("div", {
6282
6316
  className: "flex gap-2",
6283
6317
  children: [mailboxStates.outbox.isPaused ? /* @__PURE__ */ jsx("button", {
6284
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6318
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6285
6319
  onClick: () => handleMailboxResume("outbox"),
6286
6320
  type: "button",
6287
6321
  children: "Resume"
6288
6322
  }) : /* @__PURE__ */ jsx("button", {
6289
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6323
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect",
6290
6324
  onClick: () => handleMailboxPause("outbox"),
6291
6325
  type: "button",
6292
6326
  children: "Pause"
6293
6327
  }), /* @__PURE__ */ jsx("button", {
6294
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6328
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
6295
6329
  disabled: !mailboxStates.outbox.isPaused,
6296
6330
  onClick: () => handleMailboxFlush("outbox"),
6297
6331
  type: "button",
@@ -6397,8 +6431,8 @@ function sortRemotes(remotes, sort) {
6397
6431
  bValue = b.name;
6398
6432
  break;
6399
6433
  case "collectionId":
6400
- aValue = a.collectionId;
6401
- bValue = b.collectionId;
6434
+ aValue = a.collectionId.key;
6435
+ bValue = b.collectionId.key;
6402
6436
  break;
6403
6437
  case "filter":
6404
6438
  aValue = formatFilter(a.filter);
@@ -6496,14 +6530,14 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6496
6530
  /* @__PURE__ */ jsxs("div", {
6497
6531
  className: "flex shrink-0 items-center justify-between gap-2",
6498
6532
  children: [/* @__PURE__ */ jsx("h2", {
6499
- className: "text-lg font-semibold text-gray-900 dark:text-slate-50",
6533
+ className: "text-lg font-semibold text-foreground",
6500
6534
  children: "Remotes Inspector"
6501
6535
  }), /* @__PURE__ */ jsxs("div", {
6502
6536
  className: "flex items-center gap-2",
6503
6537
  children: [addRemoteManual && /* @__PURE__ */ jsxs("div", {
6504
6538
  className: "flex items-center gap-1",
6505
6539
  children: [/* @__PURE__ */ jsx("input", {
6506
- className: "w-[260px] rounded-sm border border-gray-300 px-2 py-1.5 text-sm text-gray-900 placeholder:text-gray-400 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-500",
6540
+ className: "w-[260px] rounded-sm border border-border px-2 py-1.5 text-sm text-foreground placeholder:text-muted-foreground disabled:disabled-effect",
6507
6541
  disabled: adding,
6508
6542
  onChange: (e) => setManualUrl(e.target.value),
6509
6543
  onKeyDown: (e) => {
@@ -6513,7 +6547,7 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6513
6547
  type: "text",
6514
6548
  value: manualUrl
6515
6549
  }), /* @__PURE__ */ jsx("button", {
6516
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6550
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
6517
6551
  disabled: adding || !manualUrl.trim(),
6518
6552
  onClick: () => void handleAddManual(),
6519
6553
  title: "Register a remote drive in manual poll mode (no background polling)",
@@ -6521,7 +6555,7 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6521
6555
  children: "Add (manual)"
6522
6556
  })]
6523
6557
  }), /* @__PURE__ */ jsxs("button", {
6524
- className: "flex items-center gap-1 rounded-sm border border-gray-300 bg-gray-50 px-3 py-1.5 text-sm text-gray-700 hover:bg-gray-100 disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
6558
+ className: "flex items-center gap-1 rounded-sm border border-border bg-background px-3 py-1.5 text-sm text-foreground hover:hover-effect disabled:disabled-effect",
6525
6559
  disabled: loading,
6526
6560
  onClick: () => void handleRefresh(),
6527
6561
  type: "button",
@@ -6533,21 +6567,21 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6533
6567
  })]
6534
6568
  }),
6535
6569
  addError && /* @__PURE__ */ jsx("div", {
6536
- className: "shrink-0 rounded-sm border border-red-300 bg-red-50 px-3 py-1.5 text-xs text-red-700 dark:border-red-600 dark:bg-red-900 dark:text-red-100",
6570
+ className: "shrink-0 rounded-sm border border-destructive bg-destructive/10 px-3 py-1.5 text-xs text-destructive",
6537
6571
  children: addError
6538
6572
  }),
6539
6573
  /* @__PURE__ */ jsx("div", {
6540
- className: "scrollbar-thin max-h-full overflow-auto rounded-lg border border-gray-300 scrollbar-thumb-gray-300 scrollbar-thumb-rounded-md scrollbar-track-transparent dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:scrollbar-thumb-slate-600",
6574
+ className: "scrollbar-thin max-h-full overflow-auto rounded-lg border border-border scrollbar-thumb-border scrollbar-thumb-rounded-md scrollbar-track-transparent",
6541
6575
  children: /* @__PURE__ */ jsxs("table", {
6542
6576
  className: "w-full border-collapse",
6543
6577
  children: [/* @__PURE__ */ jsx("thead", {
6544
- className: "sticky top-0 bg-gray-100 dark:bg-slate-700",
6578
+ className: "sticky top-0 bg-muted",
6545
6579
  children: /* @__PURE__ */ jsx("tr", { children: columns.map((column, index) => {
6546
6580
  const isActive = sort?.column === column.key;
6547
6581
  const sortDirection = isActive ? sort.direction : "asc";
6548
6582
  const isSortable = column.key !== "channel" && column.key !== "actions" && column.key !== "status";
6549
6583
  return /* @__PURE__ */ jsx("th", {
6550
- className: twMerge("group px-3 py-2 text-left text-xs font-medium text-gray-700 dark:text-slate-200", index > 0 && "border-l border-gray-300 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", isSortable && "cursor-pointer hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-slate-600 dark:hover:text-slate-100"),
6584
+ className: twMerge("group px-3 py-2 text-left text-xs font-medium text-foreground", index > 0 && "border-l border-border", isSortable && "cursor-pointer hover:hover-effect"),
6551
6585
  onClick: () => isSortable && handleSort(column.key),
6552
6586
  style: { width: column.width },
6553
6587
  children: /* @__PURE__ */ jsxs("div", {
@@ -6563,18 +6597,18 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6563
6597
  }, column.key);
6564
6598
  }) })
6565
6599
  }), /* @__PURE__ */ jsx("tbody", { children: loading && sortedRemotes.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
6566
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
6600
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
6567
6601
  colSpan: columns.length,
6568
6602
  children: "Loading..."
6569
6603
  }) }) : sortedRemotes.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
6570
- className: "px-3 py-8 text-center text-sm text-gray-500 dark:text-slate-400",
6604
+ className: "px-3 py-8 text-center text-sm text-muted-foreground",
6571
6605
  colSpan: columns.length,
6572
6606
  children: "No remotes configured"
6573
6607
  }) }) : sortedRemotes.map((remote) => /* @__PURE__ */ jsxs("tr", {
6574
- className: "odd:bg-white even:bg-gray-50 hover:bg-blue-50 dark:odd:bg-slate-800 dark:even:bg-slate-800 dark:hover:bg-blue-900",
6608
+ className: "odd:bg-card even:bg-background hover:hover-effect",
6575
6609
  children: [
6576
6610
  /* @__PURE__ */ jsx("td", {
6577
- className: "px-3 py-2 text-xs text-gray-900 dark:text-slate-50",
6611
+ className: "px-3 py-2 text-xs text-foreground",
6578
6612
  children: /* @__PURE__ */ jsx("span", {
6579
6613
  className: "block truncate",
6580
6614
  title: remote.id,
@@ -6582,7 +6616,7 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6582
6616
  })
6583
6617
  }),
6584
6618
  /* @__PURE__ */ jsx("td", {
6585
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6619
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
6586
6620
  children: /* @__PURE__ */ jsx("span", {
6587
6621
  className: "block truncate",
6588
6622
  title: remote.name,
@@ -6590,25 +6624,25 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6590
6624
  })
6591
6625
  }),
6592
6626
  /* @__PURE__ */ jsx("td", {
6593
- className: "border-l border-gray-300 px-3 py-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6627
+ className: "border-l border-border px-3 py-2",
6594
6628
  children: connectionStates?.get(remote.name) ? /* @__PURE__ */ jsx(ConnectionStateBadge, {
6595
6629
  failureCount: connectionStates.get(remote.name).failureCount,
6596
6630
  state: connectionStates.get(remote.name).state
6597
6631
  }) : /* @__PURE__ */ jsx("span", {
6598
- className: "text-xs text-gray-400 dark:text-slate-500",
6632
+ className: "text-xs text-muted-foreground",
6599
6633
  children: "-"
6600
6634
  })
6601
6635
  }),
6602
6636
  /* @__PURE__ */ jsx("td", {
6603
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6637
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
6604
6638
  children: /* @__PURE__ */ jsx("span", {
6605
6639
  className: "block truncate",
6606
- title: remote.collectionId,
6607
- children: remote.collectionId
6640
+ title: remote.collectionId.key,
6641
+ children: remote.collectionId.key
6608
6642
  })
6609
6643
  }),
6610
6644
  /* @__PURE__ */ jsx("td", {
6611
- className: "border-l border-gray-300 px-3 py-2 text-xs text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6645
+ className: "border-l border-border px-3 py-2 text-xs text-foreground",
6612
6646
  children: /* @__PURE__ */ jsx("span", {
6613
6647
  className: "block truncate",
6614
6648
  title: formatFilter(remote.filter),
@@ -6616,9 +6650,9 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6616
6650
  })
6617
6651
  }),
6618
6652
  /* @__PURE__ */ jsx("td", {
6619
- className: "border-l border-gray-300 px-3 py-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6653
+ className: "border-l border-border px-3 py-2",
6620
6654
  children: /* @__PURE__ */ jsxs("button", {
6621
- className: "flex items-center gap-1 rounded-sm bg-blue-50 px-2 py-1 text-xs text-blue-700 hover:bg-blue-100 dark:bg-blue-900 dark:text-blue-100 dark:hover:bg-blue-800",
6655
+ className: "flex items-center gap-1 rounded-sm bg-info/10 px-2 py-1 text-xs text-info hover:hover-effect",
6622
6656
  onClick: () => handleViewChannel(remote),
6623
6657
  type: "button",
6624
6658
  children: ["View", /* @__PURE__ */ jsx(Icon, {
@@ -6628,17 +6662,17 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6628
6662
  })
6629
6663
  }),
6630
6664
  hasRowActions && /* @__PURE__ */ jsx("td", {
6631
- className: "border-l border-gray-300 px-3 py-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6665
+ className: "border-l border-border px-3 py-2",
6632
6666
  children: /* @__PURE__ */ jsxs("div", {
6633
6667
  className: "flex items-center gap-1",
6634
6668
  children: [triggerPull && /* @__PURE__ */ jsx("button", {
6635
- className: "rounded-sm bg-gray-100 px-2 py-1 text-xs text-gray-700 hover:bg-gray-200 dark:bg-slate-700 dark:text-slate-200 dark:hover:bg-slate-600 dark:hover:text-slate-100",
6669
+ className: "rounded-sm bg-muted px-2 py-1 text-xs text-foreground hover:hover-effect",
6636
6670
  onClick: () => handlePull(remote),
6637
6671
  title: "Trigger a single pull cycle for this remote",
6638
6672
  type: "button",
6639
6673
  children: "Pull"
6640
6674
  }), removeRemote && /* @__PURE__ */ jsx("button", {
6641
- className: "rounded-sm bg-red-50 px-2 py-1 text-xs text-red-700 hover:bg-red-100 dark:bg-red-900 dark:text-red-100 dark:hover:bg-red-800",
6675
+ className: "rounded-sm bg-destructive/10 px-2 py-1 text-xs text-destructive hover:hover-effect",
6642
6676
  onClick: () => void handleRemove(remote),
6643
6677
  type: "button",
6644
6678
  children: "Remove"
@@ -6650,7 +6684,7 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6650
6684
  })
6651
6685
  }),
6652
6686
  /* @__PURE__ */ jsxs("div", {
6653
- className: "shrink-0 text-sm text-gray-700 dark:text-slate-200",
6687
+ className: "shrink-0 text-sm text-foreground",
6654
6688
  children: [
6655
6689
  "Showing ",
6656
6690
  sortedRemotes.length,
@@ -6681,7 +6715,7 @@ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExpl
6681
6715
  children: [/* @__PURE__ */ jsx("div", {
6682
6716
  className: "flex shrink-0 items-center justify-end px-3 pt-3",
6683
6717
  children: /* @__PURE__ */ jsx("button", {
6684
- className: "flex size-6 cursor-pointer items-center justify-center rounded-md text-gray-500 outline-none hover:text-gray-900 dark:text-slate-400 dark:hover:text-slate-50",
6718
+ className: "flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:hover-effect",
6685
6719
  onClick: () => onOpenChange(false),
6686
6720
  type: "button",
6687
6721
  children: /* @__PURE__ */ jsx(Icon, {
@@ -6742,7 +6776,7 @@ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExpl
6742
6776
  }
6743
6777
  //#endregion
6744
6778
  //#region src/connect/components/modal/missing-package-modal.tsx
6745
- const buttonStyles = "min-h-[36px] text-sm font-semibold py-2 px-4 rounded-xl outline-none active:opacity-75 hover:scale-105 transform transition-all";
6779
+ const buttonStyles = "min-h-[36px] text-sm font-semibold py-2 px-4 rounded-xl outline-none active:active-effect hover:hover-effect transform transition-all";
6746
6780
  function groupByPackage(installations) {
6747
6781
  const groups = /* @__PURE__ */ new Map();
6748
6782
  for (const item of installations) {
@@ -6785,14 +6819,14 @@ function PackageInstallModal(props) {
6785
6819
  },
6786
6820
  ...restProps,
6787
6821
  children: /* @__PURE__ */ jsxs("div", {
6788
- className: "w-[460px] rounded-xl bg-gray-50 p-6 text-gray-300 dark:bg-slate-800 dark:text-slate-600",
6822
+ className: "w-[460px] rounded-xl bg-background p-6 text-foreground",
6789
6823
  children: [
6790
6824
  /* @__PURE__ */ jsx("div", {
6791
- className: "border-b border-gray-50 pb-2 text-2xl font-bold text-gray-900 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
6825
+ className: "border-b border-border pb-2 text-2xl font-bold text-foreground",
6792
6826
  children: grouped.length === 1 ? "Package Required" : "Packages Required"
6793
6827
  }),
6794
6828
  /* @__PURE__ */ jsx("div", {
6795
- className: "my-4 text-sm text-gray-700 dark:text-slate-200",
6829
+ className: "my-4 text-sm text-foreground",
6796
6830
  children: grouped.length === 1 ? "A document requires a package that is not installed." : "Documents require packages that are not installed."
6797
6831
  }),
6798
6832
  /* @__PURE__ */ jsx("div", {
@@ -6800,14 +6834,14 @@ function PackageInstallModal(props) {
6800
6834
  children: grouped.map(({ packageName, documentTypes }) => {
6801
6835
  const installing = installingPackages.has(packageName);
6802
6836
  return /* @__PURE__ */ jsxs("div", {
6803
- className: "rounded-xl bg-gray-50 p-4 dark:bg-slate-800",
6837
+ className: "rounded-xl bg-background p-4",
6804
6838
  children: [
6805
6839
  /* @__PURE__ */ jsx("div", {
6806
- className: "mb-1 text-sm font-semibold text-gray-900 dark:text-slate-100",
6840
+ className: "mb-1 text-sm font-semibold text-foreground",
6807
6841
  children: packageName
6808
6842
  }),
6809
6843
  /* @__PURE__ */ jsxs("div", {
6810
- className: "mb-3 text-xs text-gray-500 dark:text-slate-400",
6844
+ className: "mb-3 text-xs text-muted-foreground",
6811
6845
  children: [
6812
6846
  "Required for document type",
6813
6847
  documentTypes.length > 1 ? "s" : "",
@@ -6822,13 +6856,13 @@ function PackageInstallModal(props) {
6822
6856
  type: "button",
6823
6857
  onClick: () => onDismiss(packageName),
6824
6858
  disabled: installing,
6825
- className: twMerge(buttonStyles, "border border-gray-200 bg-gray-50 text-gray-800 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", installing && "cursor-not-allowed opacity-50"),
6859
+ className: twMerge(buttonStyles, "border border-border bg-background text-foreground", installing && "cursor-not-allowed opacity-50"),
6826
6860
  children: "Dismiss"
6827
6861
  }), /* @__PURE__ */ jsx("button", {
6828
6862
  type: "button",
6829
6863
  onClick: () => void handleInstall(packageName),
6830
6864
  disabled: installing,
6831
- className: twMerge(buttonStyles, "bg-gray-800 text-gray-50 dark:bg-slate-100 dark:text-slate-900", installing && "cursor-not-allowed opacity-50"),
6865
+ className: twMerge(buttonStyles, "bg-primary text-primary-foreground", installing && "cursor-not-allowed opacity-50"),
6832
6866
  children: installing ? "Installing..." : "Install"
6833
6867
  })]
6834
6868
  })
@@ -6873,12 +6907,12 @@ function ReadRequiredModal(props) {
6873
6907
  className: "w-[500px] p-6",
6874
6908
  children: [
6875
6909
  /* @__PURE__ */ jsx("div", {
6876
- className: "border-b border-gray-100 pb-2 text-2xl font-bold text-gray-900 dark:border-slate-500 dark:text-slate-100",
6910
+ className: "border-b border-border pb-2 text-2xl font-bold text-foreground",
6877
6911
  children: header
6878
6912
  }),
6879
6913
  /* @__PURE__ */ jsx("div", {
6880
6914
  ref: contentRef,
6881
- className: twMerge("my-6 max-h-[245px] overflow-scroll rounded-md bg-gray-50 p-4 text-center dark:bg-slate-700", bodyClassName),
6915
+ className: twMerge("my-6 max-h-[245px] overflow-scroll rounded-md bg-background p-4 text-center", bodyClassName),
6882
6916
  children: body
6883
6917
  }),
6884
6918
  /* @__PURE__ */ jsx("div", {
@@ -6886,7 +6920,7 @@ function ReadRequiredModal(props) {
6886
6920
  children: /* @__PURE__ */ jsx("button", {
6887
6921
  disabled: disableClose,
6888
6922
  onClick: onContinue,
6889
- className: twMerge("min-h-12 flex-1 transform rounded-xl px-6 py-3 text-base font-semibold transition-all outline-none hover:scale-105 active:opacity-75", "bg-gray-800 text-gray-50 dark:bg-slate-100 dark:text-slate-900", disableClose && "cursor-not-allowed bg-gray-300 hover:scale-100 dark:bg-slate-600 dark:text-slate-100"),
6923
+ className: twMerge("min-h-12 flex-1 transform rounded-xl px-6 py-3 text-base font-semibold transition-all outline-none hover:hover-effect active:active-effect", "bg-primary text-primary-foreground", disableClose && "cursor-not-allowed bg-secondary hover:hover-effect"),
6890
6924
  children: closeLabel
6891
6925
  })
6892
6926
  })
@@ -6929,9 +6963,9 @@ function DependencyVersions(props) {
6929
6963
  isOpen,
6930
6964
  onOpenChange: () => setIsOpen(!isOpen),
6931
6965
  title: `App version: ${validatedData.version}`,
6932
- toggleClassName: "text-gray-900 text-sm dark:text-slate-50",
6966
+ toggleClassName: "text-sm text-foreground",
6933
6967
  children: /* @__PURE__ */ jsxs("ul", {
6934
- className: "text-sm text-gray-700 dark:text-slate-200",
6968
+ className: "text-sm text-foreground",
6935
6969
  children: [Object.entries(validatedData.dependencies).map(([dep, version]) => /* @__PURE__ */ jsxs("li", {
6936
6970
  className: "my-1 flex justify-between pr-1",
6937
6971
  children: [/* @__PURE__ */ jsxs("span", { children: [dep.replace("@powerhousedao/", ""), ":"] }), /* @__PURE__ */ jsx("span", {
@@ -6953,14 +6987,14 @@ function DependencyVersions(props) {
6953
6987
  function About(props) {
6954
6988
  const { packageJson, phCliVersion } = props;
6955
6989
  return /* @__PURE__ */ jsxs("div", {
6956
- className: "bg-gray-50 p-3 dark:bg-slate-800",
6990
+ className: "bg-background p-3",
6957
6991
  children: [
6958
6992
  /* @__PURE__ */ jsx("h2", {
6959
- className: "font-semibold text-gray-900 dark:text-slate-100",
6993
+ className: "font-semibold text-foreground",
6960
6994
  children: "About"
6961
6995
  }),
6962
6996
  /* @__PURE__ */ jsx("p", {
6963
- className: "text-sm font-normal text-gray-700 dark:text-slate-200",
6997
+ className: "text-sm font-normal text-foreground",
6964
6998
  children: "Connect is the hub for your most important documents and processes translated into software. Easily capture data in a structured way with Connect."
6965
6999
  }),
6966
7000
  /* @__PURE__ */ jsx("div", {
@@ -6988,15 +7022,15 @@ function getDriveSharingType(drive) {
6988
7022
  function DangerZone(props) {
6989
7023
  const { className, ...rest } = props;
6990
7024
  return /* @__PURE__ */ jsxs("div", {
6991
- className: twMerge("h-full rounded-lg bg-gray-50 p-3 dark:bg-slate-800", className),
7025
+ className: twMerge("h-full rounded-lg bg-background p-3", className),
6992
7026
  children: [
6993
7027
  /* @__PURE__ */ jsx("h2", {
6994
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-100",
7028
+ className: "mb-4 font-semibold text-foreground",
6995
7029
  children: "Modify Drives"
6996
7030
  }),
6997
7031
  /* @__PURE__ */ jsx(ModifyDrives, { ...rest }),
6998
7032
  /* @__PURE__ */ jsx("h2", {
6999
- className: "my-4 font-semibold text-gray-900 dark:text-slate-100",
7033
+ className: "my-4 font-semibold text-foreground",
7000
7034
  children: "Local Storage"
7001
7035
  }),
7002
7036
  /* @__PURE__ */ jsx(LocalStorage, { ...rest })
@@ -7050,7 +7084,7 @@ function Drive(props) {
7050
7084
  }
7051
7085
  const icon = getNodeIcon();
7052
7086
  return /* @__PURE__ */ jsxs("div", {
7053
- className: twMerge("mb-4 flex w-96 items-center gap-2 rounded-md border border-gray-200 bg-gray-50 px-3 py-2 text-gray-900 shadow-sm last-of-type:mb-0 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
7087
+ className: twMerge("mb-4 flex w-96 items-center gap-2 rounded-md border border-border bg-background px-3 py-2 text-foreground shadow-sm last-of-type:mb-0", className),
7054
7088
  children: [
7055
7089
  icon,
7056
7090
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
@@ -7059,17 +7093,17 @@ function Drive(props) {
7059
7093
  }), /* @__PURE__ */ jsxs("div", {
7060
7094
  className: "flex items-baseline gap-x-2 leading-4.5",
7061
7095
  children: [/* @__PURE__ */ jsxs("span", {
7062
- className: "text-sm text-gray-700 dark:text-slate-200",
7096
+ className: "text-sm text-foreground",
7063
7097
  children: [capitalCase(getDriveSharingType(drive)), " App"]
7064
7098
  }), /* @__PURE__ */ jsxs("a", {
7065
7099
  href: "https://www.powerhouse.inc/",
7066
7100
  target: "_blank",
7067
7101
  rel: "noopener noreferrer",
7068
- className: "group flex items-center gap-x-2 text-sm text-gray-500 transition-colors hover:text-purple-700 dark:text-slate-500 dark:hover:text-purple-100",
7102
+ className: "group flex items-center gap-x-2 text-sm text-muted-foreground transition-colors hover:hover-effect",
7069
7103
  children: ["By Powerhouse", /* @__PURE__ */ jsx("svg", {
7070
7104
  xmlns: "http://www.w3.org/2000/svg",
7071
7105
  viewBox: "0 0 12 12",
7072
- className: "size-4 text-gray-400 transition-colors group-hover:text-inherit dark:text-slate-500",
7106
+ className: "size-4 text-muted-foreground transition-colors group-hover:hover-effect",
7073
7107
  children: /* @__PURE__ */ jsx("path", {
7074
7108
  d: "M7.99365 11.9939C9.46632 11.9939 10.6603 10.7999 10.6603 9.32722V7.32722C10.6603 6.95922 10.3617 6.66056 9.99365 6.66056C9.62565 6.66056 9.32699 6.95922 9.32699 7.32722V9.32722C9.32699 10.0639 8.73032 10.6606 7.99365 10.6606H2.66032C1.92365 10.6606 1.32699 10.0639 1.32699 9.32722V3.99389C1.32699 3.25723 1.92365 2.66056 2.66032 2.66056H4.66032C5.02832 2.66056 5.32699 2.36189 5.32699 1.99389C5.32699 1.6259 5.02832 1.32723 4.66032 1.32723H2.66032C1.18765 1.32723 -0.00634766 2.52123 -0.00634766 3.99389V9.32722C-0.00634766 10.7999 1.18765 11.9939 2.66032 11.9939H7.99365ZM5.32699 7.32722C5.49765 7.32722 5.67565 7.26989 5.80632 7.13989L10.1396 2.80656L11.9937 4.66056V-0.00610352H7.32699L9.18099 1.8479L4.84766 6.18123C4.58766 6.4419 4.58766 6.87922 4.84766 7.13989C4.97832 7.26989 5.15632 7.32722 5.32699 7.32722Z",
7075
7109
  fill: "currentColor"
@@ -7082,7 +7116,7 @@ function Drive(props) {
7082
7116
  id: "delete-drive",
7083
7117
  label: "Delete",
7084
7118
  icon: /* @__PURE__ */ jsx(Icon, { name: "Trash" }),
7085
- className: "text-red-900 dark:text-red-400"
7119
+ className: "text-destructive"
7086
7120
  }],
7087
7121
  onItemClick: (id) => {
7088
7122
  if (id === "delete-drive") onDeleteDrive(drive);
@@ -7096,7 +7130,7 @@ function Drive(props) {
7096
7130
  setIsDropdownMenuOpen(true);
7097
7131
  },
7098
7132
  children: /* @__PURE__ */ jsx(Icon, {
7099
- className: "text-gray-700 group-hover:text-gray-900 dark:text-slate-200 dark:group-hover:text-slate-50",
7133
+ className: "text-foreground group-hover:hover-effect",
7100
7134
  name: "VerticalDots",
7101
7135
  size: 16
7102
7136
  })
@@ -7108,7 +7142,7 @@ function Drive(props) {
7108
7142
  function LocalStorage(props) {
7109
7143
  const { onClearStorage } = props;
7110
7144
  return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("button", {
7111
- className: "flex items-center gap-x-2 rounded-md border border-gray-300 bg-transparent px-3 py-1 text-sm font-medium text-red-900 transition-colors hover:bg-gray-100 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700",
7145
+ className: "flex items-center gap-x-2 rounded-md border border-border bg-transparent px-3 py-1 text-sm font-medium text-destructive transition-colors hover:hover-effect",
7112
7146
  onClick: () => void onClearStorage(),
7113
7147
  children: ["Clear Storage ", /* @__PURE__ */ jsx(Icon, {
7114
7148
  name: "Trash",
@@ -7121,14 +7155,14 @@ function LocalStorage(props) {
7121
7155
  function DefaultEditor(props) {
7122
7156
  const { className, ...rest } = props;
7123
7157
  return /* @__PURE__ */ jsx("div", {
7124
- className: twMerge("rounded-lg bg-gray-50 p-3 dark:bg-slate-800", className),
7158
+ className: twMerge("rounded-lg bg-background p-3", className),
7125
7159
  children: /* @__PURE__ */ jsx(DefaultEditorSelect, { ...rest })
7126
7160
  });
7127
7161
  }
7128
7162
  function DefaultEditorSelect(props) {
7129
7163
  const { documentModelEditor, setDocumentModelEditor, documentModelEditorOptions, className } = props;
7130
7164
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
7131
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-50",
7165
+ className: "mb-4 font-semibold text-foreground",
7132
7166
  children: "Default Editor Selection"
7133
7167
  }), /* @__PURE__ */ jsx(SelectFieldRaw, {
7134
7168
  className: twMerge("max-w-fit min-w-36", className),
@@ -7232,7 +7266,7 @@ const VersionPicker = (props) => {
7232
7266
  },
7233
7267
  children: [/* @__PURE__ */ jsxs(PopoverTrigger, {
7234
7268
  disabled: disabled || !hasAnyPickable,
7235
- className: twMerge("flex items-center justify-between gap-2 rounded-md border border-gray-300 bg-gray-50 px-2.5 py-1 text-xs font-medium text-gray-900 transition-colors dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", "hover:bg-gray-50 focus:ring-2 focus:ring-gray-900/20 focus:outline-none dark:hover:bg-slate-800", "disabled:cursor-not-allowed disabled:opacity-60", className),
7269
+ className: twMerge("flex items-center justify-between gap-2 rounded-md border border-border bg-background px-2.5 py-1 text-xs font-medium text-foreground transition-colors", "hover:hover-effect focus:ring-2 focus:ring-ring/20 focus:outline-none", "disabled:disabled-effect", className),
7236
7270
  "data-version-picker-trigger": true,
7237
7271
  children: [/* @__PURE__ */ jsx("span", {
7238
7272
  className: "truncate",
@@ -7240,7 +7274,7 @@ const VersionPicker = (props) => {
7240
7274
  }), /* @__PURE__ */ jsx(Icon, {
7241
7275
  name: "ChevronDown",
7242
7276
  size: 12,
7243
- className: "shrink-0 text-gray-500 dark:text-slate-400"
7277
+ className: "shrink-0 text-muted-foreground"
7244
7278
  })]
7245
7279
  }), /* @__PURE__ */ jsxs(PopoverContent, {
7246
7280
  "data-version-picker": true,
@@ -7249,13 +7283,13 @@ const VersionPicker = (props) => {
7249
7283
  className: "w-56 p-0",
7250
7284
  onOpenAutoFocus: (e) => e.preventDefault(),
7251
7285
  children: [/* @__PURE__ */ jsx("div", {
7252
- className: "border-b border-gray-200 p-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
7286
+ className: "border-b border-border p-2",
7253
7287
  children: /* @__PURE__ */ jsxs("div", {
7254
7288
  className: "relative",
7255
7289
  children: [/* @__PURE__ */ jsx(Icon, {
7256
7290
  name: "Search",
7257
7291
  size: 14,
7258
- className: "absolute top-1/2 left-2 -translate-y-1/2 text-gray-400 dark:text-slate-500"
7292
+ className: "absolute top-1/2 left-2 -translate-y-1/2 text-muted-foreground"
7259
7293
  }), /* @__PURE__ */ jsx(Input, {
7260
7294
  value: query,
7261
7295
  onChange: (e) => setQuery(e.target.value),
@@ -7267,13 +7301,13 @@ const VersionPicker = (props) => {
7267
7301
  className: "max-h-60 overflow-y-auto py-1",
7268
7302
  children: [
7269
7303
  filteredTags.length === 0 && filteredVersions.length === 0 && /* @__PURE__ */ jsx("p", {
7270
- className: "px-3 py-4 text-center text-xs text-gray-500 dark:text-slate-400",
7304
+ className: "px-3 py-4 text-center text-xs text-muted-foreground",
7271
7305
  children: "No matches."
7272
7306
  }),
7273
7307
  filteredTags.length > 0 && /* @__PURE__ */ jsxs("div", {
7274
7308
  className: "pb-1",
7275
7309
  children: [/* @__PURE__ */ jsx("p", {
7276
- className: "px-3 py-1 text-xs font-semibold tracking-wide text-gray-500 uppercase dark:text-slate-400",
7310
+ className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7277
7311
  children: "Tags"
7278
7312
  }), filteredTags.map(([tag, ver]) => {
7279
7313
  return /* @__PURE__ */ jsxs("button", {
@@ -7286,19 +7320,19 @@ const VersionPicker = (props) => {
7286
7320
  setOpen(false);
7287
7321
  setQuery("");
7288
7322
  },
7289
- className: twMerge("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs transition-colors", "hover:bg-gray-100 dark:hover:bg-slate-700", selected.kind === "tag" && selected.value === tag && "bg-gray-100 font-semibold dark:bg-slate-700"),
7323
+ className: twMerge("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", selected.kind === "tag" && selected.value === tag && "bg-muted font-semibold"),
7290
7324
  children: [/* @__PURE__ */ jsx("span", {
7291
- className: "truncate text-gray-900 dark:text-slate-50",
7325
+ className: "truncate text-foreground",
7292
7326
  children: tag
7293
7327
  }), /* @__PURE__ */ jsx("span", {
7294
- className: "truncate text-gray-500 dark:text-slate-400",
7328
+ className: "truncate text-muted-foreground",
7295
7329
  children: ver
7296
7330
  })]
7297
7331
  }, `tag:${tag}`);
7298
7332
  })]
7299
7333
  }),
7300
7334
  filteredVersions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
7301
- className: "px-3 py-1 text-xs font-semibold tracking-wide text-gray-500 uppercase dark:text-slate-400",
7335
+ className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7302
7336
  children: "Versions"
7303
7337
  }), filteredVersions.map((ver) => {
7304
7338
  return /* @__PURE__ */ jsx("button", {
@@ -7311,9 +7345,9 @@ const VersionPicker = (props) => {
7311
7345
  setOpen(false);
7312
7346
  setQuery("");
7313
7347
  },
7314
- className: twMerge("flex w-full items-center px-3 py-1.5 text-left text-xs transition-colors", "hover:bg-gray-100 dark:hover:bg-slate-700", selected.kind === "version" && selected.value === ver && "bg-gray-100 font-semibold dark:bg-slate-700"),
7348
+ className: twMerge("flex w-full items-center px-3 py-1.5 text-left text-xs transition-colors", "hover:hover-effect", selected.kind === "version" && selected.value === ver && "bg-muted font-semibold"),
7315
7349
  children: /* @__PURE__ */ jsx("span", {
7316
- className: "truncate text-gray-900 dark:text-slate-50",
7350
+ className: "truncate text-foreground",
7317
7351
  children: ver
7318
7352
  })
7319
7353
  }, `ver:${ver}`);
@@ -7359,20 +7393,20 @@ function PackageResultCard(props) {
7359
7393
  const isSelecting = selectingValue === installSpec;
7360
7394
  const isDisabled = option.disabled === true;
7361
7395
  return /* @__PURE__ */ jsxs("div", {
7362
- className: "flex items-start justify-between gap-3 rounded-md p-2 hover:bg-gray-50 dark:hover:bg-slate-800",
7396
+ className: "flex items-start justify-between gap-3 rounded-md p-2 hover:hover-effect",
7363
7397
  children: [/* @__PURE__ */ jsxs("div", {
7364
7398
  className: "min-w-0 flex-1",
7365
7399
  children: [
7366
7400
  /* @__PURE__ */ jsx("p", {
7367
- className: "truncate text-sm font-medium text-gray-900 dark:text-slate-50",
7401
+ className: "truncate text-sm font-medium text-foreground",
7368
7402
  children: baseName
7369
7403
  }),
7370
7404
  option.description && /* @__PURE__ */ jsx("p", {
7371
- className: "truncate text-xs text-gray-700 dark:text-slate-200",
7405
+ className: "truncate text-xs text-foreground",
7372
7406
  children: option.description
7373
7407
  }),
7374
7408
  option.meta && /* @__PURE__ */ jsx("p", {
7375
- className: "truncate text-xs text-gray-700 dark:text-slate-200",
7409
+ className: "truncate text-xs text-foreground",
7376
7410
  children: option.meta
7377
7411
  }),
7378
7412
  hasVersionMetadata && /* @__PURE__ */ jsx("div", {
@@ -7392,12 +7426,12 @@ function PackageResultCard(props) {
7392
7426
  className: "flex items-center justify-center",
7393
7427
  children: selectingContent
7394
7428
  }) : isDisabled ? /* @__PURE__ */ jsx("span", {
7395
- className: "rounded-md bg-gray-100 px-3 py-1 text-xs font-medium text-gray-500 dark:bg-slate-700 dark:text-slate-400",
7429
+ className: "rounded-md bg-muted px-3 py-1 text-xs font-medium text-muted-foreground",
7396
7430
  children: option.disabledLabel ?? "Unavailable"
7397
7431
  }) : /* @__PURE__ */ jsx("button", {
7398
7432
  onClick: () => handleSelect(installSpec),
7399
7433
  disabled: isSelecting,
7400
- className: "rounded-md bg-gray-900 px-3 py-1 text-xs font-medium text-white transition-colors hover:bg-gray-800 disabled:opacity-50 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-100",
7434
+ className: "rounded-md bg-primary px-3 py-1 text-xs font-medium text-primary-foreground transition-colors hover:hover-effect disabled:disabled-effect",
7401
7435
  children: isSelecting ? "..." : selectLabel
7402
7436
  })
7403
7437
  })]
@@ -7445,7 +7479,7 @@ const PackageManagerInput = (props) => {
7445
7479
  return /* @__PURE__ */ jsxs("div", {
7446
7480
  className,
7447
7481
  children: [/* @__PURE__ */ jsx("h3", {
7448
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-50",
7482
+ className: "mb-4 font-semibold text-foreground",
7449
7483
  children: "Install Package"
7450
7484
  }), /* @__PURE__ */ jsx(SearchAutocomplete, {
7451
7485
  fetchOptions,
@@ -7470,10 +7504,10 @@ const PackageDetail = ({ label, value }) => {
7470
7504
  return /* @__PURE__ */ jsxs("div", {
7471
7505
  className: "flex items-start gap-2 text-sm",
7472
7506
  children: [/* @__PURE__ */ jsxs("p", {
7473
- className: "text-gray-700 dark:text-slate-200",
7507
+ className: "text-foreground",
7474
7508
  children: [label, ":"]
7475
7509
  }), /* @__PURE__ */ jsx("p", {
7476
- className: "text-gray-700 dark:text-slate-200",
7510
+ className: "text-foreground",
7477
7511
  children: value
7478
7512
  })]
7479
7513
  });
@@ -7492,25 +7526,25 @@ const PackageManagerListItem = (props) => {
7492
7526
  id: "install",
7493
7527
  label: "Install",
7494
7528
  icon: /* @__PURE__ */ jsx(Icon, { name: "DownloadFile" }),
7495
- className: "text-gray-900 dark:text-slate-100"
7529
+ className: "text-foreground"
7496
7530
  };
7497
7531
  const uninstallDropdownItem = {
7498
7532
  id: "uninstall",
7499
7533
  label: "Uninstall",
7500
7534
  icon: /* @__PURE__ */ jsx(Icon, { name: "Trash" }),
7501
- className: "text-red-900 dark:text-red-400"
7535
+ className: "text-destructive"
7502
7536
  };
7503
7537
  function getDropdownItems() {
7504
7538
  return [canPickVersion ? installDropdownItem : void 0, registryPackage.status === "registry-install" ? uninstallDropdownItem : void 0].filter((item) => item !== void 0);
7505
7539
  }
7506
7540
  const dropdownItems = getDropdownItems();
7507
7541
  return /* @__PURE__ */ jsxs("li", {
7508
- className: twMerge("relative flex flex-col items-start rounded-md border border-gray-200 bg-gray-50 p-3 text-sm/5 shadow-sm dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", className),
7542
+ className: twMerge("relative flex flex-col items-start rounded-md border border-border bg-background p-3 text-sm/5 shadow-sm", className),
7509
7543
  children: [
7510
7544
  /* @__PURE__ */ jsxs("div", {
7511
7545
  className: "flex flex-wrap items-center gap-2 pr-8",
7512
7546
  children: [/* @__PURE__ */ jsx("h3", {
7513
- className: "font-semibold text-gray-900 dark:text-slate-50",
7547
+ className: "font-semibold text-foreground",
7514
7548
  children: registryPackage.name
7515
7549
  }), canPickVersion && hasVersionMetadata ? /* @__PURE__ */ jsx(VersionPicker, {
7516
7550
  distTags: registryPackage.distTags,
@@ -7518,7 +7552,7 @@ const PackageManagerListItem = (props) => {
7518
7552
  selected,
7519
7553
  onChange: setSelected
7520
7554
  }) : registryPackage.version ? /* @__PURE__ */ jsxs("span", {
7521
- className: "text-xs font-normal text-gray-500 dark:text-slate-400",
7555
+ className: "text-xs font-normal text-muted-foreground",
7522
7556
  children: ["v", registryPackage.version]
7523
7557
  }) : null]
7524
7558
  }),
@@ -7566,7 +7600,7 @@ const PackageManagerListItem = (props) => {
7566
7600
  setIsDropdownMenuOpen(true);
7567
7601
  },
7568
7602
  children: /* @__PURE__ */ jsx(Icon, {
7569
- className: "text-gray-700 group-hover:text-gray-900 dark:text-slate-200 dark:group-hover:text-slate-50",
7603
+ className: "text-foreground group-hover:hover-effect",
7570
7604
  name: "VerticalDots"
7571
7605
  })
7572
7606
  })
@@ -7680,22 +7714,22 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7680
7714
  return /* @__PURE__ */ jsxs("section", {
7681
7715
  className: "mb-6",
7682
7716
  children: [/* @__PURE__ */ jsx("h3", {
7683
- className: "sticky top-0 z-10 mb-3 border-b border-gray-200 bg-gray-50 text-gray-900 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100",
7717
+ className: "sticky top-0 z-10 mb-3 border-b border-border bg-background text-foreground",
7684
7718
  children: /* @__PURE__ */ jsxs("button", {
7685
7719
  type: "button",
7686
7720
  onClick: toggle,
7687
7721
  "aria-expanded": !collapsed,
7688
7722
  "aria-controls": contentId,
7689
- className: "flex w-full items-center gap-2 pb-2 text-left text-base font-semibold text-gray-900 hover:text-gray-700 dark:text-slate-100 dark:hover:text-slate-200",
7723
+ className: "flex w-full items-center gap-2 pb-2 text-left text-base font-semibold text-foreground hover:hover-effect",
7690
7724
  children: [
7691
7725
  /* @__PURE__ */ jsx(Icon, {
7692
7726
  name: "ChevronDown",
7693
7727
  size: 16,
7694
- className: twMerge("shrink-0 text-gray-700 transition-transform dark:text-slate-200", collapsed && "-rotate-90")
7728
+ className: twMerge("shrink-0 text-foreground transition-transform", collapsed && "-rotate-90")
7695
7729
  }),
7696
7730
  /* @__PURE__ */ jsx("span", { children: title }),
7697
7731
  /* @__PURE__ */ jsx("span", {
7698
- className: "text-xs font-medium text-gray-700 dark:text-slate-200",
7732
+ className: "text-xs font-medium text-foreground",
7699
7733
  children: count
7700
7734
  })
7701
7735
  ]
@@ -7703,7 +7737,7 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7703
7737
  }), !collapsed && /* @__PURE__ */ jsx("div", {
7704
7738
  id: contentId,
7705
7739
  children: isEmpty ? /* @__PURE__ */ jsx("p", {
7706
- className: "text-sm text-gray-700 dark:text-slate-200",
7740
+ className: "text-sm text-foreground",
7707
7741
  children: emptyText
7708
7742
  }) : /* @__PURE__ */ jsx("div", {
7709
7743
  className: "flex flex-col gap-4",
@@ -7714,9 +7748,9 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7714
7748
  };
7715
7749
  const PackageSubSection = ({ title, count, children }) => {
7716
7750
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("h4", {
7717
- className: "mb-2 flex items-baseline gap-2 text-xs font-semibold tracking-wide text-gray-700 uppercase dark:text-slate-200",
7751
+ className: "mb-2 flex items-baseline gap-2 text-xs font-semibold tracking-wide text-foreground uppercase",
7718
7752
  children: [/* @__PURE__ */ jsx("span", { children: title }), /* @__PURE__ */ jsxs("span", {
7719
- className: "font-medium tracking-normal text-gray-500 normal-case dark:text-slate-400",
7753
+ className: "font-medium tracking-normal text-muted-foreground normal-case",
7720
7754
  children: [
7721
7755
  "(",
7722
7756
  count,
@@ -7740,7 +7774,7 @@ const PackageList = ({ packages, onInstall, onUninstall }) => {
7740
7774
  const PackageManager = (props) => {
7741
7775
  const { registryPackageList, onInstall, onUninstall, mutable, disabled, className } = props;
7742
7776
  return /* @__PURE__ */ jsxs("div", {
7743
- className: twMerge("flex h-full flex-1 flex-col rounded-lg bg-gray-50 p-3 text-gray-900 dark:bg-slate-800 dark:text-slate-100", className),
7777
+ className: twMerge("flex h-full flex-1 flex-col rounded-lg bg-background p-3 text-foreground", className),
7744
7778
  children: [mutable && /* @__PURE__ */ jsx(PackageManagerInput, {
7745
7779
  className: "mb-4",
7746
7780
  registryPackageList,
@@ -7756,13 +7790,13 @@ const PackageManager = (props) => {
7756
7790
  //#endregion
7757
7791
  //#region src/connect/components/modal/settings-modal-v2/settings-modal.tsx
7758
7792
  function SettingsModal(props) {
7759
- const { title, overlayProps, contentProps, onOpenChange, tabs, defaultTab, ...restProps } = props;
7793
+ const { title, overlayProps, contentProps, onOpenChange, tabs, defaultTab, navFooter, ...restProps } = props;
7760
7794
  const [selectedTab, setSelectedTab] = useState(defaultTab ?? tabs.at(0)?.id);
7761
7795
  const tabsContent = tabs.map((tab) => /* @__PURE__ */ jsx("button", {
7762
7796
  type: "button",
7763
7797
  onClick: () => setSelectedTab(tab.id),
7764
7798
  children: /* @__PURE__ */ jsxs("div", {
7765
- className: twMerge("flex h-9 w-48 cursor-pointer items-center gap-x-2 rounded-md pl-3 text-gray-700 hover:bg-gray-50 dark:text-slate-200 dark:hover:bg-slate-800", selectedTab === tab.id ? "bg-gray-50 dark:bg-slate-800" : "bg-transparent"),
7799
+ className: twMerge("flex h-9 w-48 cursor-pointer items-center gap-x-2 rounded-md pl-3 text-foreground hover:hover-effect", selectedTab === tab.id ? "bg-background" : "bg-transparent"),
7766
7800
  children: [tab.icon, /* @__PURE__ */ jsx("span", { children: tab.label })]
7767
7801
  })
7768
7802
  }, tab.id));
@@ -7783,13 +7817,13 @@ function SettingsModal(props) {
7783
7817
  },
7784
7818
  ...restProps,
7785
7819
  children: [/* @__PURE__ */ jsxs("div", {
7786
- className: "flex justify-between rounded-t-xl border-b border-gray-50 p-4 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
7820
+ className: "flex justify-between rounded-t-xl border-b border-border p-4",
7787
7821
  children: [/* @__PURE__ */ jsx("h1", {
7788
- className: "text-center text-xl font-semibold text-gray-900 dark:text-slate-50",
7822
+ className: "text-center text-xl font-semibold text-foreground",
7789
7823
  children: title
7790
7824
  }), /* @__PURE__ */ jsx("button", {
7791
7825
  type: "button",
7792
- className: "flex size-6 items-center justify-center rounded-md text-gray-900 outline-none dark:text-slate-100",
7826
+ className: "flex size-6 items-center justify-center rounded-md text-foreground outline-none",
7793
7827
  onClick: () => onOpenChange?.(false),
7794
7828
  children: /* @__PURE__ */ jsx(Icon, {
7795
7829
  name: "XmarkLight",
@@ -7798,11 +7832,17 @@ function SettingsModal(props) {
7798
7832
  })]
7799
7833
  }), /* @__PURE__ */ jsxs("div", {
7800
7834
  className: "flex flex-1",
7801
- children: [/* @__PURE__ */ jsx("div", {
7802
- className: "flex flex-col gap-y-1 p-3 pt-6",
7803
- children: tabsContent
7835
+ children: [/* @__PURE__ */ jsxs("div", {
7836
+ className: "flex flex-col p-3 pt-6",
7837
+ children: [/* @__PURE__ */ jsx("div", {
7838
+ className: "flex flex-col gap-y-1",
7839
+ children: tabsContent
7840
+ }), navFooter && /* @__PURE__ */ jsx("div", {
7841
+ className: "mt-auto border-t border-border pt-2",
7842
+ children: navFooter
7843
+ })]
7804
7844
  }), /* @__PURE__ */ jsx("div", {
7805
- className: "m-6 flex h-full flex-1 flex-col overflow-hidden rounded-lg border border-gray-50 bg-gray-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
7845
+ className: "m-6 flex h-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-background",
7806
7846
  children: typeof SelectedTabComponent === "function" ? /* @__PURE__ */ jsx(SelectedTabComponent, {}) : SelectedTabComponent
7807
7847
  })]
7808
7848
  })]
@@ -7821,14 +7861,14 @@ function ConnectUpgradeDriveModal(props) {
7821
7861
  },
7822
7862
  ...restProps,
7823
7863
  children: /* @__PURE__ */ jsxs("div", {
7824
- className: "w-100 bg-gray-50 p-6 text-gray-300 dark:bg-slate-800 dark:text-slate-200",
7864
+ className: "w-100 bg-background p-6 text-foreground",
7825
7865
  children: [
7826
7866
  /* @__PURE__ */ jsx("div", {
7827
- className: "pb-2 text-2xl font-bold text-gray-900 dark:text-slate-100",
7867
+ className: "pb-2 text-2xl font-bold text-foreground",
7828
7868
  children: header
7829
7869
  }),
7830
7870
  /* @__PURE__ */ jsx("div", {
7831
- className: "my-6 rounded-md bg-gray-50 p-4 text-center text-gray-900 dark:bg-slate-800 dark:text-slate-100",
7871
+ className: "my-6 rounded-md bg-background p-4 text-center text-foreground",
7832
7872
  children: body
7833
7873
  }),
7834
7874
  /* @__PURE__ */ jsxs("div", {
@@ -7852,12 +7892,12 @@ function ConnectUpgradeDriveModal(props) {
7852
7892
  function Branch(props) {
7853
7893
  const { branch = "main" } = props;
7854
7894
  return /* @__PURE__ */ jsxs("button", {
7855
- className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-gray-50 pr-2 pl-1 text-xs text-stone-300 dark:bg-slate-800",
7895
+ className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-background pr-2 pl-1 text-xs text-foreground",
7856
7896
  children: [
7857
7897
  /* @__PURE__ */ jsx(Icon, { name: "Branch" }),
7858
7898
  /* @__PURE__ */ jsx("span", { children: "BRANCH" }),
7859
7899
  /* @__PURE__ */ jsx("span", {
7860
- className: "text-gray-900 dark:text-slate-50",
7900
+ className: "text-foreground",
7861
7901
  children: branch
7862
7902
  })
7863
7903
  ]
@@ -7878,13 +7918,13 @@ function DocId(props) {
7878
7918
  };
7879
7919
  }
7880
7920
  return /* @__PURE__ */ jsxs("button", {
7881
- className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-gray-50 pr-2 pl-1 text-xs text-stone-300 dark:bg-slate-800",
7921
+ className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-background pr-2 pl-1 text-xs text-foreground",
7882
7922
  onClick: handleCopy(docId),
7883
7923
  children: [
7884
7924
  /* @__PURE__ */ jsx(Icon, { name: "Link" }),
7885
7925
  "DOC ID",
7886
7926
  /* @__PURE__ */ jsx("span", {
7887
- className: "text-gray-900 dark:text-slate-50",
7927
+ className: "text-foreground",
7888
7928
  children: docId
7889
7929
  })
7890
7930
  ]
@@ -7903,7 +7943,7 @@ const DocumentState = (props) => {
7903
7943
  });
7904
7944
  }
7905
7945
  return /* @__PURE__ */ jsx("button", {
7906
- className: "rounded-lg bg-gray-50 p-1 text-stone-300 dark:bg-slate-800",
7946
+ className: "rounded-lg bg-background p-1 text-foreground",
7907
7947
  onClick: handleCopy,
7908
7948
  children: /* @__PURE__ */ jsx(Icon, { name: "CurlyBrackets" })
7909
7949
  });
@@ -7914,9 +7954,9 @@ function Scope(props) {
7914
7954
  const { value, onChange } = props;
7915
7955
  return /* @__PURE__ */ jsx(ConnectSelect, {
7916
7956
  absolutePositionMenu: true,
7917
- containerClassName: "bg-gray-50 text-gray-500 rounded-lg w-fit text-xs z-10 dark:bg-slate-800 dark:text-slate-400",
7957
+ containerClassName: "z-10 w-fit rounded-lg bg-background text-xs text-muted-foreground",
7918
7958
  id: "scope select",
7919
- itemClassName: "py-2 text-gray-500 grid grid-cols-[auto,auto] gap-1 dark:text-slate-400",
7959
+ itemClassName: "grid grid-cols-[auto,auto] gap-1 py-2 text-muted-foreground",
7920
7960
  items: [{
7921
7961
  displayValue: "Global scope",
7922
7962
  value: "global"
@@ -7924,7 +7964,7 @@ function Scope(props) {
7924
7964
  displayValue: "Local scope",
7925
7965
  value: "local"
7926
7966
  }],
7927
- menuClassName: "min-w-0 text-gray-500 dark:text-slate-400",
7967
+ menuClassName: "min-w-0 text-muted-foreground",
7928
7968
  onChange,
7929
7969
  value
7930
7970
  });
@@ -7940,11 +7980,11 @@ function Header(props) {
7940
7980
  className: "flex items-center gap-3",
7941
7981
  children: [/* @__PURE__ */ jsx("button", {
7942
7982
  name: "close-revision-history",
7943
- className: "rounded-lg bg-gray-50 p-1 text-stone-300 shadow-button dark:bg-slate-800",
7983
+ className: "rounded-lg bg-background p-1 text-foreground shadow-button",
7944
7984
  onClick: onClose,
7945
7985
  children: /* @__PURE__ */ jsx(Icon, { name: "VariantArrowLeft" })
7946
7986
  }), /* @__PURE__ */ jsx("h1", {
7947
- className: "text-xs text-gray-900 dark:text-slate-50",
7987
+ className: "text-xs text-foreground",
7948
7988
  children: title
7949
7989
  })]
7950
7990
  }), /* @__PURE__ */ jsxs("div", {
@@ -8065,7 +8105,7 @@ function CodePopover(props) {
8065
8105
  bottom: -1e4,
8066
8106
  left: 24
8067
8107
  },
8068
- className: "z-50 rounded-lg border border-gray-200 bg-gray-50 p-2 text-xs shadow-tooltip outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
8108
+ className: "z-50 rounded-lg border border-border bg-popover p-2 text-xs text-popover-foreground shadow-tooltip outline-none",
8069
8109
  children: content
8070
8110
  }) })
8071
8111
  ]
@@ -8081,7 +8121,7 @@ function Address(props) {
8081
8121
  return /* @__PURE__ */ jsx(CodePopover, {
8082
8122
  content: /* @__PURE__ */ jsx(FormattedJsonViewer, { value: { address } }),
8083
8123
  trigger: /* @__PURE__ */ jsxs("span", {
8084
- className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg bg-gray-100 p-1 text-xs text-gray-100 dark:bg-slate-700 dark:text-slate-800",
8124
+ className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg bg-muted p-1 text-xs text-muted-foreground",
8085
8125
  children: [/* @__PURE__ */ jsx(ENSAvatar, {
8086
8126
  address,
8087
8127
  chainId,
@@ -8095,7 +8135,7 @@ function Address(props) {
8095
8135
  function Errors(props) {
8096
8136
  const { errors } = props;
8097
8137
  const hasErrors = !!errors?.length;
8098
- const color = hasErrors ? "text-red-800 dark:text-red-100" : "text-green-700 dark:text-green-100";
8138
+ const color = hasErrors ? "text-destructive" : "text-success";
8099
8139
  const icon = hasErrors ? /* @__PURE__ */ jsx(Icon, {
8100
8140
  name: "Exclamation",
8101
8141
  size: 16
@@ -8105,7 +8145,7 @@ function Errors(props) {
8105
8145
  });
8106
8146
  const text = hasErrors ? `Error: ${errors[0]}` : "No errors";
8107
8147
  const content = /* @__PURE__ */ jsxs("span", {
8108
- className: twMerge("flex w-fit items-center rounded-lg border border-gray-200 bg-gray-50 px-2 py-1 text-xs dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", color, hasErrors && "cursor-pointer"),
8148
+ className: twMerge("flex w-fit items-center rounded-lg border border-border bg-background px-2 py-1 text-xs", color, hasErrors && "cursor-pointer"),
8109
8149
  children: [icon, /* @__PURE__ */ jsx("span", {
8110
8150
  className: twMerge("inline-block max-w-36 truncate"),
8111
8151
  children: text
@@ -8124,9 +8164,9 @@ function Operation$1(props) {
8124
8164
  return /* @__PURE__ */ jsx(CodePopover, {
8125
8165
  content: /* @__PURE__ */ jsx(FormattedJsonViewer, { value: operationInput }),
8126
8166
  trigger: /* @__PURE__ */ jsxs("span", {
8127
- className: "flex cursor-pointer items-center gap-2 text-xs text-gray-900 dark:text-slate-50",
8167
+ className: "flex cursor-pointer items-center gap-2 text-xs text-foreground",
8128
8168
  children: [operationType, /* @__PURE__ */ jsx(Icon, {
8129
- className: "text-gray-300 dark:text-slate-600",
8169
+ className: "text-foreground",
8130
8170
  name: "Braces",
8131
8171
  size: 16
8132
8172
  })]
@@ -8145,13 +8185,13 @@ function RevisionNumber(props) {
8145
8185
  stateHash
8146
8186
  } }),
8147
8187
  trigger: /* @__PURE__ */ jsxs("span", {
8148
- className: "flex cursor-pointer items-center gap-2 text-xs text-gray-700 dark:text-slate-200",
8188
+ className: "flex cursor-pointer items-center gap-2 text-xs text-foreground",
8149
8189
  children: [
8150
8190
  "Revision ",
8151
8191
  revisionNumber,
8152
8192
  ".",
8153
8193
  /* @__PURE__ */ jsx("a", { children: /* @__PURE__ */ jsx(Icon, {
8154
- className: "cursor-pointer text-gray-100 dark:text-slate-800",
8194
+ className: "cursor-pointer text-foreground",
8155
8195
  name: "Ellipsis",
8156
8196
  size: 14
8157
8197
  }) })
@@ -8166,12 +8206,12 @@ function Signature(props) {
8166
8206
  if (!signatures?.length) return null;
8167
8207
  return /* @__PURE__ */ jsx(CodePopover, {
8168
8208
  trigger: /* @__PURE__ */ jsxs("span", {
8169
- className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg border border-gray-200 bg-gray-50 px-2 py-1 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
8209
+ className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg border border-border bg-background px-2 py-1",
8170
8210
  children: [
8171
8211
  /* @__PURE__ */ jsx(VerificationStatus, { signatures }),
8172
8212
  " ",
8173
8213
  /* @__PURE__ */ jsx(Icon, {
8174
- className: "text-gray-300 dark:text-slate-600",
8214
+ className: "text-foreground",
8175
8215
  name: "InfoSquare",
8176
8216
  size: 16
8177
8217
  })
@@ -8190,7 +8230,7 @@ function VerificationStatus(props) {
8190
8230
  const verifiedSignaturesCount = signatures.filter((signature) => signature.isVerified).length;
8191
8231
  const verificationStatusText = `${verifiedSignaturesCount}/${signatureCount} ${signatureCount === 1 ? "signature" : "signatures"} verified`;
8192
8232
  return /* @__PURE__ */ jsx("span", {
8193
- className: `text-xs ${verifiedSignaturesCount === 0 ? "text-red-800 dark:text-red-100" : verifiedSignaturesCount === signatureCount ? "text-green-700 dark:text-green-100" : "text-orange-700 dark:text-orange-100"}`,
8233
+ className: twMerge(`text-xs`, verifiedSignaturesCount === 0 ? "text-destructive" : verifiedSignaturesCount === signatureCount ? "text-success" : "text-warning"),
8194
8234
  children: verificationStatusText
8195
8235
  });
8196
8236
  }
@@ -8207,7 +8247,7 @@ function Timestamp(props) {
8207
8247
  timestampUtcMs: timestamp
8208
8248
  } }),
8209
8249
  trigger: /* @__PURE__ */ jsxs("span", {
8210
- className: "cursor-pointer text-xs text-gray-900 dark:text-slate-50",
8250
+ className: "cursor-pointer text-xs text-foreground",
8211
8251
  children: ["committed at ", shortDate]
8212
8252
  })
8213
8253
  });
@@ -8216,7 +8256,7 @@ function Timestamp(props) {
8216
8256
  //#region src/connect/components/revision-history/revision/revision.tsx
8217
8257
  function _Revision(props) {
8218
8258
  return /* @__PURE__ */ jsxs("article", {
8219
- className: "flex items-center justify-between rounded-xl border border-gray-200 bg-gray-50 px-4 py-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
8259
+ className: "flex items-center justify-between rounded-xl border border-border bg-background px-4 py-2",
8220
8260
  children: [/* @__PURE__ */ jsxs("div", {
8221
8261
  className: "flex items-center gap-2",
8222
8262
  children: [
@@ -8241,16 +8281,16 @@ function Skip(props) {
8241
8281
  return /* @__PURE__ */ jsxs("article", {
8242
8282
  className: "grid grid-cols-[1fr,auto,1fr] items-center py-2",
8243
8283
  children: [
8244
- /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-gray-100 dark:bg-slate-700" }),
8284
+ /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-muted" }),
8245
8285
  /* @__PURE__ */ jsxs("div", {
8246
- className: "mx-3 text-xs text-gray-100 dark:text-slate-800",
8286
+ className: "mx-3 text-xs text-foreground",
8247
8287
  children: [
8248
8288
  "[Skipped Revision ",
8249
8289
  skippedRevisions,
8250
8290
  "]"
8251
8291
  ]
8252
8292
  }),
8253
- /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-gray-100 dark:bg-slate-700" })
8293
+ /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-muted" })
8254
8294
  ]
8255
8295
  });
8256
8296
  }
@@ -8313,7 +8353,7 @@ function Day(props) {
8313
8353
  const { timestampUtcMs: timestamp } = props;
8314
8354
  const formattedDate = format(timestamp, "MMM dd, yyyy");
8315
8355
  return /* @__PURE__ */ jsxs("h2", {
8316
- className: "-ml-6 flex items-center gap-1 bg-gray-50 py-2 text-xs text-gray-100 dark:bg-slate-800 dark:text-slate-800",
8356
+ className: "-ml-6 flex items-center gap-1 bg-background py-2 text-xs text-foreground",
8317
8357
  children: [
8318
8358
  /* @__PURE__ */ jsx(Icon, {
8319
8359
  name: "Ring",
@@ -8364,7 +8404,7 @@ function Timeline(props) {
8364
8404
  };
8365
8405
  }, []);
8366
8406
  return /* @__PURE__ */ jsx("div", {
8367
- className: "border-l border-gray-100 dark:border-none dark:bg-slate-800 dark:text-slate-100",
8407
+ className: "border-l border-border dark:border-none",
8368
8408
  ref: parentRef,
8369
8409
  style: {
8370
8410
  height: `${rowVirtualizer.getTotalSize()}px`,
@@ -8430,7 +8470,7 @@ function RevisionHistory(props) {
8430
8470
  })
8431
8471
  }) : /* @__PURE__ */ jsx("hr", { className: "h-12 border-none" });
8432
8472
  return /* @__PURE__ */ jsx(ConnectTooltipProvider, { children: /* @__PURE__ */ jsxs("div", {
8433
- className: "p-6 dark:bg-slate-800",
8473
+ className: "p-6",
8434
8474
  children: [
8435
8475
  /* @__PURE__ */ jsx(Header, {
8436
8476
  docId: documentId,
@@ -8444,7 +8484,7 @@ function RevisionHistory(props) {
8444
8484
  }),
8445
8485
  PaginationComponent,
8446
8486
  /* @__PURE__ */ jsx("div", {
8447
- className: "mt-4 flex justify-center rounded-md bg-gray-50 p-4 dark:bg-slate-800",
8487
+ className: "mt-4 flex justify-center rounded-md bg-background p-4",
8448
8488
  children: visibleOperations.length > 0 ? /* @__PURE__ */ jsx("div", {
8449
8489
  className: "grid grid-cols-[minmax(min-content,1018px)]",
8450
8490
  children: /* @__PURE__ */ jsx(Timeline, {
@@ -8453,7 +8493,7 @@ function RevisionHistory(props) {
8453
8493
  scope
8454
8494
  })
8455
8495
  }) : /* @__PURE__ */ jsx("h3", {
8456
- className: "my-40 text-gray-700 dark:text-slate-200",
8496
+ className: "my-40 text-foreground",
8457
8497
  children: "This document has no recorded operations yet."
8458
8498
  })
8459
8499
  }),
@@ -8469,7 +8509,7 @@ const FilterItem = (props) => {
8469
8509
  className: twMerge("flex h-full flex-row items-center justify-between gap-x-4 px-2", typeof className === "string" && className),
8470
8510
  ...containerProps,
8471
8511
  children: [item.icon, /* @__PURE__ */ jsx("div", {
8472
- className: "text-sm font-semibold text-gray-200 dark:text-slate-700",
8512
+ className: "text-sm font-semibold text-foreground",
8473
8513
  children: item.label
8474
8514
  })]
8475
8515
  });
@@ -8487,7 +8527,7 @@ const ConnectSearchBar = (props) => {
8487
8527
  className: "gap-x-1",
8488
8528
  item: selectedItemFilter
8489
8529
  }) : filterLabel && /* @__PURE__ */ jsx("div", {
8490
- className: "mr-2 text-sm font-semibold text-gray-200 dark:text-slate-700",
8530
+ className: "mr-2 text-sm font-semibold text-foreground",
8491
8531
  children: filterLabel
8492
8532
  });
8493
8533
  function handleChange(event) {
@@ -8497,11 +8537,11 @@ const ConnectSearchBar = (props) => {
8497
8537
  className: twMerge("flex items-center", className),
8498
8538
  children: [
8499
8539
  /* @__PURE__ */ jsx(Icon, {
8500
- className: "mr-3 text-gray-700 dark:text-slate-200",
8540
+ className: "mr-3 text-foreground",
8501
8541
  name: "Search"
8502
8542
  }),
8503
8543
  /* @__PURE__ */ jsx("input", {
8504
- className: twMerge("flex h-[52px] min-w-0 flex-1 items-center rounded-xl border border-gray-200 bg-gray-50 px-4 text-sm text-gray-200 outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100"),
8544
+ className: twMerge("flex h-[52px] min-w-0 flex-1 items-center rounded-xl border border-border bg-background px-4 text-sm text-foreground outline-none"),
8505
8545
  onChange: handleChange,
8506
8546
  placeholder,
8507
8547
  value
@@ -8514,9 +8554,9 @@ const ConnectSearchBar = (props) => {
8514
8554
  /* @__PURE__ */ jsx(Icon, { name: "ChevronDown" })
8515
8555
  ]
8516
8556
  }), /* @__PURE__ */ jsx(DropdownMenuContent, {
8517
- className: "rounded-xl border border-gray-100 bg-gray-50 p-2 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
8557
+ className: "rounded-xl border border-border bg-background p-2",
8518
8558
  children: items.map((item) => /* @__PURE__ */ jsx(DropdownMenuItem, {
8519
- className: "h-10 cursor-pointer overflow-hidden rounded-lg hover:bg-gray-100 dark:hover:bg-slate-700",
8559
+ className: "h-10 cursor-pointer overflow-hidden rounded-lg hover:hover-effect",
8520
8560
  id: item.id,
8521
8561
  onSelect: () => onFilterSelect(item.id),
8522
8562
  children: item.content
@@ -8533,16 +8573,16 @@ const SidebarItem = function SidebarItem(props) {
8533
8573
  content: title,
8534
8574
  side: "right",
8535
8575
  sideOffset: 12,
8536
- className: "border-none bg-gray-800 px-3 py-2 text-sm text-white dark:bg-slate-100 dark:text-slate-900",
8576
+ className: "border-none bg-primary px-3 py-2 text-sm text-primary-foreground",
8537
8577
  children: /* @__PURE__ */ jsxs("div", {
8538
- className: twMerge("group/sidebar-item relative flex cursor-pointer flex-col items-center justify-center text-center text-sm text-gray-900 dark:text-slate-50", containerClassName, active && "bg-gray-50 dark:bg-slate-800", onClick && "cursor-pointer"),
8578
+ className: twMerge("group/sidebar-item relative flex cursor-pointer flex-col items-center justify-center text-center text-sm text-foreground", containerClassName, active && "bg-sidebar-accent text-sidebar-accent-foreground", onClick && "cursor-pointer"),
8539
8579
  onClick,
8540
- children: [active ? /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-0 h-10 w-1 -translate-y-1/2 rounded-r-sm bg-violet-400 dark:bg-violet-500" }) : /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-0 h-6 w-1 -translate-y-1/2 rounded-r-sm bg-gray-300 opacity-0 transition-opacity group-hover/sidebar-item:opacity-100 dark:bg-slate-600 dark:text-slate-100" }), /* @__PURE__ */ jsx("div", {
8580
+ children: [active ? /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-0 h-10 w-1 -translate-y-1/2 rounded-r-sm bg-info" }) : /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-0 h-6 w-1 -translate-y-1/2 rounded-r-sm bg-secondary opacity-0 transition-opacity group-hover/sidebar-item:opacity-100" }), /* @__PURE__ */ jsx("div", {
8541
8581
  className: "mx-auto py-4",
8542
8582
  children: icon || /* @__PURE__ */ jsx("div", {
8543
- className: "flex size-8 items-center justify-center rounded-lg bg-gray-900 dark:bg-slate-50",
8583
+ className: "flex size-8 items-center justify-center rounded-lg bg-primary",
8544
8584
  children: /* @__PURE__ */ jsx("span", {
8545
- className: "text-sm font-medium text-white dark:text-slate-900",
8585
+ className: "text-sm font-medium text-primary-foreground",
8546
8586
  children: title.slice(0, 1).toUpperCase()
8547
8587
  })
8548
8588
  })
@@ -8565,56 +8605,6 @@ const SidebarAddDriveItem = function SidebarAddDriveItem(props) {
8565
8605
  });
8566
8606
  };
8567
8607
  //#endregion
8568
- //#region src/connect/components/theme-switch.tsx
8569
- const OPTIONS = [
8570
- {
8571
- value: "light",
8572
- Icon: Sun,
8573
- label: "Light"
8574
- },
8575
- {
8576
- value: "dark",
8577
- Icon: Moon,
8578
- label: "Dark"
8579
- },
8580
- {
8581
- value: "system",
8582
- Icon: Monitor,
8583
- label: "System"
8584
- }
8585
- ];
8586
- function ThemeSwitch() {
8587
- const { theme, isSystem, setTheme } = useTheme();
8588
- function select(val) {
8589
- setTheme(val);
8590
- }
8591
- function isActive(value) {
8592
- if (value === "system" && isSystem) return true;
8593
- if (!isSystem && value === "dark" && theme === "dark") return true;
8594
- if (!isSystem && value === "light" && theme === "light") return true;
8595
- return false;
8596
- }
8597
- return /* @__PURE__ */ jsx("div", {
8598
- role: "radiogroup",
8599
- "aria-label": "Theme",
8600
- className: "flex w-fit flex-col items-center gap-4 rounded-xl",
8601
- children: OPTIONS.map(({ value, Icon, label }) => /* @__PURE__ */ jsx("div", {
8602
- role: "radio",
8603
- "aria-checked": isActive(value),
8604
- "aria-label": label,
8605
- tabIndex: 0,
8606
- onClick: () => select(value),
8607
- onKeyDown: (e) => (e.key === "Enter" || e.key === " ") && select(value),
8608
- className: twMerge("flex size-fit cursor-pointer content-center items-center transition-colors", isActive(value) ? "text-gray-900 dark:text-slate-50" : "text-gray-500 dark:text-slate-400"),
8609
- children: /* @__PURE__ */ jsx(Icon, {
8610
- size: 24,
8611
- strokeWidth: 2,
8612
- "aria-hidden": "true"
8613
- })
8614
- }, value))
8615
- });
8616
- }
8617
- //#endregion
8618
8608
  //#region assets/renown-short-dark.png
8619
8609
  var renown_short_dark_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZpZ21hnrGWYwAABnhJREFUeAHtnU1MXFUUx888WMCwGUDozk7d1WpKlNpuRKILpyVVAmkjRiN+1FZrRBY1sXXBwpqaJloWbaxiCikGI7GhbUrBREC6obUkGGtZMrjkc7qA0ZDMeP4DQ4ZhBu7AvHfvfXN/zYQ376OL87/nnnPPvW+uhwTwMfn5+RWRSOTVaDRazaf8OE2GREL8GfN4PPj8Pjs72yPykGejizC8ZVlNbPRPyBg8U4IsRDs32o5QKBRMd1Neugts+yb+D6BigD8FZMgUNNhqtmFtUVHRo3A4PJbqppQClJSUfMN/WsgYPhv4uAep9Xq9PhahP/niOgHY+Ff4gRNkyDYHWAQ/i3A98eQaAdDyjfFtpSLZE1YFKC0tbWTjnyOD3cATEBNG8CWWBXHA9XOwGKTl9NJgPyFu7Ls4OwpZKyfeImN8J0F6j9R+2QOKi4snyAjgNDEvsLjvryVjfBnEqgvWSmnBIAEeJddCgL1kkALb/gUE4QoyyMIPAUyRTR4+iwxSMQJIxgggmZwSoPnT0/R5y1lSiXzKEcrKy6ly3/7YMU+Q0MLCAqlAznhAVfVLq8eBmldIFXJGgOerX1w9Dhw6HPMCFcgJAarY+GVl5avfvWx8VbzA9QKg76872rDuvCpe4HoB6o40rGn9ceAFxz9sItm4WoB6Nn5VQt+fzLPP7aeDh+R2Ra4VAFlP3dHXNr3vjbffXZMhOU1eYWFhC7kMGPT4yY+F769kT5iZnqbJ4AQ5jesEQHbzzvsfUKZABA//G3/4gJzENQIgo/mo+RQdrDlMW2X3nqc4a9pB/0xO0KJDI2UPT8hHSWNg+AAH0pdrspdWTk9P0bWff6Lhod/IbrQVwA7DJxMXYvzhXzQ9NUV2oKUAqGiiu3CS0Xt36evzX1K20TINXVh0vpLptcnLtO2CMLqFF6DMkGqkmw1Qsu7rvUH9t27aVr7WPggDjHazKYQTho/jCgEAjA8RNio9iHD/j7v03cVWxyZsXDMOWOS4MMrGw2rXJ/c8TVvhansbdbb/QEtLS+QUrhsJj//9gMsKUzyyPZDRc99eaqWBX/vJaVxZC0JNJxMRYPw7gwMkA1cKACACuqW9Fc9seN8v3V2xYCsLV88H9LFhEVTTMTw0EBvpysSWZSk/dl+n7TLDQ3+UAlAUgxG3Wg64zBnN7ovfrytXLJcZukg2yq4LeozncvEBmLkCCLCdnKkEM6jbQ8D+3ps8Nbl2cgYtHyLIRqsuCCPfs+cv0JuN72VUgLt968aavB6Gd6LSKYKWMSDAFdAzXJATFSHuBXHuDMnJeFKhbRDe6d9FzadOC98PL4gzPKhG6wdaZ0HokkRXNcALEENQVlah749jSy1IJAuaSZPRxAOvKDDsscbXSVekZUFNJ4+lvYaWjTU9IpMuqNPjPrRuHVGyC4Ixv2g5Q7d7xUaolfsyq/uohNIxoPNKm1B/7fT0ZDZRPgiLpIxeRZaabwXlBRAZ9do1JekEygsQVuRVIrtQXoDHecC1GTLWdGYL5QUICCw1XNTYS5QWoP6I2EqH0Q1q/qqjZDl6p/+JWMsXXeFw/94I6Yo0AVp5kiQVhZxSZlJqxqyWSrWdTJEmQKY1n1Sgxq/CrNZ20LoaigVUOrd+oOVPFaDlX+1o23DCXRe0EwCFOqxg0zn3T0Q7AS5farXtZQkZSBMAy0USKSvbIfRaKV68Tn5WZ6QJMJyiyomy8malZYwNrnV3ucYLlMqCsExQBHiBW1BKAARYkalFeIHOkzCJKDcOEPWCepd4gXICiHqBSLzQASVHwrnkBcquisgVL1C2FpQrXqCsAPAA0SUpZlmKTYiWmnX2AqUFEJ1s0dkLlJ8P6BN8gU5XL3DNm/K6Yn49XTJGAMkYASQDAUJkkEVsK8MgGWQxZmH/czJIgW3/pxWJRIQ2nzdkH7b9ELog7HVu4oDzBEOhUI+FPW2j0ah7lhloAnc/HfgbT0MvkPECJwly99OOg9iW5v8yBQUF/7EqATLYDvc4zdzxDOF4dU951mDE6/UW86G+L91qADfy1vn5+XPx73mJF8PhcB+LgJeyzA6rNoB+f25u7kTiubzkm1iEHuMJ2QctP9n4IC/VzfAEjgmT/BA8wWx3uz2QZX7G3U5Lqot56Z7imDDGIuBnTx6xEH4yQmQKDP8V/22IB9xUeEgQn89Xa1lW9coW6MYz1oM0PojSzkp1YQxjrM0e+h9BFWjTbagO6AAAAABJRU5ErkJggg==";
8620
8610
  //#endregion
@@ -8647,7 +8637,7 @@ const AccountPopoverLogin = ({ onLogin }) => {
8647
8637
  children: [/* @__PURE__ */ jsx("div", {
8648
8638
  className: "mb-4 flex justify-center",
8649
8639
  children: /* @__PURE__ */ jsx("div", {
8650
- className: "flex h-5.5 w-20.75 items-center justify-center overflow-hidden text-gray-900 dark:text-slate-50",
8640
+ className: "flex h-5.5 w-20.75 items-center justify-center overflow-hidden text-foreground",
8651
8641
  children: /* @__PURE__ */ jsx(Icon, {
8652
8642
  name: "RenownLight",
8653
8643
  size: 83
@@ -8655,7 +8645,7 @@ const AccountPopoverLogin = ({ onLogin }) => {
8655
8645
  })
8656
8646
  }), /* @__PURE__ */ jsx("button", {
8657
8647
  onClick: allowLogin ? handleLogin : void 0,
8658
- className: twMerge("mt-4 flex h-7 w-full cursor-pointer items-center justify-center rounded-lg border border-gray-300 bg-transparent text-sm text-gray-900 active:opacity-70 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", allowLogin ? "cursor-pointer" : "cursor-wait"),
8648
+ className: twMerge("mt-4 flex h-7 w-full cursor-pointer items-center justify-center rounded-lg border border-border bg-transparent text-sm text-foreground active:active-effect", allowLogin ? "cursor-pointer" : "cursor-wait"),
8659
8649
  type: "button",
8660
8650
  children: content
8661
8651
  })]
@@ -8672,7 +8662,7 @@ const SidebarLogin = ({ onLogin }) => {
8672
8662
  return /* @__PURE__ */ jsx(AccountPopover, {
8673
8663
  content,
8674
8664
  children: /* @__PURE__ */ jsxs("div", {
8675
- className: twMerge("group/sidebar-footer flex w-full items-baseline justify-start text-sm/10 font-semibold text-gray-700 dark:text-slate-200", onLogin ? "cursor-pointer" : "cursor-wait"),
8665
+ className: twMerge("group/sidebar-footer flex w-full items-baseline justify-start text-sm/10 font-semibold text-foreground", onLogin ? "cursor-pointer" : "cursor-wait"),
8676
8666
  children: [/* @__PURE__ */ jsx("img", {
8677
8667
  width: 42,
8678
8668
  height: 42,
@@ -8706,7 +8696,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8706
8696
  }
8707
8697
  }, []);
8708
8698
  return /* @__PURE__ */ jsxs("div", {
8709
- className: "flex flex-col divide-y divide-gray-200 text-gray-900 dark:divide-slate-500 dark:text-slate-50",
8699
+ className: "flex flex-col divide-y divide-border text-foreground",
8710
8700
  children: [
8711
8701
  /* @__PURE__ */ jsxs("div", {
8712
8702
  className: "px-3 py-2",
@@ -8719,12 +8709,12 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8719
8709
  size: "small",
8720
8710
  color: "light",
8721
8711
  onClick: () => void copyToClipboard(address),
8722
- className: "w-full cursor-pointer bg-transparent p-0 active:opacity-70",
8712
+ className: "w-full cursor-pointer bg-transparent p-0 active:active-effect",
8723
8713
  type: "button",
8724
8714
  children: /* @__PURE__ */ jsxs("div", {
8725
8715
  className: "relative flex w-full items-center gap-1",
8726
8716
  children: [/* @__PURE__ */ jsxs("div", {
8727
- className: `flex items-center gap-1 transition-opacity duration-150 ${isCopied ? "opacity-0" : "opacity-100"}`,
8717
+ className: twMerge(`flex items-center gap-1 transition-opacity duration-150`, isCopied ? "opacity-0" : "opacity-100"),
8728
8718
  children: [/* @__PURE__ */ jsx("span", {
8729
8719
  className: "text-xs",
8730
8720
  children: shortAddress(address)
@@ -8734,7 +8724,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8734
8724
  size: 14
8735
8725
  })]
8736
8726
  }), /* @__PURE__ */ jsx("div", {
8737
- className: `absolute left-0 text-xs transition-opacity duration-150 ${isCopied ? "opacity-100" : "opacity-0"}`,
8727
+ className: twMerge(`absolute left-0 text-xs transition-opacity duration-150`, isCopied ? "opacity-100" : "opacity-0"),
8738
8728
  children: "Copied to clipboard!"
8739
8729
  })]
8740
8730
  })
@@ -8747,7 +8737,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8747
8737
  href: etherscanUrl,
8748
8738
  target: "_blank",
8749
8739
  rel: "noopener noreferrer",
8750
- className: "flex items-center gap-2 text-sm text-gray-900 hover:text-gray-600 dark:text-slate-50 dark:hover:text-slate-300",
8740
+ className: "flex items-center gap-2 text-sm text-foreground hover:hover-effect",
8751
8741
  children: [/* @__PURE__ */ jsx(Icon, {
8752
8742
  name: "Ethscan",
8753
8743
  size: 14
@@ -8758,7 +8748,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8758
8748
  className: "px-3 py-2",
8759
8749
  children: /* @__PURE__ */ jsxs("button", {
8760
8750
  onClick: onDisconnect,
8761
- className: twMerge("flex w-full items-center gap-2 text-sm text-red-900 dark:text-red-400", onDisconnect ? "cursor-pointer hover:text-red-700 dark:hover:text-red-100" : "pointer-events-none cursor-wait"),
8751
+ className: twMerge("flex w-full items-center gap-2 text-sm text-destructive", onDisconnect ? "cursor-pointer hover:hover-effect" : "pointer-events-none cursor-wait"),
8762
8752
  type: "button",
8763
8753
  children: [/* @__PURE__ */ jsx(Icon, {
8764
8754
  name: "Disconnect",
@@ -8794,7 +8784,7 @@ const SidebarUser = ({ address, ensName, avatarUrl, etherscanUrl, onDisconnect }
8794
8784
  const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin, onClickSettings, onDisconnect, onHomeClick, showDebug, onDebugClick, etherscanUrl = "", ...props }) => {
8795
8785
  return /* @__PURE__ */ jsxs(SidebarFooter, {
8796
8786
  ...props,
8797
- className: twMerge("flex flex-col items-center gap-3 border-t border-gray-300 px-2 py-4 dark:border-none dark:bg-slate-700 dark:text-slate-100", className),
8787
+ className: twMerge("flex flex-col items-center gap-3 border-t border-sidebar-border px-2 py-4 dark:border-none", className),
8798
8788
  children: [
8799
8789
  onHomeClick && /* @__PURE__ */ jsx("button", {
8800
8790
  "aria-label": "Home",
@@ -8802,7 +8792,7 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8802
8792
  className: "cursor-pointer",
8803
8793
  onClick: onHomeClick,
8804
8794
  children: /* @__PURE__ */ jsx(Icon, {
8805
- className: "text-gray-700 dark:text-slate-200",
8795
+ className: "text-muted-foreground",
8806
8796
  name: "ConnectSmall",
8807
8797
  size: 24
8808
8798
  })
@@ -8814,7 +8804,7 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8814
8804
  className: "cursor-pointer",
8815
8805
  onClick: onDebugClick,
8816
8806
  children: /* @__PURE__ */ jsx(Icon, {
8817
- className: "text-gray-700 dark:text-slate-200",
8807
+ className: "text-foreground",
8818
8808
  name: "Tube"
8819
8809
  })
8820
8810
  }),
@@ -8834,15 +8824,14 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8834
8824
  className: twMerge(onClickSettings ? "cursor-pointer" : "cursor-wait"),
8835
8825
  onClick: onClickSettings,
8836
8826
  children: [/* @__PURE__ */ jsx(Settings, {
8837
- className: "text-gray-700 dark:text-slate-200",
8827
+ className: "text-foreground",
8838
8828
  size: 24,
8839
8829
  strokeWidth: 2
8840
8830
  }), /* @__PURE__ */ jsx("span", {
8841
- className: "hidden text-sm/6 font-semibold text-gray-900 dark:text-slate-100",
8831
+ className: "hidden text-sm/6 font-semibold text-foreground",
8842
8832
  children: "Settings"
8843
8833
  })]
8844
- }),
8845
- /* @__PURE__ */ jsx(ThemeSwitch, {})
8834
+ })
8846
8835
  ]
8847
8836
  });
8848
8837
  };
@@ -8852,7 +8841,7 @@ const ConnectSidebarHeader = ({ className, children, ...props }) => {
8852
8841
  if (!children) return null;
8853
8842
  return /* @__PURE__ */ jsx(SidebarHeader, {
8854
8843
  ...props,
8855
- className: twMerge("flex justify-center gap-4 border-b border-gray-300 py-4 text-gray-500 dark:bg-slate-700 dark:text-slate-100", className),
8844
+ className: twMerge("flex justify-center gap-4 border-b border-sidebar-border py-4 text-muted-foreground", className),
8856
8845
  children
8857
8846
  });
8858
8847
  };
@@ -8881,6 +8870,74 @@ const ConnectSidebar = ({ onClick, address, ensName, avatarUrl, headerContent, o
8881
8870
  });
8882
8871
  };
8883
8872
  //#endregion
8873
+ //#region src/connect/components/theme-switch.tsx
8874
+ const OPTIONS = [
8875
+ {
8876
+ value: "light",
8877
+ Icon: Sun,
8878
+ label: "Light"
8879
+ },
8880
+ {
8881
+ value: "dark",
8882
+ Icon: Moon,
8883
+ label: "Dark"
8884
+ },
8885
+ {
8886
+ value: "system",
8887
+ Icon: Monitor,
8888
+ label: "System"
8889
+ }
8890
+ ];
8891
+ function ThemeSwitch({ horizontal = false }) {
8892
+ const { theme, isSystem, setTheme } = useTheme();
8893
+ function select(val) {
8894
+ setTheme(val);
8895
+ }
8896
+ function isActive(value) {
8897
+ if (value === "system" && isSystem) return true;
8898
+ if (!isSystem && value === "dark" && theme === "dark") return true;
8899
+ if (!isSystem && value === "light" && theme === "light") return true;
8900
+ return false;
8901
+ }
8902
+ if (horizontal) return /* @__PURE__ */ jsx("div", {
8903
+ role: "radiogroup",
8904
+ "aria-label": "Theme",
8905
+ className: "flex h-9 items-center gap-x-0.5 pl-3",
8906
+ children: OPTIONS.map(({ value, Icon, label }) => /* @__PURE__ */ jsx("div", {
8907
+ role: "radio",
8908
+ "aria-checked": isActive(value),
8909
+ "aria-label": label,
8910
+ tabIndex: 0,
8911
+ onClick: () => select(value),
8912
+ onKeyDown: (e) => (e.key === "Enter" || e.key === " ") && select(value),
8913
+ className: twMerge("flex cursor-pointer items-center justify-center rounded-md p-1 transition-colors", isActive(value) ? "bg-background text-foreground" : "text-muted-foreground hover:text-muted-foreground"),
8914
+ children: /* @__PURE__ */ jsx(Icon, {
8915
+ size: 16,
8916
+ "aria-hidden": "true"
8917
+ })
8918
+ }, value))
8919
+ });
8920
+ return /* @__PURE__ */ jsx("div", {
8921
+ role: "radiogroup",
8922
+ "aria-label": "Theme",
8923
+ className: "flex w-fit flex-col items-center gap-4 rounded-xl",
8924
+ children: OPTIONS.map(({ value, Icon, label }) => /* @__PURE__ */ jsx("div", {
8925
+ role: "radio",
8926
+ "aria-checked": isActive(value),
8927
+ "aria-label": label,
8928
+ tabIndex: 0,
8929
+ onClick: () => select(value),
8930
+ onKeyDown: (e) => (e.key === "Enter" || e.key === " ") && select(value),
8931
+ className: twMerge("flex size-fit cursor-pointer content-center items-center transition-colors", isActive(value) ? "text-foreground" : "text-muted-foreground"),
8932
+ children: /* @__PURE__ */ jsx(Icon, {
8933
+ size: 24,
8934
+ strokeWidth: 2,
8935
+ "aria-hidden": "true"
8936
+ })
8937
+ }, value))
8938
+ });
8939
+ }
8940
+ //#endregion
8884
8941
  //#region src/connect/utils/get-folder-status.ts
8885
8942
  /**
8886
8943
  * Retrieves the sync status of a folder based on its path and their children files.
@@ -8927,6 +8984,6 @@ const removeSuccessFiles = (files) => {
8927
8984
  return files.filter((file) => file.status !== "SUCCESS");
8928
8985
  };
8929
8986
  //#endregion
8930
- export { About, AccountPopover, AddDriveModal, AddLocalDriveForm, AddRemoteDriveForm, AnimatedLoader, Breadcrumb, Breadcrumbs, CONFLICT, ChannelInspector, Combobox, ConnectConfirmationModal, ConnectDeleteDriveModal, ConnectDeleteItemModal, ConnectDropdownMenu, ConnectReplaceDuplicateModal, ConnectSearchBar, ConnectSelect, ConnectSidebar, ConnectSidebarFooter, ConnectSidebarHeader, ConnectTooltip, ConnectTooltipProvider, ConnectUpgradeDriveModal, ConnectionStateBadge, CookieBanner, CreateDocumentModal, DBExplorer, DangerZone, DebugInspector, DefaultEditor, DefaultEditorLoader, DefaultEditorSelect, DependencyVersions, Disclosure, Divider, DocumentStateViewer, DocumentTimeline, DocumentToolbar, DriveSettingsModal, DropZone, DropZoneWrapper, ENSAvatar, ERROR, EditorActionButtons, EditorUndoRedoButtons, FileItem, FolderItem, Footer, FooterLink, FormInput, FormattedJsonViewer, HomeBackgroundImage, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, INITIAL_SYNC, InspectorModal, IntegrityInspector, LoadingScreen, LogoAnimation, MISSING, NodeInput, ObjectInspectorModal, PackageInstallModal, PackageManager, PackageManagerInput, PackageManagerList, PackageManagerListItem, ProcessorsInspector, QueueInspector, ReadRequiredModal, RemotesInspector, RevisionHistory, SUCCESS, SYNCING, SettingsModal, SidebarAddDriveItem, SidebarItem, SidebarLogin, SidebarUser, SyncStatusIcon, TabContent, Tabs, Toggle, ToolbarButton, ToolbarCloseButton, ToolbarContainer, ToolbarControlsContainer, ToolbarDownloadButton, ToolbarHistoryButton, ToolbarInput, ToolbarName, ToolbarRedoButton, ToolbarSwitchboardButton, ToolbarUndoButton, UploadFileItem, UploadFileList, UploadFileListContainer, debugNodeOptions, debugNodeOptionsMap, defaultDriveOptions, defaultNodeOptions, fileNodeDropdownOptions, folderNodeDropdownOptions, formatEthAddress, getFolderStatus, locationInfoByLocation, nodeOptions, normalNodeOptions, removeSuccessFiles, sharingTypeOptions, sortFilesByStatus, syncStatuses, useEns, verifyPackageJsonFields };
8987
+ export { About, AccountPopover, AddDriveModal, AddLocalDriveForm, AddRemoteDriveForm, AnimatedLoader, Breadcrumb, Breadcrumbs, CONFLICT, ChannelInspector, Combobox, ConnectConfirmationModal, ConnectDeleteDriveModal, ConnectDeleteItemModal, ConnectDropdownMenu, ConnectReplaceDuplicateModal, ConnectSearchBar, ConnectSelect, ConnectSidebar, ConnectSidebarFooter, ConnectSidebarHeader, ConnectTooltip, ConnectTooltipProvider, ConnectUpgradeDriveModal, ConnectionStateBadge, CookieBanner, CreateDocumentModal, DBExplorer, DangerZone, DebugInspector, DefaultEditor, DefaultEditorLoader, DefaultEditorSelect, DependencyVersions, Disclosure, Divider, DocumentStateViewer, DocumentTimeline, DocumentToolbar, DriveAuthGate, DriveSettingsModal, DropZone, DropZoneWrapper, ENSAvatar, ERROR, EditorActionButtons, EditorUndoRedoButtons, FileItem, FolderItem, Footer, FooterLink, FormInput, FormattedJsonViewer, HomeBackgroundImage, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, INITIAL_SYNC, InspectorModal, IntegrityInspector, LoadingScreen, LogoAnimation, MISSING, NodeInput, ObjectInspectorModal, PackageInstallModal, PackageManager, PackageManagerInput, PackageManagerList, PackageManagerListItem, ProcessorsInspector, QueueInspector, ReadRequiredModal, RemotesInspector, RevisionHistory, SUCCESS, SYNCING, SettingsModal, SidebarAddDriveItem, SidebarItem, SidebarLogin, SidebarUser, SyncStatusIcon, TabContent, Tabs, ThemeSwitch, Toggle, ToolbarButton, ToolbarCloseButton, ToolbarContainer, ToolbarControlsContainer, ToolbarDownloadButton, ToolbarHistoryButton, ToolbarInput, ToolbarName, ToolbarRedoButton, ToolbarSwitchboardButton, ToolbarUndoButton, UploadFileItem, UploadFileList, UploadFileListContainer, debugNodeOptions, debugNodeOptionsMap, defaultDriveOptions, defaultNodeOptions, fileNodeDropdownOptions, folderNodeDropdownOptions, formatEthAddress, getFolderStatus, locationInfoByLocation, nodeOptions, normalNodeOptions, removeSuccessFiles, sharingTypeOptions, sortFilesByStatus, syncStatuses, useEns, verifyPackageJsonFields };
8931
8988
 
8932
8989
  //# sourceMappingURL=index.js.map