@toolr/ui-design 0.1.3 → 0.1.4

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 (44) hide show
  1. package/README.md +0 -7
  2. package/components/content/info-panel-primitives.tsx +3 -3
  3. package/components/lib/ai-tools.tsx +1 -1
  4. package/components/lib/theme-engine.ts +10 -0
  5. package/components/sections/captured-issues/captured-issues-panel.tsx +1 -1
  6. package/components/sections/golden-snapshots/file-diff-viewer.tsx +2 -2
  7. package/components/sections/golden-snapshots/snapshot-manager.tsx +3 -3
  8. package/components/sections/golden-snapshots/status-overview.tsx +4 -4
  9. package/components/sections/golden-snapshots/version-manager.tsx +3 -3
  10. package/components/sections/report-bug/screenshot-uploader.tsx +2 -2
  11. package/components/sections/snapshot-browser/snapshot-tree.tsx +1 -1
  12. package/components/sections/snippets-editor/snippets-editor.tsx +5 -5
  13. package/components/ui/action-dialog.tsx +1 -1
  14. package/components/ui/badge.tsx +4 -4
  15. package/components/ui/breadcrumb.tsx +1 -1
  16. package/components/ui/file-structure-section.tsx +4 -4
  17. package/components/ui/files-panel.tsx +5 -5
  18. package/components/ui/filter-dropdown.tsx +2 -2
  19. package/components/ui/frontmatter-form-header.tsx +2 -2
  20. package/components/ui/input.tsx +1 -1
  21. package/components/ui/label.tsx +4 -4
  22. package/components/ui/modal.tsx +1 -1
  23. package/components/ui/nav-card.tsx +1 -1
  24. package/components/ui/navigation-bar.tsx +1 -1
  25. package/components/ui/number-input.tsx +1 -1
  26. package/components/ui/registry-card.tsx +7 -7
  27. package/components/ui/registry-detail.tsx +2 -2
  28. package/components/ui/segmented-toggle.tsx +2 -2
  29. package/components/ui/select.tsx +2 -2
  30. package/components/ui/selection-grid.tsx +7 -19
  31. package/components/ui/snapshot-card.tsx +2 -2
  32. package/components/ui/snippets-panel.tsx +9 -9
  33. package/components/ui/tab-bar.tsx +1 -1
  34. package/dist/content.js +3 -3
  35. package/dist/index.d.ts +10 -0
  36. package/dist/index.js +78 -80
  37. package/dist/tokens/primitives.css +10 -0
  38. package/dist/tokens/semantic.css +3 -0
  39. package/package.json +1 -7
  40. package/tokens/primitives.css +10 -0
  41. package/tokens/semantic.css +3 -0
  42. package/dist/preset.d.ts +0 -24
  43. package/dist/preset.js +0 -17
  44. package/tailwind-preset.ts +0 -22
package/dist/index.js CHANGED
@@ -166,7 +166,7 @@ function AiToolIcon({ tool, size, showName, className, style }) {
166
166
  if (!showName) return img;
167
167
  return /* @__PURE__ */ jsxs2("span", { style: { display: "inline-flex", flexDirection: "column", alignItems: "center", gap: 4 }, children: [
168
168
  img,
169
- /* @__PURE__ */ jsx2("span", { className: "text-[11px] text-neutral-400", children: AI_TOOL_NAMES[tool] ?? tool })
169
+ /* @__PURE__ */ jsx2("span", { className: "text-xss text-neutral-400", children: AI_TOOL_NAMES[tool] ?? tool })
170
170
  ] });
171
171
  }
172
172
 
@@ -798,10 +798,10 @@ var progressFillColors = {
798
798
  sky: "bg-sky-500/20"
799
799
  };
800
800
  var sizeConfig = {
801
- xss: { height: 14, padding: "px-1", text: "text-[9px]", iconSize: "w-2 h-2", gap: "gap-0.5" },
802
- xs: { height: 16, padding: "px-1.5", text: "text-[10px]", iconSize: "w-2.5 h-2.5", gap: "gap-1" },
803
- sm: { height: 18, padding: "px-1.5", text: "text-[10px]", iconSize: "w-2.5 h-2.5", gap: "gap-1.5" },
804
- md: { height: 20, padding: "px-1.5", text: "text-[11px]", iconSize: "w-3 h-3", gap: "gap-1" },
801
+ xss: { height: 14, padding: "px-1", text: "text-xss", iconSize: "w-2 h-2", gap: "gap-0.5" },
802
+ xs: { height: 16, padding: "px-1.5", text: "text-xss", iconSize: "w-2.5 h-2.5", gap: "gap-1" },
803
+ sm: { height: 18, padding: "px-1.5", text: "text-xss", iconSize: "w-2.5 h-2.5", gap: "gap-1.5" },
804
+ md: { height: 20, padding: "px-1.5", text: "text-xss", iconSize: "w-3 h-3", gap: "gap-1" },
805
805
  lg: { height: 22, padding: "px-2", text: "text-xs", iconSize: "w-3 h-3", gap: "gap-1" }
806
806
  };
