@toolr/ui-design 0.1.8 → 0.1.9

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 (100) hide show
  1. package/ai-manifest.json +35 -20
  2. package/components/composites/dashboard-list-item.tsx +172 -0
  3. package/components/composites/dashboard-panel.tsx +218 -0
  4. package/components/content/info-panel-primitives.tsx +9 -8
  5. package/components/diagrams/diagram-utils.tsx +2 -1
  6. package/components/hooks/use-dropdown-portal.ts +39 -0
  7. package/components/lib/accent-context.ts +10 -0
  8. package/components/lib/{ai-tools.tsx → coding-agents.tsx} +23 -8
  9. package/components/lib/custom-icons.tsx +37 -0
  10. package/components/lib/git-providers.tsx +39 -0
  11. package/components/lib/theme-engine.ts +59 -10
  12. package/components/lib/toolr-brand.tsx +23 -9
  13. package/components/sections/captured-issues/captured-issues-panel.tsx +17 -8
  14. package/components/sections/{ai-tools-paths/tools-paths-panel.tsx → coding-agent-paths/agent-paths-panel.tsx} +70 -62
  15. package/components/sections/coding-agent-paths/index.ts +37 -0
  16. package/components/sections/{ai-tools-paths → coding-agent-paths}/types.ts +28 -28
  17. package/components/sections/coding-agent-paths/use-agent-paths.ts +159 -0
  18. package/components/sections/golden-snapshots/file-diff-viewer.tsx +10 -9
  19. package/components/sections/golden-snapshots/golden-sync-panel.tsx +12 -3
  20. package/components/sections/golden-snapshots/snapshot-manager.tsx +9 -7
  21. package/components/sections/golden-snapshots/status-overview.tsx +8 -8
  22. package/components/sections/golden-snapshots/version-manager.tsx +6 -6
  23. package/components/sections/prompt-editor/file-type-tabbed-prompt-editor.tsx +3 -3
  24. package/components/sections/prompt-editor/index.ts +1 -1
  25. package/components/sections/prompt-editor/simulator-prompt-editor.tsx +13 -5
  26. package/components/sections/prompt-editor/tabbed-prompt-editor.tsx +18 -10
  27. package/components/sections/prompt-editor/types.ts +2 -2
  28. package/components/sections/report-bug/report-bug-form.tsx +12 -4
  29. package/components/sections/report-bug/screenshot-uploader.tsx +11 -3
  30. package/components/sections/snapshot-browser/snapshot-browser-panel.tsx +12 -4
  31. package/components/sections/snapshot-browser/snapshot-tree.tsx +5 -4
  32. package/components/sections/snapshot-browser/types.ts +1 -1
  33. package/components/sections/snippets-editor/snippets-editor.tsx +16 -9
  34. package/components/settings/SettingsHeader.tsx +2 -2
  35. package/components/settings/SettingsPanel.tsx +11 -3
  36. package/components/settings/SettingsTreeNav.tsx +15 -9
  37. package/components/ui/action-dialog.tsx +24 -30
  38. package/components/ui/ai-action-button.tsx +10 -7
  39. package/components/ui/ai-execution-action-buttons.tsx +13 -5
  40. package/components/ui/badge.tsx +7 -4
  41. package/components/ui/bottom-panel-header.tsx +9 -5
  42. package/components/ui/breadcrumb.tsx +9 -1
  43. package/components/ui/{extension-list-card.tsx → capability-list-card.tsx} +13 -5
  44. package/components/ui/checkbox.tsx +6 -3
  45. package/components/ui/collapsible-section.tsx +38 -29
  46. package/components/ui/confirm-badge.tsx +7 -4
  47. package/components/ui/cookie-consent.tsx +13 -7
  48. package/components/ui/detail-section.tsx +24 -16
  49. package/components/ui/detail-view-wrapper.tsx +30 -22
  50. package/components/ui/editor-placeholder-card.tsx +28 -24
  51. package/components/ui/editor-toolbar.tsx +7 -4
  52. package/components/ui/execution-details-panel.tsx +10 -5
  53. package/components/ui/file-structure-section.tsx +3 -3
  54. package/components/ui/file-tree.tsx +3 -1
  55. package/components/ui/files-panel.tsx +147 -27
  56. package/components/ui/filter-dropdown.tsx +84 -74
  57. package/components/ui/form-actions.tsx +14 -6
  58. package/components/ui/frontmatter-form-header.tsx +10 -2
  59. package/components/ui/icon-button.tsx +22 -9
  60. package/components/ui/input.tsx +7 -4
  61. package/components/ui/label.tsx +5 -5
  62. package/components/ui/layout-tab-bar.tsx +7 -5
  63. package/components/ui/modal.tsx +18 -4
  64. package/components/ui/nav-card.tsx +6 -3
  65. package/components/ui/navigation-bar.tsx +37 -9
  66. package/components/ui/number-input.tsx +8 -4
  67. package/components/ui/project-explorer.tsx +666 -0
  68. package/components/ui/registry-browser.tsx +12 -1
  69. package/components/ui/registry-card.tsx +49 -42
  70. package/components/ui/registry-detail.tsx +34 -11
  71. package/components/ui/resizable-textarea.tsx +18 -11
  72. package/components/ui/scope-badge.tsx +18 -11
  73. package/components/ui/segmented-toggle.tsx +5 -2
  74. package/components/ui/select.tsx +12 -9
  75. package/components/ui/selection-grid.tsx +36 -37
  76. package/components/ui/setting-row.tsx +2 -2
  77. package/components/ui/settings-card.tsx +10 -3
  78. package/components/ui/settings-info-box.tsx +9 -5
  79. package/components/ui/settings-section-title.tsx +14 -2
  80. package/components/ui/snapshot-card.tsx +10 -2
  81. package/components/ui/snippets-panel.tsx +4 -2
  82. package/components/ui/sort-dropdown.tsx +39 -29
  83. package/components/ui/status-card.tsx +9 -1
  84. package/components/ui/tab-bar.tsx +12 -9
  85. package/components/ui/toggle.tsx +13 -7
  86. package/components/ui/tooltip.tsx +9 -1
  87. package/dist/content.js +8 -8
  88. package/dist/diagrams.d.ts +0 -1
  89. package/dist/index.d.ts +421 -182
  90. package/dist/index.js +2984 -1691
  91. package/dist/tokens/primitives.css +28 -6
  92. package/dist/tokens/semantic.css +15 -15
  93. package/dist/tokens/theme.css +23 -0
  94. package/index.ts +25 -11
  95. package/package.json +1 -1
  96. package/tokens/primitives.css +28 -6
  97. package/tokens/semantic.css +15 -15
  98. package/tokens/theme.css +23 -0
  99. package/components/sections/ai-tools-paths/index.ts +0 -37
  100. package/components/sections/ai-tools-paths/use-tools-paths.ts +0 -159
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { iconMap, type IconName } from './icon-button.tsx'
4
4
  import { cn } from '../lib/cn.ts'
