@yuva-devlab/ui 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1337,7 +1337,7 @@ var Checkpoint = React14.forwardRef(
1337
1337
  ...props
1338
1338
  }, ref) => {
1339
1339
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { ref, className: cn("dl-checkpoint", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "dl-checkpoint__content", children: [
1340
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.History, { className: "size-3 text-muted-foreground" }),
1340
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.History, { className: "dl-checkpoint__icon" }),
1341
1341
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: label }),
1342
1342
  onRestore && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1343
1343
  "button",
@@ -1621,11 +1621,11 @@ var CodeBlockCopyButton = React20.forwardRef(({ className, code = "", onClick, .
1621
1621
  });
1622
1622
  CodeBlockCopyButton.displayName = "CodeBlockCopyButton";
1623
1623
  var CodeBlockHeader = React20.forwardRef(({ className, filename, language, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { ref, className: cn("dl-code-block__header", className), ...props, children: [
1624
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-2", children: [
1624
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "dl-code-block__header-meta", children: [
1625
1625
  filename && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "dl-code-block__filename", children: filename }),
1626
1626
  language && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "dl-code-block__language", children: language })
1627
1627
  ] }),
1628
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex items-center gap-1.5", children })
1628
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "dl-code-block__header-actions", children })
1629
1629
  ] }));
1630
1630
  CodeBlockHeader.displayName = "CodeBlockHeader";
1631
1631
  var CodeBlockContent = React20.forwardRef(
@@ -3080,16 +3080,10 @@ var SearchInput = React42.forwardRef(
3080
3080
  onClick: onClear,
3081
3081
  "aria-label": "Clear search query",
3082
3082
  tabIndex: -1,
3083
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react21.X, { className: "size-4", "aria-hidden": "true" })
3083
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react21.X, { className: "dl-search-icon", "aria-hidden": "true" })
3084
3084
  }
3085
3085
  ) : null;
3086
- const trailingIcon = loading ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3087
- import_lucide_react21.Loader2,
3088
- {
3089
- className: "size-4 animate-spin text-muted-foreground",
3090
- "aria-hidden": "true"
3091
- }
3092
- ) : clearButton ?? endIcon;
3086
+ const trailingIcon = loading ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react21.Loader2, { className: "dl-search-spinner", "aria-hidden": "true" }) : clearButton ?? endIcon;
3093
3087
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3094
3088
  Input,
3095
3089
  {
@@ -3423,7 +3417,7 @@ function MultiSelect({
3423
3417
  onClick: (e) => handleRemove(e, opt.value),
3424
3418
  "aria-label": `Remove ${opt.label}`,
3425
3419
  className: "dl-multi-select-chip__remove",
3426
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.X, { className: "size-3" })
3420
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.X, { className: "dl-multi-select-chip__icon" })
3427
3421
  }
3428
3422
  )
3429
3423
  ] }, opt.value)),
@@ -3433,7 +3427,7 @@ function MultiSelect({
3433
3427
  " more"
3434
3428
  ] })
3435
3429
  ] }) }),
3436
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.ChevronDown, { className: "size-4 shrink-0 text-muted-foreground" })
3430
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.ChevronDown, { className: "dl-multi-select-chevron" })
3437
3431
  ]
3438
3432
  }
3439
3433
  ) }),
@@ -5255,7 +5249,7 @@ var PromptInput = React74.forwardRef(
5255
5249
  ...props,
5256
5250
  children: [
5257
5251
  files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "dl-prompt-input__attachments", children: files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "dl-prompt-input__chip", children: [
5258
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react34.FileText, { className: "size-3 text-muted-foreground" }),
5252
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react34.FileText, { className: "dl-prompt-input__chip-icon" }),
5259
5253
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "dl-prompt-input__chip-name", children: file.name }),
5260
5254
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5261
5255
  "button",
@@ -5264,7 +5258,7 @@ var PromptInput = React74.forwardRef(
5264
5258
  onClick: () => handleRemoveFile(file.id),
5265
5259
  "aria-label": `Remove ${file.name}`,
5266
5260
  className: "dl-prompt-input__chip-remove",
5267
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react34.X, { className: "size-3" })
5261
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react34.X, { className: "dl-prompt-input__chip-icon" })
5268
5262
  }
