@powerhousedao/design-system 6.2.0-dev.4 → 6.2.0-dev.40

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 (94) hide show
  1. package/dist/{command-DK7bdu7x.d.ts → command-B5BuEBfZ.d.ts} +8 -8
  2. package/dist/{command-DK7bdu7x.d.ts.map → command-B5BuEBfZ.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 +49 -4
  7. package/dist/connect/index.d.ts.map +1 -1
  8. package/dist/connect/index.js +810 -612
  9. package/dist/connect/index.js.map +1 -1
  10. package/dist/id-autocomplete-list-option-CB5B07Hi.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/json-viewer-DaTgmzkS.d.ts.map +1 -1
  13. package/dist/{src-BrrPQVce.js → src-CfIIbIOi.js} +11 -11
  14. package/dist/src-CfIIbIOi.js.map +1 -0
  15. package/dist/style.css +79 -16
  16. package/dist/ui/components/button/button.js +1 -1
  17. package/dist/ui/components/button/button.js.map +1 -1
  18. package/dist/ui/components/character-counter/character-counter.js +6 -6
  19. package/dist/ui/components/character-counter/character-counter.js.map +1 -1
  20. package/dist/ui/components/checkbox/checkbox-base.js +1 -1
  21. package/dist/ui/components/checkbox/checkbox-base.js.map +1 -1
  22. package/dist/ui/components/checkbox/checkbox.js +1 -1
  23. package/dist/ui/components/checkbox/checkbox.js.map +1 -1
  24. package/dist/ui/components/command/command.d.ts +1 -1
  25. package/dist/ui/components/command/command.js +5 -5
  26. package/dist/ui/components/command/command.js.map +1 -1
  27. package/dist/ui/components/form-description/form-description.js +1 -1
  28. package/dist/ui/components/form-description/form-description.js.map +1 -1
  29. package/dist/ui/components/form-label/form-label.js +3 -3
  30. package/dist/ui/components/form-label/form-label.js.map +1 -1
  31. package/dist/ui/components/form-message/form-message.js +3 -3
  32. package/dist/ui/components/form-message/form-message.js.map +1 -1
  33. package/dist/ui/components/form-message/message-list.js +3 -3
  34. package/dist/ui/components/form-message/message-list.js.map +1 -1
  35. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js +3 -3
  36. package/dist/ui/components/id-autocomplete/id-autocomplete-input-container.js.map +1 -1
  37. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js +10 -10
  38. package/dist/ui/components/id-autocomplete/id-autocomplete-list-option.js.map +1 -1
  39. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js +1 -1
  40. package/dist/ui/components/id-autocomplete/id-autocomplete-list.js.map +1 -1
  41. package/dist/ui/components/id-autocomplete/id-autocomplete.js +1 -1
  42. package/dist/ui/components/id-autocomplete/id-autocomplete.js.map +1 -1
  43. package/dist/ui/components/index.d.ts +1 -1
  44. package/dist/ui/components/input/input.js +1 -1
  45. package/dist/ui/components/input/input.js.map +1 -1
  46. package/dist/ui/components/input/splitted-input-diff.js +2 -2
  47. package/dist/ui/components/input/splitted-input-diff.js.map +1 -1
  48. package/dist/ui/components/input/subcomponent/input-diff.js +1 -1
  49. package/dist/ui/components/input/subcomponent/input-diff.js.map +1 -1
  50. package/dist/ui/components/input/subcomponent/text-diff.js +3 -3
  51. package/dist/ui/components/input/subcomponent/text-diff.js.map +1 -1
  52. package/dist/ui/components/json-viewer/json-viewer.js +6 -5
  53. package/dist/ui/components/json-viewer/json-viewer.js.map +1 -1
  54. package/dist/ui/components/popover/popover.js +1 -1
  55. package/dist/ui/components/popover/popover.js.map +1 -1
  56. package/dist/ui/components/radio-group-field/radio.js +3 -3
  57. package/dist/ui/components/radio-group-field/radio.js.map +1 -1
  58. package/dist/ui/components/search-autocomplete/search-autocomplete.js +13 -13
  59. package/dist/ui/components/search-autocomplete/search-autocomplete.js.map +1 -1
  60. package/dist/ui/components/select-field/content.js +8 -8
  61. package/dist/ui/components/select-field/content.js.map +1 -1
  62. package/dist/ui/components/select-field/select-field.js +1 -1
  63. package/dist/ui/components/select-field/select-field.js.map +1 -1
  64. package/dist/ui/components/select-field/selected-content.js +7 -7
  65. package/dist/ui/components/select-field/selected-content.js.map +1 -1
  66. package/dist/ui/components/select-field/subcomponents/CommandItemList.d.ts.map +1 -1
  67. package/dist/ui/components/select-field/subcomponents/CommandItemList.js +9 -9
  68. package/dist/ui/components/select-field/subcomponents/CommandItemList.js.map +1 -1
  69. package/dist/ui/components/sidebar/sidebar.js +5 -5
  70. package/dist/ui/components/sidebar/sidebar.js.map +1 -1
  71. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js +1 -1
  72. package/dist/ui/components/sidebar/subcomponents/sidebar-content-area.js.map +1 -1
  73. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js +3 -3
  74. package/dist/ui/components/sidebar/subcomponents/sidebar-header.js.map +1 -1
  75. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js +7 -7
  76. package/dist/ui/components/sidebar/subcomponents/sidebar-item.js.map +1 -1
  77. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js +1 -1
  78. package/dist/ui/components/sidebar/subcomponents/sidebar-pinning-area.js.map +1 -1
  79. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js +1 -1
  80. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-navigation-arrow.js.map +1 -1
  81. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js +4 -4
  82. package/dist/ui/components/sidebar/subcomponents/sidebar-search/search-result-counter.js.map +1 -1
  83. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js +5 -5
  84. package/dist/ui/components/sidebar/subcomponents/sidebar-search/sidebar-search.js.map +1 -1
  85. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js +2 -2
  86. package/dist/ui/components/sidebar/subcomponents/sidebar-skeleton-item.js.map +1 -1
  87. package/dist/ui/components/sidebar/subcomponents/status-icon.js +6 -6
  88. package/dist/ui/components/sidebar/subcomponents/status-icon.js.map +1 -1
  89. package/dist/ui/components/tooltip/tooltip.js +1 -1
  90. package/dist/ui/components/tooltip/tooltip.js.map +1 -1
  91. package/dist/ui/index.d.ts +1 -1
  92. package/package.json +23 -8
  93. package/theme.css +145 -17
  94. 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",
@@ -6389,20 +6423,20 @@ function sortRemotes(remotes, sort) {
6389
6423
  let bValue;
6390
6424
  switch (sort.column) {
6391
6425
  case "id":
6392
- aValue = a.id;
6393
- bValue = b.id;
6426
+ aValue = a.meta.id;
6427
+ bValue = b.meta.id;
6394
6428
  break;
6395
6429
  case "name":
6396
- aValue = a.name;
6397
- bValue = b.name;
6430
+ aValue = a.meta.name;
6431
+ bValue = b.meta.name;
6398
6432
  break;
6399
6433
  case "collectionId":
6400
- aValue = a.collectionId;
6401
- bValue = b.collectionId;
6434
+ aValue = a.meta.collectionId.key;
6435
+ bValue = b.meta.collectionId.key;
6402
6436
  break;
6403
6437
  case "filter":
6404
- aValue = formatFilter(a.filter);
6405
- bValue = formatFilter(b.filter);
6438
+ aValue = formatFilter(a.meta.filter);
6439
+ bValue = formatFilter(b.meta.filter);
6406
6440
  break;
6407
6441
  default: return 0;
6408
6442
  }
@@ -6430,7 +6464,7 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6430
6464
  }, [loadRemotes]);
6431
6465
  const handleRefresh = useCallback(async () => {
6432
6466
  await loadRemotes();
6433
- if (selectedRemote) setSelectedRemote(remotes.find((r) => r.id === selectedRemote.id));
6467
+ if (selectedRemote) setSelectedRemote(remotes.find((r) => r.meta.id === selectedRemote.meta.id));
6434
6468
  }, [
6435
6469
  loadRemotes,
6436
6470
  selectedRemote,
@@ -6448,9 +6482,9 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6448
6482
  };
6449
6483
  const handleRemove = useCallback(async (remote) => {
6450
6484
  if (!removeRemote) return;
6451
- await removeRemote(remote.name);
6485
+ await removeRemote(remote.meta.name);
6452
6486
  await loadRemotes();
6453
- if (selectedRemote?.id === remote.id) setSelectedRemote(void 0);
6487
+ if (selectedRemote?.meta.id === remote.meta.id) setSelectedRemote(void 0);
6454
6488
  }, [
6455
6489
  removeRemote,
6456
6490
  loadRemotes,
@@ -6480,14 +6514,14 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6480
6514
  loadRemotes
6481
6515
  ]);
6482
6516
  const handlePull = useCallback((remote) => {
6483
- triggerPull?.(remote.name);
6517
+ triggerPull?.(remote.meta.name);
6484
6518
  }, [triggerPull]);
6485
6519
  if (selectedRemote) return /* @__PURE__ */ jsx(ChannelInspector, {
6486
6520
  channel: selectedRemote.channel,
6487
- connectionState: connectionStates?.get(selectedRemote.name),
6521
+ connectionState: connectionStates?.get(selectedRemote.meta.name),
6488
6522
  onBack: handleBack,
6489
6523
  onRefresh: () => void handleRefresh(),
6490
- remoteName: selectedRemote.name
6524
+ remoteName: selectedRemote.meta.name
6491
6525
  });
6492
6526
  const sortedRemotes = sortRemotes(remotes, sort);
6493
6527
  return /* @__PURE__ */ jsxs("div", {
@@ -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,62 +6597,62 @@ 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
- title: remote.id,
6581
- children: truncateId(remote.id)
6614
+ title: remote.meta.id,
6615
+ children: truncateId(remote.meta.id)
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
- title: remote.name,
6589
- children: remote.name
6622
+ title: remote.meta.name,
6623
+ children: remote.meta.name
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",
6594
- children: connectionStates?.get(remote.name) ? /* @__PURE__ */ jsx(ConnectionStateBadge, {
6595
- failureCount: connectionStates.get(remote.name).failureCount,
6596
- state: connectionStates.get(remote.name).state
6627
+ className: "border-l border-border px-3 py-2",
6628
+ children: connectionStates?.get(remote.meta.name) ? /* @__PURE__ */ jsx(ConnectionStateBadge, {
6629
+ failureCount: connectionStates.get(remote.meta.name).failureCount,
6630
+ state: connectionStates.get(remote.meta.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.meta.collectionId.key,
6641
+ children: remote.meta.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
- title: formatFilter(remote.filter),
6615
- children: formatFilter(remote.filter)
6648
+ title: formatFilter(remote.meta.filter),
6649
+ children: formatFilter(remote.meta.filter)
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"
@@ -6646,11 +6680,11 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6646
6680
  })
6647
6681
  })
6648
6682
  ]
6649
- }, remote.id)) })]
6683
+ }, remote.meta.id)) })]
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,
@@ -6661,8 +6695,129 @@ function RemotesInspector({ getRemotes, removeRemote, addRemoteManual, triggerPu
6661
6695
  });
