@sero-ai/ui 0.4.0 → 0.4.2

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 (332) hide show
  1. package/.turbo/turbo-build.log +628 -628
  2. package/.turbo/turbo-test.log +18 -0
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/CHANGELOG.md +22 -2
  5. package/LICENSE +201 -0
  6. package/dist/components/ai-elements/agent.cjs +6 -6
  7. package/dist/components/ai-elements/agent.js +6 -6
  8. package/dist/components/ai-elements/artifact.cjs +2 -2
  9. package/dist/components/ai-elements/artifact.js +2 -2
  10. package/dist/components/ai-elements/attachments.cjs +2 -2
  11. package/dist/components/ai-elements/attachments.js +2 -2
  12. package/dist/components/ai-elements/chain-of-thought.cjs +2 -2
  13. package/dist/components/ai-elements/chain-of-thought.js +2 -2
  14. package/dist/components/ai-elements/code-block.cjs +7 -5
  15. package/dist/components/ai-elements/code-block.d.cts +2 -1
  16. package/dist/components/ai-elements/code-block.d.ts +2 -1
  17. package/dist/components/ai-elements/code-block.js +7 -5
  18. package/dist/components/ai-elements/commit.cjs +2 -2
  19. package/dist/components/ai-elements/commit.js +2 -2
  20. package/dist/components/ai-elements/confirmation.cjs +1 -1
  21. package/dist/components/ai-elements/confirmation.js +1 -1
  22. package/dist/components/ai-elements/conversation.cjs +2 -2
  23. package/dist/components/ai-elements/conversation.js +2 -2
  24. package/dist/components/ai-elements/environment-variables.cjs +3 -3
  25. package/dist/components/ai-elements/environment-variables.js +3 -3
  26. package/dist/components/ai-elements/file-tree.cjs +1 -1
  27. package/dist/components/ai-elements/file-tree.js +1 -1
  28. package/dist/components/ai-elements/inline-citation.cjs +3 -3
  29. package/dist/components/ai-elements/inline-citation.js +3 -3
  30. package/dist/components/ai-elements/jsx-preview.cjs +1 -1
  31. package/dist/components/ai-elements/jsx-preview.js +1 -1
  32. package/dist/components/ai-elements/message.cjs +1 -1
  33. package/dist/components/ai-elements/message.js +1 -1
  34. package/dist/components/ai-elements/package-info.cjs +4 -4
  35. package/dist/components/ai-elements/package-info.js +4 -4
  36. package/dist/components/ai-elements/prompt-input-context.cjs +2 -3
  37. package/dist/components/ai-elements/prompt-input-context.js +2 -3
  38. package/dist/components/ai-elements/queue.cjs +2 -2
  39. package/dist/components/ai-elements/queue.js +2 -2
  40. package/dist/components/ai-elements/reasoning.cjs +2 -2
  41. package/dist/components/ai-elements/reasoning.js +2 -2
  42. package/dist/components/ai-elements/sandbox.cjs +3 -3
  43. package/dist/components/ai-elements/sandbox.js +3 -3
  44. package/dist/components/ai-elements/schema-display.cjs +12 -12
  45. package/dist/components/ai-elements/schema-display.js +12 -12
  46. package/dist/components/ai-elements/speech-input.cjs +18 -2
  47. package/dist/components/ai-elements/speech-input.js +16 -0
  48. package/dist/components/ai-elements/stack-trace.cjs +1 -1
  49. package/dist/components/ai-elements/stack-trace.js +1 -1
  50. package/dist/components/ai-elements/task.cjs +3 -3
  51. package/dist/components/ai-elements/task.js +3 -3
  52. package/dist/components/ai-elements/terminal.cjs +2 -2
  53. package/dist/components/ai-elements/terminal.js +2 -2
  54. package/dist/components/ai-elements/test-results.cjs +4 -4
  55. package/dist/components/ai-elements/test-results.js +4 -4
  56. package/dist/components/ai-elements/tool.cjs +4 -4
  57. package/dist/components/ai-elements/tool.js +4 -4
  58. package/dist/components/ai-elements/transcription.cjs +1 -1
  59. package/dist/components/ai-elements/transcription.js +1 -1
  60. package/dist/components/ai-elements/web-preview.cjs +2 -2
  61. package/dist/components/ai-elements/web-preview.js +2 -2
  62. package/dist/components/context-editor/CapabilitySection.cjs +2 -2
  63. package/dist/components/context-editor/CapabilitySection.js +2 -2
  64. package/dist/components/context-editor/ContextEditor.cjs +2 -2
  65. package/dist/components/context-editor/ContextEditor.js +2 -2
  66. package/dist/components/context-editor/PresetBar.cjs +3 -3
  67. package/dist/components/context-editor/PresetBar.js +3 -3
  68. package/dist/components/context-editor/SystemPromptSection.cjs +4 -4
  69. package/dist/components/context-editor/SystemPromptSection.js +4 -4
  70. package/dist/components/context-editor/parts.cjs +6 -6
  71. package/dist/components/context-editor/parts.js +6 -6
  72. package/dist/components/dashboard/activity-list.cjs +2 -2
  73. package/dist/components/dashboard/activity-list.js +2 -2
  74. package/dist/components/dashboard/catalog.cjs +1 -322
  75. package/dist/components/dashboard/catalog.d.cts +1 -2
  76. package/dist/components/dashboard/catalog.d.ts +1 -2
  77. package/dist/components/dashboard/catalog.js +0 -322
  78. package/dist/components/dashboard/catalog.json +312 -0
  79. package/dist/components/dashboard/empty-state.cjs +1 -1
  80. package/dist/components/dashboard/empty-state.js +1 -1
  81. package/dist/components/dashboard/index.d.cts +1 -1
  82. package/dist/components/dashboard/index.d.ts +1 -1
  83. package/dist/components/dashboard/item-list.cjs +2 -2
  84. package/dist/components/dashboard/item-list.js +2 -2
  85. package/dist/components/dashboard/layout.cjs +1 -1
  86. package/dist/components/dashboard/layout.js +1 -1
  87. package/dist/components/dashboard/metric.cjs +1 -1
  88. package/dist/components/dashboard/metric.js +1 -1
  89. package/dist/components/dashboard/stale-indicator.cjs +1 -1
  90. package/dist/components/dashboard/stale-indicator.js +1 -1
  91. package/dist/components/dashboard/status.cjs +6 -2
  92. package/dist/components/dashboard/status.js +7 -3
  93. package/dist/components/dashboard/tone.cjs +9 -1
  94. package/dist/components/dashboard/tone.d.cts +7 -1
  95. package/dist/components/dashboard/tone.d.ts +7 -1
  96. package/dist/components/dashboard/tone.js +8 -0
  97. package/dist/components/dashboard/typography.cjs +4 -4
  98. package/dist/components/dashboard/typography.d.cts +1 -1
  99. package/dist/components/dashboard/typography.d.ts +1 -1
  100. package/dist/components/dashboard/typography.js +4 -4
  101. package/dist/components/model-selection/available-model-picker.cjs +6 -6
  102. package/dist/components/model-selection/available-model-picker.js +6 -6
  103. package/dist/components/model-selection/thinking-level-picker.cjs +1 -1
  104. package/dist/components/model-selection/thinking-level-picker.js +1 -1
  105. package/dist/components/model-selection/thinking-picker.cjs +70 -0
  106. package/dist/components/model-selection/thinking-picker.d.cts +12 -0
  107. package/dist/components/model-selection/thinking-picker.d.ts +12 -0
  108. package/dist/components/model-selection/thinking-picker.js +70 -0
  109. package/dist/components/ui/accordion.cjs +2 -2
  110. package/dist/components/ui/accordion.js +2 -2
  111. package/dist/components/ui/alert-dialog.cjs +4 -2
  112. package/dist/components/ui/alert-dialog.js +4 -2
  113. package/dist/components/ui/alert.cjs +2 -2
  114. package/dist/components/ui/alert.js +2 -2
  115. package/dist/components/ui/avatar.cjs +2 -2
  116. package/dist/components/ui/avatar.js +2 -2
  117. package/dist/components/ui/breadcrumb.cjs +1 -1
  118. package/dist/components/ui/breadcrumb.js +1 -1
  119. package/dist/components/ui/button-group.cjs +1 -1
  120. package/dist/components/ui/button-group.js +1 -1
  121. package/dist/components/ui/button.cjs +1 -1
  122. package/dist/components/ui/button.js +1 -1
  123. package/dist/components/ui/calendar.cjs +2 -2
  124. package/dist/components/ui/calendar.js +2 -2
  125. package/dist/components/ui/card.cjs +1 -1
  126. package/dist/components/ui/card.js +1 -1
  127. package/dist/components/ui/carousel.cjs +3 -2
  128. package/dist/components/ui/carousel.js +2 -1
  129. package/dist/components/ui/chart.cjs +36 -27
  130. package/dist/components/ui/chart.d.cts +21 -17
  131. package/dist/components/ui/chart.d.ts +21 -17
  132. package/dist/components/ui/chart.js +30 -21
  133. package/dist/components/ui/combobox.cjs +7 -5
  134. package/dist/components/ui/combobox.js +7 -5
  135. package/dist/components/ui/command.cjs +3 -3
  136. package/dist/components/ui/command.js +3 -3
  137. package/dist/components/ui/context-menu.cjs +10 -7
  138. package/dist/components/ui/context-menu.js +10 -7
  139. package/dist/components/ui/dialog.cjs +4 -2
  140. package/dist/components/ui/dialog.js +4 -2
  141. package/dist/components/ui/drawer.cjs +4 -2
  142. package/dist/components/ui/drawer.js +4 -2
  143. package/dist/components/ui/dropdown-menu.cjs +10 -7
  144. package/dist/components/ui/dropdown-menu.js +10 -7
  145. package/dist/components/ui/empty.cjs +2 -2
  146. package/dist/components/ui/empty.js +2 -2
  147. package/dist/components/ui/field.cjs +5 -5
  148. package/dist/components/ui/field.js +5 -5
  149. package/dist/components/ui/form.cjs +2 -2
  150. package/dist/components/ui/form.js +2 -2
  151. package/dist/components/ui/hover-card.cjs +3 -1
  152. package/dist/components/ui/hover-card.js +3 -1
  153. package/dist/components/ui/input-group.cjs +3 -3
  154. package/dist/components/ui/input-group.js +3 -3
  155. package/dist/components/ui/input-otp.cjs +1 -1
  156. package/dist/components/ui/input-otp.js +1 -1
  157. package/dist/components/ui/input.cjs +1 -1
  158. package/dist/components/ui/input.js +1 -1
  159. package/dist/components/ui/item.cjs +3 -3
  160. package/dist/components/ui/item.js +3 -3
  161. package/dist/components/ui/label.cjs +1 -1
  162. package/dist/components/ui/label.js +1 -1
  163. package/dist/components/ui/menubar.cjs +9 -7
  164. package/dist/components/ui/menubar.js +9 -7
  165. package/dist/components/ui/native-select.cjs +1 -1
  166. package/dist/components/ui/native-select.js +1 -1
  167. package/dist/components/ui/navigation-menu.cjs +2 -2
  168. package/dist/components/ui/navigation-menu.js +2 -2
  169. package/dist/components/ui/plugin-safety-disclaimer.cjs +1 -1
  170. package/dist/components/ui/plugin-safety-disclaimer.js +1 -1
  171. package/dist/components/ui/popover.cjs +4 -2
  172. package/dist/components/ui/popover.js +4 -2
  173. package/dist/components/ui/select.cjs +5 -3
  174. package/dist/components/ui/select.js +5 -3
  175. package/dist/components/ui/sheet.cjs +4 -2
  176. package/dist/components/ui/sheet.js +4 -2
  177. package/dist/components/ui/sidebar.cjs +5 -5
  178. package/dist/components/ui/sidebar.js +5 -5
  179. package/dist/components/ui/table.cjs +2 -2
  180. package/dist/components/ui/table.js +2 -2
  181. package/dist/components/ui/tabs.cjs +1 -1
  182. package/dist/components/ui/tabs.js +1 -1
  183. package/dist/components/ui/textarea.cjs +1 -1
  184. package/dist/components/ui/textarea.js +1 -1
  185. package/dist/components/ui/toggle.cjs +1 -1
  186. package/dist/components/ui/toggle.js +1 -1
  187. package/dist/components/ui/tooltip.cjs +3 -1
  188. package/dist/components/ui/tooltip.js +3 -1
  189. package/dist/index.cjs +5 -1
  190. package/dist/index.d.cts +4 -1
  191. package/dist/index.d.ts +4 -1
  192. package/dist/index.js +5 -1
  193. package/dist/plugin-style-scope-context.cjs +10 -0
  194. package/dist/plugin-style-scope-context.d.cts +13 -0
  195. package/dist/plugin-style-scope-context.d.ts +13 -0
  196. package/dist/plugin-style-scope-context.js +10 -0
  197. package/dist/plugin-style-scope.cjs +25 -0
  198. package/dist/plugin-style-scope.d.cts +11 -0
  199. package/dist/plugin-style-scope.d.ts +11 -0
  200. package/dist/plugin-style-scope.js +25 -0
  201. package/dist/reference.cjs +1251 -3
  202. package/dist/reference.d.cts +11 -5
  203. package/dist/reference.d.ts +11 -5
  204. package/dist/reference.js +1224 -6
  205. package/dist/styles/globals.css +22 -3
  206. package/dist/styles/plugin-theme.css +80 -0
  207. package/dist/styles/plugin.css +14 -2
  208. package/package.json +53 -70
  209. package/scripts/ensure-pnpm-publish.mjs +23 -0
  210. package/scripts/smoke-dist.mjs +68 -0
  211. package/src/components/ai-elements/agent.tsx +6 -6
  212. package/src/components/ai-elements/artifact.tsx +2 -2
  213. package/src/components/ai-elements/attachments.tsx +2 -2
  214. package/src/components/ai-elements/chain-of-thought.tsx +2 -2
  215. package/src/components/ai-elements/code-block.tsx +6 -3
  216. package/src/components/ai-elements/commit.tsx +2 -2
  217. package/src/components/ai-elements/confirmation.tsx +1 -1
  218. package/src/components/ai-elements/conversation.tsx +2 -2
  219. package/src/components/ai-elements/environment-variables.tsx +3 -3
  220. package/src/components/ai-elements/file-tree.tsx +1 -1
  221. package/src/components/ai-elements/inline-citation.tsx +3 -3
  222. package/src/components/ai-elements/jsx-preview.tsx +1 -1
  223. package/src/components/ai-elements/message.tsx +1 -1
  224. package/src/components/ai-elements/package-info.tsx +4 -4
  225. package/src/components/ai-elements/prompt-input-context.tsx +3 -2
  226. package/src/components/ai-elements/queue.tsx +2 -2
  227. package/src/components/ai-elements/reasoning.tsx +2 -2
  228. package/src/components/ai-elements/sandbox.tsx +3 -3
  229. package/src/components/ai-elements/schema-display.tsx +12 -12
  230. package/src/components/ai-elements/speech-input.tsx +17 -0
  231. package/src/components/ai-elements/stack-trace.tsx +1 -1
  232. package/src/components/ai-elements/task.tsx +3 -3
  233. package/src/components/ai-elements/terminal.tsx +2 -2
  234. package/src/components/ai-elements/test-results.tsx +4 -4
  235. package/src/components/ai-elements/tool.tsx +4 -4
  236. package/src/components/ai-elements/transcription.tsx +1 -1
  237. package/src/components/ai-elements/web-preview.tsx +2 -2
  238. package/src/components/context-editor/CapabilitySection.tsx +2 -2
  239. package/src/components/context-editor/ContextEditor.tsx +2 -2
  240. package/src/components/context-editor/PresetBar.tsx +3 -3
  241. package/src/components/context-editor/SystemPromptSection.tsx +4 -4
  242. package/src/components/context-editor/parts.tsx +6 -6
  243. package/src/components/dashboard/__tests__/catalog.test.ts +7 -2
  244. package/src/components/dashboard/__tests__/state.test.tsx +19 -2
  245. package/src/components/dashboard/activity-list.tsx +2 -2
  246. package/src/components/dashboard/catalog.json +312 -0
  247. package/src/components/dashboard/catalog.ts +6 -328
  248. package/src/components/dashboard/empty-state.tsx +1 -1
  249. package/src/components/dashboard/index.ts +2 -2
  250. package/src/components/dashboard/item-list.tsx +2 -2
  251. package/src/components/dashboard/layout.tsx +1 -1
  252. package/src/components/dashboard/metric.tsx +1 -1
  253. package/src/components/dashboard/stale-indicator.tsx +1 -1
  254. package/src/components/dashboard/status.tsx +15 -2
  255. package/src/components/dashboard/tone.ts +13 -0
  256. package/src/components/dashboard/typography.tsx +5 -5
  257. package/src/components/model-selection/available-model-picker.tsx +7 -7
  258. package/src/components/model-selection/thinking-level-picker.tsx +1 -1
  259. package/src/components/model-selection/thinking-picker.tsx +90 -0
  260. package/src/components/ui/accordion.tsx +2 -2
  261. package/src/components/ui/alert-dialog.tsx +4 -2
  262. package/src/components/ui/alert.tsx +2 -2
  263. package/src/components/ui/avatar.tsx +2 -2
  264. package/src/components/ui/breadcrumb.tsx +1 -1
  265. package/src/components/ui/button-group.tsx +1 -1
  266. package/src/components/ui/button.tsx +1 -1
  267. package/src/components/ui/calendar.tsx +3 -3
  268. package/src/components/ui/card.tsx +1 -1
  269. package/src/components/ui/carousel.tsx +2 -1
  270. package/src/components/ui/chart.tsx +54 -36
  271. package/src/components/ui/combobox.tsx +7 -5
  272. package/src/components/ui/command.tsx +3 -3
  273. package/src/components/ui/context-menu.tsx +10 -7
  274. package/src/components/ui/dialog.tsx +4 -2
  275. package/src/components/ui/drawer.tsx +4 -2
  276. package/src/components/ui/dropdown-menu.tsx +10 -7
  277. package/src/components/ui/empty.tsx +2 -2
  278. package/src/components/ui/field.tsx +5 -5
  279. package/src/components/ui/form.tsx +2 -2
  280. package/src/components/ui/hover-card.tsx +3 -1
  281. package/src/components/ui/input-group.tsx +3 -3
  282. package/src/components/ui/input-otp.tsx +1 -1
  283. package/src/components/ui/input.tsx +1 -1
  284. package/src/components/ui/item.tsx +3 -3
  285. package/src/components/ui/label.tsx +1 -1
  286. package/src/components/ui/menubar.tsx +9 -7
  287. package/src/components/ui/native-select.tsx +1 -1
  288. package/src/components/ui/navigation-menu.tsx +2 -2
  289. package/src/components/ui/plugin-safety-disclaimer.tsx +1 -1
  290. package/src/components/ui/popover.tsx +4 -2
  291. package/src/components/ui/select.tsx +5 -3
  292. package/src/components/ui/sheet.tsx +4 -2
  293. package/src/components/ui/sidebar.tsx +5 -5
  294. package/src/components/ui/table.tsx +2 -2
  295. package/src/components/ui/tabs.tsx +1 -1
  296. package/src/components/ui/textarea.tsx +1 -1
  297. package/src/components/ui/toggle.tsx +1 -1
  298. package/src/components/ui/tooltip.tsx +3 -1
  299. package/src/index.ts +5 -1
  300. package/src/plugin-style-scope-context.ts +21 -0
  301. package/src/plugin-style-scope.test.tsx +38 -0
  302. package/src/plugin-style-scope.tsx +35 -0
  303. package/src/styles/globals.css +22 -3
  304. package/src/styles/plugin-theme.css +80 -0
  305. package/src/styles/plugin.css +14 -2
  306. package/tsup.config.ts +13 -3
  307. package/tsup.reference.config.ts +15 -0
  308. package/dist/components/reference/ActivityExample.cjs +0 -47
  309. package/dist/components/reference/ActivityExample.d.cts +0 -5
  310. package/dist/components/reference/ActivityExample.d.ts +0 -5
  311. package/dist/components/reference/ActivityExample.js +0 -47
  312. package/dist/components/reference/ResourceExample.cjs +0 -54
  313. package/dist/components/reference/ResourceExample.d.cts +0 -5
  314. package/dist/components/reference/ResourceExample.d.ts +0 -5
  315. package/dist/components/reference/ResourceExample.js +0 -54
  316. package/dist/components/reference/SchedulerExample.cjs +0 -68
  317. package/dist/components/reference/SchedulerExample.d.cts +0 -5
  318. package/dist/components/reference/SchedulerExample.d.ts +0 -5
  319. package/dist/components/reference/SchedulerExample.js +0 -68
  320. package/dist/components/reference/StarterExample.cjs +0 -34
  321. package/dist/components/reference/StarterExample.d.cts +0 -5
  322. package/dist/components/reference/StarterExample.d.ts +0 -5
  323. package/dist/components/reference/StarterExample.js +0 -34
  324. package/dist/components/reference/index.cjs +0 -10
  325. package/dist/components/reference/index.d.cts +0 -5
  326. package/dist/components/reference/index.d.ts +0 -5
  327. package/dist/components/reference/index.js +0 -10
  328. package/dist/dashboard-catalog.cjs +0 -8
  329. package/dist/dashboard-catalog.d.cts +0 -1
  330. package/dist/dashboard-catalog.d.ts +0 -1
  331. package/dist/dashboard-catalog.js +0 -8
  332. package/src/dashboard-catalog.ts +0 -13