5269
5263
  )
5270
5264
  ] }, file.id)) }),
@@ -5510,18 +5504,18 @@ var TerminalHeader = React77.forwardRef(
5510
5504
  className: cn("dl-terminal__header", className),
5511
5505
  ...props,
5512
5506
  children: [
5513
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center gap-2", children: [
5507
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dl-terminal__header-left", children: [
5514
5508
  windowControls && /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dl-terminal__dots", "aria-hidden": "true", children: [
5515
5509
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "dl-terminal__dot" }),
5516
5510
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "dl-terminal__dot" }),
5517
5511
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "dl-terminal__dot" })
5518
5512
  ] }),
5519
5513
  /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dl-terminal__title", children: [
5520
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react37.Terminal, { className: "size-3.5" }),
5514
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react37.Terminal, { className: "dl-terminal__icon" }),
5521
5515
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { children: command ?? "Terminal" })
5522
5516
  ] })
5523
5517
  ] }),
5524
- /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5518
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "dl-terminal__header-actions", children: [
5525
5519
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
5526
5520
  "button",
5527
5521
  {
@@ -5529,7 +5523,13 @@ var TerminalHeader = React77.forwardRef(
5529
5523
  onClick: handleCopy,
5530
5524
  "aria-label": copied ? "Copied" : "Copy output",
5531
5525
  className: "dl-code-block__copy-btn",
5532
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react37.Check, { className: "size-3.5 text-success" }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react37.Copy, { className: "size-3.5" })
5526
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
5527
+ import_lucide_react37.Check,
5528
+ {
5529
+ className: "dl-terminal__icon",
5530
+ style: { color: "var(--success, #22c55e)" }
5531
+ }
5532
+ ) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react37.Copy, { className: "dl-terminal__icon" })
5533
5533
  }
5534
5534
  ),
5535
5535
  children
@@ -5685,16 +5685,25 @@ var ModelSelector = React78.forwardRef(
5685
5685
  "aria-haspopup": "listbox",
5686
5686
  "aria-expanded": isOpen,
5687
5687
  children: [
5688
- /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-1.5", children: [
5689
- currentModel?.icon ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react38.Bot, { className: "size-3.5 text-primary" }),
5690
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "font-semibold text-foreground", children: currentModel ? currentModel.name : placeholder })
5688
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "dl-model-selector__trigger-label", children: [
5689
+ currentModel?.icon ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5690
+ import_lucide_react38.Bot,
5691
+ {
5692
+ style: {
5693
+ width: "0.875rem",
5694
+ height: "0.875rem",
5695
+ color: "var(--primary)"
5696
+ }
5697
+ }
5698
+ ),
5699
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { style: { fontWeight: 600, color: "var(--foreground)" }, children: currentModel ? currentModel.name : placeholder })
5691
5700
  ] }),
5692
5701
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5693
5702
  import_lucide_react38.ChevronDown,
5694
5703
  {
5695
5704
  className: cn(
5696
- "size-3 text-muted-foreground transition-transform duration-200",
5697
- isOpen && "rotate-180"
5705
+ "dl-model-selector__chevron",
5706
+ isOpen && "dl-model-selector__chevron--open"
5698
5707
  )
5699
5708
  }
5700
5709
  )
@@ -5702,8 +5711,8 @@ var ModelSelector = React78.forwardRef(
5702
5711
  }
5703
5712
  ),
5704
5713
  isOpen && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "dl-model-selector__content", role: "listbox", children: [
5705
- models.length > 3 && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "relative", children: [
5706
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react38.Search, { className: "absolute left-2 top-2.5 size-3 text-muted-foreground" }),
5714
+ models.length > 3 && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "dl-model-selector__search-wrapper", children: [
5715
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react38.Search, { className: "dl-model-selector__search-icon" }),
5707
5716
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5708
5717
  "input",
5709
5718
  {
@@ -5711,12 +5720,13 @@ var ModelSelector = React78.forwardRef(
5711
5720
  placeholder: "Filter models...",
5712
5721
  value: query,
5713
5722
  onChange: (e) => setQuery(e.target.value),
5714
- className: "dl-model-selector__search w-full pl-7",
5723
+ className: "dl-model-selector__search",
5724
+ style: { width: "100%", paddingLeft: "1.75rem" },
5715
5725
  autoFocus: true
5716
5726
  }
5717
5727
  )
5718
5728
  ] }),