5
+ import type { FormColor } from '../lib/form-colors.ts'
6
+ import { useAccentColor, AccentColorProvider } from '../lib/accent-context.ts'
5
7
 
6
8
  type StatusType = 'success' | 'warning' | 'error' | 'info' | 'neutral'
7
9
 
@@ -18,6 +20,7 @@ export interface StatusCardProps {
18
20
  items: StatusItem[]
19
21
  action?: { label: string; onClick: () => void }
20
22
  className?: string
23
+ accentColor?: FormColor
21
24
  }
22
25
 
23
26
  const statusDotColor: Record<StatusType, string> = {
@@ -43,11 +46,15 @@ export function StatusCard({
43
46
  items,
44
47
  action,
45
48
  className,
49
+ accentColor: accentColorProp,
46
50
  }: StatusCardProps) {
51
+ const contextAccent = useAccentColor()
52
+ const effectiveColor = accentColorProp ?? contextAccent ?? 'blue'
47
53
  const Icon = icon ? iconMap[icon] : undefined
48
54
 
49
55
  return (
50
- <div className={cn('rounded-lg border border-neutral-700 bg-neutral-800 overflow-hidden', className)}>
56
+ <AccentColorProvider value={effectiveColor}>
57
+ <div className={cn('rounded-lg border border-neutral-700 bg-neutral-960 overflow-hidden', className)}>
51
58
  <div className="flex items-center gap-2.5 px-4 py-3 border-b border-neutral-700">
52
59
  {Icon && (
53
60
  <Icon className="w-4 h-4 shrink-0" style={{ color: iconColor }} />
@@ -81,5 +88,6 @@ export function StatusCard({
81
88
  </div>
82
89
  )}
83
90
  </div>
91
+ </AccentColorProvider>
84
92
  )
85
93
  }
@@ -6,6 +6,7 @@ import { iconMap, type IconName } from './icon-button.tsx'
6
6
  import { Badge, type BadgeColor } from './badge.tsx'
7
7
  import { cn } from '../lib/cn.ts'
8
8
  import { Tooltip } from './tooltip.tsx'
9
+ import type { FormColor } from '../lib/form-colors.ts'
9
10
 
10
11
  export interface Tab {
11
12
  id: string
@@ -25,6 +26,7 @@ export interface TabBarProps {
25
26
  variant?: 'underline' | 'pill' | 'card'
26
27
  size?: 'xss' | 'xs' | 'sm' | 'md' | 'lg'
27
28
  className?: string
29
+ accentColor?: FormColor
28
30
  }
29
31
 
30
32
  const sizeConfig = {
@@ -32,7 +34,7 @@ const sizeConfig = {
32
34
  xs: { text: 'text-sm', icon: 'w-3 h-3', px: 'px-2', py: 'py-1', close: 'w-3 h-3', badgeSize: 'xs' as const, gap: 'gap-1' },
33
35
  sm: { text: 'text-md', icon: 'w-3.5 h-3.5', px: 'px-3', py: 'py-1.5', close: 'w-3 h-3', badgeSize: 'sm' as const, gap: 'gap-1.5' },
34
36
  md: { text: 'text-base', icon: 'w-4 h-4', px: 'px-4', py: 'py-2', close: 'w-3.5 h-3.5', badgeSize: 'md' as const, gap: 'gap-2' },
35
- lg: { text: 'text-lg', icon: 'w-5 h-5', px: 'px-5', py: 'py-2.5', close: 'w-4 h-4', badgeSize: 'lg' as const, gap: 'gap-2' },
37
+ lg: { text: 'text-lg', icon: 'w-5 h-5', px: 'px-4', py: 'py-2.5', close: 'w-4 h-4', badgeSize: 'lg' as const, gap: 'gap-2' },
36
38
  }
37
39
 
38
40
  const colorMap: Record<string, { active: string; icon: string; indicator: string }> = {
@@ -85,7 +87,7 @@ function TabIcon({ icon, size, color }: { icon: IconName; size: 'xss' | 'xs' | '
85
87
 
86
88
  function TabBadge({ badge, size, badgeColor }: { badge: number | string; size: 'xss' | 'xs' | 'sm' | 'md' | 'lg'; badgeColor?: BadgeColor }) {
87
89
  const s = sizeConfig[size]
88
- return <Badge value={badge} color={badgeColor} size={s.badgeSize} className="flex-shrink-0" />
90
+ return <Badge value={badge} accentColor={badgeColor} size={s.badgeSize} className="flex-shrink-0" />
89
91
  }
90
92
 
91
93
  function CloseButton({ size, onClick, tabLabel }: { size: 'xss' | 'xs' | 'sm' | 'md' | 'lg'; onClick: () => void; tabLabel: string }) {
@@ -117,8 +119,8 @@ function CompactTab({
117
119
  ? cn('bg-neutral-700 font-medium', c.active)
118
120
  : 'text-neutral-500 hover:text-neutral-400 hover:bg-neutral-700/50',
119
121
  card: isActive
120
- ? cn('bg-neutral-800 border-neutral-700', c.active)
121
- : 'bg-transparent border-transparent text-neutral-500 hover:text-neutral-400 hover:bg-neutral-900',
122
+ ? cn('bg-neutral-960 border-neutral-700', c.active)
123
+ : 'bg-transparent border-transparent text-neutral-500 hover:text-neutral-400 hover:bg-neutral-980',
122
124
  }[variant]
123
125
 
124
126
  return (
@@ -139,7 +141,7 @@ function CompactTab({
139
141
  {tab.icon && <TabIcon icon={tab.icon} size={size} color={isActive ? tab.color : undefined} />}
140
142
  {tab.badge !== undefined && (
141
143
  <span className="absolute -top-1.5 -right-2.5">
142
- <Badge value={tab.badge} color={tab.badgeColor} size="xss" />
144
+ <Badge value={tab.badge} accentColor={tab.badgeColor} size="xss" />
143
145
  </span>
144
146
  )}
145
147
  </span>
@@ -147,7 +149,7 @@ function CompactTab({
147
149
  <span className={cn('absolute bottom-0 left-0 right-0 h-0.5 rounded-full', c.indicator)} />
148
150
  )}
149
151
  {isActive && variant === 'card' && (
150
- <span className="absolute -bottom-px left-0 right-0 h-px bg-neutral-800" />
152
+ <span className="absolute -bottom-px left-0 right-0 h-px bg-neutral-960" />
151
153
  )}
152
154
  </button>
153
155
  )
@@ -232,8 +234,8 @@ function CardTab({
232
234
  s.text, s.px, s.py, s.gap,
233
235
  isActive && 'is-active',
234
236
  isActive
235
- ? cn('bg-neutral-800 border-neutral-700', c.active)
236
- : 'bg-transparent border-transparent text-neutral-500 hover:text-neutral-400 hover:bg-neutral-900',
237
+ ? cn('bg-neutral-960 border-neutral-700', c.active)
238
+ : 'bg-transparent border-transparent text-neutral-500 hover:text-neutral-400 hover:bg-neutral-980',
237
239
  )}
238
240
  >
239
241
  {tab.icon && <TabIcon icon={tab.icon} size={size} color={isActive ? tab.color : undefined} />}
@@ -241,7 +243,7 @@ function CardTab({
241
243
  {tab.badge !== undefined && <TabBadge badge={tab.badge} size={size} badgeColor={tab.badgeColor} />}
242
244
  {showClose && <CloseButton size={size} onClick={onClose!} tabLabel={tab.label} />}
243
245
  {isActive && (
244
- <span className="absolute -bottom-px left-0 right-0 h-px bg-neutral-800" />
246
+ <span className="absolute -bottom-px left-0 right-0 h-px bg-neutral-960" />
245
247
  )}
246
248
  </button>
247
249
  )
@@ -261,6 +263,7 @@ export function TabBar({
261
263
  variant = 'underline',
262
264
  size = 'sm',
263
265
  className,
266
+ accentColor: _accentColor,
264
267
  }: TabBarProps) {
265
268
  const containerRef = useRef<HTMLDivElement>(null)
266
269
  const [compact, setCompact] = useState(false)
@@ -8,11 +8,13 @@
8
8
  */
9
9
 
10
10
  import { type AccentColor } from '../lib/form-colors.ts'
11
+ import { useAccentColor } from '../lib/accent-context.ts'
11
12
  import { cn } from '../lib/cn.ts'
12
13
 
13
14
  export type ToggleColor = AccentColor
14
15
 
15
- // Border colors per accent
16
+ // Border colors per accent — rgba values required for inline style with precise opacity control.
17
+ // Base RGB values map to Tailwind accent-500 palette shades.
16
18
  const BORDER_COLORS: Record<ToggleColor, { idle: string; active: string }> = {
17
19
  blue: { idle: 'rgba(59,130,246,0.3)', active: 'rgba(59,130,246,0.4)' },
18
20
  green: { idle: 'rgba(34,197,94,0.3)', active: 'rgba(34,197,94,0.4)' },
@@ -31,7 +33,9 @@ const BORDER_COLORS: Record<ToggleColor, { idle: string; active: string }> = {
31
33
  teal: { idle: 'rgba(20,184,166,0.3)', active: 'rgba(20,184,166,0.4)' },
32
34
  }
33
35
 
34
- // Knob colors: checked = accent color, unchecked = gray
36
+ // Knob colors: checked = accent color, unchecked = gray.
37
+ // Hex values required — applied via inline style for the toggle knob element.
38
+ // Values map to Tailwind accent-400 palette shades.
35
39
  const KNOB_COLORS: Record<ToggleColor, { on: string; off: string }> = {
36
40
  blue: { on: '#60a5fa', off: 'rgba(96,165,250,0.35)' },
37
41
  green: { on: '#4ade80', off: 'rgba(74,222,128,0.35)' },
@@ -84,7 +88,7 @@ export interface ToggleProps {
84
88
  disabled?: boolean
85
89
  size?: ToggleSize
86
90
  className?: string
87
- color?: ToggleColor
91
+ accentColor?: ToggleColor
88
92
  /** Accessible label — required for screen readers */
89
93
  'aria-label'?: string
90
94
  /** Test ID for E2E testing */
@@ -97,13 +101,15 @@ export function Toggle({
97
101
  disabled = false,
98
102
  size = 'sm',
99
103
  className,
100
- color = 'blue',
104
+ accentColor,
101
105
  'aria-label': ariaLabel,
102
106
  testId,
103
107
  }: ToggleProps) {
108
+ const contextAccent = useAccentColor()
109
+ const effectiveColor = accentColor ?? contextAccent ?? 'blue'
104
110
  const s = TOGGLE_SIZES[size]
105
- const bc = BORDER_COLORS[color]
106
- const kc = KNOB_COLORS[color]
111
+ const bc = BORDER_COLORS[effectiveColor]
112
+ const kc = KNOB_COLORS[effectiveColor]
107
113
  return (
108
114
  <button
109
115
  type="button"
@@ -117,7 +123,7 @@ export function Toggle({
117
123
  className={cn(
118
124
  'relative rounded-full transition-all flex-shrink-0 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed',
119
125
  s.track,
120
- checked ? TOGGLE_CHECKED_TRACK[color] : TOGGLE_UNCHECKED_TRACK[color],
126
+ checked ? TOGGLE_CHECKED_TRACK[effectiveColor] : TOGGLE_UNCHECKED_TRACK[effectiveColor],
121
127
  className,
122
128
  )}
123
129
  >
@@ -2,6 +2,8 @@ import { useState, useRef, useLayoutEffect, useEffect, useCallback } from 'react
2
2
  import type { ReactNode } from 'react'
3
3
  import { createPortal } from 'react-dom'
4
4
  import { useClickOutside } from '../hooks/use-click-outside.ts'
5
+ import { AccentColorProvider, useAccentColor } from '../lib/accent-context.ts'
6
+ import type { FormColor } from '../lib/form-colors.ts'
5
7
 
6
8
  export interface TooltipContent {
7
9
  title?: string
@@ -32,6 +34,7 @@ interface TooltipProps {
32
34
  trigger?: 'hover' | 'click'
33
35
  /** Additional classes for the wrapper element (e.g., 'h-full' for flex containers) */
34
36
  wrapperClassName?: string
37
+ accentColor?: FormColor
35
38
  }
36
39
 
37
40
  const TOOLTIP_GAP = 8
@@ -176,7 +179,10 @@ export function Tooltip({
176
179
  trigger = 'hover',
177
180
  interactive = false,
178
181
  wrapperClassName = '',
182
+ accentColor,
179
183
  }: TooltipProps) {
184
+ const contextAccent = useAccentColor()
185
+ const effectiveColor = accentColor ?? contextAccent ?? 'blue'
180
186
  const [isVisible, setIsVisible] = useState(false)
181
187
  const [coords, setCoords] = useState({ top: 0, left: 0 })
182
188
  const [actualPosition, setActualPosition] = useState<ResolvedPosition>(position === 'auto' ? 'top' : position)
@@ -276,7 +282,9 @@ export function Tooltip({
276
282
  onClick={trigger === 'click' ? () => setIsVisible((v) => !v) : undefined}
277
283
  className={wrapperClassName || 'inline-flex'}
278
284
  >
279
- {children}
285
+ <AccentColorProvider value={effectiveColor}>
286
+ {children}
287
+ </AccentColorProvider>
280
288
  </div>
281
289
  {isVisible && createPortal(tooltipContent, document.body)}
282
290
  </>
package/dist/content.js CHANGED
@@ -13,8 +13,8 @@ function DL({ children }) {
13
13
  function DLRow({ term, children, even }) {
14
14
  const bg = even ? "bg-white/[0.015]" : "";
15
15
  return /* @__PURE__ */ jsxs(Fragment, { children: [
16
- /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} font-semibold text-md whitespace-nowrap`, children: term }),
17
- /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-md text-neutral-400`, children })
16
+ /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-960/60 ${bg} font-semibold text-md whitespace-nowrap`, children: term }),
17
+ /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-960/60 ${bg} text-md text-neutral-400`, children })
18
18
  ] });
19
19
  }
20
20
  function UL({ children }) {
@@ -65,17 +65,17 @@ function Callout({ color, children }) {
65
65
  }
66
66
  function CalloutCode({ color, children }) {
67
67
  const c = CALLOUT_COLORS[color] ?? CALLOUT_COLORS.blue;
68
- return /* @__PURE__ */ jsx("code", { className: `block bg-neutral-800/80 px-2 py-1 rounded mt-1.5 text-md ${c.codeText}`, children });
68
+ return /* @__PURE__ */ jsx("code", { className: `block bg-neutral-960/80 px-2 py-1 rounded mt-1.5 text-md ${c.codeText}`, children });
69
69
  }
70
70
  function CalloutDim({ children }) {
71
71
  return /* @__PURE__ */ jsx("p", { className: "text-neutral-500 mt-1.5", children });
72
72
  }
73
73
  function CodeBlock({ children }) {
74
- return /* @__PURE__ */ jsx("div", { className: "bg-neutral-900/60 rounded-md p-3 font-mono text-sm text-neutral-400 mb-5 whitespace-pre overflow-x-auto leading-normal", children });
74
+ return /* @__PURE__ */ jsx("div", { className: "bg-neutral-980/60 rounded-md p-3 font-mono text-sm text-neutral-400 mb-5 whitespace-pre overflow-x-auto leading-normal", children });
75
75
  }
76
76
  function CK({ color, children }) {
77
77
  const textColor = color ? `text-${color}-400` : "";
78
- return /* @__PURE__ */ jsx("code", { className: `bg-neutral-800/80 px-1.5 py-px rounded text-[0.9em] ${textColor}`, children });
78
+ return /* @__PURE__ */ jsx("code", { className: `bg-neutral-960/80 px-1.5 py-px rounded text-[0.9em] ${textColor}`, children });
79
79
  }
80
80
  function ExternalLink({ href, children }) {
81
81
  return /* @__PURE__ */ jsx("a", { href, target: "_blank", rel: "noopener noreferrer", className: "underline cursor-pointer", children });
@@ -91,7 +91,7 @@ function LocationItem({
91
91
  }) {
92
92
  const bg = even ? "bg-white/[0.015]" : "";
93
93
  return /* @__PURE__ */ jsxs(Fragment, { children: [
94
- /* @__PURE__ */ jsxs("div", { className: `py-2 border-b border-neutral-800/60 ${bg} flex items-center gap-1.5`, children: [
94
+ /* @__PURE__ */ jsxs("div", { className: `py-2 border-b border-neutral-960/60 ${bg} flex items-center gap-1.5`, children: [
95
95
  /* @__PURE__ */ jsx(
96
96
  "span",
97
97
  {
@@ -100,7 +100,7 @@ function LocationItem({
100
100
  ),
101
101
  /* @__PURE__ */ jsx("span", { className: `text-${color}-400 text-md font-semibold`, children: label })
102
102
  ] }),
103
- /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-800/60 ${bg} text-md text-neutral-400`, children })
103
+ /* @__PURE__ */ jsx("div", { className: `py-2 border-b border-neutral-960/60 ${bg} text-md text-neutral-400`, children })
104
104
  ] });
105
105
  }
106
106
  function TitledLI({ color, title, children }) {
@@ -115,7 +115,7 @@ function TitledLI({ color, title, children }) {
115
115
  ] });
116
116
  }
117
117
  function CalloutDialog({ color, lines }) {
118
- return /* @__PURE__ */ jsx("div", { className: "bg-neutral-800/80 rounded px-2 py-1 mt-1.5 flex flex-col gap-0.5 text-md", children: lines.map((line, idx) => /* @__PURE__ */ jsxs("div", { children: [
118
+ return /* @__PURE__ */ jsx("div", { className: "bg-neutral-960/80 rounded px-2 py-1 mt-1.5 flex flex-col gap-0.5 text-md", children: lines.map((line, idx) => /* @__PURE__ */ jsxs("div", { children: [
119
119
  /* @__PURE__ */ jsxs("span", { className: `text-${color}-300 font-semibold mr-1`, children: [
120
120
  line.speaker,
121
121
  ":"
@@ -66,7 +66,6 @@ declare const stroke: {
66
66
  readonly thin: 1;
67
67
  readonly hairline: 0.5;
68
68
  };
69
- /** Semantic text colors. */
70
69
  declare const color: {
71
70
  readonly textBright: "#e5e7eb";
72
71
  readonly textMedium: "#9ca3af";