@@ -35,7 +35,7 @@ function ItemListItem({
35
35
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _item.ItemTitle, { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: primary }),
36
36
  secondary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _item.ItemDescription, { className: "line-clamp-1 text-xs text-[var(--text-muted)]", children: secondary })
37
37
  ] }),
38
- trailing && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-[11px] tabular-nums text-[var(--text-muted)]", children: trailing }),
38
+ trailing && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-sm tabular-nums text-[var(--text-muted)]", children: trailing }),
39
39
  actions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _item.ItemActions, { children: actions })
40
40
  ]
41
41
  }
@@ -56,7 +56,7 @@ function ItemList({
56
56
  ...props,
57
57
  children: [
58
58
  children,
59
- overflowCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "px-2 text-[11px] text-[var(--text-muted)]", children: [
59
+ overflowCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "px-2 text-sm text-[var(--text-muted)]", children: [
60
60
  "+",
61
61
  overflowCount,
62
62
  " more"
@@ -35,7 +35,7 @@ function ItemListItem({
35
35
  /* @__PURE__ */ jsx(ItemTitle, { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: primary }),
36
36
  secondary && /* @__PURE__ */ jsx(ItemDescription, { className: "line-clamp-1 text-xs text-[var(--text-muted)]", children: secondary })
37
37
  ] }),
38
- trailing && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[11px] tabular-nums text-[var(--text-muted)]", children: trailing }),
38
+ trailing && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-sm tabular-nums text-[var(--text-muted)]", children: trailing }),
39
39
  actions && /* @__PURE__ */ jsx(ItemActions, { children: actions })
40
40
  ]
41
41
  }
@@ -56,7 +56,7 @@ function ItemList({
56
56
  ...props,
57
57
  children: [
58
58
  children,
59
- overflowCount > 0 && /* @__PURE__ */ jsxs("span", { className: "px-2 text-[11px] text-[var(--text-muted)]", children: [
59
+ overflowCount > 0 && /* @__PURE__ */ jsxs("span", { className: "px-2 text-sm text-[var(--text-muted)]", children: [
60
60
  "+",
61
61
  overflowCount,
62
62
  " more"
@@ -153,7 +153,7 @@ function Section({
153
153
  children: [
154
154
  (heading || action) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-2", children: [
155
155
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-0.5", children: [
156
- heading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "truncate text-[11px] font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: heading }),
156
+ heading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "truncate text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: heading }),
157
157
  description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-xs text-[var(--text-muted)]", children: description })
158
158
  ] }),
159
159
  action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: action })
@@ -153,7 +153,7 @@ function Section({
153
153
  children: [
154
154
  (heading || action) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
155
155
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
156
- heading && /* @__PURE__ */ jsx("h3", { className: "truncate text-[11px] font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: heading }),
156
+ heading && /* @__PURE__ */ jsx("h3", { className: "truncate text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: heading }),
157
157
  description && /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-[var(--text-muted)]", children: description })
158
158
  ] }),
159
159
  action && /* @__PURE__ */ jsx("div", { className: "shrink-0", children: action })
@@ -34,7 +34,7 @@ function Metric({
34
34
  children: [
35
35
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5", children: [
36
36
  icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _typography.Icon, { icon, size: "sm" }),
37
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-[11px] font-medium uppercase tracking-wide text-[var(--text-muted)]", children: label })
37
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-sm font-medium uppercase tracking-wide text-[var(--text-muted)]", children: label })
38
38
  ] }),
39
39
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-baseline gap-1.5", children: [
40
40
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -34,7 +34,7 @@ function Metric({
34
34
  children: [
35
35
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
36
36
  icon && /* @__PURE__ */ jsx(Icon, { icon, size: "sm" }),
37
- /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] font-medium uppercase tracking-wide text-[var(--text-muted)]", children: label })
37
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium uppercase tracking-wide text-[var(--text-muted)]", children: label })
38
38
  ] }),
39
39
  /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1.5", children: [
40
40
  /* @__PURE__ */ jsx(
@@ -15,7 +15,7 @@ function StaleIndicator({
15
15
  {
16
16
  "data-slot": "stale-indicator",
17
17
  className: _utils.cn.call(void 0,
18
- "flex items-center gap-1.5 text-[11px] text-[var(--text-muted)]",
18
+ "flex items-center gap-1.5 text-sm text-[var(--text-muted)]",
19
19
  className
20
20
  ),
21
21
  ...props,
@@ -15,7 +15,7 @@ function StaleIndicator({
15
15
  {
16
16
  "data-slot": "stale-indicator",
17
17
  className: cn(
18
- "flex items-center gap-1.5 text-[11px] text-[var(--text-muted)]",
18
+ "flex items-center gap-1.5 text-sm text-[var(--text-muted)]",
19
19
  className
20
20
  ),
21
21
  ...props,
@@ -10,6 +10,8 @@ function Status({
10
10
  ...props
11
11
  }) {
12
12
  const hasLabel = children != null && children !== "";
13
+ const hasAccessibleName = props["aria-label"] != null || props["aria-labelledby"] != null;
14
+ const hiddenLabel = !hasLabel && !hasAccessibleName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: _tone.toneLabel[tone] }) : null;
13
15
  if (variant === "pill") {
14
16
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15
17
  "span",
@@ -24,7 +26,8 @@ function Status({
24
26
  ...props,
25
27
  children: [
26
28
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _utils.cn.call(void 0, "size-1.5 shrink-0 rounded-full", _tone.toneDot[tone]) }),
27
- children
29
+ children,
30
+ hiddenLabel
28
31
  ]
29
32
  }
30
33
  );
@@ -52,7 +55,8 @@ function Status({
52
55
  )
53
56
  }
54
57
  ),
55
- children
58
+ children,
59
+ hiddenLabel
56
60
  ]
57
61
  }
58
62
  );
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "../../lib/utils";
3
- import { toneColor, toneDot, tonePill } from "./tone";
3
+ import { toneColor, toneDot, toneLabel, tonePill } from "./tone";
4
4
  function Status({
5
5
  className,
6
6
  tone = "neutral",
@@ -10,6 +10,8 @@ function Status({
10
10
  ...props
11
11
  }) {
12
12
  const hasLabel = children != null && children !== "";
13
+ const hasAccessibleName = props["aria-label"] != null || props["aria-labelledby"] != null;
14
+ const hiddenLabel = !hasLabel && !hasAccessibleName ? /* @__PURE__ */ jsx("span", { className: "sr-only", children: toneLabel[tone] }) : null;
13
15
  if (variant === "pill") {
14
16
  return /* @__PURE__ */ jsxs(
15
17
  "span",
@@ -24,7 +26,8 @@ function Status({
24
26
  ...props,
25
27
  children: [
26
28
  /* @__PURE__ */ jsx("span", { className: cn("size-1.5 shrink-0 rounded-full", toneDot[tone]) }),
27
- children
29
+ children,
30
+ hiddenLabel
28
31
  ]
29
32
  }
30
33
  );
@@ -52,7 +55,8 @@ function Status({
52
55
  )
53
56
  }
54
57
  ),
55
- children
58
+ children,
59
+ hiddenLabel
56
60
  ]
57
61
  }
58
62
  );
@@ -12,6 +12,13 @@ const toneDot = {
12
12
  error: "bg-[var(--status-error)]",
13
13
  info: "bg-[var(--status-info)]"
14
14
  };
15
+ const toneLabel = {
16
+ neutral: "Neutral",
17
+ success: "Success",
18
+ warning: "Warning",
19
+ error: "Error",
20
+ info: "Info"
21
+ };
15
22
  const tonePill = {
16
23
  neutral: "bg-[var(--surface-flat)] text-[var(--text-secondary)]",
17
24
  success: "bg-[var(--status-success-muted)] text-[var(--status-success)]",
@@ -23,4 +30,5 @@ const tonePill = {
23
30
 
24
31
 
25
32
 
26
- exports.toneColor = toneColor; exports.toneDot = toneDot; exports.tonePill = tonePill;
33
+
34
+ exports.toneColor = toneColor; exports.toneDot = toneDot; exports.toneLabel = toneLabel; exports.tonePill = tonePill;
@@ -3,7 +3,13 @@ type Tone = "neutral" | "success" | "warning" | "error" | "info";
3
3
  declare const toneColor: Record<Tone, string>;
4
4
  /** Solid background colour for a tone (status dots). */
5
5
  declare const toneDot: Record<Tone, string>;
6
+ /**
7
+ * Default accessible name for a tone, used as the text alternative when a
8
+ * status indicator carries no visible label. Generic by design — callers with
9
+ * a domain-specific meaning should pass their own `aria-label`.
10
+ */
11
+ declare const toneLabel: Record<Tone, string>;
6
12
  /** Muted tinted background + matching text for a tone (pills, chips). */
7
13
  declare const tonePill: Record<Tone, string>;
8
14
 
9
- export { type Tone, toneColor, toneDot, tonePill };
15
+ export { type Tone, toneColor, toneDot, toneLabel, tonePill };
@@ -3,7 +3,13 @@ type Tone = "neutral" | "success" | "warning" | "error" | "info";
3
3
  declare const toneColor: Record<Tone, string>;
4
4
  /** Solid background colour for a tone (status dots). */
5
5
  declare const toneDot: Record<Tone, string>;
6
+ /**
7
+ * Default accessible name for a tone, used as the text alternative when a
8
+ * status indicator carries no visible label. Generic by design — callers with
9
+ * a domain-specific meaning should pass their own `aria-label`.
10
+ */
11
+ declare const toneLabel: Record<Tone, string>;
6
12
  /** Muted tinted background + matching text for a tone (pills, chips). */
7
13
  declare const tonePill: Record<Tone, string>;
8
14
 
9
- export { type Tone, toneColor, toneDot, tonePill };
15
+ export { type Tone, toneColor, toneDot, toneLabel, tonePill };
@@ -12,6 +12,13 @@ const toneDot = {
12
12
  error: "bg-[var(--status-error)]",
13
13
  info: "bg-[var(--status-info)]"
14
14
  };
15
+ const toneLabel = {
16
+ neutral: "Neutral",
17
+ success: "Success",
18
+ warning: "Warning",
19
+ error: "Error",
20
+ info: "Info"
21
+ };
15
22
  const tonePill = {
16
23
  neutral: "bg-[var(--surface-flat)] text-[var(--text-secondary)]",
17
24
  success: "bg-[var(--status-success-muted)] text-[var(--status-success)]",
@@ -22,5 +29,6 @@ const tonePill = {
22
29
  export {
23
30
  toneColor,
24
31
  toneDot,
32
+ toneLabel,
25
33
  tonePill
26
34
  };
@@ -5,11 +5,11 @@ var _tone = require('./tone');
5
5
  const textVariants = _classvarianceauthority.cva.call(void 0, "min-w-0", {
6
6
  variants: {
7
7
  variant: {
8
- body: "text-sm text-[var(--text-primary)]",
9
- label: "text-[11px] font-semibold uppercase tracking-wider text-[var(--text-muted)]",
8
+ body: "text-base text-[var(--text-primary)]",
9
+ label: "text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]",
10
10
  supporting: "text-xs text-[var(--text-secondary)]",
11
11
  muted: "text-xs text-[var(--text-muted)]",
12
- numeric: "text-sm font-semibold tabular-nums text-[var(--text-primary)]"
12
+ numeric: "text-base font-semibold tabular-nums text-[var(--text-primary)]"
13
13
  }
14
14
  },
15
15
  defaultVariants: { variant: "body" }
@@ -43,7 +43,7 @@ function Text({
43
43
  }
44
44
  const headingSize = {
45
45
  sm: "text-xs font-semibold",
46
- md: "text-sm font-semibold",
46
+ md: "text-base font-semibold",
47
47
  lg: "text-base font-semibold"
48
48
  };
49
49
  function Heading({
@@ -20,7 +20,7 @@ interface TextProps extends Omit<React.ComponentProps<"span">, "color">, Variant
20
20
  declare function Text({ className, variant, truncate, clamp, tone, ...props }: TextProps): react_jsx_runtime.JSX.Element;
21
21
  declare const headingSize: {
22
22
  readonly sm: "text-xs font-semibold";
23
- readonly md: "text-sm font-semibold";
23
+ readonly md: "text-base font-semibold";
24
24
  readonly lg: "text-base font-semibold";
25
25
  };
26
26
  interface HeadingProps extends React.ComponentProps<"h2"> {
@@ -20,7 +20,7 @@ interface TextProps extends Omit<React.ComponentProps<"span">, "color">, Variant
20
20
  declare function Text({ className, variant, truncate, clamp, tone, ...props }: TextProps): react_jsx_runtime.JSX.Element;
21
21
  declare const headingSize: {
22
22
  readonly sm: "text-xs font-semibold";
23
- readonly md: "text-sm font-semibold";
23
+ readonly md: "text-base font-semibold";
24
24
  readonly lg: "text-base font-semibold";
25
25
  };
26
26
  interface HeadingProps extends React.ComponentProps<"h2"> {
@@ -5,11 +5,11 @@ import { toneColor } from "./tone";
5
5
  const textVariants = cva("min-w-0", {
6
6
  variants: {
7
7
  variant: {
8
- body: "text-sm text-[var(--text-primary)]",
9
- label: "text-[11px] font-semibold uppercase tracking-wider text-[var(--text-muted)]",
8
+ body: "text-base text-[var(--text-primary)]",
9
+ label: "text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]",
10
10
  supporting: "text-xs text-[var(--text-secondary)]",
11
11
  muted: "text-xs text-[var(--text-muted)]",
12
- numeric: "text-sm font-semibold tabular-nums text-[var(--text-primary)]"
12
+ numeric: "text-base font-semibold tabular-nums text-[var(--text-primary)]"
13
13
  }
14
14
  },
15
15
  defaultVariants: { variant: "body" }
@@ -43,7 +43,7 @@ function Text({
43
43
  }
44
44
  const headingSize = {
45
45
  sm: "text-xs font-semibold",
46
- md: "text-sm font-semibold",
46
+ md: "text-base font-semibold",
47
47
  lg: "text-base font-semibold"
48
48
  };
49
49
  function Heading({
@@ -71,7 +71,7 @@ function AvailableModelPicker({
71
71
  role: "button",
72
72
  tabIndex: disabled ? -1 : 0,
73
73
  className: _utils.cn.call(void 0,
74
- "flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-left text-sm transition-colors",
74
+ "flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-left text-base transition-colors",
75
75
  "hover:bg-secondary/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
76
76
  disabled && "cursor-not-allowed opacity-50",
77
77
  className
@@ -91,9 +91,9 @@ function AvailableModelPicker({
91
91
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate font-medium text-foreground", children: selected.model.name }),
92
92
  selected.model.reasoning ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "size-3 shrink-0 text-amber-500/70" }) : null
93
93
  ] }),
94
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "truncate text-[11px] text-muted-foreground", children: selected.group.displayName })
94
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "truncate text-sm text-muted-foreground", children: selected.group.displayName })
95
95
  ] })
96
- ] }) : selected.fallbackLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground", children: selected.fallbackLabel }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
96
+ ] }) : selected.fallbackLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate font-mono text-sm text-muted-foreground", children: selected.fallbackLabel }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
97
97
  allowClear && value ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
98
98
  "button",
99
99
  {
@@ -127,7 +127,7 @@ function AvailableModelPicker({
127
127
  containerClassName: "border-b border-border/40"
128
128
  }
129
129
  ),
130
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-[280px] overflow-y-auto py-1", children: groups.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-4 text-center text-xs text-muted-foreground", children: noModelsLabel }) : totalResults === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-4 text-center text-xs text-muted-foreground", children: emptyLabel }) : filteredGroups.map((group, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
130
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-[280px] overflow-y-auto py-1", children: groups.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: noModelsLabel }) : totalResults === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: emptyLabel }) : filteredGroups.map((group, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
131
131
  index > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-3 border-t border-border/30" }) : null,
132
132
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 px-3 pb-1 pt-2", children: [
133
133
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -138,7 +138,7 @@ function AvailableModelPicker({
138
138
  className: "size-3.5 shrink-0 rounded-sm dark:invert"
139
139
  }
140
140
  ),
141
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: group.displayName })
141
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.displayName })
142
142
  ] }),
143
143
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-1", children: group.models.map((model) => {
144
144
  const nextValue = _common.modelKey.call(void 0, model.provider, model.modelId);
@@ -149,7 +149,7 @@ function AvailableModelPicker({
149
149
  type: "button",
150
150
  onClick: () => handleSelect(model.provider, model.modelId),
151
151
  className: _utils.cn.call(void 0,
152
- "flex w-full items-center gap-2.5 rounded-lg px-2.5 py-1.5 text-left text-xs transition-colors",
152
+ "flex w-full items-center gap-2.5 rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors",
153
153
  isSelected ? "bg-secondary text-foreground" : "text-muted-foreground hover:bg-secondary/60 hover:text-foreground"
154
154
  ),
155
155
  children: [
@@ -71,7 +71,7 @@ function AvailableModelPicker({
71
71
  role: "button",
72
72
  tabIndex: disabled ? -1 : 0,
73
73
  className: cn(
74
- "flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-left text-sm transition-colors",
74
+ "flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-left text-base transition-colors",
75
75
  "hover:bg-secondary/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
76
76
  disabled && "cursor-not-allowed opacity-50",
77
77
  className
@@ -91,9 +91,9 @@ function AvailableModelPicker({
91
91
  /* @__PURE__ */ jsx("span", { className: "truncate font-medium text-foreground", children: selected.model.name }),
92
92
  selected.model.reasoning ? /* @__PURE__ */ jsx(Sparkles, { className: "size-3 shrink-0 text-amber-500/70" }) : null
93
93
  ] }),
94
- /* @__PURE__ */ jsx("div", { className: "truncate text-[11px] text-muted-foreground", children: selected.group.displayName })
94
+ /* @__PURE__ */ jsx("div", { className: "truncate text-sm text-muted-foreground", children: selected.group.displayName })
95
95
  ] })
96
- ] }) : selected.fallbackLabel ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground", children: selected.fallbackLabel }) : /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
96
+ ] }) : selected.fallbackLabel ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-mono text-sm text-muted-foreground", children: selected.fallbackLabel }) : /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
97
97
  allowClear && value ? /* @__PURE__ */ jsx(
98
98
  "button",
99
99
  {
@@ -127,7 +127,7 @@ function AvailableModelPicker({
127
127
  containerClassName: "border-b border-border/40"
128
128
  }
129
129
  ),
130
- /* @__PURE__ */ jsx("div", { className: "max-h-[280px] overflow-y-auto py-1", children: groups.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-xs text-muted-foreground", children: noModelsLabel }) : totalResults === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-xs text-muted-foreground", children: emptyLabel }) : filteredGroups.map((group, index) => /* @__PURE__ */ jsxs("div", { children: [
130
+ /* @__PURE__ */ jsx("div", { className: "max-h-[280px] overflow-y-auto py-1", children: groups.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: noModelsLabel }) : totalResults === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: emptyLabel }) : filteredGroups.map((group, index) => /* @__PURE__ */ jsxs("div", { children: [
131
131
  index > 0 ? /* @__PURE__ */ jsx("div", { className: "mx-3 border-t border-border/30" }) : null,
132
132
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 pb-1 pt-2", children: [
133
133
  /* @__PURE__ */ jsx(
@@ -138,7 +138,7 @@ function AvailableModelPicker({
138
138
  className: "size-3.5 shrink-0 rounded-sm dark:invert"
139
139
  }
140
140
  ),
141
- /* @__PURE__ */ jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: group.displayName })
141
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.displayName })
142
142
  ] }),
143
143
  /* @__PURE__ */ jsx("div", { className: "px-1", children: group.models.map((model) => {
144
144
  const nextValue = modelKey(model.provider, model.modelId);
@@ -149,7 +149,7 @@ function AvailableModelPicker({
149
149
  type: "button",
150
150
  onClick: () => handleSelect(model.provider, model.modelId),
151
151
  className: cn(
152
- "flex w-full items-center gap-2.5 rounded-lg px-2.5 py-1.5 text-left text-xs transition-colors",
152
+ "flex w-full items-center gap-2.5 rounded-lg px-2.5 py-1.5 text-left text-sm transition-colors",
153
153
  isSelected ? "bg-secondary text-foreground" : "text-muted-foreground hover:bg-secondary/60 hover:text-foreground"
154
154
  ),
155
155
  children: [
@@ -24,7 +24,7 @@ function ThinkingLevelPicker({
24
24
  disabled: disabled || !isAvailable,
25
25
  onClick: () => onChange(level),
26
26
  className: _utils.cn.call(void 0,
27
- "rounded-md px-2 py-1.5 text-[11px] font-medium transition-colors",
27
+ "rounded-md px-2 py-1.5 text-sm font-medium transition-colors",
28
28
  isActive ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:bg-background/70 hover:text-foreground",
29
29
  (!isAvailable || disabled) && "cursor-not-allowed opacity-40 hover:bg-transparent hover:text-muted-foreground"
30
30
  ),
@@ -24,7 +24,7 @@ function ThinkingLevelPicker({
24
24
  disabled: disabled || !isAvailable,
25
25
  onClick: () => onChange(level),
26
26
  className: cn(
27
- "rounded-md px-2 py-1.5 text-[11px] font-medium transition-colors",
27
+ "rounded-md px-2 py-1.5 text-sm font-medium transition-colors",
28
28
  isActive ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:bg-background/70 hover:text-foreground",
29
29
  (!isAvailable || disabled) && "cursor-not-allowed opacity-40 hover:bg-transparent hover:text-muted-foreground"
30
30
  ),
@@ -0,0 +1,70 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _jsxruntime = require('react/jsx-runtime');
2
+ var _lucidereact = require('lucide-react');
3
+ var _react = require('motion/react');
4
+ var _common = require('@sero-ai/common');
5
+ var _utils = require('../../lib/utils');
6
+ const COMPACT_LABELS = {
7
+ ..._common.THINKING_LABELS,
8
+ xhigh: "X-High"
9
+ };
10
+ function ThinkingPicker({
11
+ available,
12
+ current,
13
+ disabled,
14
+ onSelect,
15
+ className
16
+ }) {
17
+ const levels = disabled ? _common.THINKING_LEVELS : _common.THINKING_LEVELS.filter((level) => level === "off" || available.includes(level));
18
+ const activeIndex = Math.max(
19
+ 0,
20
+ levels.indexOf(disabled ? "off" : current)
21
+ );
22
+ const isOff = disabled || current === "off";
23
+ const isMax = !disabled && current === "max";
24
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25
+ "div",
26
+ {
27
+ className: _utils.cn.call(void 0, `flex flex-col gap-2 border-[var(--border-subtle)] px-3 py-3 transition-opacity duration-150 ${disabled ? "pointer-events-none opacity-40" : ""}`, className),
28
+ children: [
29
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5", children: [
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Brain, { className: "size-3 text-[var(--text-muted)]" }),
31
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: "Thinking" })
32
+ ] }),
33
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex rounded-lg border border-[var(--border-subtle)] bg-[var(--bg-base)] p-0.5", children: [
34
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35
+ _react.motion.div,
36
+ {
37
+ className: "absolute inset-y-0.5 rounded-md shadow-sm ring-1 ring-inset ring-white/5",
38
+ initial: false,
39
+ animate: {
40
+ x: `${activeIndex * 100}%`,
41
+ width: `${100 / levels.length}%`
42
+ },
43
+ transition: { type: "spring", stiffness: 500, damping: 38 },
44
+ style: {
45
+ background: isOff ? "var(--bg-elevated)" : isMax ? "linear-gradient(135deg, #f59e0b40, #ef444440)" : "linear-gradient(135deg, #6366f140, #8b5cf640)"
46
+ }
47
+ }
48
+ ),
49
+ levels.map((level) => {
50
+ const isActive = current === level && !disabled;
51
+ const textClass = isActive ? level === "max" ? "text-status-warning" : level === "off" ? "text-[var(--text-primary)]" : "text-[var(--banner-primary)]" : "text-[var(--text-muted)] hover:text-[var(--text-secondary)]";
52
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53
+ "button",
54
+ {
55
+ type: "button",
56
+ onClick: () => onSelect(level),
57
+ className: `relative z-10 flex flex-1 items-center justify-center whitespace-nowrap rounded-md py-1.5 text-sm font-medium leading-none transition-colors duration-150 ${textClass}`,
58
+ children: COMPACT_LABELS[level]
59
+ },
60
+ level
61
+ );
62
+ })
63
+ ] })
64
+ ]
65
+ }
66
+ );
67
+ }
68
+
69
+
70
+ exports.ThinkingPicker = ThinkingPicker;
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface ThinkingPickerProps {
4
+ available: readonly string[];
5
+ current: string;
6
+ disabled: boolean;
7
+ onSelect: (level: string) => void;
8
+ className?: string;
9
+ }
10
+ declare function ThinkingPicker({ available, current, disabled, onSelect, className }: ThinkingPickerProps): react_jsx_runtime.JSX.Element;
11
+
12
+ export { ThinkingPicker };
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface ThinkingPickerProps {
4
+ available: readonly string[];
5
+ current: string;
6
+ disabled: boolean;
7
+ onSelect: (level: string) => void;
8
+ className?: string;
9
+ }
10
+ declare function ThinkingPicker({ available, current, disabled, onSelect, className }: ThinkingPickerProps): react_jsx_runtime.JSX.Element;
11
+
12
+ export { ThinkingPicker };
@@ -0,0 +1,70 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Brain } from "lucide-react";
3
+ import { motion } from "motion/react";
4
+ import { THINKING_LABELS, THINKING_LEVELS } from "@sero-ai/common";
5
+ import { cn } from "../../lib/utils";
6
+ const COMPACT_LABELS = {
7
+ ...THINKING_LABELS,
8
+ xhigh: "X-High"
9
+ };
10
+ function ThinkingPicker({
11
+ available,
12
+ current,
13
+ disabled,
14
+ onSelect,
15
+ className
16
+ }) {
17
+ const levels = disabled ? THINKING_LEVELS : THINKING_LEVELS.filter((level) => level === "off" || available.includes(level));
18
+ const activeIndex = Math.max(
19
+ 0,
20
+ levels.indexOf(disabled ? "off" : current)
21
+ );
22
+ const isOff = disabled || current === "off";
23
+ const isMax = !disabled && current === "max";
24
+ return /* @__PURE__ */ jsxs(
25
+ "div",
26
+ {
27
+ className: cn(`flex flex-col gap-2 border-[var(--border-subtle)] px-3 py-3 transition-opacity duration-150 ${disabled ? "pointer-events-none opacity-40" : ""}`, className),
28
+ children: [
29
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
30
+ /* @__PURE__ */ jsx(Brain, { className: "size-3 text-[var(--text-muted)]" }),
31
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold uppercase tracking-wider text-[var(--text-muted)]", children: "Thinking" })
32
+ ] }),
33
+ /* @__PURE__ */ jsxs("div", { className: "relative flex rounded-lg border border-[var(--border-subtle)] bg-[var(--bg-base)] p-0.5", children: [
34
+ /* @__PURE__ */ jsx(
35
+ motion.div,
36
+ {
37
+ className: "absolute inset-y-0.5 rounded-md shadow-sm ring-1 ring-inset ring-white/5",
38
+ initial: false,
39
+ animate: {
40
+ x: `${activeIndex * 100}%`,
41
+ width: `${100 / levels.length}%`
42
+ },
43
+ transition: { type: "spring", stiffness: 500, damping: 38 },
44
+ style: {
45
+ background: isOff ? "var(--bg-elevated)" : isMax ? "linear-gradient(135deg, #f59e0b40, #ef444440)" : "linear-gradient(135deg, #6366f140, #8b5cf640)"
46
+ }
47
+ }
48
+ ),
49
+ levels.map((level) => {
50
+ const isActive = current === level && !disabled;
51
+ const textClass = isActive ? level === "max" ? "text-status-warning" : level === "off" ? "text-[var(--text-primary)]" : "text-[var(--banner-primary)]" : "text-[var(--text-muted)] hover:text-[var(--text-secondary)]";
52
+ return /* @__PURE__ */ jsx(
53
+ "button",
54
+ {
55
+ type: "button",
56
+ onClick: () => onSelect(level),
57
+ className: `relative z-10 flex flex-1 items-center justify-center whitespace-nowrap rounded-md py-1.5 text-sm font-medium leading-none transition-colors duration-150 ${textClass}`,
58
+ children: COMPACT_LABELS[level]
59
+ },
60
+ level
61
+ );
62
+ })
63
+ ] })
64
+ ]
65
+ }
66
+ );
67
+ }
68
+ export {
69
+ ThinkingPicker
70
+ };
@@ -30,7 +30,7 @@ function AccordionTrigger({
30
30
  {
31
31
  "data-slot": "accordion-trigger",
32
32
  className: _utils.cn.call(void 0,
33
- "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
33
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-base font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
34
34
  className
35
35
  ),
36
36
  ...props,
@@ -50,7 +50,7 @@ function AccordionContent({
50
50
  _radixui.Accordion.Content,
51
51
  {
52
52
  "data-slot": "accordion-content",
53
- className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
53
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-base",
54
54
  ...props,
55
55
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _utils.cn.call(void 0, "pt-0 pb-4", className), children })
56
56
  }