5719
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex flex-col gap-0.5", children: filteredModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "p-3 text-center text-xs text-muted-foreground", children: "No matching models found" }) : filteredModels.map((model) => {
5729
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "dl-model-selector__list", children: filteredModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "dl-model-selector__empty", children: "No matching models found" }) : filteredModels.map((model) => {
5720
5730
  const isSelected = model.id === activeId;
5721
5731
  return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
5722
5732
  "div",
@@ -5728,14 +5738,24 @@ var ModelSelector = React78.forwardRef(
5728
5738
  className: cn(
5729
5739
  "dl-model-selector__item",
5730
5740
  isSelected && "dl-model-selector__item--active",
5731
- model.disabled && "opacity-50 cursor-not-allowed"
5741
+ model.disabled && "dl-cursor-not-allowed"
5732
5742
  ),
5743
+ style: model.disabled ? { opacity: 0.5 } : void 0,
5733
5744
  children: [
5734
5745
  /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "dl-model-selector__item-info", children: [
5735
5746
  /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "dl-model-selector__item-title", children: [
5736
- model.icon ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_lucide_react38.Sparkles, { className: "size-3 text-primary" }),
5747
+ model.icon ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5748
+ import_lucide_react38.Sparkles,
5749
+ {
5750
+ style: {
5751
+ width: "0.75rem",
5752
+ height: "0.75rem",
5753
+ color: "var(--primary)"
5754
+ }
5755
+ }
5756
+ ),
5737
5757
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: model.name }),
5738
- /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "text-xs text-muted-foreground font-normal", children: [
5758
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("span", { className: "dl-model-selector__provider", children: [
5739
5759
  "(",
5740
5760
  model.provider,
5741
5761
  ")"
@@ -5788,11 +5808,11 @@ var PlanHeader = React79.forwardRef(
5788
5808
  "span",
5789
5809
  {
5790
5810
  className: cn(
5791
- "px-2 py-0.5 rounded-full text-xs font-semibold uppercase tracking-wider",
5792
- status === "completed" && "bg-success/15 text-success",
5793
- status === "in-progress" && "bg-primary/15 text-primary",
5794
- status === "failed" && "bg-destructive/15 text-destructive",
5795
- status === "pending" && "bg-muted text-muted-foreground"
5811
+ "dl-plan__status-chip",
5812
+ status === "completed" && "dl-plan__status-chip--completed",
5813
+ status === "in-progress" && "dl-plan__status-chip--in-progress",
5814
+ status === "failed" && "dl-plan__status-chip--failed",
5815
+ status === "pending" && "dl-plan__status-chip--pending"
5796
5816
  ),
5797
5817
  children: status
5798
5818
  }
@@ -5817,14 +5837,47 @@ var PlanTask = React79.forwardRef(
5817
5837
  const renderIcon = () => {
5818
5838
  switch (status) {
5819
5839
  case "completed":
5820
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react39.CheckCircle2, { className: "size-4 text-success" });
5840
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5841
+ import_lucide_react39.CheckCircle2,
5842
+ {
5843
+ style: { width: "1rem", height: "1rem", color: "var(--success)" }
5844
+ }
5845
+ );
5821
5846
  case "running":
5822
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react39.Loader2, { className: "size-4 text-primary animate-spin" });
5847
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5848
+ import_lucide_react39.Loader2,
5849
+ {
5850
+ style: {
5851
+ width: "1rem",
5852
+ height: "1rem",
5853
+ color: "var(--primary)",
5854
+ animation: "spin 1s linear infinite"
5855
+ }
5856
+ }
5857
+ );
5823
5858
  case "failed":
5824
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react39.XCircle, { className: "size-4 text-destructive" });
5859
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5860
+ import_lucide_react39.XCircle,
5861
+ {
5862
+ style: {
5863
+ width: "1rem",
5864
+ height: "1rem",
5865
+ color: "var(--destructive)"
5866
+ }
5867
+ }
5868
+ );
5825
5869
  case "pending":
5826
5870
  default:
5827
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react39.Circle, { className: "size-4 text-muted-foreground" });
5871
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5872
+ import_lucide_react39.Circle,
5873
+ {
5874
+ style: {
5875
+ width: "1rem",
5876
+ height: "1rem",
5877
+ color: "var(--muted-foreground)"
5878
+ }
5879
+ }
5880
+ );
5828
5881
  }
5829
5882
  };