6662
6696
  }
6663
6697
  //#endregion
6698
+ //#region src/connect/components/worker-inspector/worker-inspector.tsx
6699
+ function formatUptime(ms) {
6700
+ const totalSeconds = Math.max(0, Math.floor(ms / 1e3));
6701
+ const hours = Math.floor(totalSeconds / 3600);
6702
+ const minutes = Math.floor(totalSeconds % 3600 / 60);
6703
+ const seconds = totalSeconds % 60;
6704
+ const parts = [];
6705
+ if (hours > 0) parts.push(`${hours}h`);
6706
+ if (hours > 0 || minutes > 0) parts.push(`${minutes}m`);
6707
+ parts.push(`${seconds}s`);
6708
+ return parts.join(" ");
6709
+ }
6710
+ function Field({ label, value }) {
6711
+ return /* @__PURE__ */ jsxs("div", {
6712
+ className: "flex flex-col gap-0.5",
6713
+ children: [/* @__PURE__ */ jsx("span", {
6714
+ className: "text-xs font-medium text-muted-foreground",
6715
+ children: label
6716
+ }), /* @__PURE__ */ jsx("span", {
6717
+ className: "font-mono text-sm break-all text-foreground",
6718
+ children: value
6719
+ })]
6720
+ });
6721
+ }
6722
+ function WorkerInspector({ getInfo, onRestart }) {
6723
+ const [info, setInfo] = useState(null);
6724
+ const [error, setError] = useState(null);
6725
+ const [now, setNow] = useState(() => Date.now());
6726
+ const [restarting, setRestarting] = useState(false);
6727
+ const loadInfo = useCallback(async () => {
6728
+ try {
6729
+ setInfo(await getInfo());
6730
+ setError(null);
6731
+ } catch (e) {
6732
+ setError(e instanceof Error ? e.message : String(e));
6733
+ }
6734
+ }, [getInfo]);
6735
+ useEffect(() => {
6736
+ loadInfo();
6737
+ const interval = setInterval(() => {
6738
+ loadInfo();
6739
+ setNow(Date.now());
6740
+ }, 1e3);
6741
+ return () => clearInterval(interval);
6742
+ }, [loadInfo]);
6743
+ const handleRestart = useCallback(async () => {
6744
+ if (!window.confirm("Restart the reactor worker? All tabs sharing it will reload.")) return;
6745
+ setRestarting(true);
6746
+ try {
6747
+ await onRestart();
6748
+ } finally {
6749
+ setRestarting(false);
6750
+ }
6751
+ }, [onRestart]);
6752
+ return /* @__PURE__ */ jsxs("div", {
6753
+ className: "flex h-full flex-col gap-3",
6754
+ children: [/* @__PURE__ */ jsxs("div", {
6755
+ className: "flex shrink-0 items-center justify-between",
6756
+ children: [/* @__PURE__ */ jsx("h2", {
6757
+ className: "text-lg font-semibold text-foreground",
6758
+ children: "Worker Inspector"
6759
+ }), /* @__PURE__ */ jsxs("button", {
6760
+ className: twMerge("flex items-center gap-1 rounded-sm border px-3 py-1.5 text-sm", "border-warning bg-warning/10 text-warning hover:hover-effect disabled:disabled-effect"),
6761
+ disabled: restarting || !info,
6762
+ onClick: () => void handleRestart(),
6763
+ type: "button",
6764
+ children: [/* @__PURE__ */ jsx(Icon, {
6765
+ name: "Reload",
6766
+ size: 14
6767
+ }), restarting ? "Restarting..." : "Restart Worker"]
6768
+ })]
6769
+ }), error ? /* @__PURE__ */ jsx("div", {
6770
+ className: "rounded-lg bg-destructive/10 px-4 py-3 text-sm text-destructive",
6771
+ children: error
6772
+ }) : !info ? /* @__PURE__ */ jsx("div", {
6773
+ className: "rounded-lg bg-muted px-4 py-8 text-center text-sm text-muted-foreground",
6774
+ children: "Loading worker info..."
6775
+ }) : /* @__PURE__ */ jsxs("div", {
6776
+ className: "grid grid-cols-2 gap-4 rounded-lg border border-border p-4",
6777
+ children: [
6778
+ /* @__PURE__ */ jsx(Field, {
6779
+ label: "Worker name",
6780
+ value: info.namespace
6781
+ }),
6782
+ /* @__PURE__ */ jsx(Field, {
6783
+ label: "Owner ID (boot)",
6784
+ value: info.ownerId
6785
+ }),
6786
+ /* @__PURE__ */ jsx(Field, {
6787
+ label: "Uptime",
6788
+ value: formatUptime(now - info.bootedAtMs)
6789
+ }),
6790
+ /* @__PURE__ */ jsx(Field, {
6791
+ label: "Connected tabs",
6792
+ value: String(info.connectedClients)
6793
+ }),
6794
+ /* @__PURE__ */ jsx(Field, {
6795
+ label: "App build",
6796
+ value: info.appBuildId
6797
+ }),
6798
+ /* @__PURE__ */ jsx(Field, {
6799
+ label: "RPC protocol",
6800
+ value: String(info.rpcProtocolVersion)
6801
+ })
6802
+ ]
6803
+ })]
6804
+ });
6805
+ }
6806
+ //#endregion
6664
6807
  //#region src/connect/components/modal/inspector-modal/inspector-modal.tsx
