@yuva-devlab/ui 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -959,7 +959,7 @@ var Checkpoint = React14.forwardRef(
959
959
  ...props
960
960
  }, ref) => {
961
961
  return /* @__PURE__ */ jsx14("div", { ref, className: cn("dl-checkpoint", className), ...props, children: /* @__PURE__ */ jsxs7("div", { className: "dl-checkpoint__content", children: [
962
- /* @__PURE__ */ jsx14(History, { className: "size-3 text-muted-foreground" }),
962
+ /* @__PURE__ */ jsx14(History, { className: "dl-checkpoint__icon" }),
963
963
  /* @__PURE__ */ jsx14("span", { children: label }),
964
964
  onRestore && /* @__PURE__ */ jsx14(
965
965
  "button",
@@ -1243,11 +1243,11 @@ var CodeBlockCopyButton = React20.forwardRef(({ className, code = "", onClick, .
1243
1243
  });
1244
1244
  CodeBlockCopyButton.displayName = "CodeBlockCopyButton";
1245
1245
  var CodeBlockHeader = React20.forwardRef(({ className, filename, language, children, ...props }, ref) => /* @__PURE__ */ jsxs11("div", { ref, className: cn("dl-code-block__header", className), ...props, children: [
1246
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
1246
+ /* @__PURE__ */ jsxs11("div", { className: "dl-code-block__header-meta", children: [
1247
1247
  filename && /* @__PURE__ */ jsx19("span", { className: "dl-code-block__filename", children: filename }),
1248
1248
  language && /* @__PURE__ */ jsx19("span", { className: "dl-code-block__language", children: language })
1249
1249
  ] }),
1250
- /* @__PURE__ */ jsx19("div", { className: "flex items-center gap-1.5", children })
1250
+ /* @__PURE__ */ jsx19("div", { className: "dl-code-block__header-actions", children })
1251
1251
  ] }));
1252
1252
  CodeBlockHeader.displayName = "CodeBlockHeader";
1253
1253
  var CodeBlockContent = React20.forwardRef(
@@ -1659,7 +1659,18 @@ import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
1659
1659
  import * as React26 from "react";
1660
1660
  import { jsx as jsx26 } from "react/jsx-runtime";
1661
1661
  var Table = React26.forwardRef(
1662
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { className: "dl-table-wrapper", children: /* @__PURE__ */ jsx26("table", { ref, className: cn("dl-table", className), ...props }) })
1662
+ ({ className, hoverable = false, ...props }, ref) => /* @__PURE__ */ jsx26("div", { className: "dl-table-wrapper", children: /* @__PURE__ */ jsx26(
1663
+ "table",
1664
+ {
1665
+ ref,
1666
+ className: cn(
1667
+ "dl-table",
1668
+ hoverable && "dl-table--hoverable",
1669
+ className
1670
+ ),
1671
+ ...props
1672
+ }
1673
+ ) })
1663
1674
  );
1664
1675
  Table.displayName = "Table";
1665
1676
  var TableHeader = React26.forwardRef(
@@ -1675,7 +1686,18 @@ var TableFooter = React26.forwardRef(
1675
1686
  );
1676
1687
  TableFooter.displayName = "TableFooter";
1677
1688
  var TableRow = React26.forwardRef(
1678
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx26("tr", { ref, className: cn("dl-table__row", className), ...props })
1689
+ ({ className, hoverable, ...props }, ref) => /* @__PURE__ */ jsx26(
1690
+ "tr",
1691
+ {
1692
+ ref,
1693
+ className: cn(
1694
+ "dl-table__row",
1695
+ hoverable && "dl-table__row--hoverable",
1696
+ className
1697
+ ),
1698
+ ...props
1699
+ }
1700
+ )
1679
1701
  );
1680
1702
  TableRow.displayName = "TableRow";
1681
1703
  var TableHead = React26.forwardRef(
@@ -1891,6 +1913,7 @@ function DataTable({
1891
1913
  loading = false,
1892
1914
  emptyState,
1893
1915
  onRowClick,
1916
+ hoverable = false,
1894
1917
  className
1895
1918
  }) {
1896
1919
  const [internalPage, setInternalPage] = React29.useState(1);
@@ -1956,7 +1979,7 @@ function DataTable({
1956
1979
  return typeof val === "string" || typeof val === "number" ? val : index;
1957
1980
  };
1958
1981
  return /* @__PURE__ */ jsxs20("div", { className: cn("dl-data-table-container", className), children: [
1959
- /* @__PURE__ */ jsx31("div", { className: "dl-data-table-wrapper", children: /* @__PURE__ */ jsxs20(Table, { children: [
1982
+ /* @__PURE__ */ jsx31("div", { className: "dl-data-table-wrapper", children: /* @__PURE__ */ jsxs20(Table, { hoverable: hoverable || Boolean(onRowClick), children: [
1960
1983
  /* @__PURE__ */ jsx31(TableHeader, { children: /* @__PURE__ */ jsx31(TableRow, { children: columns.map((col) => {
1961
1984
  const isSorted = sortKey === col.key;
1962
1985
  return /* @__PURE__ */ jsx31(
@@ -2706,16 +2729,10 @@ var SearchInput = React42.forwardRef(
2706
2729
  onClick: onClear,
2707
2730
  "aria-label": "Clear search query",
2708
2731
  tabIndex: -1,
2709
- children: /* @__PURE__ */ jsx44(X2, { className: "size-4", "aria-hidden": "true" })
2732
+ children: /* @__PURE__ */ jsx44(X2, { className: "dl-search-icon", "aria-hidden": "true" })
2710
2733
  }
2711
2734
  ) : null;
2712
- const trailingIcon = loading ? /* @__PURE__ */ jsx44(
2713
- Loader22,
2714
- {
2715
- className: "size-4 animate-spin text-muted-foreground",
2716
- "aria-hidden": "true"
2717
- }
2718
- ) : clearButton ?? endIcon;
2735
+ const trailingIcon = loading ? /* @__PURE__ */ jsx44(Loader22, { className: "dl-search-spinner", "aria-hidden": "true" }) : clearButton ?? endIcon;
2719
2736
  return /* @__PURE__ */ jsx44(
2720
2737
  Input,
2721
2738
  {
@@ -3049,7 +3066,7 @@ function MultiSelect({
3049
3066
  onClick: (e) => handleRemove(e, opt.value),
3050
3067
  "aria-label": `Remove ${opt.label}`,
3051
3068
  className: "dl-multi-select-chip__remove",
3052
- children: /* @__PURE__ */ jsx49(X3, { className: "size-3" })
3069
+ children: /* @__PURE__ */ jsx49(X3, { className: "dl-multi-select-chip__icon" })
3053
3070
  }
3054
3071
  )
3055
3072
  ] }, opt.value)),
@@ -3059,7 +3076,7 @@ function MultiSelect({
3059
3076
  " more"
3060
3077
  ] })
3061
3078
  ] }) }),
3062
- /* @__PURE__ */ jsx49(ChevronDown4, { className: "size-4 shrink-0 text-muted-foreground" })
3079
+ /* @__PURE__ */ jsx49(ChevronDown4, { className: "dl-multi-select-chevron" })
3063
3080
  ]
3064
3081
  }
3065
3082
  ) }),
@@ -4887,7 +4904,7 @@ var PromptInput = React74.forwardRef(
4887
4904
  ...props,
4888
4905
  children: [
4889
4906
  files.length > 0 && /* @__PURE__ */ jsx78("div", { className: "dl-prompt-input__attachments", children: files.map((file) => /* @__PURE__ */ jsxs48("span", { className: "dl-prompt-input__chip", children: [
4890
- /* @__PURE__ */ jsx78(FileText, { className: "size-3 text-muted-foreground" }),
4907
+ /* @__PURE__ */ jsx78(FileText, { className: "dl-prompt-input__chip-icon" }),
4891
4908
  /* @__PURE__ */ jsx78("span", { className: "dl-prompt-input__chip-name", children: file.name }),
4892
4909
  /* @__PURE__ */ jsx78(
4893
4910
  "button",
@@ -4896,7 +4913,7 @@ var PromptInput = React74.forwardRef(
4896
4913
  onClick: () => handleRemoveFile(file.id),
4897
4914
  "aria-label": `Remove ${file.name}`,
4898
4915
  className: "dl-prompt-input__chip-remove",
4899
- children: /* @__PURE__ */ jsx78(X5, { className: "size-3" })
4916
+ children: /* @__PURE__ */ jsx78(X5, { className: "dl-prompt-input__chip-icon" })
4900
4917
  }
4901
4918
  )
4902
4919
  ] }, file.id)) }),
@@ -5149,18 +5166,18 @@ var TerminalHeader = React77.forwardRef(
5149
5166
  className: cn("dl-terminal__header", className),
5150
5167
  ...props,
5151
5168
  children: [
5152
- /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-2", children: [
5169
+ /* @__PURE__ */ jsxs51("div", { className: "dl-terminal__header-left", children: [
5153
5170
  windowControls && /* @__PURE__ */ jsxs51("div", { className: "dl-terminal__dots", "aria-hidden": "true", children: [
5154
5171
  /* @__PURE__ */ jsx81("span", { className: "dl-terminal__dot" }),
5155
5172
  /* @__PURE__ */ jsx81("span", { className: "dl-terminal__dot" }),
5156
5173
  /* @__PURE__ */ jsx81("span", { className: "dl-terminal__dot" })
5157
5174
  ] }),
5158
5175
  /* @__PURE__ */ jsxs51("div", { className: "dl-terminal__title", children: [
5159
- /* @__PURE__ */ jsx81(TerminalIcon, { className: "size-3.5" }),
5176
+ /* @__PURE__ */ jsx81(TerminalIcon, { className: "dl-terminal__icon" }),
5160
5177
  /* @__PURE__ */ jsx81("span", { children: command ?? "Terminal" })
5161
5178
  ] })
5162
5179
  ] }),
5163
- /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-1.5", children: [
5180
+ /* @__PURE__ */ jsxs51("div", { className: "dl-terminal__header-actions", children: [
5164
5181
  /* @__PURE__ */ jsx81(
5165
5182
  "button",
5166
5183
  {
@@ -5168,7 +5185,13 @@ var TerminalHeader = React77.forwardRef(
5168
5185
  onClick: handleCopy,
5169
5186
  "aria-label": copied ? "Copied" : "Copy output",
5170
5187
  className: "dl-code-block__copy-btn",
5171
- children: copied ? /* @__PURE__ */ jsx81(Check10, { className: "size-3.5 text-success" }) : /* @__PURE__ */ jsx81(Copy3, { className: "size-3.5" })
5188
+ children: copied ? /* @__PURE__ */ jsx81(
5189
+ Check10,
5190
+ {
5191
+ className: "dl-terminal__icon",
5192
+ style: { color: "var(--success, #22c55e)" }
5193
+ }
5194
+ ) : /* @__PURE__ */ jsx81(Copy3, { className: "dl-terminal__icon" })
5172
5195
  }
5173
5196
  ),
5174
5197
  children
@@ -5324,16 +5347,25 @@ var ModelSelector = React78.forwardRef(
5324
5347
  "aria-haspopup": "listbox",
5325
5348
  "aria-expanded": isOpen,
5326
5349
  children: [
5327
- /* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-1.5", children: [
5328
- currentModel?.icon ?? /* @__PURE__ */ jsx82(Bot, { className: "size-3.5 text-primary" }),
5329
- /* @__PURE__ */ jsx82("span", { className: "font-semibold text-foreground", children: currentModel ? currentModel.name : placeholder })
5350
+ /* @__PURE__ */ jsxs52("div", { className: "dl-model-selector__trigger-label", children: [
5351
+ currentModel?.icon ?? /* @__PURE__ */ jsx82(
5352
+ Bot,
5353
+ {
5354
+ style: {
5355
+ width: "0.875rem",
5356
+ height: "0.875rem",
5357
+ color: "var(--primary)"
5358
+ }
5359
+ }
5360
+ ),
5361
+ /* @__PURE__ */ jsx82("span", { style: { fontWeight: 600, color: "var(--foreground)" }, children: currentModel ? currentModel.name : placeholder })
5330
5362
  ] }),
5331
5363
  /* @__PURE__ */ jsx82(
5332
5364
  ChevronDown9,
5333
5365
  {
5334
5366
  className: cn(
5335
- "size-3 text-muted-foreground transition-transform duration-200",
5336
- isOpen && "rotate-180"
5367
+ "dl-model-selector__chevron",
5368
+ isOpen && "dl-model-selector__chevron--open"
5337
5369
  )
5338
5370
  }
5339
5371
  )
@@ -5341,8 +5373,8 @@ var ModelSelector = React78.forwardRef(
5341
5373
  }
5342
5374
  ),
5343
5375
  isOpen && /* @__PURE__ */ jsxs52("div", { className: "dl-model-selector__content", role: "listbox", children: [
5344
- models.length > 3 && /* @__PURE__ */ jsxs52("div", { className: "relative", children: [
5345
- /* @__PURE__ */ jsx82(Search5, { className: "absolute left-2 top-2.5 size-3 text-muted-foreground" }),
5376
+ models.length > 3 && /* @__PURE__ */ jsxs52("div", { className: "dl-model-selector__search-wrapper", children: [
5377
+ /* @__PURE__ */ jsx82(Search5, { className: "dl-model-selector__search-icon" }),
5346
5378
  /* @__PURE__ */ jsx82(
5347
5379
  "input",
5348
5380
  {
@@ -5350,12 +5382,13 @@ var ModelSelector = React78.forwardRef(
5350
5382
  placeholder: "Filter models...",
5351
5383
  value: query,
5352
5384
  onChange: (e) => setQuery(e.target.value),
5353
- className: "dl-model-selector__search w-full pl-7",
5385
+ className: "dl-model-selector__search",
5386
+ style: { width: "100%", paddingLeft: "1.75rem" },
5354
5387
  autoFocus: true
5355
5388
  }
5356
5389
  )
5357
5390
  ] }),
5358
- /* @__PURE__ */ jsx82("div", { className: "flex flex-col gap-0.5", children: filteredModels.length === 0 ? /* @__PURE__ */ jsx82("div", { className: "p-3 text-center text-xs text-muted-foreground", children: "No matching models found" }) : filteredModels.map((model) => {
5391
+ /* @__PURE__ */ jsx82("div", { className: "dl-model-selector__list", children: filteredModels.length === 0 ? /* @__PURE__ */ jsx82("div", { className: "dl-model-selector__empty", children: "No matching models found" }) : filteredModels.map((model) => {
5359
5392
  const isSelected = model.id === activeId;
5360
5393
  return /* @__PURE__ */ jsxs52(
5361
5394
  "div",
@@ -5367,14 +5400,24 @@ var ModelSelector = React78.forwardRef(
5367
5400
  className: cn(
5368
5401
  "dl-model-selector__item",
5369
5402
  isSelected && "dl-model-selector__item--active",
5370
- model.disabled && "opacity-50 cursor-not-allowed"
5403
+ model.disabled && "dl-cursor-not-allowed"
5371
5404
  ),
5405
+ style: model.disabled ? { opacity: 0.5 } : void 0,
5372
5406
  children: [
5373
5407
  /* @__PURE__ */ jsxs52("div", { className: "dl-model-selector__item-info", children: [
5374
5408
  /* @__PURE__ */ jsxs52("div", { className: "dl-model-selector__item-title", children: [
5375
- model.icon ?? /* @__PURE__ */ jsx82(Sparkles4, { className: "size-3 text-primary" }),
5409
+ model.icon ?? /* @__PURE__ */ jsx82(
5410
+ Sparkles4,
5411
+ {
5412
+ style: {
5413
+ width: "0.75rem",
5414
+ height: "0.75rem",
5415
+ color: "var(--primary)"
5416
+ }
5417
+ }
5418
+ ),
5376
5419
  /* @__PURE__ */ jsx82("span", { children: model.name }),
5377
- /* @__PURE__ */ jsxs52("span", { className: "text-xs text-muted-foreground font-normal", children: [
5420
+ /* @__PURE__ */ jsxs52("span", { className: "dl-model-selector__provider", children: [
5378
5421
  "(",
5379
5422
  model.provider,
5380
5423
  ")"
@@ -5434,11 +5477,11 @@ var PlanHeader = React79.forwardRef(
5434
5477
  "span",
5435
5478
  {
5436
5479
  className: cn(
5437
- "px-2 py-0.5 rounded-full text-xs font-semibold uppercase tracking-wider",
5438
- status === "completed" && "bg-success/15 text-success",
5439
- status === "in-progress" && "bg-primary/15 text-primary",
5440
- status === "failed" && "bg-destructive/15 text-destructive",
5441
- status === "pending" && "bg-muted text-muted-foreground"
5480
+ "dl-plan__status-chip",
5481
+ status === "completed" && "dl-plan__status-chip--completed",
5482
+ status === "in-progress" && "dl-plan__status-chip--in-progress",
5483
+ status === "failed" && "dl-plan__status-chip--failed",
5484
+ status === "pending" && "dl-plan__status-chip--pending"
5442
5485
  ),
5443
5486
  children: status
5444
5487
  }
@@ -5463,14 +5506,47 @@ var PlanTask = React79.forwardRef(
5463
5506
  const renderIcon = () => {
5464
5507
  switch (status) {
5465
5508
  case "completed":
5466
- return /* @__PURE__ */ jsx83(CheckCircle24, { className: "size-4 text-success" });
5509
+ return /* @__PURE__ */ jsx83(
5510
+ CheckCircle24,
5511
+ {
5512
+ style: { width: "1rem", height: "1rem", color: "var(--success)" }
5513
+ }
5514
+ );
5467
5515
  case "running":
5468
- return /* @__PURE__ */ jsx83(Loader25, { className: "size-4 text-primary animate-spin" });
5516
+ return /* @__PURE__ */ jsx83(
5517
+ Loader25,
5518
+ {
5519
+ style: {
5520
+ width: "1rem",
5521
+ height: "1rem",
5522
+ color: "var(--primary)",
5523
+ animation: "spin 1s linear infinite"
5524
+ }
5525
+ }
5526
+ );
5469
5527
  case "failed":
5470
- return /* @__PURE__ */ jsx83(XCircle, { className: "size-4 text-destructive" });
5528
+ return /* @__PURE__ */ jsx83(
5529
+ XCircle,
5530
+ {
5531
+ style: {
5532
+ width: "1rem",
5533
+ height: "1rem",
5534
+ color: "var(--destructive)"
5535
+ }
5536
+ }
5537
+ );
5471
5538
  case "pending":
5472
5539
  default:
5473
- return /* @__PURE__ */ jsx83(Circle6, { className: "size-4 text-muted-foreground" });
5540
+ return /* @__PURE__ */ jsx83(
5541
+ Circle6,
5542
+ {
5543
+ style: {
5544
+ width: "1rem",
5545
+ height: "1rem",
5546
+ color: "var(--muted-foreground)"
5547
+ }
5548
+ }
5549
+ );
5474
5550
  }
5475
5551
  };
5476
5552
  return /* @__PURE__ */ jsxs53(
@@ -5493,14 +5569,14 @@ var PlanTask = React79.forwardRef(
5493
5569
  /* @__PURE__ */ jsx83("div", { className: "dl-plan__task-icon", children: renderIcon() }),
5494
5570
  /* @__PURE__ */ jsxs53("div", { className: "dl-plan__task-body", children: [
5495
5571
  /* @__PURE__ */ jsx83("span", { className: "dl-plan__task-title", children: title }),
5496
- description && !expanded && /* @__PURE__ */ jsx83("span", { className: "dl-plan__task-desc line-clamp-1", children: description })
5572
+ description && !expanded && /* @__PURE__ */ jsx83("span", { className: "dl-plan__task-desc dl-line-clamp-1", children: description })
5497
5573
  ] }),
5498
5574
  hasChildren && /* @__PURE__ */ jsx83(
5499
5575
  ChevronRight6,
5500
5576
  {
5501
5577
  className: cn(
5502
- "size-3.5 text-muted-foreground transition-transform shrink-0 mt-0.5",
5503
- expanded && "rotate-90"
5578
+ "dl-plan__chevron",
5579
+ expanded && "dl-plan__chevron--expanded"
5504
5580
  )
5505
5581
  }
5506
5582
  )
@@ -5508,7 +5584,7 @@ var PlanTask = React79.forwardRef(
5508
5584
  }
5509
5585
  ),
5510
5586
  expanded && hasChildren && /* @__PURE__ */ jsxs53("div", { className: "dl-plan__task-details", children: [
5511
- description && /* @__PURE__ */ jsx83("div", { className: "mb-2 leading-relaxed", children: description }),
5587
+ description && /* @__PURE__ */ jsx83("div", { className: "dl-plan__desc-block", children: description }),
5512
5588
  children
5513
5589
  ] })
5514
5590
  ]
@@ -5586,9 +5662,9 @@ var SourceCard = React80.forwardRef(
5586
5662
  children: [
5587
5663
  /* @__PURE__ */ jsxs54("div", { className: "dl-source-card__meta", children: [
5588
5664
  /* @__PURE__ */ jsx84("span", { className: "dl-source-card__index", children: source.index }),
5589
- /* @__PURE__ */ jsx84(Globe, { className: "size-3 text-muted-foreground shrink-0" }),
5665
+ /* @__PURE__ */ jsx84(Globe, { className: "dl-source-card__icon" }),
5590
5666
  /* @__PURE__ */ jsx84("span", { className: "dl-source-card__domain", children: domain }),
5591
- /* @__PURE__ */ jsx84(ExternalLink, { className: "size-2.5 ml-auto text-muted-foreground shrink-0 opacity-70" })
5667
+ /* @__PURE__ */ jsx84(ExternalLink, { className: "dl-source-card__external" })
5592
5668
  ] }),
5593
5669
  /* @__PURE__ */ jsx84("div", { className: "dl-source-card__title", title: source.title, children: source.title })
5594
5670
  ]
@@ -5636,15 +5712,15 @@ import {
5636
5712
  import { jsx as jsx85, jsxs as jsxs55 } from "react/jsx-runtime";
5637
5713
  var getFileIcon = (name) => {
5638
5714
  if (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".js") || name.endsWith(".jsx")) {
5639
- return /* @__PURE__ */ jsx85(FileCode, { className: "size-3.5 text-primary" });
5715
+ return /* @__PURE__ */ jsx85(FileCode, { className: "dl-file-tree__glyph dl-file-tree__glyph--primary" });
5640
5716
  }
5641
5717
  if (name.endsWith(".json")) {
5642
- return /* @__PURE__ */ jsx85(FileJson, { className: "size-3.5 text-warning" });
5718
+ return /* @__PURE__ */ jsx85(FileJson, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" });
5643
5719
  }
5644
5720
  if (name.endsWith(".md") || name.endsWith(".mdx")) {
5645
- return /* @__PURE__ */ jsx85(FileText2, { className: "size-3.5 text-info" });
5721
+ return /* @__PURE__ */ jsx85(FileText2, { className: "dl-file-tree__glyph dl-file-tree__glyph--info" });
5646
5722
  }
5647
- return /* @__PURE__ */ jsx85(File, { className: "size-3.5 text-muted-foreground" });
5723
+ return /* @__PURE__ */ jsx85(File, { className: "dl-file-tree__glyph dl-file-tree__glyph--muted" });
5648
5724
  };
5649
5725
  var FileTreeNode = React81.forwardRef(
5650
5726
  ({ className, item, level = 0, selectedId, onSelect, ...props }, ref) => {
@@ -5658,7 +5734,7 @@ var FileTreeNode = React81.forwardRef(
5658
5734
  }
5659
5735
  onSelect?.(item);
5660
5736
  };
5661
- return /* @__PURE__ */ jsxs55("div", { ref, className: cn("flex flex-col", className), ...props, children: [
5737
+ return /* @__PURE__ */ jsxs55("div", { ref, className: cn("dl-file-tree__item", className), ...props, children: [
5662
5738
  /* @__PURE__ */ jsxs55(
5663
5739
  "div",
5664
5740
  {
@@ -5672,12 +5748,12 @@ var FileTreeNode = React81.forwardRef(
5672
5748
  ChevronRight7,
5673
5749
  {
5674
5750
  className: cn(
5675
- "size-3 text-muted-foreground transition-transform shrink-0",
5676
- isOpen && "rotate-90"
5751
+ "dl-file-tree__chevron",
5752
+ isOpen && "dl-file-tree__chevron--open"
5677
5753
  )
5678
5754
  }
5679
5755
  ),
5680
- /* @__PURE__ */ jsx85("span", { className: "dl-file-tree__icon", children: isFolder ? isOpen ? /* @__PURE__ */ jsx85(FolderOpen, { className: "size-3.5 text-warning shrink-0" }) : /* @__PURE__ */ jsx85(Folder, { className: "size-3.5 text-warning shrink-0" }) : getFileIcon(item.name) }),
5756
+ /* @__PURE__ */ jsx85("span", { className: "dl-file-tree__icon", children: isFolder ? isOpen ? /* @__PURE__ */ jsx85(FolderOpen, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" }) : /* @__PURE__ */ jsx85(Folder, { className: "dl-file-tree__glyph dl-file-tree__glyph--warning" }) : getFileIcon(item.name) }),
5681
5757
  /* @__PURE__ */ jsx85("span", { className: "dl-file-tree__name", children: item.name })
5682
5758
  ]
5683
5759
  }
@@ -5752,13 +5828,13 @@ var StackFrame = React82.forwardRef(
5752
5828
  className: "dl-stack-frame__header",
5753
5829
  onClick: () => hasSnippet && setExpanded((prev) => !prev),
5754
5830
  children: [
5755
- /* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-1.5 min-w-0", children: [
5831
+ /* @__PURE__ */ jsxs56("div", { className: "dl-stack-frame__fn-wrapper", children: [
5756
5832
  hasSnippet && /* @__PURE__ */ jsx86(
5757
5833
  ChevronRight8,
5758
5834
  {
5759
5835
  className: cn(
5760
- "size-3 text-muted-foreground transition-transform shrink-0",
5761
- expanded && "rotate-90"
5836
+ "dl-stack-frame__chevron",
5837
+ expanded && "dl-stack-frame__chevron--expanded"
5762
5838
  )
5763
5839
  }
5764
5840
  ),
@@ -5843,24 +5919,33 @@ import { jsx as jsx87, jsxs as jsxs57 } from "react/jsx-runtime";
5843
5919
  var getStatusBadge = (status) => {
5844
5920
  switch (status) {
5845
5921
  case "running":
5846
- return /* @__PURE__ */ jsxs57("span", { className: "flex items-center gap-1 text-xs text-primary font-medium", children: [
5847
- /* @__PURE__ */ jsx87(Loader26, { className: "size-3 animate-spin" }),
5922
+ return /* @__PURE__ */ jsxs57("span", { className: "dl-subagent__status dl-subagent__status--running", children: [
5923
+ /* @__PURE__ */ jsx87(
5924
+ Loader26,
5925
+ {
5926
+ style: {
5927
+ width: "0.75rem",
5928
+ height: "0.75rem",
5929
+ animation: "spin 1s linear infinite"
5930
+ }
5931
+ }
5932
+ ),
5848
5933
  /* @__PURE__ */ jsx87("span", { children: "Running" })
5849
5934
  ] });
5850
5935
  case "completed":
5851
- return /* @__PURE__ */ jsxs57("span", { className: "flex items-center gap-1 text-xs text-success font-medium", children: [
5852
- /* @__PURE__ */ jsx87(CheckCircle25, { className: "size-3" }),
5936
+ return /* @__PURE__ */ jsxs57("span", { className: "dl-subagent__status dl-subagent__status--completed", children: [
5937
+ /* @__PURE__ */ jsx87(CheckCircle25, { style: { width: "0.75rem", height: "0.75rem" } }),
5853
5938
  /* @__PURE__ */ jsx87("span", { children: "Done" })
5854
5939
  ] });
5855
5940
  case "failed":
5856
- return /* @__PURE__ */ jsxs57("span", { className: "flex items-center gap-1 text-xs text-destructive font-medium", children: [
5857
- /* @__PURE__ */ jsx87(XCircle2, { className: "size-3" }),
5941
+ return /* @__PURE__ */ jsxs57("span", { className: "dl-subagent__status dl-subagent__status--failed", children: [
5942
+ /* @__PURE__ */ jsx87(XCircle2, { style: { width: "0.75rem", height: "0.75rem" } }),
5858
5943
  /* @__PURE__ */ jsx87("span", { children: "Failed" })
5859
5944
  ] });
5860
5945
  case "idle":
5861
5946
  default:
5862
- return /* @__PURE__ */ jsxs57("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
5863
- /* @__PURE__ */ jsx87(Circle7, { className: "size-3" }),
5947
+ return /* @__PURE__ */ jsxs57("span", { className: "dl-subagent__status dl-subagent__status--idle", children: [
5948
+ /* @__PURE__ */ jsx87(Circle7, { style: { width: "0.75rem", height: "0.75rem" } }),
5864
5949
  /* @__PURE__ */ jsx87("span", { children: "Idle" })
5865
5950
  ] });
5866
5951
  }
@@ -5894,8 +5979,8 @@ var Subagent = React83.forwardRef(
5894
5979
  ] })
5895
5980
  ] }),
5896
5981
  /* @__PURE__ */ jsxs57("div", { className: "dl-subagent__badges", children: [
5897
- model && /* @__PURE__ */ jsx87("span", { className: "px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground border border-border", children: model }),
5898
- conversationId && /* @__PURE__ */ jsxs57("span", { className: "px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground", children: [
5982
+ model && /* @__PURE__ */ jsx87("span", { className: "dl-subagent__chip", children: model }),
5983
+ conversationId && /* @__PURE__ */ jsxs57("span", { className: "dl-subagent__chip", children: [
5899
5984
  "#",
5900
5985
  conversationId.slice(0, 6)
5901
5986
  ] }),
@@ -5904,8 +5989,8 @@ var Subagent = React83.forwardRef(
5904
5989
  ChevronRight9,
5905
5990
  {
5906
5991
  className: cn(
5907
- "size-3.5 text-muted-foreground transition-transform shrink-0 ml-1",
5908
- open && "rotate-90"
5992
+ "dl-subagent__chevron",
5993
+ open && "dl-subagent__chevron--open"
5909
5994
  )
5910
5995
  }
5911
5996
  )
@@ -6015,10 +6100,30 @@ var QueueItem = React85.forwardRef(
6015
6100
  case "active":
6016
6101
  return /* @__PURE__ */ jsx89(Loader27, { className: "size-3 text-primary animate-spin shrink-0" });
6017
6102
  case "paused":
6018
- return /* @__PURE__ */ jsx89(Pause, { className: "size-3 text-warning shrink-0" });
6103
+ return /* @__PURE__ */ jsx89(
6104
+ Pause,
6105
+ {
6106
+ style: {
6107
+ width: "0.75rem",
6108
+ height: "0.75rem",
6109
+ color: "var(--warning, #eab308)",
6110
+ flexShrink: 0
6111
+ }
6112
+ }
6113
+ );
6019
6114
  case "waiting":
6020
6115
  default:
6021
- return /* @__PURE__ */ jsx89(Clock, { className: "size-3 text-muted-foreground shrink-0" });
6116
+ return /* @__PURE__ */ jsx89(
6117
+ Clock,
6118
+ {
6119
+ style: {
6120
+ width: "0.75rem",
6121
+ height: "0.75rem",
6122
+ color: "var(--muted-foreground)",
6123
+ flexShrink: 0
6124
+ }
6125
+ }
6126
+ );
6022
6127
  }
6023
6128
  };
6024
6129
  return /* @__PURE__ */ jsxs59("div", { ref, className: cn("dl-queue-item", className), ...props, children: [
@@ -6032,23 +6137,23 @@ var QueueItem = React85.forwardRef(
6032
6137
  "span",
6033
6138
  {
6034
6139
  className: cn(
6035
- "px-1.5 py-0.5 rounded text-[10px] font-semibold uppercase tracking-wider",
6036
- task.priority === "high" && "bg-destructive/15 text-destructive",
6037
- task.priority === "normal" && "bg-primary/15 text-primary",
6038
- task.priority === "low" && "bg-muted text-muted-foreground"
6140
+ "dl-queue-item__priority",
6141
+ task.priority === "high" && "dl-queue-item__priority--high",
6142
+ task.priority === "normal" && "dl-queue-item__priority--normal",
6143
+ task.priority === "low" && "dl-queue-item__priority--low"
6039
6144
  ),
6040
6145
  children: task.priority
6041
6146
  }
6042
6147
  ),
6043
- task.estimatedDuration && /* @__PURE__ */ jsx89("span", { className: "text-xs text-muted-foreground font-mono", children: task.estimatedDuration }),
6148
+ task.estimatedDuration && /* @__PURE__ */ jsx89("span", { className: "dl-queue-item__duration", children: task.estimatedDuration }),
6044
6149
  onRemove && /* @__PURE__ */ jsx89(
6045
6150
  "button",
6046
6151
  {
6047
6152
  type: "button",
6048
6153
  onClick: onRemove,
6049
6154
  "aria-label": "Remove task",
6050
- className: "text-muted-foreground hover:text-foreground p-0.5 rounded",
6051
- children: /* @__PURE__ */ jsx89(X6, { className: "size-3.5" })
6155
+ className: "dl-queue-item__remove-btn",
6156
+ children: /* @__PURE__ */ jsx89(X6, { style: { width: "0.875rem", height: "0.875rem" } })
6052
6157
  }
6053
6158
  )
6054
6159
  ] })
@@ -6067,11 +6172,16 @@ var Queue = React85.forwardRef(
6067
6172
  }, ref) => {
6068
6173
  return /* @__PURE__ */ jsxs59("div", { ref, className: cn("dl-queue", className), ...props, children: [
6069
6174
  /* @__PURE__ */ jsxs59("div", { className: "dl-queue__header", children: [
6070
- /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1.5", children: [
6071
- /* @__PURE__ */ jsx89(ListOrdered, { className: "size-4 text-primary" }),
6175
+ /* @__PURE__ */ jsxs59("div", { className: "dl-queue__header-left", children: [
6176
+ /* @__PURE__ */ jsx89(
6177
+ ListOrdered,
6178
+ {
6179
+ style: { width: "1rem", height: "1rem", color: "var(--primary)" }
6180
+ }
6181
+ ),
6072
6182
  /* @__PURE__ */ jsx89("span", { children: title })
6073
6183
  ] }),
6074
- /* @__PURE__ */ jsxs59("span", { className: "text-xs text-muted-foreground font-normal", children: [
6184
+ /* @__PURE__ */ jsxs59("span", { className: "dl-queue__header-count", children: [
6075
6185
  tasks.length,
6076
6186
  " item",
6077
6187
  tasks.length === 1 ? "" : "s"
@@ -6114,21 +6224,31 @@ var TestCase = React86.forwardRef(
6114
6224
  return /* @__PURE__ */ jsx90(XCircle3, { className: "size-4 text-destructive shrink-0" });
6115
6225
  case "skipped":
6116
6226
  default:
6117
- return /* @__PURE__ */ jsx90(MinusCircle, { className: "size-4 text-muted-foreground shrink-0" });
6227
+ return /* @__PURE__ */ jsx90(
6228
+ MinusCircle,
6229
+ {
6230
+ style: {
6231
+ width: "1rem",
6232
+ height: "1rem",
6233
+ color: "var(--muted-foreground)",
6234
+ flexShrink: 0
6235
+ }
6236
+ }
6237
+ );
6118
6238
  }
6119
6239
  };
6120
6240
  return /* @__PURE__ */ jsxs60("div", { ref, className: cn("dl-test-case", className), ...props, children: [
6121
6241
  /* @__PURE__ */ jsxs60(
6122
6242
  "div",
6123
6243
  {
6124
- className: cn("dl-test-case__row", hasError && "cursor-pointer"),
6244
+ className: cn("dl-test-case__row", hasError && "dl-cursor-pointer"),
6125
6245
  onClick: () => hasError && setExpanded((prev) => !prev),
6126
6246
  children: [
6127
6247
  /* @__PURE__ */ jsxs60("div", { className: "dl-test-case__info", children: [
6128
6248
  renderIcon(),
6129
6249
  /* @__PURE__ */ jsx90("span", { className: "dl-test-case__name", children: test.name })
6130
6250
  ] }),
6131
- /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
6251
+ /* @__PURE__ */ jsxs60("div", { className: "dl-test-case__meta", children: [
6132
6252
  test.durationMs !== void 0 && /* @__PURE__ */ jsxs60("span", { className: "dl-test-case__duration", children: [
6133
6253
  test.durationMs,
6134
6254
  "ms"
@@ -6137,8 +6257,8 @@ var TestCase = React86.forwardRef(
6137
6257
  ChevronRight10,
6138
6258
  {
6139
6259
  className: cn(
6140
- "size-3 text-muted-foreground transition-transform",
6141
- expanded && "rotate-90"
6260
+ "dl-test-case__chevron",
6261
+ expanded && "dl-test-case__chevron--expanded"
6142
6262
  )
6143
6263
  }
6144
6264
  )
@@ -6165,10 +6285,15 @@ var TestResults = React86.forwardRef(
6165
6285
  const skipped = tests.filter((t) => t.status === "skipped").length;
6166
6286
  return /* @__PURE__ */ jsxs60("div", { ref, className: cn("dl-test-results", className), ...props, children: [
6167
6287
  /* @__PURE__ */ jsxs60("div", { className: "dl-test-results__header", children: [
6168
- /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
6169
- /* @__PURE__ */ jsx90(FlaskConical, { className: "size-4 text-primary" }),
6170
- /* @__PURE__ */ jsx90("span", { className: "font-semibold text-foreground", children: title }),
6171
- duration && /* @__PURE__ */ jsxs60("span", { className: "text-xs text-muted-foreground font-mono", children: [
6288
+ /* @__PURE__ */ jsxs60("div", { className: "dl-test-results__header-left", children: [
6289
+ /* @__PURE__ */ jsx90(
6290
+ FlaskConical,
6291
+ {
6292
+ style: { width: "1rem", height: "1rem", color: "var(--primary)" }
6293
+ }
6294
+ ),
6295
+ /* @__PURE__ */ jsx90("span", { className: "dl-test-results__title", children: title }),
6296
+ duration && /* @__PURE__ */ jsxs60("span", { className: "dl-test-results__duration", children: [
6172
6297
  "in ",
6173
6298
  duration
6174
6299
  ] })
@@ -6588,7 +6713,7 @@ var LegalFooter = React95.forwardRef(
6588
6713
  className: cn("dl-legal-footer dl-legal-footer--sidebar", className),
6589
6714
  ...props,
6590
6715
  children: [
6591
- /* @__PURE__ */ jsx101("span", { children: appName ? `${appName} ${version ?? ""}`.trim() : version ?? "v1.0.0" }),
6716
+ /* @__PURE__ */ jsx101("span", { children: appName ? `${appName} ${version ?? ""}`.trim() : version ?? "" }),
6592
6717
  /* @__PURE__ */ jsxs64("span", { children: [
6593
6718
  "\xA9 ",
6594
6719
  currentYear,