5830
5883
  return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
@@ -5847,14 +5900,14 @@ var PlanTask = React79.forwardRef(
5847
5900
  /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "dl-plan__task-icon", children: renderIcon() }),
5848
5901
  /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "dl-plan__task-body", children: [
5849
5902
  /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "dl-plan__task-title", children: title }),
5850
- description && !expanded && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "dl-plan__task-desc line-clamp-1", children: description })
5903
+ description && !expanded && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "dl-plan__task-desc dl-line-clamp-1", children: description })
5851
5904
  ] }),
5852
5905
  hasChildren && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5853
5906
  import_lucide_react39.ChevronRight,
5854
5907
  {
5855
5908
  className: cn(
5856
- "size-3.5 text-muted-foreground transition-transform shrink-0 mt-0.5",
5857
- expanded && "rotate-90"
5909
+ "dl-plan__chevron",
5910
+ expanded && "dl-plan__chevron--expanded"
5858
5911
  )
5859
5912
  }
5860
5913
  )
@@ -5862,7 +5915,7 @@ var PlanTask = React79.forwardRef(
5862
5915
  }
5863
5916
  ),
5864
5917
  expanded && hasChildren && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "dl-plan__task-details", children: [
5865
- description && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "mb-2 leading-relaxed", children: description }),
5918
+ description && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "dl-plan__desc-block", children: description }),
5866
5919
  children
5867
5920
  ] })
5868
5921
  ]
@@ -5940,9 +5993,9 @@ var SourceCard = React80.forwardRef(
5940
5993
  children: [
5941
5994
  /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "dl-source-card__meta", children: [
5942
5995
  /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "dl-source-card__index", children: source.index }),
5943
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react40.Globe, { className: "size-3 text-muted-foreground shrink-0" }),
5996
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react40.Globe, { className: "dl-source-card__icon" }),
5944
5997
  /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "dl-source-card__domain", children: domain }),
5945
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react40.ExternalLink, { className: "size-2.5 ml-auto text-muted-foreground shrink-0 opacity-70" })
5998
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react40.ExternalLink, { className: "dl-source-card__external" })
5946
5999
  ] }),
5947
6000
  /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "dl-source-card__title", title: source.title, children: source.title })
5948
6001
  ]
@@ -5982,15 +6035,15 @@ var import_lucide_react41 = require("lucide-react");
5982
6035
  var import_jsx_runtime85 = require("react/jsx-runtime");
5983
6036
  var getFileIcon = (name) => {
5984
6037
  if (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".js") || name.endsWith(".jsx")) {
5985
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileCode, { className: "size-3.5 text-primary" });
6038
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileCode, { className: "dl-file-tree__glyph dl-file-tree__glyph--primary" });
5986
6039
  }
5987
6040
  if (name.endsWith(".json")) {
5988
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileJson, { className: "size-3.5 text-warning" });
6041
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileJson, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" });
5989
6042
  }
5990
6043
  if (name.endsWith(".md") || name.endsWith(".mdx")) {
5991
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileText, { className: "size-3.5 text-info" });
6044
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FileText, { className: "dl-file-tree__glyph dl-file-tree__glyph--info" });
5992
6045
  }
5993
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.File, { className: "size-3.5 text-muted-foreground" });
6046
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.File, { className: "dl-file-tree__glyph dl-file-tree__glyph--muted" });
5994
6047
  };