6665
- function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExplorerProps, remotesInspectorProps, queueInspectorProps, processorsInspectorProps, integrityInspectorProps, defaultTab = "Database" }) {
6808
+ function InspectorUnavailable({ message }) {
6809
+ return /* @__PURE__ */ jsxs("div", {
6810
+ className: "flex h-full flex-col items-center justify-center gap-2 p-6 text-center",
6811
+ children: [/* @__PURE__ */ jsx("span", {
6812
+ className: "text-sm font-semibold text-muted-foreground",
6813
+ children: "Not available here"
6814
+ }), /* @__PURE__ */ jsx("p", {
6815
+ className: "max-w-md text-sm text-muted-foreground",
6816
+ children: message
6817
+ })]
6818
+ });
6819
+ }
6820
+ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExplorerProps, remotesInspectorProps, queueInspectorProps, processorsInspectorProps, integrityInspectorProps, workerInspectorProps, unavailableTabs, defaultTab = "Database" }) {
6666
6821
  return /* @__PURE__ */ jsx(Modal, {
6667
6822
  ...modalProps,
6668
6823
  contentProps: {
@@ -6681,7 +6836,7 @@ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExpl
6681
6836
  children: [/* @__PURE__ */ jsx("div", {
6682
6837
  className: "flex shrink-0 items-center justify-end px-3 pt-3",
6683
6838
  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",
6839
+ className: "flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground outline-none hover:hover-effect",
6685
6840
  onClick: () => onOpenChange(false),
6686
6841
  type: "button",
6687
6842
  children: /* @__PURE__ */ jsx(Icon, {
@@ -6710,29 +6865,49 @@ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExpl
6710
6865
  children: /* @__PURE__ */ jsx(RemotesInspector, { ...remotesInspectorProps })
6711
6866
  })
6712
6867
  }),
6713
- queueInspectorProps && /* @__PURE__ */ jsx(TabContent, {
6868
+ queueInspectorProps ? /* @__PURE__ */ jsx(TabContent, {
6714
6869
  description: "Queue inspector",
6715
6870
  label: "Queue",
6716
6871
  children: /* @__PURE__ */ jsx("div", {
6717
6872
  className: "h-full",
6718
6873
  children: /* @__PURE__ */ jsx(QueueInspector, { ...queueInspectorProps })
6719
6874
  })
6720
- }),
6721
- processorsInspectorProps && /* @__PURE__ */ jsx(TabContent, {
6875
+ }) : unavailableTabs?.Queue ? /* @__PURE__ */ jsx(TabContent, {
6876
+ description: "Queue inspector",
6877
+ label: "Queue",
6878
+ children: /* @__PURE__ */ jsx(InspectorUnavailable, { message: unavailableTabs.Queue })
6879
+ }) : null,
6880
+ processorsInspectorProps ? /* @__PURE__ */ jsx(TabContent, {
6722
6881
  description: "Processors inspector",
6723
6882
  label: "Processors",
6724
6883
  children: /* @__PURE__ */ jsx("div", {
6725
6884
  className: "h-full",
6726
6885
  children: /* @__PURE__ */ jsx(ProcessorsInspector, { ...processorsInspectorProps })
6727
6886
  })
6728
- }),
6729
- integrityInspectorProps && /* @__PURE__ */ jsx(TabContent, {
6887
+ }) : unavailableTabs?.Processors ? /* @__PURE__ */ jsx(TabContent, {
6888
+ description: "Processors inspector",
6889
+ label: "Processors",
6890
+ children: /* @__PURE__ */ jsx(InspectorUnavailable, { message: unavailableTabs.Processors })
6891
+ }) : null,
6892
+ integrityInspectorProps ? /* @__PURE__ */ jsx(TabContent, {
6730
6893
  description: "Integrity inspector",
6731
6894
  label: "Integrity",
6732
6895
  children: /* @__PURE__ */ jsx("div", {
6733
6896
  className: "h-full",
6734
6897
  children: /* @__PURE__ */ jsx(IntegrityInspector, { ...integrityInspectorProps })
6735
6898
  })
6899
+ }) : unavailableTabs?.Integrity ? /* @__PURE__ */ jsx(TabContent, {
6900
+ description: "Integrity inspector",
6901
+ label: "Integrity",
6902
+ children: /* @__PURE__ */ jsx(InspectorUnavailable, { message: unavailableTabs.Integrity })
6903
+ }) : null,
6904
+ workerInspectorProps && /* @__PURE__ */ jsx(TabContent, {
6905
+ description: "Worker inspector",
6906
+ label: "Worker",
6907
+ children: /* @__PURE__ */ jsx("div", {
6908
+ className: "h-full",
6909
+ children: /* @__PURE__ */ jsx(WorkerInspector, { ...workerInspectorProps })
6910
+ })
6736
6911
  })
6737
6912
  ]
6738
6913
  })
@@ -6742,7 +6917,7 @@ function InspectorModal({ open, onOpenChange, modalProps, containerProps, dbExpl
6742
6917
  }
6743
6918
  //#endregion
6744
6919
  //#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";
6920
+ 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
6921
  function groupByPackage(installations) {
6747
6922
  const groups = /* @__PURE__ */ new Map();
6748
6923
  for (const item of installations) {
@@ -6785,14 +6960,14 @@ function PackageInstallModal(props) {
6785
6960
  },
6786
6961
  ...restProps,
6787
6962
  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",
6963
+ className: "w-[460px] rounded-xl bg-background p-6 text-foreground",
6789
6964
  children: [
6790
6965
  /* @__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",
6966
+ className: "border-b border-border pb-2 text-2xl font-bold text-foreground",
6792
6967
  children: grouped.length === 1 ? "Package Required" : "Packages Required"
6793
6968
  }),
6794
6969
  /* @__PURE__ */ jsx("div", {
6795
- className: "my-4 text-sm text-gray-700 dark:text-slate-200",
6970
+ className: "my-4 text-sm text-foreground",
6796
6971
  children: grouped.length === 1 ? "A document requires a package that is not installed." : "Documents require packages that are not installed."
6797
6972
  }),
6798
6973
  /* @__PURE__ */ jsx("div", {
@@ -6800,14 +6975,14 @@ function PackageInstallModal(props) {
6800
6975
  children: grouped.map(({ packageName, documentTypes }) => {
6801
6976
  const installing = installingPackages.has(packageName);
6802
6977
  return /* @__PURE__ */ jsxs("div", {
6803
- className: "rounded-xl bg-gray-50 p-4 dark:bg-slate-800",
6978
+ className: "rounded-xl bg-background p-4",
6804
6979
  children: [
6805
6980
  /* @__PURE__ */ jsx("div", {
6806
- className: "mb-1 text-sm font-semibold text-gray-900 dark:text-slate-100",
6981
+ className: "mb-1 text-sm font-semibold text-foreground",
6807
6982
  children: packageName
6808
6983
  }),
6809
6984
  /* @__PURE__ */ jsxs("div", {
6810
- className: "mb-3 text-xs text-gray-500 dark:text-slate-400",
6985
+ className: "mb-3 text-xs text-muted-foreground",
6811
6986
  children: [
6812
6987
  "Required for document type",
6813
6988
  documentTypes.length > 1 ? "s" : "",
@@ -6822,13 +6997,13 @@ function PackageInstallModal(props) {
6822
6997
  type: "button",
6823
6998
  onClick: () => onDismiss(packageName),
6824
6999
  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"),
7000
+ className: twMerge(buttonStyles, "border border-border bg-background text-foreground", installing && "cursor-not-allowed opacity-50"),
6826
7001
  children: "Dismiss"
6827
7002
  }), /* @__PURE__ */ jsx("button", {
6828
7003
  type: "button",
6829
7004
  onClick: () => void handleInstall(packageName),
6830
7005
  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"),
7006
+ className: twMerge(buttonStyles, "bg-primary text-primary-foreground", installing && "cursor-not-allowed opacity-50"),
6832
7007
  children: installing ? "Installing..." : "Install"
6833
7008
  })]
6834
7009
  })
@@ -6873,12 +7048,12 @@ function ReadRequiredModal(props) {
6873
7048
  className: "w-[500px] p-6",
6874
7049
  children: [
6875
7050
  /* @__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",
7051
+ className: "border-b border-border pb-2 text-2xl font-bold text-foreground",
6877
7052
  children: header
6878
7053
  }),
6879
7054
  /* @__PURE__ */ jsx("div", {
6880
7055
  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),
7056
+ className: twMerge("my-6 max-h-[245px] overflow-scroll rounded-md bg-background p-4 text-center", bodyClassName),
6882
7057
  children: body
6883
7058
  }),
6884
7059
  /* @__PURE__ */ jsx("div", {
@@ -6886,7 +7061,7 @@ function ReadRequiredModal(props) {
6886
7061
  children: /* @__PURE__ */ jsx("button", {
6887
7062
  disabled: disableClose,
6888
7063
  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"),
7064
+ 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
7065
  children: closeLabel
6891
7066
  })
6892
7067
  })
@@ -6929,9 +7104,9 @@ function DependencyVersions(props) {
6929
7104
  isOpen,
6930
7105
  onOpenChange: () => setIsOpen(!isOpen),
6931
7106
  title: `App version: ${validatedData.version}`,
6932
- toggleClassName: "text-gray-900 text-sm dark:text-slate-50",
7107
+ toggleClassName: "text-sm text-foreground",
6933
7108
  children: /* @__PURE__ */ jsxs("ul", {
6934
- className: "text-sm text-gray-700 dark:text-slate-200",
7109
+ className: "text-sm text-foreground",
6935
7110
  children: [Object.entries(validatedData.dependencies).map(([dep, version]) => /* @__PURE__ */ jsxs("li", {
6936
7111
  className: "my-1 flex justify-between pr-1",
6937
7112
  children: [/* @__PURE__ */ jsxs("span", { children: [dep.replace("@powerhousedao/", ""), ":"] }), /* @__PURE__ */ jsx("span", {
@@ -6953,14 +7128,14 @@ function DependencyVersions(props) {
6953
7128
  function About(props) {
6954
7129
  const { packageJson, phCliVersion } = props;
6955
7130
  return /* @__PURE__ */ jsxs("div", {
6956
- className: "bg-gray-50 p-3 dark:bg-slate-800",
7131
+ className: "bg-background p-3",
6957
7132
  children: [
6958
7133
  /* @__PURE__ */ jsx("h2", {
6959
- className: "font-semibold text-gray-900 dark:text-slate-100",
7134
+ className: "font-semibold text-foreground",
6960
7135
  children: "About"
6961
7136
  }),
6962
7137
  /* @__PURE__ */ jsx("p", {
6963
- className: "text-sm font-normal text-gray-700 dark:text-slate-200",
7138
+ className: "text-sm font-normal text-foreground",
6964
7139
  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
7140
  }),
6966
7141
  /* @__PURE__ */ jsx("div", {
@@ -6988,15 +7163,15 @@ function getDriveSharingType(drive) {
6988
7163
  function DangerZone(props) {
6989
7164
  const { className, ...rest } = props;
6990
7165
  return /* @__PURE__ */ jsxs("div", {
6991
- className: twMerge("h-full rounded-lg bg-gray-50 p-3 dark:bg-slate-800", className),
7166
+ className: twMerge("h-full rounded-lg bg-background p-3", className),
6992
7167
  children: [
6993
7168
  /* @__PURE__ */ jsx("h2", {
6994
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-100",
7169
+ className: "mb-4 font-semibold text-foreground",
6995
7170
  children: "Modify Drives"
6996
7171
  }),
6997
7172
  /* @__PURE__ */ jsx(ModifyDrives, { ...rest }),
6998
7173
  /* @__PURE__ */ jsx("h2", {
6999
- className: "my-4 font-semibold text-gray-900 dark:text-slate-100",
7174
+ className: "my-4 font-semibold text-foreground",
7000
7175
  children: "Local Storage"
7001
7176
  }),
7002
7177
  /* @__PURE__ */ jsx(LocalStorage, { ...rest })
@@ -7050,7 +7225,7 @@ function Drive(props) {
7050
7225
  }
7051
7226
  const icon = getNodeIcon();
7052
7227
  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),
7228
+ 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
7229
  children: [
7055
7230
  icon,
7056
7231
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
@@ -7059,17 +7234,17 @@ function Drive(props) {
7059
7234
  }), /* @__PURE__ */ jsxs("div", {
7060
7235
  className: "flex items-baseline gap-x-2 leading-4.5",
7061
7236
  children: [/* @__PURE__ */ jsxs("span", {
7062
- className: "text-sm text-gray-700 dark:text-slate-200",
7237
+ className: "text-sm text-foreground",
7063
7238
  children: [capitalCase(getDriveSharingType(drive)), " App"]
7064
7239
  }), /* @__PURE__ */ jsxs("a", {
7065
7240
  href: "https://www.powerhouse.inc/",
7066
7241
  target: "_blank",
7067
7242
  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",
7243
+ className: "group flex items-center gap-x-2 text-sm text-muted-foreground transition-colors hover:hover-effect",
7069
7244
  children: ["By Powerhouse", /* @__PURE__ */ jsx("svg", {
7070
7245
  xmlns: "http://www.w3.org/2000/svg",
7071
7246
  viewBox: "0 0 12 12",
7072
- className: "size-4 text-gray-400 transition-colors group-hover:text-inherit dark:text-slate-500",
7247
+ className: "size-4 text-muted-foreground transition-colors group-hover:hover-effect",
7073
7248
  children: /* @__PURE__ */ jsx("path", {
7074
7249
  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
7250
  fill: "currentColor"
@@ -7082,7 +7257,7 @@ function Drive(props) {
7082
7257
  id: "delete-drive",
7083
7258
  label: "Delete",
7084
7259
  icon: /* @__PURE__ */ jsx(Icon, { name: "Trash" }),
7085
- className: "text-red-900 dark:text-red-400"
7260
+ className: "text-destructive"
7086
7261
  }],
7087
7262
  onItemClick: (id) => {
7088
7263
  if (id === "delete-drive") onDeleteDrive(drive);
@@ -7096,7 +7271,7 @@ function Drive(props) {
7096
7271
  setIsDropdownMenuOpen(true);
7097
7272
  },
7098
7273
  children: /* @__PURE__ */ jsx(Icon, {
7099
- className: "text-gray-700 group-hover:text-gray-900 dark:text-slate-200 dark:group-hover:text-slate-50",
7274
+ className: "text-foreground group-hover:hover-effect",
7100
7275
  name: "VerticalDots",
7101
7276
  size: 16
7102
7277
  })
@@ -7108,7 +7283,7 @@ function Drive(props) {
7108
7283
  function LocalStorage(props) {
7109
7284
  const { onClearStorage } = props;
7110
7285
  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",
7286
+ 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
7287
  onClick: () => void onClearStorage(),
7113
7288
  children: ["Clear Storage ", /* @__PURE__ */ jsx(Icon, {
7114
7289
  name: "Trash",
@@ -7121,14 +7296,14 @@ function LocalStorage(props) {
7121
7296
  function DefaultEditor(props) {
7122
7297
  const { className, ...rest } = props;
7123
7298
  return /* @__PURE__ */ jsx("div", {
7124
- className: twMerge("rounded-lg bg-gray-50 p-3 dark:bg-slate-800", className),
7299
+ className: twMerge("rounded-lg bg-background p-3", className),
7125
7300
  children: /* @__PURE__ */ jsx(DefaultEditorSelect, { ...rest })
7126
7301
  });
7127
7302
  }
7128
7303
  function DefaultEditorSelect(props) {
7129
7304
  const { documentModelEditor, setDocumentModelEditor, documentModelEditorOptions, className } = props;
7130
7305
  return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
7131
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-50",
7306
+ className: "mb-4 font-semibold text-foreground",
7132
7307
  children: "Default Editor Selection"
7133
7308
  }), /* @__PURE__ */ jsx(SelectFieldRaw, {
7134
7309
  className: twMerge("max-w-fit min-w-36", className),
@@ -7232,7 +7407,7 @@ const VersionPicker = (props) => {
7232
7407
  },
7233
7408
  children: [/* @__PURE__ */ jsxs(PopoverTrigger, {
7234
7409
  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),
7410
+ 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
7411
  "data-version-picker-trigger": true,
7237
7412
  children: [/* @__PURE__ */ jsx("span", {
7238
7413
  className: "truncate",
@@ -7240,7 +7415,7 @@ const VersionPicker = (props) => {
7240
7415
  }), /* @__PURE__ */ jsx(Icon, {
7241
7416
  name: "ChevronDown",
7242
7417
  size: 12,
7243
- className: "shrink-0 text-gray-500 dark:text-slate-400"
7418
+ className: "shrink-0 text-muted-foreground"
7244
7419
  })]
7245
7420
  }), /* @__PURE__ */ jsxs(PopoverContent, {
7246
7421
  "data-version-picker": true,
@@ -7249,13 +7424,13 @@ const VersionPicker = (props) => {
7249
7424
  className: "w-56 p-0",
7250
7425
  onOpenAutoFocus: (e) => e.preventDefault(),
7251
7426
  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",
7427
+ className: "border-b border-border p-2",
7253
7428
  children: /* @__PURE__ */ jsxs("div", {
7254
7429
  className: "relative",
7255
7430
  children: [/* @__PURE__ */ jsx(Icon, {
7256
7431
  name: "Search",
7257
7432
  size: 14,
7258
- className: "absolute top-1/2 left-2 -translate-y-1/2 text-gray-400 dark:text-slate-500"
7433
+ className: "absolute top-1/2 left-2 -translate-y-1/2 text-muted-foreground"
7259
7434
  }), /* @__PURE__ */ jsx(Input, {
7260
7435
  value: query,
7261
7436
  onChange: (e) => setQuery(e.target.value),
@@ -7267,13 +7442,13 @@ const VersionPicker = (props) => {
7267
7442
  className: "max-h-60 overflow-y-auto py-1",
7268
7443
  children: [
7269
7444
  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",
7445
+ className: "px-3 py-4 text-center text-xs text-muted-foreground",
7271
7446
  children: "No matches."
7272
7447
  }),
7273
7448
  filteredTags.length > 0 && /* @__PURE__ */ jsxs("div", {
7274
7449
  className: "pb-1",
7275
7450
  children: [/* @__PURE__ */ jsx("p", {
7276
- className: "px-3 py-1 text-xs font-semibold tracking-wide text-gray-500 uppercase dark:text-slate-400",
7451
+ className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7277
7452
  children: "Tags"
7278
7453
  }), filteredTags.map(([tag, ver]) => {
7279
7454
  return /* @__PURE__ */ jsxs("button", {
@@ -7286,19 +7461,19 @@ const VersionPicker = (props) => {
7286
7461
  setOpen(false);
7287
7462
  setQuery("");
7288
7463
  },
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"),
7464
+ 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
7465
  children: [/* @__PURE__ */ jsx("span", {
7291
- className: "truncate text-gray-900 dark:text-slate-50",
7466
+ className: "truncate text-foreground",
7292
7467
  children: tag
7293
7468
  }), /* @__PURE__ */ jsx("span", {
7294
- className: "truncate text-gray-500 dark:text-slate-400",
7469
+ className: "truncate text-muted-foreground",
7295
7470
  children: ver
7296
7471
  })]
7297
7472
  }, `tag:${tag}`);
7298
7473
  })]
7299
7474
  }),
7300
7475
  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",
7476
+ className: "px-3 py-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase",
7302
7477
  children: "Versions"
7303
7478
  }), filteredVersions.map((ver) => {
7304
7479
  return /* @__PURE__ */ jsx("button", {
@@ -7311,9 +7486,9 @@ const VersionPicker = (props) => {
7311
7486
  setOpen(false);
7312
7487
  setQuery("");
7313
7488
  },
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"),
7489
+ 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
7490
  children: /* @__PURE__ */ jsx("span", {
7316
- className: "truncate text-gray-900 dark:text-slate-50",
7491
+ className: "truncate text-foreground",
7317
7492
  children: ver
7318
7493
  })
7319
7494
  }, `ver:${ver}`);
@@ -7359,20 +7534,20 @@ function PackageResultCard(props) {
7359
7534
  const isSelecting = selectingValue === installSpec;
7360
7535
  const isDisabled = option.disabled === true;
7361
7536
  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",
7537
+ className: "flex items-start justify-between gap-3 rounded-md p-2 hover:hover-effect",
7363
7538
  children: [/* @__PURE__ */ jsxs("div", {
7364
7539
  className: "min-w-0 flex-1",
7365
7540
  children: [
7366
7541
  /* @__PURE__ */ jsx("p", {
7367
- className: "truncate text-sm font-medium text-gray-900 dark:text-slate-50",
7542
+ className: "truncate text-sm font-medium text-foreground",
7368
7543
  children: baseName
7369
7544
  }),
7370
7545
  option.description && /* @__PURE__ */ jsx("p", {
7371
- className: "truncate text-xs text-gray-700 dark:text-slate-200",
7546
+ className: "truncate text-xs text-foreground",
7372
7547
  children: option.description
7373
7548
  }),
7374
7549
  option.meta && /* @__PURE__ */ jsx("p", {
7375
- className: "truncate text-xs text-gray-700 dark:text-slate-200",
7550
+ className: "truncate text-xs text-foreground",
7376
7551
  children: option.meta
7377
7552
  }),
7378
7553
  hasVersionMetadata && /* @__PURE__ */ jsx("div", {
@@ -7392,12 +7567,12 @@ function PackageResultCard(props) {
7392
7567
  className: "flex items-center justify-center",
7393
7568
  children: selectingContent
7394
7569
  }) : 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",
7570
+ className: "rounded-md bg-muted px-3 py-1 text-xs font-medium text-muted-foreground",
7396
7571
  children: option.disabledLabel ?? "Unavailable"
7397
7572
  }) : /* @__PURE__ */ jsx("button", {
7398
7573
  onClick: () => handleSelect(installSpec),
7399
7574
  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",
7575
+ 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
7576
  children: isSelecting ? "..." : selectLabel
7402
7577
  })
7403
7578
  })]
@@ -7445,7 +7620,7 @@ const PackageManagerInput = (props) => {
7445
7620
  return /* @__PURE__ */ jsxs("div", {
7446
7621
  className,
7447
7622
  children: [/* @__PURE__ */ jsx("h3", {
7448
- className: "mb-4 font-semibold text-gray-900 dark:text-slate-50",
7623
+ className: "mb-4 font-semibold text-foreground",
7449
7624
  children: "Install Package"
7450
7625
  }), /* @__PURE__ */ jsx(SearchAutocomplete, {
7451
7626
  fetchOptions,
@@ -7470,10 +7645,10 @@ const PackageDetail = ({ label, value }) => {
7470
7645
  return /* @__PURE__ */ jsxs("div", {
7471
7646
  className: "flex items-start gap-2 text-sm",
7472
7647
  children: [/* @__PURE__ */ jsxs("p", {
7473
- className: "text-gray-700 dark:text-slate-200",
7648
+ className: "text-foreground",
7474
7649
  children: [label, ":"]
7475
7650
  }), /* @__PURE__ */ jsx("p", {
7476
- className: "text-gray-700 dark:text-slate-200",
7651
+ className: "text-foreground",
7477
7652
  children: value
7478
7653
  })]
7479
7654
  });
@@ -7492,25 +7667,25 @@ const PackageManagerListItem = (props) => {
7492
7667
  id: "install",
7493
7668
  label: "Install",
7494
7669
  icon: /* @__PURE__ */ jsx(Icon, { name: "DownloadFile" }),
7495
- className: "text-gray-900 dark:text-slate-100"
7670
+ className: "text-foreground"
7496
7671
  };
7497
7672
  const uninstallDropdownItem = {
7498
7673
  id: "uninstall",
7499
7674
  label: "Uninstall",
7500
7675
  icon: /* @__PURE__ */ jsx(Icon, { name: "Trash" }),
7501
- className: "text-red-900 dark:text-red-400"
7676
+ className: "text-destructive"
7502
7677
  };
7503
7678
  function getDropdownItems() {
7504
7679
  return [canPickVersion ? installDropdownItem : void 0, registryPackage.status === "registry-install" ? uninstallDropdownItem : void 0].filter((item) => item !== void 0);
7505
7680
  }
7506
7681
  const dropdownItems = getDropdownItems();
7507
7682
  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),
7683
+ className: twMerge("relative flex flex-col items-start rounded-md border border-border bg-background p-3 text-sm/5 shadow-sm", className),
7509
7684
  children: [
7510
7685
  /* @__PURE__ */ jsxs("div", {
7511
7686
  className: "flex flex-wrap items-center gap-2 pr-8",
7512
7687
  children: [/* @__PURE__ */ jsx("h3", {
7513
- className: "font-semibold text-gray-900 dark:text-slate-50",
7688
+ className: "font-semibold text-foreground",
7514
7689
  children: registryPackage.name
7515
7690
  }), canPickVersion && hasVersionMetadata ? /* @__PURE__ */ jsx(VersionPicker, {
7516
7691
  distTags: registryPackage.distTags,
@@ -7518,7 +7693,7 @@ const PackageManagerListItem = (props) => {
7518
7693
  selected,
7519
7694
  onChange: setSelected
7520
7695
  }) : registryPackage.version ? /* @__PURE__ */ jsxs("span", {
7521
- className: "text-xs font-normal text-gray-500 dark:text-slate-400",
7696
+ className: "text-xs font-normal text-muted-foreground",
7522
7697
  children: ["v", registryPackage.version]
7523
7698
  }) : null]
7524
7699
  }),
@@ -7566,7 +7741,7 @@ const PackageManagerListItem = (props) => {
7566
7741
  setIsDropdownMenuOpen(true);
7567
7742
  },
7568
7743
  children: /* @__PURE__ */ jsx(Icon, {
7569
- className: "text-gray-700 group-hover:text-gray-900 dark:text-slate-200 dark:group-hover:text-slate-50",
7744
+ className: "text-foreground group-hover:hover-effect",
7570
7745
  name: "VerticalDots"
7571
7746
  })
7572
7747
  })
@@ -7680,22 +7855,22 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7680
7855
  return /* @__PURE__ */ jsxs("section", {
7681
7856
  className: "mb-6",
7682
7857
  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",
7858
+ className: "sticky top-0 z-10 mb-3 border-b border-border bg-background text-foreground",
7684
7859
  children: /* @__PURE__ */ jsxs("button", {
7685
7860
  type: "button",
7686
7861
  onClick: toggle,
7687
7862
  "aria-expanded": !collapsed,
7688
7863
  "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",
7864
+ className: "flex w-full items-center gap-2 pb-2 text-left text-base font-semibold text-foreground hover:hover-effect",
7690
7865
  children: [
7691
7866
  /* @__PURE__ */ jsx(Icon, {
7692
7867
  name: "ChevronDown",
7693
7868
  size: 16,
7694
- className: twMerge("shrink-0 text-gray-700 transition-transform dark:text-slate-200", collapsed && "-rotate-90")
7869
+ className: twMerge("shrink-0 text-foreground transition-transform", collapsed && "-rotate-90")
7695
7870
  }),
7696
7871
  /* @__PURE__ */ jsx("span", { children: title }),
7697
7872
  /* @__PURE__ */ jsx("span", {
7698
- className: "text-xs font-medium text-gray-700 dark:text-slate-200",
7873
+ className: "text-xs font-medium text-foreground",
7699
7874
  children: count
7700
7875
  })
7701
7876
  ]
@@ -7703,7 +7878,7 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7703
7878
  }), !collapsed && /* @__PURE__ */ jsx("div", {
7704
7879
  id: contentId,
7705
7880
  children: isEmpty ? /* @__PURE__ */ jsx("p", {
7706
- className: "text-sm text-gray-700 dark:text-slate-200",
7881
+ className: "text-sm text-foreground",
7707
7882
  children: emptyText
7708
7883
  }) : /* @__PURE__ */ jsx("div", {
7709
7884
  className: "flex flex-col gap-4",
@@ -7714,9 +7889,9 @@ const PackageSection = ({ sectionId, title, count, isEmpty, emptyText, children
7714
7889
  };
7715
7890
  const PackageSubSection = ({ title, count, children }) => {
7716
7891
  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",
7892
+ className: "mb-2 flex items-baseline gap-2 text-xs font-semibold tracking-wide text-foreground uppercase",
7718
7893
  children: [/* @__PURE__ */ jsx("span", { children: title }), /* @__PURE__ */ jsxs("span", {
7719
- className: "font-medium tracking-normal text-gray-500 normal-case dark:text-slate-400",
7894
+ className: "font-medium tracking-normal text-muted-foreground normal-case",
7720
7895
  children: [
7721
7896
  "(",
7722
7897
  count,
@@ -7740,7 +7915,7 @@ const PackageList = ({ packages, onInstall, onUninstall }) => {
7740
7915
  const PackageManager = (props) => {
7741
7916
  const { registryPackageList, onInstall, onUninstall, mutable, disabled, className } = props;
7742
7917
  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),
7918
+ className: twMerge("flex h-full flex-1 flex-col rounded-lg bg-background p-3 text-foreground", className),
7744
7919
  children: [mutable && /* @__PURE__ */ jsx(PackageManagerInput, {
7745
7920
  className: "mb-4",
7746
7921
  registryPackageList,
@@ -7756,13 +7931,13 @@ const PackageManager = (props) => {
7756
7931
  //#endregion
7757
7932
  //#region src/connect/components/modal/settings-modal-v2/settings-modal.tsx
7758
7933
  function SettingsModal(props) {
7759
- const { title, overlayProps, contentProps, onOpenChange, tabs, defaultTab, ...restProps } = props;
7934
+ const { title, overlayProps, contentProps, onOpenChange, tabs, defaultTab, navFooter, ...restProps } = props;
7760
7935
  const [selectedTab, setSelectedTab] = useState(defaultTab ?? tabs.at(0)?.id);
7761
7936
  const tabsContent = tabs.map((tab) => /* @__PURE__ */ jsx("button", {
7762
7937
  type: "button",
7763
7938
  onClick: () => setSelectedTab(tab.id),
7764
7939
  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"),
7940
+ 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
7941
  children: [tab.icon, /* @__PURE__ */ jsx("span", { children: tab.label })]
7767
7942
  })
7768
7943
  }, tab.id));
@@ -7783,13 +7958,13 @@ function SettingsModal(props) {
7783
7958
  },
7784
7959
  ...restProps,
7785
7960
  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",
7961
+ className: "flex justify-between rounded-t-xl border-b border-border p-4",
7787
7962
  children: [/* @__PURE__ */ jsx("h1", {
7788
- className: "text-center text-xl font-semibold text-gray-900 dark:text-slate-50",
7963
+ className: "text-center text-xl font-semibold text-foreground",
7789
7964
  children: title
7790
7965
  }), /* @__PURE__ */ jsx("button", {
7791
7966
  type: "button",
7792
- className: "flex size-6 items-center justify-center rounded-md text-gray-900 outline-none dark:text-slate-100",
7967
+ className: "flex size-6 items-center justify-center rounded-md text-foreground outline-none",
7793
7968
  onClick: () => onOpenChange?.(false),
7794
7969
  children: /* @__PURE__ */ jsx(Icon, {
7795
7970
  name: "XmarkLight",
@@ -7798,11 +7973,17 @@ function SettingsModal(props) {
7798
7973
  })]
7799
7974
  }), /* @__PURE__ */ jsxs("div", {
7800
7975
  className: "flex flex-1",
7801
- children: [/* @__PURE__ */ jsx("div", {
7802
- className: "flex flex-col gap-y-1 p-3 pt-6",
7803
- children: tabsContent
7976
+ children: [/* @__PURE__ */ jsxs("div", {
7977
+ className: "flex flex-col p-3 pt-6",
7978
+ children: [/* @__PURE__ */ jsx("div", {
7979
+ className: "flex flex-col gap-y-1",
7980
+ children: tabsContent
7981
+ }), navFooter && /* @__PURE__ */ jsx("div", {
7982
+ className: "mt-auto border-t border-border pt-2",
7983
+ children: navFooter
7984
+ })]
7804
7985
  }), /* @__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",
7986
+ className: "m-6 flex h-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-background",
7806
7987
  children: typeof SelectedTabComponent === "function" ? /* @__PURE__ */ jsx(SelectedTabComponent, {}) : SelectedTabComponent
7807
7988
  })]
7808
7989
  })]
@@ -7821,14 +8002,14 @@ function ConnectUpgradeDriveModal(props) {
7821
8002
  },
7822
8003
  ...restProps,
7823
8004
  children: /* @__PURE__ */ jsxs("div", {
7824
- className: "w-100 bg-gray-50 p-6 text-gray-300 dark:bg-slate-800 dark:text-slate-200",
8005
+ className: "w-100 bg-background p-6 text-foreground",
7825
8006
  children: [
7826
8007
  /* @__PURE__ */ jsx("div", {
7827
- className: "pb-2 text-2xl font-bold text-gray-900 dark:text-slate-100",
8008
+ className: "pb-2 text-2xl font-bold text-foreground",
7828
8009
  children: header
7829
8010
  }),
7830
8011
  /* @__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",
8012
+ className: "my-6 rounded-md bg-background p-4 text-center text-foreground",
7832
8013
  children: body
7833
8014
  }),
7834
8015
  /* @__PURE__ */ jsxs("div", {
@@ -7852,12 +8033,12 @@ function ConnectUpgradeDriveModal(props) {
7852
8033
  function Branch(props) {
7853
8034
  const { branch = "main" } = props;
7854
8035
  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",
8036
+ className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-background pr-2 pl-1 text-xs text-foreground",
7856
8037
  children: [
7857
8038
  /* @__PURE__ */ jsx(Icon, { name: "Branch" }),
7858
8039
  /* @__PURE__ */ jsx("span", { children: "BRANCH" }),
7859
8040
  /* @__PURE__ */ jsx("span", {
7860
- className: "text-gray-900 dark:text-slate-50",
8041
+ className: "text-foreground",
7861
8042
  children: branch
7862
8043
  })
7863
8044
  ]
@@ -7878,13 +8059,13 @@ function DocId(props) {
7878
8059
  };
7879
8060
  }
7880
8061
  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",
8062
+ className: "flex h-8 w-fit items-center gap-1 rounded-lg bg-background pr-2 pl-1 text-xs text-foreground",
7882
8063
  onClick: handleCopy(docId),
7883
8064
  children: [
7884
8065
  /* @__PURE__ */ jsx(Icon, { name: "Link" }),
7885
8066
  "DOC ID",
7886
8067
  /* @__PURE__ */ jsx("span", {
7887
- className: "text-gray-900 dark:text-slate-50",
8068
+ className: "text-foreground",
7888
8069
  children: docId
7889
8070
  })
7890
8071
  ]
@@ -7903,7 +8084,7 @@ const DocumentState = (props) => {
7903
8084
  });
7904
8085
  }
7905
8086
  return /* @__PURE__ */ jsx("button", {
7906
- className: "rounded-lg bg-gray-50 p-1 text-stone-300 dark:bg-slate-800",
8087
+ className: "rounded-lg bg-background p-1 text-foreground",
7907
8088
  onClick: handleCopy,
7908
8089
  children: /* @__PURE__ */ jsx(Icon, { name: "CurlyBrackets" })
7909
8090
  });
@@ -7914,9 +8095,9 @@ function Scope(props) {
7914
8095
  const { value, onChange } = props;
7915
8096
  return /* @__PURE__ */ jsx(ConnectSelect, {
7916
8097
  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",
8098
+ containerClassName: "z-10 w-fit rounded-lg bg-background text-xs text-muted-foreground",
7918
8099
  id: "scope select",
7919
- itemClassName: "py-2 text-gray-500 grid grid-cols-[auto,auto] gap-1 dark:text-slate-400",
8100
+ itemClassName: "grid grid-cols-[auto,auto] gap-1 py-2 text-muted-foreground",
7920
8101
  items: [{
7921
8102
  displayValue: "Global scope",
7922
8103
  value: "global"
@@ -7924,7 +8105,7 @@ function Scope(props) {
7924
8105
  displayValue: "Local scope",
7925
8106
  value: "local"
7926
8107
  }],
7927
- menuClassName: "min-w-0 text-gray-500 dark:text-slate-400",
8108
+ menuClassName: "min-w-0 text-muted-foreground",
7928
8109
  onChange,
7929
8110
  value
7930
8111
  });
@@ -7940,11 +8121,11 @@ function Header(props) {
7940
8121
  className: "flex items-center gap-3",
7941
8122
  children: [/* @__PURE__ */ jsx("button", {
7942
8123
  name: "close-revision-history",
7943
- className: "rounded-lg bg-gray-50 p-1 text-stone-300 shadow-button dark:bg-slate-800",
8124
+ className: "rounded-lg bg-background p-1 text-foreground shadow-button",
7944
8125
  onClick: onClose,
7945
8126
  children: /* @__PURE__ */ jsx(Icon, { name: "VariantArrowLeft" })
7946
8127
  }), /* @__PURE__ */ jsx("h1", {
7947
- className: "text-xs text-gray-900 dark:text-slate-50",
8128
+ className: "text-xs text-foreground",
7948
8129
  children: title
7949
8130
  })]
7950
8131
  }), /* @__PURE__ */ jsxs("div", {
@@ -8065,7 +8246,7 @@ function CodePopover(props) {
8065
8246
  bottom: -1e4,
8066
8247
  left: 24
8067
8248
  },
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",
8249
+ className: "z-50 rounded-lg border border-border bg-popover p-2 text-xs text-popover-foreground shadow-tooltip outline-none",
8069
8250
  children: content
8070
8251
  }) })
8071
8252
  ]
@@ -8081,7 +8262,7 @@ function Address(props) {
8081
8262
  return /* @__PURE__ */ jsx(CodePopover, {
8082
8263
  content: /* @__PURE__ */ jsx(FormattedJsonViewer, { value: { address } }),
8083
8264
  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",
8265
+ className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg bg-muted p-1 text-xs text-muted-foreground",
8085
8266
  children: [/* @__PURE__ */ jsx(ENSAvatar, {
8086
8267
  address,
8087
8268
  chainId,
@@ -8095,7 +8276,7 @@ function Address(props) {
8095
8276
  function Errors(props) {
8096
8277
  const { errors } = props;
8097
8278
  const hasErrors = !!errors?.length;
8098
- const color = hasErrors ? "text-red-800 dark:text-red-100" : "text-green-700 dark:text-green-100";
8279
+ const color = hasErrors ? "text-destructive" : "text-success";
8099
8280
  const icon = hasErrors ? /* @__PURE__ */ jsx(Icon, {
8100
8281
  name: "Exclamation",
8101
8282
  size: 16
@@ -8105,7 +8286,7 @@ function Errors(props) {
8105
8286
  });
8106
8287
  const text = hasErrors ? `Error: ${errors[0]}` : "No errors";
8107
8288
  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"),
8289
+ 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
8290
  children: [icon, /* @__PURE__ */ jsx("span", {
8110
8291
  className: twMerge("inline-block max-w-36 truncate"),
8111
8292
  children: text
@@ -8124,9 +8305,9 @@ function Operation$1(props) {
8124
8305
  return /* @__PURE__ */ jsx(CodePopover, {
8125
8306
  content: /* @__PURE__ */ jsx(FormattedJsonViewer, { value: operationInput }),
8126
8307
  trigger: /* @__PURE__ */ jsxs("span", {
8127
- className: "flex cursor-pointer items-center gap-2 text-xs text-gray-900 dark:text-slate-50",
8308
+ className: "flex cursor-pointer items-center gap-2 text-xs text-foreground",
8128
8309
  children: [operationType, /* @__PURE__ */ jsx(Icon, {
8129
- className: "text-gray-300 dark:text-slate-600",
8310
+ className: "text-foreground",
8130
8311
  name: "Braces",
8131
8312
  size: 16
8132
8313
  })]
@@ -8145,13 +8326,13 @@ function RevisionNumber(props) {
8145
8326
  stateHash
8146
8327
  } }),
8147
8328
  trigger: /* @__PURE__ */ jsxs("span", {
8148
- className: "flex cursor-pointer items-center gap-2 text-xs text-gray-700 dark:text-slate-200",
8329
+ className: "flex cursor-pointer items-center gap-2 text-xs text-foreground",
8149
8330
  children: [
8150
8331
  "Revision ",
8151
8332
  revisionNumber,
8152
8333
  ".",
8153
8334
  /* @__PURE__ */ jsx("a", { children: /* @__PURE__ */ jsx(Icon, {
8154
- className: "cursor-pointer text-gray-100 dark:text-slate-800",
8335
+ className: "cursor-pointer text-foreground",
8155
8336
  name: "Ellipsis",
8156
8337
  size: 14
8157
8338
  }) })
@@ -8166,12 +8347,12 @@ function Signature(props) {
8166
8347
  if (!signatures?.length) return null;
8167
8348
  return /* @__PURE__ */ jsx(CodePopover, {
8168
8349
  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",
8350
+ className: "flex w-fit cursor-pointer items-center gap-1 rounded-lg border border-border bg-background px-2 py-1",
8170
8351
  children: [
8171
8352
  /* @__PURE__ */ jsx(VerificationStatus, { signatures }),
8172
8353
  " ",
8173
8354
  /* @__PURE__ */ jsx(Icon, {
8174
- className: "text-gray-300 dark:text-slate-600",
8355
+ className: "text-foreground",
8175
8356
  name: "InfoSquare",
8176
8357
  size: 16
8177
8358
  })
@@ -8190,7 +8371,7 @@ function VerificationStatus(props) {
8190
8371
  const verifiedSignaturesCount = signatures.filter((signature) => signature.isVerified).length;
8191
8372
  const verificationStatusText = `${verifiedSignaturesCount}/${signatureCount} ${signatureCount === 1 ? "signature" : "signatures"} verified`;
8192
8373
  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"}`,
8374
+ className: twMerge(`text-xs`, verifiedSignaturesCount === 0 ? "text-destructive" : verifiedSignaturesCount === signatureCount ? "text-success" : "text-warning"),
8194
8375
  children: verificationStatusText
8195
8376
  });
8196
8377
  }
@@ -8207,7 +8388,7 @@ function Timestamp(props) {
8207
8388
  timestampUtcMs: timestamp
8208
8389
  } }),
8209
8390
  trigger: /* @__PURE__ */ jsxs("span", {
8210
- className: "cursor-pointer text-xs text-gray-900 dark:text-slate-50",
8391
+ className: "cursor-pointer text-xs text-foreground",
8211
8392
  children: ["committed at ", shortDate]
8212
8393
  })
8213
8394
  });
@@ -8216,7 +8397,7 @@ function Timestamp(props) {
8216
8397
  //#region src/connect/components/revision-history/revision/revision.tsx
8217
8398
  function _Revision(props) {
8218
8399
  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",
8400
+ className: "flex items-center justify-between rounded-xl border border-border bg-background px-4 py-2",
8220
8401
  children: [/* @__PURE__ */ jsxs("div", {
8221
8402
  className: "flex items-center gap-2",
8222
8403
  children: [
@@ -8241,16 +8422,16 @@ function Skip(props) {
8241
8422
  return /* @__PURE__ */ jsxs("article", {
8242
8423
  className: "grid grid-cols-[1fr,auto,1fr] items-center py-2",
8243
8424
  children: [
8244
- /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-gray-100 dark:bg-slate-700" }),
8425
+ /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-muted" }),
8245
8426
  /* @__PURE__ */ jsxs("div", {
8246
- className: "mx-3 text-xs text-gray-100 dark:text-slate-800",
8427
+ className: "mx-3 text-xs text-foreground",
8247
8428
  children: [
8248
8429
  "[Skipped Revision ",
8249
8430
  skippedRevisions,
8250
8431
  "]"
8251
8432
  ]
8252
8433
  }),
8253
- /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-gray-100 dark:bg-slate-700" })
8434
+ /* @__PURE__ */ jsx("div", { className: "h-px rounded-full bg-muted" })
8254
8435
  ]
8255
8436
  });
8256
8437
  }
@@ -8313,7 +8494,7 @@ function Day(props) {
8313
8494
  const { timestampUtcMs: timestamp } = props;
8314
8495
  const formattedDate = format(timestamp, "MMM dd, yyyy");
8315
8496
  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",
8497
+ className: "-ml-6 flex items-center gap-1 bg-background py-2 text-xs text-foreground",
8317
8498
  children: [
8318
8499
  /* @__PURE__ */ jsx(Icon, {
8319
8500
  name: "Ring",
@@ -8364,7 +8545,7 @@ function Timeline(props) {
8364
8545
  };
8365
8546
  }, []);
8366
8547
  return /* @__PURE__ */ jsx("div", {
8367
- className: "border-l border-gray-100 dark:border-none dark:bg-slate-800 dark:text-slate-100",
8548
+ className: "border-l border-border dark:border-none",
8368
8549
  ref: parentRef,
8369
8550
  style: {
8370
8551
  height: `${rowVirtualizer.getTotalSize()}px`,
@@ -8430,7 +8611,7 @@ function RevisionHistory(props) {
8430
8611
  })
8431
8612
  }) : /* @__PURE__ */ jsx("hr", { className: "h-12 border-none" });
8432
8613
  return /* @__PURE__ */ jsx(ConnectTooltipProvider, { children: /* @__PURE__ */ jsxs("div", {
8433
- className: "p-6 dark:bg-slate-800",
8614
+ className: "p-6",
8434
8615
  children: [
8435
8616
  /* @__PURE__ */ jsx(Header, {
8436
8617
  docId: documentId,
@@ -8444,7 +8625,7 @@ function RevisionHistory(props) {
8444
8625
  }),
8445
8626
  PaginationComponent,
8446
8627
  /* @__PURE__ */ jsx("div", {
8447
- className: "mt-4 flex justify-center rounded-md bg-gray-50 p-4 dark:bg-slate-800",
8628
+ className: "mt-4 flex justify-center rounded-md bg-background p-4",
8448
8629
  children: visibleOperations.length > 0 ? /* @__PURE__ */ jsx("div", {
8449
8630
  className: "grid grid-cols-[minmax(min-content,1018px)]",
8450
8631
  children: /* @__PURE__ */ jsx(Timeline, {
@@ -8453,7 +8634,7 @@ function RevisionHistory(props) {
8453
8634
  scope
8454
8635
  })
8455
8636
  }) : /* @__PURE__ */ jsx("h3", {
8456
- className: "my-40 text-gray-700 dark:text-slate-200",
8637
+ className: "my-40 text-foreground",
8457
8638
  children: "This document has no recorded operations yet."
8458
8639
  })
8459
8640
  }),
@@ -8469,7 +8650,7 @@ const FilterItem = (props) => {
8469
8650
  className: twMerge("flex h-full flex-row items-center justify-between gap-x-4 px-2", typeof className === "string" && className),
8470
8651
  ...containerProps,
8471
8652
  children: [item.icon, /* @__PURE__ */ jsx("div", {
8472
- className: "text-sm font-semibold text-gray-200 dark:text-slate-700",
8653
+ className: "text-sm font-semibold text-foreground",
8473
8654
  children: item.label
8474
8655
  })]
8475
8656
  });
@@ -8487,7 +8668,7 @@ const ConnectSearchBar = (props) => {
8487
8668
  className: "gap-x-1",
8488
8669
  item: selectedItemFilter
8489
8670
  }) : filterLabel && /* @__PURE__ */ jsx("div", {
8490
- className: "mr-2 text-sm font-semibold text-gray-200 dark:text-slate-700",
8671
+ className: "mr-2 text-sm font-semibold text-foreground",
8491
8672
  children: filterLabel
8492
8673
  });
8493
8674
  function handleChange(event) {
@@ -8497,11 +8678,11 @@ const ConnectSearchBar = (props) => {
8497
8678
  className: twMerge("flex items-center", className),
8498
8679
  children: [
8499
8680
  /* @__PURE__ */ jsx(Icon, {
8500
- className: "mr-3 text-gray-700 dark:text-slate-200",
8681
+ className: "mr-3 text-foreground",
8501
8682
  name: "Search"
8502
8683
  }),
8503
8684
  /* @__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"),
8685
+ 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
8686
  onChange: handleChange,
8506
8687
  placeholder,
8507
8688
  value
@@ -8514,9 +8695,9 @@ const ConnectSearchBar = (props) => {
8514
8695
  /* @__PURE__ */ jsx(Icon, { name: "ChevronDown" })
8515
8696
  ]
8516
8697
  }), /* @__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",
8698
+ className: "rounded-xl border border-border bg-background p-2",
8518
8699
  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",
8700
+ className: "h-10 cursor-pointer overflow-hidden rounded-lg hover:hover-effect",
8520
8701
  id: item.id,
8521
8702
  onSelect: () => onFilterSelect(item.id),
8522
8703
  children: item.content
@@ -8533,16 +8714,16 @@ const SidebarItem = function SidebarItem(props) {
8533
8714
  content: title,
8534
8715
  side: "right",
8535
8716
  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",
8717
+ className: "border-none bg-primary px-3 py-2 text-sm text-primary-foreground",
8537
8718
  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"),
8719
+ 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
8720
  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", {
8721
+ 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
8722
  className: "mx-auto py-4",
8542
8723
  children: icon || /* @__PURE__ */ jsx("div", {
8543
- className: "flex size-8 items-center justify-center rounded-lg bg-gray-900 dark:bg-slate-50",
8724
+ className: "flex size-8 items-center justify-center rounded-lg bg-primary",
8544
8725
  children: /* @__PURE__ */ jsx("span", {
8545
- className: "text-sm font-medium text-white dark:text-slate-900",
8726
+ className: "text-sm font-medium text-primary-foreground",
8546
8727
  children: title.slice(0, 1).toUpperCase()
8547
8728
  })
8548
8729
  })
@@ -8565,56 +8746,6 @@ const SidebarAddDriveItem = function SidebarAddDriveItem(props) {
8565
8746
  });
8566
8747
  };
8567
8748
  //#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
8749
  //#region assets/renown-short-dark.png
8619
8750
  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
8751
  //#endregion
@@ -8647,7 +8778,7 @@ const AccountPopoverLogin = ({ onLogin }) => {
8647
8778
  children: [/* @__PURE__ */ jsx("div", {
8648
8779
  className: "mb-4 flex justify-center",
8649
8780
  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",
8781
+ className: "flex h-5.5 w-20.75 items-center justify-center overflow-hidden text-foreground",
8651
8782
  children: /* @__PURE__ */ jsx(Icon, {
8652
8783
  name: "RenownLight",
8653
8784
  size: 83
@@ -8655,7 +8786,7 @@ const AccountPopoverLogin = ({ onLogin }) => {
8655
8786
  })
8656
8787
  }), /* @__PURE__ */ jsx("button", {
8657
8788
  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"),
8789
+ 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
8790
  type: "button",
8660
8791
  children: content
8661
8792
  })]
@@ -8672,7 +8803,7 @@ const SidebarLogin = ({ onLogin }) => {
8672
8803
  return /* @__PURE__ */ jsx(AccountPopover, {
8673
8804
  content,
8674
8805
  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"),
8806
+ 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
8807
  children: [/* @__PURE__ */ jsx("img", {
8677
8808
  width: 42,
8678
8809
  height: 42,
@@ -8706,7 +8837,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8706
8837
  }
8707
8838
  }, []);
8708
8839
  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",
8840
+ className: "flex flex-col divide-y divide-border text-foreground",
8710
8841
  children: [
8711
8842
  /* @__PURE__ */ jsxs("div", {
8712
8843
  className: "px-3 py-2",
@@ -8719,12 +8850,12 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8719
8850
  size: "small",
8720
8851
  color: "light",
8721
8852
  onClick: () => void copyToClipboard(address),
8722
- className: "w-full cursor-pointer bg-transparent p-0 active:opacity-70",
8853
+ className: "w-full cursor-pointer bg-transparent p-0 active:active-effect",
8723
8854
  type: "button",
8724
8855
  children: /* @__PURE__ */ jsxs("div", {
8725
8856
  className: "relative flex w-full items-center gap-1",
8726
8857
  children: [/* @__PURE__ */ jsxs("div", {
8727
- className: `flex items-center gap-1 transition-opacity duration-150 ${isCopied ? "opacity-0" : "opacity-100"}`,
8858
+ className: twMerge(`flex items-center gap-1 transition-opacity duration-150`, isCopied ? "opacity-0" : "opacity-100"),
8728
8859
  children: [/* @__PURE__ */ jsx("span", {
8729
8860
  className: "text-xs",
8730
8861
  children: shortAddress(address)
@@ -8734,7 +8865,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8734
8865
  size: 14
8735
8866
  })]
8736
8867
  }), /* @__PURE__ */ jsx("div", {
8737
- className: `absolute left-0 text-xs transition-opacity duration-150 ${isCopied ? "opacity-100" : "opacity-0"}`,
8868
+ className: twMerge(`absolute left-0 text-xs transition-opacity duration-150`, isCopied ? "opacity-100" : "opacity-0"),
8738
8869
  children: "Copied to clipboard!"
8739
8870
  })]
8740
8871
  })
@@ -8747,7 +8878,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8747
8878
  href: etherscanUrl,
8748
8879
  target: "_blank",
8749
8880
  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",
8881
+ className: "flex items-center gap-2 text-sm text-foreground hover:hover-effect",
8751
8882
  children: [/* @__PURE__ */ jsx(Icon, {
8752
8883
  name: "Ethscan",
8753
8884
  size: 14
@@ -8758,7 +8889,7 @@ const AccountPopoverUser = ({ address, onDisconnect, etherscanUrl, username = ""
8758
8889
  className: "px-3 py-2",
8759
8890
  children: /* @__PURE__ */ jsxs("button", {
8760
8891
  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"),
8892
+ 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
8893
  type: "button",
8763
8894
  children: [/* @__PURE__ */ jsx(Icon, {
8764
8895
  name: "Disconnect",
@@ -8794,7 +8925,7 @@ const SidebarUser = ({ address, ensName, avatarUrl, etherscanUrl, onDisconnect }
8794
8925
  const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin, onClickSettings, onDisconnect, onHomeClick, showDebug, onDebugClick, etherscanUrl = "", ...props }) => {
8795
8926
  return /* @__PURE__ */ jsxs(SidebarFooter, {
8796
8927
  ...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),
8928
+ className: twMerge("flex flex-col items-center gap-3 border-t border-sidebar-border px-2 py-4 dark:border-none", className),
8798
8929
  children: [
8799
8930
  onHomeClick && /* @__PURE__ */ jsx("button", {
8800
8931
  "aria-label": "Home",
@@ -8802,7 +8933,7 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8802
8933
  className: "cursor-pointer",
8803
8934
  onClick: onHomeClick,
8804
8935
  children: /* @__PURE__ */ jsx(Icon, {
8805
- className: "text-gray-700 dark:text-slate-200",
8936
+ className: "text-muted-foreground",
8806
8937
  name: "ConnectSmall",
8807
8938
  size: 24
8808
8939
  })
@@ -8814,7 +8945,7 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8814
8945
  className: "cursor-pointer",
8815
8946
  onClick: onDebugClick,
8816
8947
  children: /* @__PURE__ */ jsx(Icon, {
8817
- className: "text-gray-700 dark:text-slate-200",
8948
+ className: "text-foreground",
8818
8949
  name: "Tube"
8819
8950
  })
8820
8951
  }),
@@ -8834,15 +8965,14 @@ const ConnectSidebarFooter = ({ address, ensName, avatarUrl, className, onLogin,
8834
8965
  className: twMerge(onClickSettings ? "cursor-pointer" : "cursor-wait"),
8835
8966
  onClick: onClickSettings,
8836
8967
  children: [/* @__PURE__ */ jsx(Settings, {
8837
- className: "text-gray-700 dark:text-slate-200",
8968
+ className: "text-foreground",
8838
8969
  size: 24,
8839
8970
  strokeWidth: 2
8840
8971
  }), /* @__PURE__ */ jsx("span", {
8841
- className: "hidden text-sm/6 font-semibold text-gray-900 dark:text-slate-100",
8972
+ className: "hidden text-sm/6 font-semibold text-foreground",
8842
8973
  children: "Settings"
8843
8974
  })]
8844
- }),
8845
- /* @__PURE__ */ jsx(ThemeSwitch, {})
8975
+ })
8846
8976
  ]
8847
8977
  });
8848
8978
  };
@@ -8852,7 +8982,7 @@ const ConnectSidebarHeader = ({ className, children, ...props }) => {
8852
8982
  if (!children) return null;
8853
8983
  return /* @__PURE__ */ jsx(SidebarHeader, {
8854
8984
  ...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),
8985
+ className: twMerge("flex justify-center gap-4 border-b border-sidebar-border py-4 text-muted-foreground", className),
8856
8986
  children
8857
8987
  });
8858
8988
  };
@@ -8881,6 +9011,74 @@ const ConnectSidebar = ({ onClick, address, ensName, avatarUrl, headerContent, o
8881
9011
  });
8882
9012
  };
8883
9013
  //#endregion
9014
+ //#region src/connect/components/theme-switch.tsx
9015
+ const OPTIONS = [
9016
+ {
9017
+ value: "light",
9018
+ Icon: Sun,
9019
+ label: "Light"
9020
+ },
9021
+ {
9022
+ value: "dark",
9023
+ Icon: Moon,
9024
+ label: "Dark"
9025
+ },
9026
+ {
9027
+ value: "system",
9028
+ Icon: Monitor,
9029
+ label: "System"
9030
+ }
9031
+ ];
9032
+ function ThemeSwitch({ horizontal = false }) {
9033
+ const { theme, isSystem, setTheme } = useTheme();
9034
+ function select(val) {
9035
+ setTheme(val);
9036
+ }
9037
+ function isActive(value) {
9038
+ if (value === "system" && isSystem) return true;
9039
+ if (!isSystem && value === "dark" && theme === "dark") return true;
9040
+ if (!isSystem && value === "light" && theme === "light") return true;
9041
+ return false;
9042
+ }
9043
+ if (horizontal) return /* @__PURE__ */ jsx("div", {
9044
+ role: "radiogroup",
9045
+ "aria-label": "Theme",
9046
+ className: "flex h-9 items-center gap-x-0.5 pl-3",
9047
+ children: OPTIONS.map(({ value, Icon, label }) => /* @__PURE__ */ jsx("div", {
9048
+ role: "radio",
9049
+ "aria-checked": isActive(value),
9050
+ "aria-label": label,
9051
+ tabIndex: 0,
9052
+ onClick: () => select(value),
9053
+ onKeyDown: (e) => (e.key === "Enter" || e.key === " ") && select(value),
9054
+ 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"),
9055
+ children: /* @__PURE__ */ jsx(Icon, {
9056
+ size: 16,
9057
+ "aria-hidden": "true"
9058
+ })
9059
+ }, value))
9060
+ });
9061
+ return /* @__PURE__ */ jsx("div", {
9062
+ role: "radiogroup",
9063
+ "aria-label": "Theme",
9064
+ className: "flex w-fit flex-col items-center gap-4 rounded-xl",
9065
+ children: OPTIONS.map(({ value, Icon, label }) => /* @__PURE__ */ jsx("div", {
9066
+ role: "radio",
9067
+ "aria-checked": isActive(value),
9068
+ "aria-label": label,
9069
+ tabIndex: 0,
9070
+ onClick: () => select(value),
9071
+ onKeyDown: (e) => (e.key === "Enter" || e.key === " ") && select(value),
9072
+ className: twMerge("flex size-fit cursor-pointer content-center items-center transition-colors", isActive(value) ? "text-foreground" : "text-muted-foreground"),
9073
+ children: /* @__PURE__ */ jsx(Icon, {
9074
+ size: 24,
9075
+ strokeWidth: 2,
9076
+ "aria-hidden": "true"
9077
+ })
9078
+ }, value))
9079
+ });
9080
+ }
9081
+ //#endregion
8884
9082
  //#region src/connect/utils/get-folder-status.ts
8885
9083
  /**
8886
9084
  * Retrieves the sync status of a folder based on its path and their children files.
@@ -8927,6 +9125,6 @@ const removeSuccessFiles = (files) => {
8927
9125
  return files.filter((file) => file.status !== "SUCCESS");
8928
9126
  };
8929
9127
  //#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 };
9128
+ 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, WorkerInspector, debugNodeOptions, debugNodeOptionsMap, defaultDriveOptions, defaultNodeOptions, fileNodeDropdownOptions, folderNodeDropdownOptions, formatEthAddress, getFolderStatus, locationInfoByLocation, nodeOptions, normalNodeOptions, removeSuccessFiles, sharingTypeOptions, sortFilesByStatus, syncStatuses, useEns, verifyPackageJsonFields };
8931
9129
 
8932
9130
  //# sourceMappingURL=index.js.map