807
807
  function smartCapitalize(value) {
@@ -906,10 +906,10 @@ var colorClasses3 = {
906
906
  teal: "border-teal-500/30 text-teal-400"
907
907
  };
908
908
  var sizeClasses2 = {
909
- xss: "min-w-[14px] h-[14px] px-0.5 text-[9px]",
910
- xs: "min-w-[16px] h-[16px] px-1 text-[10px]",
911
- sm: "min-w-[18px] h-[18px] px-1 text-[10px]",
912
- md: "min-w-[20px] h-[20px] px-1.5 text-[11px]",
909
+ xss: "min-w-[14px] h-[14px] px-0.5 text-xss",
910
+ xs: "min-w-[16px] h-[16px] px-1 text-xss",
911
+ sm: "min-w-[18px] h-[18px] px-1 text-xss",
912
+ md: "min-w-[20px] h-[20px] px-1.5 text-xss",
913
913
  lg: "min-w-[22px] h-[22px] px-1.5 text-xs"
914
914
  };
915
915
  function Badge({
@@ -1160,7 +1160,7 @@ import { forwardRef, useEffect as useEffect2, useRef as useRef2, useState as use
1160
1160
  import { Search as Search2, X as X2, Eye as Eye2, EyeOff as EyeOff2 } from "lucide-react";
1161
1161
  import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
1162
1162
  var sizeClasses4 = {
1163
- xss: "px-1 py-0.5 text-[10px]",
1163
+ xss: "px-1 py-0.5 text-xss",
1164
1164
  xs: "px-1.5 py-0.5 text-xs",
1165
1165
  sm: "px-2 py-1 text-xs",
1166
1166
  md: "px-3 py-1.5 text-sm",
@@ -1332,7 +1332,7 @@ import { useState as useState3, useRef as useRef3, useCallback } from "react";
1332
1332
  import { ChevronUp as ChevronUp2, ChevronDown as ChevronDown2 } from "lucide-react";
1333
1333
  import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
1334
1334
  var SIZE_CONFIG = {
1335
- xss: { wrapper: "h-[18px]", input: "px-1 text-[10px]", chevron: "w-2.5 h-2.5", stepperW: "w-4" },
1335
+ xss: { wrapper: "h-[18px]", input: "px-1 text-xss", chevron: "w-2.5 h-2.5", stepperW: "w-4" },
1336
1336
  xs: { wrapper: "h-6", input: "px-1.5 text-xs", chevron: "w-2.5 h-2.5", stepperW: "w-5" },
1337
1337
  sm: { wrapper: "h-7", input: "px-2 text-xs", chevron: "w-3 h-3", stepperW: "w-5" },
1338
1338
  md: { wrapper: "h-8", input: "px-3 text-sm", chevron: "w-3 h-3", stepperW: "w-6" },
@@ -1546,8 +1546,8 @@ var ICON_SIZE_CLASSES = {
1546
1546
  lg: "w-9 h-9"
1547
1547
  };
1548
1548
  var TEXT_SIZE_CLASSES = {
1549
- xss: "h-[18px] px-1.5 text-[9px]",
1550
- xs: "h-6 px-2 text-[10px]",
1549
+ xss: "h-[18px] px-1.5 text-xss",
1550
+ xs: "h-6 px-2 text-xss",
1551
1551
  sm: "h-7 px-2.5 text-xs",
1552
1552
  md: "h-8 px-3 text-xs",
1553
1553
  lg: "h-9 px-3.5 text-sm"
@@ -1904,7 +1904,7 @@ var VARIANT_CLASSES2 = {
1904
1904
  outline: { bg: "bg-transparent", hoverBg: "hover:bg-neutral-700", menuBg: "bg-[var(--popover)]" }
1905
1905
  };
1906
1906
  var SIZE_CLASSES = {
1907
- xss: "h-[18px] px-1.5 text-[10px]",
1907
+ xss: "h-[18px] px-1.5 text-xss",
1908
1908
  xs: "h-6 px-2 text-xs",
1909
1909
  sm: "h-7 px-2 text-xs",
1910
1910
  md: "h-8 px-3 text-sm",
@@ -2020,7 +2020,7 @@ function Select({
2020
2020
  close();
2021
2021
  },
2022
2022
  onPointerEnter: () => setHighlightIdx(idx),
2023
- className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${isHighlighted ? "bg-neutral-600 text-neutral-200" : isSelected ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2023
+ className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${isHighlighted ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : isSelected ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2024
2024
  children: [
2025
2025
  /* @__PURE__ */ jsx15(Check4, { className: `w-3 h-3 shrink-0 ${isSelected ? FORM_COLORS[color].accent : "invisible"}` }),
2026
2026
  opt.icon,
@@ -2169,7 +2169,7 @@ function FilterDropdown({
2169
2169
  {
2170
2170
  "data-idx": 0,
2171
2171
  onClick: () => handleSelect("all"),
2172
- className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${highlightIdx === 0 ? "bg-neutral-600 text-neutral-200" : !isActive ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2172
+ className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${highlightIdx === 0 ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : !isActive ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2173
2173
  children: [
2174
2174
  /* @__PURE__ */ jsx16(Check5, { className: `w-3 h-3 shrink-0 ${!isActive ? FORM_COLORS[color].accent : "invisible"}` }),
2175
2175
  /* @__PURE__ */ jsx16("span", { children: "All" })
@@ -2185,7 +2185,7 @@ function FilterDropdown({
2185
2185
  {
2186
2186
  "data-idx": idx,
2187
2187
  onClick: () => handleSelect(opt.value),
2188
- className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${isHighlighted ? "bg-neutral-600 text-neutral-200" : isSelected ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2188
+ className: `w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors cursor-pointer ${isHighlighted ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : isSelected ? `${FORM_COLORS[color].selectedBg} text-neutral-200` : `text-neutral-400 ${v.hoverBg}`}`,
2189
2189
  children: [
2190
2190
  /* @__PURE__ */ jsx16(Check5, { className: `w-3 h-3 shrink-0 ${isSelected ? FORM_COLORS[color].accent : "invisible"}` }),
2191
2191
  /* @__PURE__ */ jsx16("span", { children: opt.label })
@@ -2416,7 +2416,7 @@ function Modal({ isOpen, onClose, title, children, kind = "info", size = "md", h
2416
2416
  if (!isOpen) return null;
2417
2417
  return createPortal3(
2418
2418
  /* @__PURE__ */ jsxs14("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
2419
- /* @__PURE__ */ jsx19("div", { className: "absolute inset-0 bg-black/60 backdrop-blur-sm", onClick: onClose }),
2419
+ /* @__PURE__ */ jsx19("div", { className: "absolute inset-0 bg-[var(--dialog-backdrop)] backdrop-blur-sm", onClick: onClose }),
2420
2420
  /* @__PURE__ */ jsxs14(
2421
2421
  "div",
2422
2422
  {
@@ -2798,11 +2798,10 @@ function GridCard({ item, selected, onClick }) {
2798
2798
  disabled: item.disabled,
2799
2799
  className: cn(
2800
2800
  "relative p-3 rounded-lg text-center transition-all border-2 flex flex-col items-center",
2801
- item.disabled ? "opacity-30 cursor-not-allowed border-neutral-800 bg-black" : selected ? "cursor-pointer" : "bg-neutral-800/50 border-neutral-700 hover:bg-neutral-800 hover:border-neutral-600 cursor-pointer"
2801
+ item.disabled ? "opacity-30 cursor-not-allowed border-neutral-800 bg-[var(--background)]" : selected ? "cursor-pointer" : "bg-neutral-800/50 border-neutral-700 hover:bg-[var(--surface-hover)] hover:border-neutral-600 cursor-pointer"
2802
2802
  ),
2803
- style: selected && !item.disabled ? { borderColor: color, backgroundColor: `${color}15` } : void 0,
2803
+ style: selected && !item.disabled ? { borderColor: color } : void 0,
2804
2804
  children: [
2805
- selected && !item.disabled && /* @__PURE__ */ jsx20("span", { className: "absolute top-1 right-1", children: /* @__PURE__ */ jsx20(ConfirmBadge, { color: item.badgeColor || "blue", size: "xs" }) }),
2806
2805
  Icon && /* @__PURE__ */ jsx20(
2807
2806
  Icon,
2808
2807
  {
@@ -2827,11 +2826,10 @@ function ListCard({ item, selected, onClick }) {
2827
2826
  disabled: item.disabled,
2828
2827
  className: cn(
2829
2828
  "relative p-3 rounded-lg transition-all border-2 flex items-center gap-3 text-left",
2830
- item.disabled ? "opacity-30 cursor-not-allowed border-neutral-800 bg-black" : selected ? "cursor-pointer" : "bg-neutral-800/50 border-neutral-700 hover:bg-neutral-800 hover:border-neutral-600 cursor-pointer"
2829
+ item.disabled ? "opacity-30 cursor-not-allowed border-neutral-800 bg-[var(--background)]" : selected ? "cursor-pointer" : "bg-neutral-800/50 border-neutral-700 hover:bg-[var(--surface-hover)] hover:border-neutral-600 cursor-pointer"
2831
2830
  ),
2832
- style: selected && !item.disabled ? { borderColor: color, backgroundColor: `${color}15` } : void 0,
2831
+ style: selected && !item.disabled ? { borderColor: color } : void 0,
2833
2832
  children: [
2834
- selected && !item.disabled && /* @__PURE__ */ jsx20("span", { className: "absolute top-1 right-1", children: /* @__PURE__ */ jsx20(ConfirmBadge, { color: item.badgeColor || "blue", size: "xs" }) }),
2835
2833
  Icon && /* @__PURE__ */ jsx20(
2836
2834
  Icon,
2837
2835
  {
@@ -3036,7 +3034,7 @@ function ActionDialog({
3036
3034
  }
3037
3035
  return createPortal4(
3038
3036
  /* @__PURE__ */ jsxs17("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
3039
- /* @__PURE__ */ jsx22("div", { className: "absolute inset-0 bg-black/60 backdrop-blur-sm", onClick: onCancel }),
3037
+ /* @__PURE__ */ jsx22("div", { className: "absolute inset-0 bg-[var(--dialog-backdrop)] backdrop-blur-sm", onClick: onCancel }),
3040
3038
  /* @__PURE__ */ jsxs17(
3041
3039
  "div",
3042
3040
  {
@@ -3494,8 +3492,8 @@ function FrontmatterFormHeader({
3494
3492
  }
3495
3493
  ),
3496
3494
  /* @__PURE__ */ jsx26("span", { className: "text-xs font-medium text-neutral-400 uppercase tracking-wide", children: "Configuration" }),
3497
- collapsed && hasFm && /* @__PURE__ */ jsx26("span", { className: "text-[11px] text-neutral-500 font-mono ml-2 truncate", children: renderSummary() }),
3498
- collapsed && !hasFm && /* @__PURE__ */ jsx26("span", { className: "text-[11px] text-neutral-600 ml-2", children: "No frontmatter" })
3495
+ collapsed && hasFm && /* @__PURE__ */ jsx26("span", { className: "text-xss text-neutral-500 font-mono ml-2 truncate", children: renderSummary() }),
3496
+ collapsed && !hasFm && /* @__PURE__ */ jsx26("span", { className: "text-xss text-neutral-600 ml-2", children: "No frontmatter" })
3499
3497
  ]
3500
3498
  }
3501
3499
  ),
@@ -3961,7 +3959,7 @@ function RegistryCard(props) {
3961
3959
  if (!count || count <= 0) return [];
3962
3960
  return [/* @__PURE__ */ jsx29(Tooltip, { content: { description: `${count} ${count === 1 ? label : labelPlural}` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-0.5", children: [
3963
3961
  /* @__PURE__ */ jsx29(Icon, { className: `w-3 h-3 ${color}` }),
3964
- /* @__PURE__ */ jsx29("span", { className: "text-[10px] text-neutral-500", children: count })
3962
+ /* @__PURE__ */ jsx29("span", { className: "text-xss text-neutral-500", children: count })
3965
3963
  ] }) }, `pkg-${key}`)];
3966
3964
  });
3967
3965
  }
@@ -4013,11 +4011,11 @@ function RegistryCard(props) {
4013
4011
  const compatibleTools = props.compatibleTools ?? [];
4014
4012
  bottomLogos = compatibleTools.map((tool) => /* @__PURE__ */ jsx29(Tooltip, { content: { description: `Compatible with ${AI_TOOL_NAMES[tool] ?? tool}` }, position: "top", children: /* @__PURE__ */ jsx29(AiToolIcon, { tool, size: 16 }) }, tool));
4015
4013
  bottomStats = [
4016
- ...props.stars != null && props.stars > 0 ? [/* @__PURE__ */ jsx29(CardClickable, { onClick: () => props.onSortBy?.("stars"), children: /* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.stars.toLocaleString()} stars \xB7 Click to sort` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-[10px] text-amber-400/80", children: [
4014
+ ...props.stars != null && props.stars > 0 ? [/* @__PURE__ */ jsx29(CardClickable, { onClick: () => props.onSortBy?.("stars"), children: /* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.stars.toLocaleString()} stars \xB7 Click to sort` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-xss text-amber-400/80", children: [
4017
4015
  /* @__PURE__ */ jsx29(Star4, { className: "w-3 h-3" }),
4018
4016
  formatCount(props.stars)
4019
4017
  ] }) }) }, "stars")] : [],
4020
- ...props.downloads != null && props.downloads > 0 ? [/* @__PURE__ */ jsx29(CardClickable, { onClick: () => props.onSortBy?.("downloads"), children: /* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.downloads.toLocaleString()} downloads \xB7 Click to sort` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-[10px] text-emerald-400/80", children: [
4018
+ ...props.downloads != null && props.downloads > 0 ? [/* @__PURE__ */ jsx29(CardClickable, { onClick: () => props.onSortBy?.("downloads"), children: /* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.downloads.toLocaleString()} downloads \xB7 Click to sort` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-xss text-emerald-400/80", children: [
4021
4019
  /* @__PURE__ */ jsx29(Download3, { className: "w-3 h-3" }),
4022
4020
  formatCount(props.downloads)
4023
4021
  ] }) }) }, "downloads")] : []
@@ -4110,7 +4108,7 @@ function RegistryCard(props) {
4110
4108
  const allTools = props.allToolKeys ?? [];
4111
4109
  bottomLogos = allTools.map((tool) => /* @__PURE__ */ jsx29(Tooltip, { content: { description: `Compatible with ${AI_TOOL_NAMES[tool] ?? tool}` }, position: "top", children: /* @__PURE__ */ jsx29(AiToolIcon, { tool, size: 14 }) }, tool));
4112
4110
  if (props.installs != null && props.installs > 0) {
4113
- bottomStats = [/* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.installs.toLocaleString()} installs` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-[10px] text-neutral-500", children: [
4111
+ bottomStats = [/* @__PURE__ */ jsx29(Tooltip, { content: { description: `${props.installs.toLocaleString()} installs` }, position: "top", children: /* @__PURE__ */ jsxs24("span", { className: "flex items-center gap-1 text-xss text-neutral-500", children: [
4114
4112
  /* @__PURE__ */ jsx29(Download3, { className: "w-3 h-3" }),
4115
4113
  props.installs.toLocaleString()
4116
4114
  ] }) }, "installs")];
@@ -4141,12 +4139,12 @@ function RegistryCard(props) {
4141
4139
  /* @__PURE__ */ jsx29("h3", { className: "text-sm font-medium text-white", children: name }),
4142
4140
  subtitle && /* @__PURE__ */ jsx29("div", { className: "text-xs text-neutral-400 mb-1.5", children: subtitle }),
4143
4141
  description && /* @__PURE__ */ jsx29("p", { className: "text-xs text-neutral-500 mb-3 flex-grow line-clamp-2", children: description }),
4144
- errorMessage && /* @__PURE__ */ jsx29("p", { className: `text-[11px] mb-2 break-all ${flash === "warning" ? "text-amber-400" : "text-red-400"}`, children: errorMessage }),
4142
+ errorMessage && /* @__PURE__ */ jsx29("p", { className: `text-xss mb-2 break-all ${flash === "warning" ? "text-amber-400" : "text-red-400"}`, children: errorMessage }),
4145
4143
  (bottomLogos.length > 0 || bottomStats.length > 0 || updatedAt) && (() => {
4146
4144
  const dateNode = updatedAt ? /* @__PURE__ */ jsx29(Tooltip, { content: { description: onDateClick ? `Last updated ${formatFullDate(updatedAt)} \xB7 Click to sort by date` : `Last updated ${formatFullDate(updatedAt)}` }, position: "top", children: /* @__PURE__ */ jsxs24(
4147
4145
  "span",
4148
4146
  {
4149
- className: `flex items-center gap-1 text-[10px] text-neutral-500 whitespace-nowrap${onDateClick ? " cursor-pointer hover:brightness-125 transition-all" : ""}`,
4147
+ className: `flex items-center gap-1 text-xss text-neutral-500 whitespace-nowrap${onDateClick ? " cursor-pointer hover:brightness-125 transition-all" : ""}`,
4150
4148
  onClick: onDateClick ? (e) => {
4151
4149
  e.stopPropagation();
4152
4150
  onDateClick();
@@ -4168,7 +4166,7 @@ function RegistryCard(props) {
4168
4166
  if ("renderScopeConfirm" in props && props.renderScopeConfirm) {
4169
4167
  return /* @__PURE__ */ jsx29("div", { onClick: (e) => e.stopPropagation(), children: props.renderScopeConfirm({ isOpen: true, onClose: () => setShowScopeConfirm(false), onConfirm: props.onInstall, name }) });
4170
4168
  }
4171
- return /* @__PURE__ */ jsx29("div", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx29("div", { className: "fixed inset-0 bg-black/50 z-50 flex items-center justify-center", onClick: () => setShowScopeConfirm(false), children: /* @__PURE__ */ jsxs24("div", { className: "bg-neutral-800 border border-neutral-700 rounded-lg p-4 max-w-sm", onClick: (e) => e.stopPropagation(), children: [
4169
+ return /* @__PURE__ */ jsx29("div", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx29("div", { className: "fixed inset-0 bg-[var(--background)]/50 z-50 flex items-center justify-center", onClick: () => setShowScopeConfirm(false), children: /* @__PURE__ */ jsxs24("div", { className: "bg-neutral-800 border border-neutral-700 rounded-lg p-4 max-w-sm", onClick: (e) => e.stopPropagation(), children: [
4172
4170
  /* @__PURE__ */ jsx29("h3", { className: "text-sm font-medium text-neutral-200 mb-2", children: ALREADY_AT_USER }),
4173
4171
  /* @__PURE__ */ jsxs24("p", { className: "text-xs text-neutral-400 mb-4", children: [
4174
4172
  /* @__PURE__ */ jsx29("strong", { className: "text-neutral-300", children: name }),
@@ -4303,7 +4301,7 @@ function renderMarkdownContent(content) {
4303
4301
  }
4304
4302
  i++;
4305
4303
  nodes.push(
4306
- /* @__PURE__ */ jsxs25("div", { className: "mb-3 font-mono text-[11px] text-neutral-500 border-l-2 border-neutral-700 pl-2 py-0.5", children: [
4304
+ /* @__PURE__ */ jsxs25("div", { className: "mb-3 font-mono text-xss text-neutral-500 border-l-2 border-neutral-700 pl-2 py-0.5", children: [
4307
4305
  /* @__PURE__ */ jsx30("div", { className: "text-neutral-600", children: "---" }),
4308
4306
  fmLines.map((l, j) => /* @__PURE__ */ jsx30("div", { children: l }, j)),
4309
4307
  /* @__PURE__ */ jsx30("div", { className: "text-neutral-600", children: "---" })
@@ -4320,10 +4318,10 @@ function renderMarkdownContent(content) {
4320
4318
  i++;
4321
4319
  }
4322
4320
  nodes.push(
4323
- /* @__PURE__ */ jsx30("pre", { className: "mb-2 p-2 bg-black/30 rounded text-[11px] font-mono text-neutral-300 overflow-x-auto", children: codeLines.join("\n") }, i)
4321
+ /* @__PURE__ */ jsx30("pre", { className: "mb-2 p-2 bg-[var(--background)]/30 rounded text-xss font-mono text-neutral-300 overflow-x-auto", children: codeLines.join("\n") }, i)
4324
4322
  );
4325
4323
  } else if (line.startsWith("### ")) {
4326
- nodes.push(/* @__PURE__ */ jsx30("h3", { className: "text-[11px] font-semibold text-neutral-300 mt-2 mb-0.5", children: line.slice(4) }, i));
4324
+ nodes.push(/* @__PURE__ */ jsx30("h3", { className: "text-xss font-semibold text-neutral-300 mt-2 mb-0.5", children: line.slice(4) }, i));
4327
4325
  } else if (line.startsWith("## ")) {
4328
4326
  nodes.push(/* @__PURE__ */ jsx30("h2", { className: "text-xs font-semibold text-neutral-200 mt-2.5 mb-1", children: line.slice(3) }, i));
4329
4327
  } else if (line.startsWith("# ")) {
@@ -4331,7 +4329,7 @@ function renderMarkdownContent(content) {
4331
4329
  } else if (line === "" || line === "\r") {
4332
4330
  nodes.push(/* @__PURE__ */ jsx30("div", { className: "h-1.5" }, i));
4333
4331
  } else {
4334
- nodes.push(/* @__PURE__ */ jsx30("p", { className: "text-[11px] text-neutral-400 leading-relaxed", children: line }, i));
4332
+ nodes.push(/* @__PURE__ */ jsx30("p", { className: "text-xss text-neutral-400 leading-relaxed", children: line }, i));
4335
4333
  }
4336
4334
  i++;
4337
4335
  }
@@ -4647,7 +4645,7 @@ function CompatibleWithSection({ tools }) {
4647
4645
  /* @__PURE__ */ jsx31("h3", { className: "text-xs font-medium text-neutral-500 uppercase tracking-wider mb-3", children: "Compatible with" }),
4648
4646
  /* @__PURE__ */ jsx31("div", { className: "flex items-start gap-3", children: tools.map((tool) => /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center gap-1", children: [
4649
4647
  /* @__PURE__ */ jsx31(AiToolIcon, { tool, size: 18 }),
4650
- /* @__PURE__ */ jsx31("span", { className: "text-[10px] text-neutral-400", children: AI_TOOL_NAMES[tool] ?? tool })
4648
+ /* @__PURE__ */ jsx31("span", { className: "text-xss text-neutral-400", children: AI_TOOL_NAMES[tool] ?? tool })
4651
4649
  ] }, tool)) })
4652
4650
  ] });
4653
4651
  }
@@ -4677,7 +4675,7 @@ function RegistryDetail({
4677
4675
  /* @__PURE__ */ jsxs26("div", { className: "min-w-0", children: [
4678
4676
  /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3 flex-wrap", children: [
4679
4677
  /* @__PURE__ */ jsx31(Icon, { className: `w-6 h-6 shrink-0 ${iconColor}` }),
4680
- /* @__PURE__ */ jsx31("h2", { className: "text-xl font-semibold text-neutral-200", children: title }),
4678
+ /* @__PURE__ */ jsx31("h2", { className: "text-lg font-semibold text-neutral-200", children: title }),
4681
4679
  labels && labels.length > 0 && labels.map((labelProps, i) => /* @__PURE__ */ jsx31(Label, { size: "lg", ...labelProps }, i)),
4682
4680
  titleExtra
4683
4681
  ] }),
@@ -5209,7 +5207,7 @@ function ScreenshotUploader({
5209
5207
  className: "w-full h-full object-cover"
5210
5208
  }
5211
5209
  ),
5212
- /* @__PURE__ */ jsxs29("div", { className: "absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity flex flex-col justify-between p-2", children: [
5210
+ /* @__PURE__ */ jsxs29("div", { className: "absolute inset-0 bg-[var(--background)]/60 opacity-0 group-hover:opacity-100 transition-opacity flex flex-col justify-between p-2", children: [
5213
5211
  /* @__PURE__ */ jsx35(
5214
5212
  "button",
5215
5213
  {
@@ -5225,7 +5223,7 @@ function ScreenshotUploader({
5225
5223
  ),
5226
5224
  /* @__PURE__ */ jsx35("span", { className: "text-xs text-white truncate", children: s.filename })
5227
5225
  ] }),
5228
- /* @__PURE__ */ jsx35("div", { className: "absolute bottom-1 right-1 px-1.5 py-0.5 bg-black/70 rounded text-xs text-neutral-400", children: formatFileSize(s.size) })
5226
+ /* @__PURE__ */ jsx35("div", { className: "absolute bottom-1 right-1 px-1.5 py-0.5 bg-[var(--background)]/70 rounded text-xs text-neutral-400", children: formatFileSize(s.size) })
5229
5227
  ]
5230
5228
  },
5231
5229
  s.id
@@ -6280,7 +6278,7 @@ function StatusOverview({
6280
6278
  /* @__PURE__ */ jsxs31("div", { className: "bg-neutral-900 rounded-lg p-4 border border-amber-500/30", children: [
6281
6279
  /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-3 mb-3", children: [
6282
6280
  /* @__PURE__ */ jsx37(Archive, { className: "w-5 h-5 text-amber-400" }),
6283
- /* @__PURE__ */ jsx37("h3", { className: "text-neutral-300 font-medium", children: "Bundled Seed (App Distribution)" }),
6281
+ /* @__PURE__ */ jsx37("h3", { className: "text-sm text-neutral-300 font-medium", children: "Bundled Seed (App Distribution)" }),
6284
6282
  status?.seed.meta && renderVersionBadge(status.seed.meta, "bg-amber-500/20 text-amber-400")
6285
6283
  ] }),
6286
6284
  /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
@@ -6304,7 +6302,7 @@ function StatusOverview({
6304
6302
  /* @__PURE__ */ jsxs31("div", { className: "bg-neutral-900 rounded-lg p-4 border border-blue-500/30", children: [
6305
6303
  /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2 mb-3", children: [
6306
6304
  /* @__PURE__ */ jsx37("div", { className: "w-3 h-3 rounded-full bg-blue-400" }),
6307
- /* @__PURE__ */ jsx37("h4", { className: "text-neutral-300 font-medium", children: "Golden (Reference)" }),
6305
+ /* @__PURE__ */ jsx37("h4", { className: "text-sm text-neutral-300 font-medium", children: "Golden (Reference)" }),
6308
6306
  renderVersionBadge(status?.goldenMeta, "bg-blue-500/20 text-blue-400")
6309
6307
  ] }),
6310
6308
  /* @__PURE__ */ jsx37("div", { className: "space-y-2 text-sm", children: components.map((comp) => {
@@ -6329,7 +6327,7 @@ function StatusOverview({
6329
6327
  /* @__PURE__ */ jsxs31("div", { className: "bg-neutral-900 rounded-lg p-4 border border-green-500/30", children: [
6330
6328
  /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2 mb-3", children: [
6331
6329
  /* @__PURE__ */ jsx37("div", { className: "w-3 h-3 rounded-full bg-green-400" }),
6332
- /* @__PURE__ */ jsx37("h4", { className: "text-neutral-300 font-medium", children: "Live (Working Copy)" }),
6330
+ /* @__PURE__ */ jsx37("h4", { className: "text-sm text-neutral-300 font-medium", children: "Live (Working Copy)" }),
6333
6331
  renderVersionBadge(status?.liveMeta, "bg-green-500/20 text-green-400"),
6334
6332
  /* @__PURE__ */ jsxs31("div", { className: "ml-auto relative", ref: resetMenuRef, children: [
6335
6333
  /* @__PURE__ */ jsx37(
@@ -6453,7 +6451,7 @@ function StatusOverview({
6453
6451
  devtools && manifest && /* @__PURE__ */ jsxs31("div", { className: "bg-neutral-900 rounded-lg p-4 border border-neutral-700", children: [
6454
6452
  /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2 mb-3", children: [
6455
6453
  /* @__PURE__ */ jsx37(Archive, { className: "w-4 h-4 text-neutral-500" }),
6456
- /* @__PURE__ */ jsx37("h4", { className: "text-neutral-300 font-medium", children: "Local Snapshots" })
6454
+ /* @__PURE__ */ jsx37("h4", { className: "text-sm text-neutral-300 font-medium", children: "Local Snapshots" })
6457
6455
  ] }),
6458
6456
  /* @__PURE__ */ jsx37("div", { className: "flex gap-6 text-sm", children: /* @__PURE__ */ jsxs31("div", { children: [
6459
6457
  /* @__PURE__ */ jsx37("span", { className: "text-neutral-500", children: "Count: " }),
@@ -6519,7 +6517,7 @@ function DiffFileItem({ file, isSelected, onSelect, onReset, resettingFile, anyR
6519
6517
  children: [
6520
6518
  icon,
6521
6519
  /* @__PURE__ */ jsx38("span", { className: "truncate", children: filename }),
6522
- statusLabel && /* @__PURE__ */ jsx38("span", { className: `text-[10px] font-medium ml-auto flex-shrink-0 ${statusColor}`, children: statusLabel })
6520
+ statusLabel && /* @__PURE__ */ jsx38("span", { className: `text-xss font-medium ml-auto flex-shrink-0 ${statusColor}`, children: statusLabel })
6523
6521
  ]
6524
6522
  }
6525
6523
  ),
@@ -6567,7 +6565,7 @@ function DiffFileTreePanel({ sync, componentLabels, renderFileIcon }) {
6567
6565
  const displayLabel = isRoot ? componentLabels?.[label] ?? label.charAt(0).toUpperCase() + label.slice(1) : label;
6568
6566
  const headerClasses = isRoot ? `${color.text} ${color.hoverBg} border-l-2 ${color.border} ${color.bg} px-3 py-2 text-sm font-medium` : "text-neutral-500 hover:bg-neutral-850 px-3 py-1.5";
6569
6567
  const chevronSize = isRoot ? "w-4 h-4" : "w-3 h-3";
6570
- const countElement = isRoot ? /* @__PURE__ */ jsx38("span", { className: `ml-auto px-1.5 py-0.5 rounded-full text-[10px] font-medium ${color.pillBg} ${color.text}`, children: fileCount }) : /* @__PURE__ */ jsx38("span", { className: "text-neutral-600 ml-auto", children: fileCount });
6568
+ const countElement = isRoot ? /* @__PURE__ */ jsx38("span", { className: `ml-auto px-1.5 py-0.5 rounded-full text-xss font-medium ${color.pillBg} ${color.text}`, children: fileCount }) : /* @__PURE__ */ jsx38("span", { className: "text-neutral-600 ml-auto", children: fileCount });
6571
6569
  const containerLineClass = isRoot ? color.line : lineClass;
6572
6570
  return /* @__PURE__ */ jsxs32("div", { children: [
6573
6571
  /* @__PURE__ */ jsxs32(
@@ -6784,7 +6782,7 @@ function SnapshotManager({ sync }) {
6784
6782
  /* @__PURE__ */ jsxs33("div", { className: "bg-neutral-900 rounded-lg p-4 border border-neutral-700", children: [
6785
6783
  /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-3 mb-3", children: [
6786
6784
  /* @__PURE__ */ jsx39(Plus4, { className: "w-5 h-5 text-green-400" }),
6787
- /* @__PURE__ */ jsx39("h4", { className: "text-neutral-300 font-medium", children: "Create Snapshot" })
6785
+ /* @__PURE__ */ jsx39("h4", { className: "text-sm text-neutral-300 font-medium", children: "Create Snapshot" })
6788
6786
  ] }),
6789
6787
  /* @__PURE__ */ jsx39("p", { className: "text-xs text-neutral-600 mb-3", children: "Archives the current live state. If components differ from golden, their patch version is auto-bumped." }),
6790
6788
  /* @__PURE__ */ jsxs33("div", { className: "flex gap-2", children: [
@@ -6815,7 +6813,7 @@ function SnapshotManager({ sync }) {
6815
6813
  /* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between px-4 py-3 border-b border-neutral-700", children: [
6816
6814
  /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
6817
6815
  /* @__PURE__ */ jsx39(Archive2, { className: "w-4 h-4 text-neutral-500" }),
6818
- /* @__PURE__ */ jsx39("h4", { className: "text-neutral-300 font-medium", children: "Snapshots" }),
6816
+ /* @__PURE__ */ jsx39("h4", { className: "text-sm text-neutral-300 font-medium", children: "Snapshots" }),
6819
6817
  /* @__PURE__ */ jsxs33("span", { className: "text-xs text-neutral-500", children: [
6820
6818
  "(",
6821
6819
  manifest?.snapshots.length ?? 0,
@@ -6845,7 +6843,7 @@ function SnapshotManager({ sync }) {
6845
6843
  "v",
6846
6844
  snap.version
6847
6845
  ] }),
6848
- snap.version === manifest.activeVersion && /* @__PURE__ */ jsx39("span", { className: "px-1.5 py-0.5 bg-green-500/20 text-green-400 text-[10px] rounded font-medium", children: "active" }),
6846
+ snap.version === manifest.activeVersion && /* @__PURE__ */ jsx39("span", { className: "px-1.5 py-0.5 bg-green-500/20 text-green-400 text-xss rounded font-medium", children: "active" }),
6849
6847
  snap.pinned && /* @__PURE__ */ jsx39(Pin4, { className: "w-3 h-3 text-amber-400" }),
6850
6848
  snap.metaVersion && /* @__PURE__ */ jsx39("span", { className: "text-xs text-neutral-600 font-mono", children: snap.metaVersion })
6851
6849
  ] }),
@@ -6973,7 +6971,7 @@ function VersionManager({ sync, components, componentLabels }) {
6973
6971
  /* @__PURE__ */ jsxs34("div", { className: "bg-neutral-900 rounded-lg p-4 border border-teal-500/30", children: [
6974
6972
  /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-3 mb-3", children: [
6975
6973
  /* @__PURE__ */ jsx40(Tag4, { className: "w-5 h-5 text-teal-400" }),
6976
- /* @__PURE__ */ jsx40("h4", { className: "text-neutral-300 font-medium", children: "Golden Version" }),
6974
+ /* @__PURE__ */ jsx40("h4", { className: "text-sm text-neutral-300 font-medium", children: "Golden Version" }),
6977
6975
  status?.goldenMeta && /* @__PURE__ */ jsx40("span", { className: "px-2 py-0.5 bg-teal-500/20 text-teal-400 text-xs rounded font-mono", children: status.goldenMeta.version })
6978
6976
  ] }),
6979
6977
  /* @__PURE__ */ jsx40("p", { className: "text-xs text-neutral-600 mb-3", children: "Bump the overall golden version number. This updates the top-level version in meta.json." }),
@@ -7014,7 +7012,7 @@ function VersionManager({ sync, components, componentLabels }) {
7014
7012
  ] }),
7015
7013
  /* @__PURE__ */ jsxs34("div", { className: "bg-neutral-900 rounded-lg border border-neutral-700 overflow-hidden", children: [
7016
7014
  /* @__PURE__ */ jsxs34("div", { className: "px-4 py-3 border-b border-neutral-700", children: [
7017
- /* @__PURE__ */ jsx40("h4", { className: "text-neutral-300 font-medium", children: "Component Versions" }),
7015
+ /* @__PURE__ */ jsx40("h4", { className: "text-sm text-neutral-300 font-medium", children: "Component Versions" }),
7018
7016
  /* @__PURE__ */ jsx40("p", { className: "text-xs text-neutral-600 mt-1", children: "Update individual component versions. Click a component to edit." })
7019
7017
  ] }),
7020
7018
  /* @__PURE__ */ jsx40("div", { className: "divide-y divide-neutral-700", children: components.map((comp) => {
@@ -7030,7 +7028,7 @@ function VersionManager({ sync, components, componentLabels }) {
7030
7028
  "v",
7031
7029
  currentVersion
7032
7030
  ] }),
7033
- mismatch && /* @__PURE__ */ jsxs34("span", { className: "text-[10px] text-yellow-400", children: [
7031
+ mismatch && /* @__PURE__ */ jsxs34("span", { className: "text-xss text-yellow-400", children: [
7034
7032
  "(live: v",
7035
7033
  liveVersion,
7036
7034
  ")"
@@ -7673,7 +7671,7 @@ function CapturedIssuesPanel({
7673
7671
  ] }) : /* @__PURE__ */ jsx43("div", { className: "bg-neutral-900 border border-neutral-700 rounded-lg p-6", children: /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-4", children: [
7674
7672
  /* @__PURE__ */ jsx43("div", { className: "w-10 h-10 bg-green-500/10 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx43(Check13, { className: "w-5 h-5 text-green-400" }) }),
7675
7673
  /* @__PURE__ */ jsxs37("div", { children: [
7676
- /* @__PURE__ */ jsx43("h3", { className: "text-neutral-300 font-medium", children: "No Issues Captured" }),
7674
+ /* @__PURE__ */ jsx43("h3", { className: "text-sm text-neutral-300 font-medium", children: "No Issues Captured" }),
7677
7675
  /* @__PURE__ */ jsx43("p", { className: "text-sm text-neutral-500", children: "Everything is running smoothly." })
7678
7676
  ] })
7679
7677
  ] }) }),
@@ -7859,7 +7857,7 @@ function SnapshotEntryRow({
7859
7857
  children: [
7860
7858
  /* @__PURE__ */ jsx44(Clock2, { className: "w-3 h-3 shrink-0 text-neutral-500" }),
7861
7859
  /* @__PURE__ */ jsx44("span", { className: "text-xs flex-1 truncate", children: searchQuery ? highlightMatch(displayName, searchQuery) : displayName }),
7862
- /* @__PURE__ */ jsx44("span", { className: "text-[10px] text-neutral-500 shrink-0", title: formatFullDate2(entry.savedAt), children: formatRelativeTime2(entry.savedAt) }),
7860
+ /* @__PURE__ */ jsx44("span", { className: "text-xss text-neutral-500 shrink-0", title: formatFullDate2(entry.savedAt), children: formatRelativeTime2(entry.savedAt) }),
7863
7861
  /* @__PURE__ */ jsx44(
7864
7862
  IconButton,
7865
7863
  {
@@ -8467,7 +8465,7 @@ function SnippetsEditor({
8467
8465
  filteredSnippets.length === 0 && !isAdding && /* @__PURE__ */ jsxs40("div", { className: "text-center py-10 px-4", children: [
8468
8466
  /* @__PURE__ */ jsx46(Braces, { className: "w-8 h-8 mx-auto text-purple-400/40 mb-3" }),
8469
8467
  /* @__PURE__ */ jsx46("p", { className: "text-xs text-neutral-500 mb-1", children: searchQuery ? "No matching snippets" : "No snippets defined" }),
8470
- /* @__PURE__ */ jsx46("p", { className: "text-[10px] text-neutral-600", children: searchQuery ? "Try a different search term" : "Click + to add your first snippet" })
8468
+ /* @__PURE__ */ jsx46("p", { className: "text-xss text-neutral-600", children: searchQuery ? "Try a different search term" : "Click + to add your first snippet" })
8471
8469
  ] }),
8472
8470
  filteredSnippets.map((snippet) => /* @__PURE__ */ jsx46(
8473
8471
  SnippetListItem,
@@ -8530,8 +8528,8 @@ function SnippetListItem({ snippet, selected, onSelect, onDelete }) {
8530
8528
  children: [
8531
8529
  /* @__PURE__ */ jsxs40("div", { className: "flex-1 min-w-0", children: [
8532
8530
  /* @__PURE__ */ jsx46("p", { className: "text-xs font-mono font-medium text-neutral-300 truncate", children: snippet.name }),
8533
- /* @__PURE__ */ jsx46("p", { className: "text-[10px] text-neutral-500 truncate mt-0.5", children: snippet.description }),
8534
- snippet.value && /* @__PURE__ */ jsxs40("p", { className: "text-[10px] text-neutral-600 truncate mt-0.5 font-mono", children: [
8531
+ /* @__PURE__ */ jsx46("p", { className: "text-xss text-neutral-500 truncate mt-0.5", children: snippet.description }),
8532
+ snippet.value && /* @__PURE__ */ jsxs40("p", { className: "text-xss text-neutral-600 truncate mt-0.5 font-mono", children: [
8535
8533
  snippet.value.slice(0, 80),
8536
8534
  snippet.value.length > 80 ? "..." : ""
8537
8535
  ] })
@@ -8581,7 +8579,7 @@ function SnippetForm({
8581
8579
  autoFocus: !isEditing
8582
8580
  }
8583
8581
  ),
8584
- /* @__PURE__ */ jsxs40("p", { className: "mt-1 text-[10px] text-neutral-600", children: [
8582
+ /* @__PURE__ */ jsxs40("p", { className: "mt-1 text-xss text-neutral-600", children: [
8585
8583
  "Use in prompts as ",
8586
8584
  /* @__PURE__ */ jsx46("span", { className: "font-mono text-purple-400", children: "{{" + (formData.name || "NAME") + "}}" })
8587
8585
  ] })
@@ -8612,7 +8610,7 @@ function SnippetForm({
8612
8610
  minHeight: 160
8613
8611
  }
8614
8612
  ),
8615
- /* @__PURE__ */ jsx46("p", { className: "mt-1 text-[10px] text-neutral-600", children: "Can be a single value, multi-line text, or an entire document" })
8613
+ /* @__PURE__ */ jsx46("p", { className: "mt-1 text-xss text-neutral-600", children: "Can be a single value, multi-line text, or an entire document" })
8616
8614
  ] }),
8617
8615
  formError && /* @__PURE__ */ jsx46("div", { className: "px-3 py-2 bg-red-500/10 border border-red-500/30 rounded-lg", children: /* @__PURE__ */ jsx46("p", { className: "text-xs text-red-400", children: formError }) })
8618
8616
  ] }),
@@ -9618,7 +9616,7 @@ function FileNode({ entry, depth, selectedPath, expandedPaths, onToggleExpand, o
9618
9616
  }
9619
9617
  ),
9620
9618
  /* @__PURE__ */ jsx51("span", { className: "truncate", children: entry.name }),
9621
- entry.badge && /* @__PURE__ */ jsx51("span", { className: "ml-auto shrink-0 px-1.5 py-0.5 text-[9px] rounded bg-neutral-700 text-neutral-500", children: entry.badge }),
9619
+ entry.badge && /* @__PURE__ */ jsx51("span", { className: "ml-auto shrink-0 px-1.5 py-0.5 text-xss rounded bg-neutral-700 text-neutral-500", children: entry.badge }),
9622
9620
  onAction && /* @__PURE__ */ jsx51(
9623
9621
  "span",
9624
9622
  {
@@ -9681,13 +9679,13 @@ function FilesPanel({
9681
9679
  }
9682
9680
  return /* @__PURE__ */ jsxs45("div", { className: cn("flex flex-col bg-neutral-800 rounded-lg overflow-hidden", className), children: [
9683
9681
  /* @__PURE__ */ jsxs45("div", { className: "flex items-center justify-between px-3 py-2 border-b border-neutral-700", children: [
9684
- /* @__PURE__ */ jsx51("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-neutral-500", children: "Files" }),
9685
- /* @__PURE__ */ jsxs45("span", { className: "text-[10px] text-neutral-500", children: [
9682
+ /* @__PURE__ */ jsx51("span", { className: "text-xss font-semibold uppercase tracking-wider text-neutral-500", children: "Files" }),
9683
+ /* @__PURE__ */ jsxs45("span", { className: "text-xss text-neutral-500", children: [
9686
9684
  fileCount,
9687
9685
  " files"
9688
9686
  ] })
9689
9687
  ] }),
9690
- showSearch && /* @__PURE__ */ jsx51("div", { className: "px-2 py-2 border-b border-neutral-700", children: /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-black border border-neutral-700 rounded text-xs", children: [
9688
+ showSearch && /* @__PURE__ */ jsx51("div", { className: "px-2 py-2 border-b border-neutral-700", children: /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-[var(--background)] border border-neutral-700 rounded text-xs", children: [
9691
9689
  /* @__PURE__ */ jsx51(Search10, { className: "w-3 h-3 text-neutral-500 shrink-0" }),
9692
9690
  /* @__PURE__ */ jsx51(
9693
9691
  "input",
@@ -9714,7 +9712,7 @@ function FilesPanel({
9714
9712
  },
9715
9713
  entry.path
9716
9714
  )) }),
9717
- displayedFiles.length === 0 && /* @__PURE__ */ jsx51("p", { className: "text-[11px] text-neutral-500 text-center py-4", children: "No files found" })
9715
+ displayedFiles.length === 0 && /* @__PURE__ */ jsx51("p", { className: "text-xss text-neutral-500 text-center py-4", children: "No files found" })
9718
9716
  ] })
9719
9717
  ] });
9720
9718
  }
@@ -9759,13 +9757,13 @@ function SnippetsPanel({
9759
9757
  );
9760
9758
  return /* @__PURE__ */ jsxs46("div", { className: cn("flex flex-col bg-neutral-800 rounded-lg overflow-hidden", className), children: [
9761
9759
  /* @__PURE__ */ jsxs46("div", { className: "flex items-center justify-between px-3 py-2 border-b border-neutral-700", children: [
9762
- /* @__PURE__ */ jsx52("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-neutral-500", children: "Snippets" }),
9763
- /* @__PURE__ */ jsxs46("span", { className: "text-[10px] text-neutral-500", children: [
9760
+ /* @__PURE__ */ jsx52("span", { className: "text-xss font-semibold uppercase tracking-wider text-neutral-500", children: "Snippets" }),
9761
+ /* @__PURE__ */ jsxs46("span", { className: "text-xss text-neutral-500", children: [
9764
9762
  snippets.length,
9765
9763
  " snippets"
9766
9764
  ] })
9767
9765
  ] }),
9768
- showSearch && /* @__PURE__ */ jsx52("div", { className: "px-2 py-2 border-b border-neutral-700", children: /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-black border border-neutral-700 rounded text-xs", children: [
9766
+ showSearch && /* @__PURE__ */ jsx52("div", { className: "px-2 py-2 border-b border-neutral-700", children: /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-[var(--background)] border border-neutral-700 rounded text-xs", children: [
9769
9767
  /* @__PURE__ */ jsx52(Search11, { className: "w-3 h-3 text-neutral-500 shrink-0" }),
9770
9768
  /* @__PURE__ */ jsx52(
9771
9769
  "input",
@@ -9788,7 +9786,7 @@ function SnippetsPanel({
9788
9786
  },
9789
9787
  snippet.id
9790
9788
  )),
9791
- filteredSnippets.length === 0 && /* @__PURE__ */ jsx52("p", { className: "text-[11px] text-neutral-500 text-center py-4", children: "No snippets found" })
9789
+ filteredSnippets.length === 0 && /* @__PURE__ */ jsx52("p", { className: "text-xss text-neutral-500 text-center py-4", children: "No snippets found" })
9792
9790
  ] })
9793
9791
  ] });
9794
9792
  }
@@ -9801,7 +9799,7 @@ function SnippetCard({ snippet, onInsert, onCopy }) {
9801
9799
  snippet.language && /* @__PURE__ */ jsx52(
9802
9800
  "span",
9803
9801
  {
9804
- className: "px-1.5 py-0.5 text-[9px] font-medium rounded shrink-0",
9802
+ className: "px-1.5 py-0.5 text-xss font-medium rounded shrink-0",
9805
9803
  style: { color: langColor, backgroundColor: `${langColor}20` },
9806
9804
  children: snippet.language
9807
9805
  }
@@ -9828,9 +9826,9 @@ function SnippetCard({ snippet, onInsert, onCopy }) {
9828
9826
  )
9829
9827
  ] })
9830
9828
  ] }),
9831
- snippet.description && /* @__PURE__ */ jsx52("p", { className: "px-2.5 pb-1.5 text-[11px] text-neutral-400 leading-relaxed", children: snippet.description }),
9832
- /* @__PURE__ */ jsx52("div", { className: "mx-2.5 mb-2 rounded bg-black border border-neutral-700 overflow-hidden", children: /* @__PURE__ */ jsx52("pre", { className: "p-2 text-[11px] text-neutral-400 leading-relaxed overflow-x-auto max-h-24", children: /* @__PURE__ */ jsx52("code", { children: snippet.code }) }) }),
9833
- snippet.tags && snippet.tags.length > 0 && /* @__PURE__ */ jsx52("div", { className: "flex flex-wrap gap-1 px-2.5 pb-2", children: snippet.tags.map((tag) => /* @__PURE__ */ jsx52("span", { className: "px-1.5 py-0.5 text-[9px] rounded bg-neutral-700 text-neutral-500", children: tag }, tag)) })
9829
+ snippet.description && /* @__PURE__ */ jsx52("p", { className: "px-2.5 pb-1.5 text-xss text-neutral-400 leading-relaxed", children: snippet.description }),
9830
+ /* @__PURE__ */ jsx52("div", { className: "mx-2.5 mb-2 rounded bg-[var(--background)] border border-neutral-700 overflow-hidden", children: /* @__PURE__ */ jsx52("pre", { className: "p-2 text-xss text-neutral-400 leading-relaxed overflow-x-auto max-h-24", children: /* @__PURE__ */ jsx52("code", { children: snippet.code }) }) }),
9831
+ snippet.tags && snippet.tags.length > 0 && /* @__PURE__ */ jsx52("div", { className: "flex flex-wrap gap-1 px-2.5 pb-2", children: snippet.tags.map((tag) => /* @__PURE__ */ jsx52("span", { className: "px-1.5 py-0.5 text-xss rounded bg-neutral-700 text-neutral-500", children: tag }, tag)) })
9834
9832
  ] });
9835
9833
  }
9836
9834
 
@@ -9908,7 +9906,7 @@ var iconSubset3 = {
9908
9906
  "package": Package3
9909
9907
  };
9910
9908
  var sizeConfig2 = {
9911
- xss: { text: "text-[10px]", icon: "w-2.5 h-2.5", px: "px-1", py: "py-0.5", gap: "gap-0.5", sep: "w-2 h-2" },
9909
+ xss: { text: "text-xss", icon: "w-2.5 h-2.5", px: "px-1", py: "py-0.5", gap: "gap-0.5", sep: "w-2 h-2" },
9912
9910
  xs: { text: "text-xs", icon: "w-3 h-3", px: "px-1.5", py: "py-0.5", gap: "gap-1", sep: "w-2.5 h-2.5" },
9913
9911
  sm: { text: "text-sm", icon: "w-3.5 h-3.5", px: "px-2", py: "py-1", gap: "gap-1.5", sep: "w-3 h-3" },
9914
9912
  md: { text: "text-base", icon: "w-4 h-4", px: "px-2.5", py: "py-1", gap: "gap-1.5", sep: "w-3.5 h-3.5" },
@@ -10082,7 +10080,7 @@ var iconSubset4 = {
10082
10080
  webhook: Webhook6
10083
10081
  };
10084
10082
  var sizeConfig3 = {
10085
- xss: { text: "text-[10px]", segIcon: "w-2.5 h-2.5", navIcon: "w-2.5 h-2.5", navBtn: "w-[18px] h-[18px] rounded-[3px]", px: "px-1", py: "py-0.5", sep: "w-2 h-2", divH: "h-3" },
10083
+ xss: { text: "text-xss", segIcon: "w-2.5 h-2.5", navIcon: "w-2.5 h-2.5", navBtn: "w-[18px] h-[18px] rounded-[3px]", px: "px-1", py: "py-0.5", sep: "w-2 h-2", divH: "h-3" },
10086
10084
  xs: { text: "text-xs", segIcon: "w-3 h-3", navIcon: "w-3 h-3", navBtn: "w-6 h-6 rounded-[5px]", px: "px-1.5", py: "py-0.5", sep: "w-2.5 h-2.5", divH: "h-3.5" },
10087
10085
  sm: { text: "text-sm", segIcon: "w-3.5 h-3.5", navIcon: "w-3.5 h-3.5", navBtn: "w-7 h-7 rounded-md", px: "px-2", py: "py-1", sep: "w-3 h-3", divH: "h-4" },
10088
10086
  md: { text: "text-base", segIcon: "w-4 h-4", navIcon: "w-4 h-4", navBtn: "w-8 h-8 rounded-md", px: "px-2.5", py: "py-1", sep: "w-3.5 h-3.5", divH: "h-5" },
@@ -10296,7 +10294,7 @@ var iconSubset5 = {
10296
10294
  heart: Heart7
10297
10295
  };
10298
10296
  var sizeConfig4 = {
10299
- xss: { text: "text-[10px]", icon: "w-2.5 h-2.5", px: "px-1.5", py: "py-1", close: "w-2.5 h-2.5", badgeSize: "xss", gap: "gap-1" },
10297
+ xss: { text: "text-xss", icon: "w-2.5 h-2.5", px: "px-1.5", py: "py-1", close: "w-2.5 h-2.5", badgeSize: "xss", gap: "gap-1" },
10300
10298
  xs: { text: "text-xs", icon: "w-3 h-3", px: "px-2", py: "py-1", close: "w-3 h-3", badgeSize: "xs", gap: "gap-1" },
10301
10299
  sm: { text: "text-sm", icon: "w-3.5 h-3.5", px: "px-3", py: "py-1.5", close: "w-3 h-3", badgeSize: "sm", gap: "gap-1.5" },
10302
10300
  md: { text: "text-base", icon: "w-4 h-4", px: "px-4", py: "py-2", close: "w-3.5 h-3.5", badgeSize: "md", gap: "gap-2" },
@@ -10868,7 +10866,7 @@ function NavCard({
10868
10866
  disabled,
10869
10867
  className: cn(
10870
10868
  "relative w-full text-left rounded-lg border border-neutral-700 bg-neutral-800 p-4 transition-all duration-200 cursor-pointer",
10871
- !disabled && "hover:-translate-y-0.5 hover:shadow-lg hover:shadow-black/20 hover:border-neutral-600 hover:bg-neutral-700",
10869
+ !disabled && "hover:-translate-y-0.5 hover:border-neutral-600 hover:bg-neutral-700",
10872
10870
  disabled && "opacity-50 cursor-not-allowed",
10873
10871
  className
10874
10872
  ),
@@ -11069,10 +11067,10 @@ function SnapshotCard({
11069
11067
  }
11070
11068
  )
11071
11069
  ] }),
11072
- timestamp && /* @__PURE__ */ jsx60("p", { className: "mt-1 text-[10px] text-neutral-500", children: timestamp }),
11070
+ timestamp && /* @__PURE__ */ jsx60("p", { className: "mt-1 text-xss text-neutral-500", children: timestamp }),
11073
11071
  description && /* @__PURE__ */ jsx60("p", { className: "mt-2 text-xs text-neutral-500 leading-relaxed line-clamp-2", children: description }),
11074
11072
  stats && stats.length > 0 && /* @__PURE__ */ jsx60("div", { className: "mt-3 grid grid-cols-2 gap-x-4 gap-y-2", children: stats.map((stat) => /* @__PURE__ */ jsxs54("div", { children: [
11075
- /* @__PURE__ */ jsx60("p", { className: "text-[10px] text-neutral-500", children: stat.label }),
11073
+ /* @__PURE__ */ jsx60("p", { className: "text-xss text-neutral-500", children: stat.label }),
11076
11074
  /* @__PURE__ */ jsx60("p", { className: "text-xs font-medium text-neutral-200", children: stat.value })
11077
11075
  ] }, stat.label)) }),
11078
11076
  (onSync || onView) && /* @__PURE__ */ jsxs54("div", { className: "mt-3 pt-3 border-t border-neutral-700 flex items-center gap-2", children: [
@@ -21,6 +21,16 @@
21
21
  --color-neutral-100: #f0f0f0;
22
22
  --color-neutral-50: #fafafa;
23
23
 
24
+ /* Typography — minimum font size */
25
+ --font-size-xss: 11px;
26
+
27
+ /* Breakpoints */
28
+ --breakpoint-3xl: 100rem;
29
+ --breakpoint-4xl: 156.25rem;
30
+
31
+ /* Font family */
32
+ --font-sans: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
33
+
24
34
  /* Disable Tailwind default gray to prevent accidental usage */
25
35
  --color-gray-*: initial;
26
36
  }
@@ -20,6 +20,9 @@
20
20
  --surface-overlay: var(--color-neutral-700);
21
21
  --surface-hover: var(--color-neutral-750);
22
22
 
23
+ /* Dialog backdrop: modal/dialog overlays */
24
+ --dialog-backdrop: rgba(0, 0, 0, 0.85);
25
+
23
26
  /* Popover: floating panels, dropdown menus */
24
27
  --popover: rgba(0, 0, 0, 0.8);
25
28
  --popover-foreground: var(--color-neutral-300);