5995
6048
  var FileTreeNode = React81.forwardRef(
5996
6049
  ({ className, item, level = 0, selectedId, onSelect, ...props }, ref) => {
@@ -6004,7 +6057,7 @@ var FileTreeNode = React81.forwardRef(
6004
6057
  }
6005
6058
  onSelect?.(item);
6006
6059
  };
6007
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { ref, className: cn("flex flex-col", className), ...props, children: [
6060
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { ref, className: cn("dl-file-tree__item", className), ...props, children: [
6008
6061
  /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
6009
6062
  "div",
6010
6063
  {
@@ -6018,12 +6071,12 @@ var FileTreeNode = React81.forwardRef(
6018
6071
  import_lucide_react41.ChevronRight,
6019
6072
  {
6020
6073
  className: cn(
6021
- "size-3 text-muted-foreground transition-transform shrink-0",
6022
- isOpen && "rotate-90"
6074
+ "dl-file-tree__chevron",
6075
+ isOpen && "dl-file-tree__chevron--open"
6023
6076
  )
6024
6077
  }
6025
6078
  ),
6026
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "dl-file-tree__icon", children: isFolder ? isOpen ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FolderOpen, { className: "size-3.5 text-warning shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.Folder, { className: "size-3.5 text-warning shrink-0" }) : getFileIcon(item.name) }),
6079
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "dl-file-tree__icon", children: isFolder ? isOpen ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.FolderOpen, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" }) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react41.Folder, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" }) : getFileIcon(item.name) }),
6027
6080
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "dl-file-tree__name", children: item.name })
6028
6081
  ]
6029
6082
  }
@@ -6098,13 +6151,13 @@ var StackFrame = React82.forwardRef(
6098
6151
  className: "dl-stack-frame__header",
6099
6152
  onClick: () => hasSnippet && setExpanded((prev) => !prev),
6100
6153
  children: [
6101
- /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "flex items-center gap-1.5 min-w-0", children: [
6154
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "dl-stack-frame__fn-wrapper", children: [
6102
6155
  hasSnippet && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
6103
6156
  import_lucide_react42.ChevronRight,
6104
6157
  {
6105
6158
  className: cn(
6106
- "size-3 text-muted-foreground transition-transform shrink-0",
6107
- expanded && "rotate-90"
6159
+ "dl-stack-frame__chevron",
6160
+ expanded && "dl-stack-frame__chevron--expanded"
6108
6161
  )
6109
6162
  }
6110
6163
  ),
@@ -6182,24 +6235,33 @@ var import_jsx_runtime87 = require("react/jsx-runtime");
6182
6235
  var getStatusBadge = (status) => {
6183
6236
  switch (status) {
6184
6237
  case "running":
6185
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center gap-1 text-xs text-primary font-medium", children: [
6186
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.Loader2, { className: "size-3 animate-spin" }),
6238
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "dl-subagent__status dl-subagent__status--running", children: [
6239
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
6240
+ import_lucide_react43.Loader2,
6241
+ {
6242
+ style: {
6243
+ width: "0.75rem",
6244
+ height: "0.75rem",
6245
+ animation: "spin 1s linear infinite"
6246
+ }
6247
+ }
6248
+ ),
6187
6249
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { children: "Running" })
6188
6250
  ] });
6189
6251
  case "completed":
6190
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center gap-1 text-xs text-success font-medium", children: [
6191
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.CheckCircle2, { className: "size-3" }),
6252
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "dl-subagent__status dl-subagent__status--completed", children: [
6253
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.CheckCircle2, { style: { width: "0.75rem", height: "0.75rem" } }),
6192
6254
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { children: "Done" })
6193
6255
  ] });
6194
6256
  case "failed":
6195
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center gap-1 text-xs text-destructive font-medium", children: [
6196
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.XCircle, { className: "size-3" }),
6257
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "dl-subagent__status dl-subagent__status--failed", children: [
6258
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.XCircle, { style: { width: "0.75rem", height: "0.75rem" } }),
6197
6259
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { children: "Failed" })
6198
6260
  ] });
6199
6261
  case "idle":
6200
6262
  default:
6201
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
6202
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.Circle, { className: "size-3" }),
6263
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "dl-subagent__status dl-subagent__status--idle", children: [
6264
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react43.Circle, { style: { width: "0.75rem", height: "0.75rem" } }),
6203
6265
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { children: "Idle" })
6204
6266
  ] });
6205
6267
  }
@@ -6233,8 +6295,8 @@ var Subagent = React83.forwardRef(
6233
6295
  ] })
6234
6296
  ] }),
6235
6297
  /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "dl-subagent__badges", children: [
6236
- model && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground border border-border", children: model }),
6237
- conversationId && /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground", children: [
6298
+ model && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "dl-subagent__chip", children: model }),
6299
+ conversationId && /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("span", { className: "dl-subagent__chip", children: [
6238
6300
  "#",
6239
6301
  conversationId.slice(0, 6)
6240
6302
  ] }),
@@ -6243,8 +6305,8 @@ var Subagent = React83.forwardRef(
6243
6305
  import_lucide_react43.ChevronRight,
6244
6306
  {
6245
6307
  className: cn(
6246
- "size-3.5 text-muted-foreground transition-transform shrink-0 ml-1",
6247
- open && "rotate-90"
6308
+ "dl-subagent__chevron",
6309
+ open && "dl-subagent__chevron--open"
6248
6310
  )
6249
6311
  }
6250
6312
  )
@@ -6354,10 +6416,30 @@ var QueueItem = React85.forwardRef(
6354
6416
  case "active":
6355
6417
  return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.Loader2, { className: "size-3 text-primary animate-spin shrink-0" });
6356
6418
  case "paused":
6357
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.Pause, { className: "size-3 text-warning shrink-0" });
6419
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6420
+ import_lucide_react45.Pause,
6421
+ {
6422
+ style: {
6423
+ width: "0.75rem",
6424
+ height: "0.75rem",
6425
+ color: "var(--warning, #eab308)",
6426
+ flexShrink: 0
6427
+ }
6428
+ }
6429
+ );
6358
6430
  case "waiting":
6359
6431
  default:
6360
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.Clock, { className: "size-3 text-muted-foreground shrink-0" });
6432
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6433
+ import_lucide_react45.Clock,
6434
+ {
6435
+ style: {
6436
+ width: "0.75rem",
6437
+ height: "0.75rem",
6438
+ color: "var(--muted-foreground)",
6439
+ flexShrink: 0
6440
+ }
6441
+ }
6442
+ );
6361
6443
  }
6362
6444
  };
6363
6445
  return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { ref, className: cn("dl-queue-item", className), ...props, children: [
@@ -6371,23 +6453,23 @@ var QueueItem = React85.forwardRef(
6371
6453
  "span",
6372
6454
  {
6373
6455
  className: cn(
6374
- "px-1.5 py-0.5 rounded text-[10px] font-semibold uppercase tracking-wider",
6375
- task.priority === "high" && "bg-destructive/15 text-destructive",
6376
- task.priority === "normal" && "bg-primary/15 text-primary",
6377
- task.priority === "low" && "bg-muted text-muted-foreground"
6456
+ "dl-queue-item__priority",
6457
+ task.priority === "high" && "dl-queue-item__priority--high",
6458
+ task.priority === "normal" && "dl-queue-item__priority--normal",
6459
+ task.priority === "low" && "dl-queue-item__priority--low"
6378
6460
  ),
6379
6461
  children: task.priority
6380
6462
  }
6381
6463
  ),
6382
- task.estimatedDuration && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-xs text-muted-foreground font-mono", children: task.estimatedDuration }),
6464
+ task.estimatedDuration && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "dl-queue-item__duration", children: task.estimatedDuration }),
6383
6465
  onRemove && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6384
6466
  "button",
6385
6467
  {
6386
6468
  type: "button",
6387
6469
  onClick: onRemove,
6388
6470
  "aria-label": "Remove task",
6389
- className: "text-muted-foreground hover:text-foreground p-0.5 rounded",
6390
- children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.X, { className: "size-3.5" })
6471
+ className: "dl-queue-item__remove-btn",
6472
+ children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.X, { style: { width: "0.875rem", height: "0.875rem" } })
6391
6473
  }
6392
6474
  )
6393
6475
  ] })
@@ -6406,11 +6488,16 @@ var Queue = React85.forwardRef(
6406
6488
  }, ref) => {
6407
6489
  return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { ref, className: cn("dl-queue", className), ...props, children: [
6408
6490
  /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "dl-queue__header", children: [
6409
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex items-center gap-1.5", children: [
6410
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react45.ListOrdered, { className: "size-4 text-primary" }),
6491
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "dl-queue__header-left", children: [
6492
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
6493
+ import_lucide_react45.ListOrdered,
6494
+ {
6495
+ style: { width: "1rem", height: "1rem", color: "var(--primary)" }
6496
+ }
6497
+ ),
6411
6498
  /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { children: title })
6412
6499
  ] }),
6413
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("span", { className: "text-xs text-muted-foreground font-normal", children: [
6500
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("span", { className: "dl-queue__header-count", children: [
6414
6501
  tasks.length,
6415
6502
  " item",
6416
6503
  tasks.length === 1 ? "" : "s"
@@ -6447,21 +6534,31 @@ var TestCase = React86.forwardRef(
6447
6534
  return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react46.XCircle, { className: "size-4 text-destructive shrink-0" });
6448
6535
  case "skipped":
6449
6536
  default:
6450
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react46.MinusCircle, { className: "size-4 text-muted-foreground shrink-0" });
6537
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
6538
+ import_lucide_react46.MinusCircle,
6539
+ {
6540
+ style: {
6541
+ width: "1rem",
6542
+ height: "1rem",
6543
+ color: "var(--muted-foreground)",
6544
+ flexShrink: 0
6545
+ }
6546
+ }
6547
+ );
6451
6548
  }
6452
6549
  };
6453
6550
  return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { ref, className: cn("dl-test-case", className), ...props, children: [
6454
6551
  /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
6455
6552
  "div",
6456
6553
  {
6457
- className: cn("dl-test-case__row", hasError && "cursor-pointer"),
6554
+ className: cn("dl-test-case__row", hasError && "dl-cursor-pointer"),
6458
6555
  onClick: () => hasError && setExpanded((prev) => !prev),
6459
6556
  children: [
6460
6557
  /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "dl-test-case__info", children: [
6461
6558
  renderIcon(),
6462
6559
  /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "dl-test-case__name", children: test.name })
6463
6560
  ] }),
6464
- /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center gap-2", children: [
6561
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "dl-test-case__meta", children: [
6465
6562
  test.durationMs !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("span", { className: "dl-test-case__duration", children: [
6466
6563
  test.durationMs,
6467
6564
  "ms"
@@ -6470,8 +6567,8 @@ var TestCase = React86.forwardRef(
6470
6567
  import_lucide_react46.ChevronRight,
6471
6568
  {
6472
6569
  className: cn(
6473
- "size-3 text-muted-foreground transition-transform",
6474
- expanded && "rotate-90"
6570
+ "dl-test-case__chevron",
6571
+ expanded && "dl-test-case__chevron--expanded"
6475
6572
  )
6476
6573
  }
6477
6574
  )
@@ -6498,10 +6595,15 @@ var TestResults = React86.forwardRef(
6498
6595
  const skipped = tests.filter((t) => t.status === "skipped").length;
6499
6596
  return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { ref, className: cn("dl-test-results", className), ...props, children: [
6500
6597
  /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "dl-test-results__header", children: [
6501
- /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center gap-2", children: [
6502
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react46.FlaskConical, { className: "size-4 text-primary" }),
6503
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "font-semibold text-foreground", children: title }),
6504
- duration && /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("span", { className: "text-xs text-muted-foreground font-mono", children: [
6598
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "dl-test-results__header-left", children: [
6599
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
6600
+ import_lucide_react46.FlaskConical,
6601
+ {
6602
+ style: { width: "1rem", height: "1rem", color: "var(--primary)" }
6603
+ }
6604
+ ),
6605
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "dl-test-results__title", children: title }),
6606
+ duration && /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("span", { className: "dl-test-results__duration", children: [
6505
6607
  "in ",
6506
6608
  duration
6507
6609
  ] })