@ctrl-ui/react 0.8.6 → 0.8.8

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 (376) hide show
  1. package/dist/action-bar.d.ts +15 -7
  2. package/dist/action-bar.js +39 -19
  3. package/dist/activity.js +7 -15
  4. package/dist/audio-recorder.d.ts +14 -4
  5. package/dist/audio-recorder.js +82 -29
  6. package/dist/audio-visualizer.js +1 -1
  7. package/dist/blocks/coding-agent.js +54 -57
  8. package/dist/blocks/design-canvas-data.d.ts +32 -0
  9. package/dist/blocks/design-canvas-data.js +100 -0
  10. package/dist/blocks/design-canvas-inspector.d.ts +8 -0
  11. package/dist/blocks/design-canvas-inspector.js +238 -0
  12. package/dist/blocks/design-canvas.d.ts +21 -0
  13. package/dist/blocks/design-canvas.js +452 -0
  14. package/dist/blocks/discussion.d.ts +28 -0
  15. package/dist/blocks/discussion.js +67 -0
  16. package/dist/blocks/file-explorer-data.d.ts +1 -0
  17. package/dist/blocks/file-explorer-data.js +4 -1
  18. package/dist/blocks/file-explorer.d.ts +9 -1
  19. package/dist/blocks/file-explorer.js +461 -192
  20. package/dist/blocks/settings.d.ts +2 -1
  21. package/dist/blocks/settings.js +101 -79
  22. package/dist/blocks/team-chat.d.ts +12 -0
  23. package/dist/blocks/team-chat.js +26 -0
  24. package/dist/blocks/theme-toggle.js +23 -31
  25. package/dist/chat-composer-attachment.d.ts +12 -3
  26. package/dist/chat-composer-attachment.js +61 -19
  27. package/dist/chat-composer-editor/extensions/mention.d.ts +5 -1
  28. package/dist/chat-composer-editor/extensions/mention.js +58 -27
  29. package/dist/chat-composer-editor/ghost.js +2 -4
  30. package/dist/chat-composer-editor/types.d.ts +5 -0
  31. package/dist/chat-composer-editor.d.ts +1 -1
  32. package/dist/chat-composer-editor.js +71 -28
  33. package/dist/chat-composer.d.ts +13 -32
  34. package/dist/chat-composer.js +54 -13
  35. package/dist/chat-layout.d.ts +19 -0
  36. package/dist/chat-layout.js +96 -32
  37. package/dist/chat-message/social.d.ts +26 -0
  38. package/dist/chat-message/social.js +122 -0
  39. package/dist/chat-message.d.ts +28 -29
  40. package/dist/chat-message.js +106 -25
  41. package/dist/context.d.ts +2 -2
  42. package/dist/context.js +38 -23
  43. package/dist/dynamic-notification-canvas-loop.d.ts +24 -0
  44. package/dist/dynamic-notification-canvas-loop.js +113 -0
  45. package/dist/dynamic-notification-glass.js +23 -114
  46. package/dist/dynamic-notification-liquid.js +14 -118
  47. package/dist/dynamic-notification.d.ts +16 -8
  48. package/dist/dynamic-notification.js +85 -22
  49. package/dist/email/email-brand.d.ts +7 -4
  50. package/dist/email/email-brand.js +9 -6
  51. package/dist/email/email-code.d.ts +3 -2
  52. package/dist/email/email-code.js +11 -9
  53. package/dist/email/email-footer.d.ts +5 -3
  54. package/dist/email/email-footer.js +11 -5
  55. package/dist/email/email.d.ts +31 -9
  56. package/dist/email/email.js +50 -26
  57. package/dist/email/templates.d.ts +10 -9
  58. package/dist/email/templates.js +102 -38
  59. package/dist/email/theme.js +1 -1
  60. package/dist/environment-variables.d.ts +4 -2
  61. package/dist/environment-variables.js +52 -32
  62. package/dist/filter-bar/context.d.ts +32 -0
  63. package/dist/filter-bar/context.js +11 -0
  64. package/dist/filter-bar/editor.d.ts +14 -0
  65. package/dist/filter-bar/editor.js +216 -0
  66. package/dist/filter-bar/model.d.ts +10 -0
  67. package/dist/filter-bar/model.js +57 -0
  68. package/dist/filter-bar/motion.d.ts +10 -0
  69. package/dist/filter-bar/motion.js +84 -0
  70. package/dist/filter-bar/parts.d.ts +19 -0
  71. package/dist/filter-bar/parts.js +244 -0
  72. package/dist/filter-bar/types.d.ts +54 -0
  73. package/dist/filter-bar/types.js +0 -0
  74. package/dist/filter-bar.d.ts +27 -0
  75. package/dist/filter-bar.js +310 -0
  76. package/dist/hooks/use-audio-recorder.js +12 -6
  77. package/dist/hooks/use-chat-composer.d.ts +21 -7
  78. package/dist/hooks/use-chat-composer.js +32 -5
  79. package/dist/hooks/use-chat-message.d.ts +28 -2
  80. package/dist/hooks/use-chat-message.js +41 -10
  81. package/dist/hooks/use-chat-thread-scroll.js +43 -7
  82. package/dist/hooks/use-color-area.d.ts +3 -3
  83. package/dist/hooks/use-color-area.js +13 -12
  84. package/dist/hooks/use-copy-to-clipboard.d.ts +2 -1
  85. package/dist/hooks/use-copy-to-clipboard.js +20 -20
  86. package/dist/hooks/use-dropzone.d.ts +7 -4
  87. package/dist/hooks/use-dropzone.js +34 -3
  88. package/dist/hooks/use-dynamic-notification.d.ts +6 -2
  89. package/dist/hooks/use-dynamic-notification.js +26 -10
  90. package/dist/hooks/use-mobile.d.ts +3 -2
  91. package/dist/hooks/use-mobile.js +8 -4
  92. package/dist/hooks/use-textarea-trigger-menu.js +2 -1
  93. package/dist/hooks/use-trigger-menu.d.ts +54 -0
  94. package/dist/hooks/use-trigger-menu.js +102 -47
  95. package/dist/hooks/use-user-ask.d.ts +2 -0
  96. package/dist/hooks/use-user-ask.js +35 -41
  97. package/dist/inline-attachment.d.ts +6 -2
  98. package/dist/inline-attachment.js +44 -29
  99. package/dist/inline-citation.d.ts +12 -5
  100. package/dist/inline-citation.js +25 -16
  101. package/dist/knob-contracts/audio-recorder-knobs.d.ts +1 -1
  102. package/dist/knob-contracts/audio-recorder-knobs.js +2 -1
  103. package/dist/knob-contracts/audio-visualizer-knobs.d.ts +1 -1
  104. package/dist/knob-contracts/audio-visualizer-knobs.js +2 -1
  105. package/dist/knob-contracts/avatar-knobs.d.ts +1 -1
  106. package/dist/knob-contracts/avatar-knobs.js +6 -1
  107. package/dist/knob-contracts/badge-knobs.d.ts +1 -1
  108. package/dist/knob-contracts/badge-knobs.js +2 -1
  109. package/dist/knob-contracts/breadcrumb-knobs.d.ts +4 -0
  110. package/dist/knob-contracts/breadcrumb-knobs.js +8 -0
  111. package/dist/knob-contracts/button-knobs.d.ts +1 -1
  112. package/dist/knob-contracts/button-knobs.js +1 -0
  113. package/dist/knob-contracts/chat-layout-knobs.d.ts +1 -1
  114. package/dist/knob-contracts/chat-layout-knobs.js +2 -1
  115. package/dist/knob-contracts/chat-message-knobs.d.ts +1 -1
  116. package/dist/knob-contracts/chat-message-knobs.js +8 -1
  117. package/dist/knob-contracts/choice-knobs.d.ts +1 -1
  118. package/dist/knob-contracts/choice-knobs.js +1 -0
  119. package/dist/knob-contracts/code-diff-knobs.d.ts +1 -1
  120. package/dist/knob-contracts/code-diff-knobs.js +2 -0
  121. package/dist/knob-contracts/code-knobs.d.ts +1 -1
  122. package/dist/knob-contracts/code-knobs.js +2 -1
  123. package/dist/knob-contracts/collapsible-knobs.d.ts +1 -1
  124. package/dist/knob-contracts/collapsible-knobs.js +1 -1
  125. package/dist/knob-contracts/dynamic-notification-knobs.d.ts +1 -1
  126. package/dist/knob-contracts/dynamic-notification-knobs.js +2 -0
  127. package/dist/knob-contracts/emoji-picker-knobs.d.ts +4 -0
  128. package/dist/knob-contracts/emoji-picker-knobs.js +10 -0
  129. package/dist/knob-contracts/field-knobs.d.ts +1 -1
  130. package/dist/knob-contracts/field-knobs.js +5 -1
  131. package/dist/knob-contracts/filter-bar-knobs.d.ts +4 -0
  132. package/dist/knob-contracts/filter-bar-knobs.js +15 -0
  133. package/dist/knob-contracts/infinite-canvas-knobs.d.ts +1 -1
  134. package/dist/knob-contracts/infinite-canvas-knobs.js +3 -0
  135. package/dist/knob-contracts/markdown-knobs.d.ts +1 -1
  136. package/dist/knob-contracts/markdown-knobs.js +3 -1
  137. package/dist/knob-contracts/page-layout-knobs.d.ts +1 -1
  138. package/dist/knob-contracts/page-layout-knobs.js +4 -1
  139. package/dist/knob-contracts/popup-knobs.d.ts +1 -1
  140. package/dist/knob-contracts/popup-knobs.js +28 -0
  141. package/dist/knob-contracts/range-knobs.d.ts +1 -1
  142. package/dist/knob-contracts/range-knobs.js +1 -0
  143. package/dist/knob-contracts/rich-tooltip-knobs.d.ts +1 -1
  144. package/dist/knob-contracts/rich-tooltip-knobs.js +2 -1
  145. package/dist/knob-contracts/sidebar-knobs.d.ts +1 -1
  146. package/dist/knob-contracts/sidebar-knobs.js +27 -2
  147. package/dist/knob-contracts/spinner-knobs.d.ts +1 -1
  148. package/dist/knob-contracts/spinner-knobs.js +1 -1
  149. package/dist/knob-contracts/stepper-knobs.d.ts +1 -1
  150. package/dist/knob-contracts/stepper-knobs.js +4 -1
  151. package/dist/knob-contracts/switch-knobs.d.ts +1 -1
  152. package/dist/knob-contracts/switch-knobs.js +5 -0
  153. package/dist/knob-contracts/table-of-contents-knobs.d.ts +1 -1
  154. package/dist/knob-contracts/table-of-contents-knobs.js +4 -5
  155. package/dist/knob-contracts/tabs-knobs.d.ts +1 -1
  156. package/dist/knob-contracts/tabs-knobs.js +1 -0
  157. package/dist/knob-contracts/tree-knobs.d.ts +1 -1
  158. package/dist/knob-contracts/tree-knobs.js +2 -1
  159. package/dist/lib/cn.js +0 -4
  160. package/dist/lib/contrast.d.ts +1 -0
  161. package/dist/lib/contrast.js +17 -5
  162. package/dist/lib/dropzone-validation.js +41 -28
  163. package/dist/lib/env-file.d.ts +1 -1
  164. package/dist/lib/env-file.js +5 -5
  165. package/dist/lib/motion.d.ts +4 -0
  166. package/dist/lib/motion.js +15 -0
  167. package/dist/lib/trigger-detect.js +6 -8
  168. package/dist/markdown-block.js +13 -8
  169. package/dist/popup-parts.d.ts +8 -0
  170. package/dist/popup-parts.js +43 -0
  171. package/dist/scripts/contrast-eval.js +5 -4
  172. package/dist/source-badge.js +3 -1
  173. package/dist/styles/code.css +0 -2
  174. package/dist/styles/effects.css +6 -32
  175. package/dist/styles/index.css +14 -8
  176. package/dist/styles/recipes/accordion.css +9 -6
  177. package/dist/styles/recipes/action-bar.css +0 -15
  178. package/dist/styles/recipes/activity.css +5 -11
  179. package/dist/styles/recipes/alert.css +4 -4
  180. package/dist/styles/recipes/audio-recorder.css +15 -3
  181. package/dist/styles/recipes/audio-visualizer.css +13 -2
  182. package/dist/styles/recipes/avatar.css +78 -1
  183. package/dist/styles/recipes/badge.css +14 -4
  184. package/dist/styles/recipes/breadcrumb.css +77 -0
  185. package/dist/styles/recipes/button-group.css +6 -8
  186. package/dist/styles/recipes/button-states.css +66 -0
  187. package/dist/styles/recipes/button.css +26 -85
  188. package/dist/styles/recipes/calendar.css +17 -23
  189. package/dist/styles/recipes/card.css +2 -2
  190. package/dist/styles/recipes/chat-composer-attachment.css +9 -3
  191. package/dist/styles/recipes/chat-composer.css +21 -16
  192. package/dist/styles/recipes/chat-layout.css +64 -2
  193. package/dist/styles/recipes/chat-message-social.css +123 -0
  194. package/dist/styles/recipes/chat-message.css +157 -37
  195. package/dist/styles/recipes/choice.css +25 -21
  196. package/dist/styles/recipes/code-diff.css +51 -26
  197. package/dist/styles/recipes/code.css +44 -18
  198. package/dist/styles/recipes/collapsible.css +43 -1
  199. package/dist/styles/recipes/color-picker-details.css +3 -4
  200. package/dist/styles/recipes/color-picker-values.css +9 -8
  201. package/dist/styles/recipes/color-picker.css +23 -4
  202. package/dist/styles/recipes/context.css +3 -3
  203. package/dist/styles/recipes/dockable-panel.css +18 -7
  204. package/dist/styles/recipes/dropzone.css +7 -8
  205. package/dist/styles/recipes/dynamic-notification-input.css +8 -5
  206. package/dist/styles/recipes/dynamic-notification-motion.css +12 -21
  207. package/dist/styles/recipes/dynamic-notification.css +40 -26
  208. package/dist/styles/recipes/emoji-picker.css +132 -0
  209. package/dist/styles/recipes/empty.css +5 -4
  210. package/dist/styles/recipes/environment-variables.css +4 -15
  211. package/dist/styles/recipes/field-parts.css +89 -21
  212. package/dist/styles/recipes/field.css +83 -26
  213. package/dist/styles/recipes/filter-bar.css +161 -0
  214. package/dist/styles/recipes/gradient-editor.css +18 -7
  215. package/dist/styles/recipes/infinite-canvas.css +51 -4
  216. package/dist/styles/recipes/inline-attachment.css +9 -4
  217. package/dist/styles/recipes/inline-citation.css +10 -4
  218. package/dist/styles/recipes/item.css +23 -9
  219. package/dist/styles/recipes/markdown-block.css +5 -4
  220. package/dist/styles/recipes/markdown.css +68 -26
  221. package/dist/styles/recipes/morphing-panel.css +8 -8
  222. package/dist/styles/recipes/page-layout.css +36 -10
  223. package/dist/styles/recipes/pagination.css +5 -6
  224. package/dist/styles/recipes/phone-input.css +12 -8
  225. package/dist/styles/recipes/popup-controls.css +175 -26
  226. package/dist/styles/recipes/popup-drawer.css +35 -44
  227. package/dist/styles/recipes/popup-lists.css +139 -29
  228. package/dist/styles/recipes/popup-motion.css +4 -45
  229. package/dist/styles/recipes/popup-toast.css +55 -26
  230. package/dist/styles/recipes/popup.css +149 -153
  231. package/dist/styles/recipes/range.css +55 -19
  232. package/dist/styles/recipes/resizable.css +36 -7
  233. package/dist/styles/recipes/rich-tooltip.css +24 -34
  234. package/dist/styles/recipes/scroll-area.css +8 -1
  235. package/dist/styles/recipes/sidebar-menu.css +149 -34
  236. package/dist/styles/recipes/sidebar-parts.css +154 -0
  237. package/dist/styles/recipes/sidebar.css +187 -128
  238. package/dist/styles/recipes/source-badge.css +1 -1
  239. package/dist/styles/recipes/spinner.css +12 -1
  240. package/dist/styles/recipes/stepper.css +31 -13
  241. package/dist/styles/recipes/switch.css +68 -23
  242. package/dist/styles/recipes/table-of-contents.css +49 -41
  243. package/dist/styles/recipes/table.css +14 -10
  244. package/dist/styles/recipes/tabs.css +38 -12
  245. package/dist/styles/recipes/task-list.css +7 -14
  246. package/dist/styles/recipes/thread-rail.css +42 -19
  247. package/dist/styles/recipes/timeline.css +2 -0
  248. package/dist/styles/recipes/toolbar.css +27 -25
  249. package/dist/styles/recipes/track-highlight.css +12 -8
  250. package/dist/styles/recipes/transcript-divider.css +2 -2
  251. package/dist/styles/recipes/tree.css +31 -4
  252. package/dist/styles/recipes/user-ask-details.css +0 -1
  253. package/dist/styles/recipes/user-ask.css +4 -4
  254. package/dist/styles/theme.css +287 -107
  255. package/dist/task-list.d.ts +4 -1
  256. package/dist/task-list.js +24 -8
  257. package/dist/thread-rail.d.ts +1 -1
  258. package/dist/thread-rail.js +61 -19
  259. package/dist/transcript-divider.js +2 -1
  260. package/dist/ui/alert.d.ts +3 -1
  261. package/dist/ui/alert.js +14 -8
  262. package/dist/ui/autocomplete.js +7 -1
  263. package/dist/ui/avatar.d.ts +8 -0
  264. package/dist/ui/avatar.js +23 -3
  265. package/dist/ui/badge.js +1 -1
  266. package/dist/ui/breadcrumb.d.ts +27 -0
  267. package/dist/ui/breadcrumb.js +88 -0
  268. package/dist/ui/button.d.ts +2 -1
  269. package/dist/ui/button.js +1 -1
  270. package/dist/ui/calendar.js +2 -2
  271. package/dist/ui/card.d.ts +3 -1
  272. package/dist/ui/card.js +12 -7
  273. package/dist/ui/checkbox-group.js +1 -1
  274. package/dist/ui/checkbox.d.ts +2 -0
  275. package/dist/ui/code-diff.d.ts +1 -1
  276. package/dist/ui/code-diff.js +71 -27
  277. package/dist/ui/code.d.ts +5 -3
  278. package/dist/ui/code.js +27 -28
  279. package/dist/ui/color-picker.d.ts +5 -2
  280. package/dist/ui/color-picker.js +84 -36
  281. package/dist/ui/combobox-disabled-selection.d.ts +1 -2
  282. package/dist/ui/combobox-disabled-selection.js +7 -8
  283. package/dist/ui/combobox.d.ts +5 -23
  284. package/dist/ui/combobox.js +36 -16
  285. package/dist/ui/command.d.ts +8 -2
  286. package/dist/ui/command.js +39 -15
  287. package/dist/ui/context-menu.js +3 -0
  288. package/dist/ui/dialog.d.ts +2 -1
  289. package/dist/ui/dialog.js +3 -22
  290. package/dist/ui/dockable-panel-geometry.d.ts +1 -0
  291. package/dist/ui/dockable-panel-geometry.js +7 -1
  292. package/dist/ui/dockable-panel.d.ts +9 -6
  293. package/dist/ui/dockable-panel.js +81 -33
  294. package/dist/ui/drawer.d.ts +7 -4
  295. package/dist/ui/drawer.js +35 -22
  296. package/dist/ui/dropdown-menu.js +4 -3
  297. package/dist/ui/dropzone.d.ts +5 -3
  298. package/dist/ui/dropzone.js +78 -17
  299. package/dist/ui/emoji-picker.d.ts +18 -0
  300. package/dist/ui/emoji-picker.js +136 -0
  301. package/dist/ui/empty.d.ts +3 -1
  302. package/dist/ui/empty.js +12 -7
  303. package/dist/ui/field.js +1 -1
  304. package/dist/ui/gradient-editor.d.ts +1 -1
  305. package/dist/ui/gradient-editor.js +37 -21
  306. package/dist/ui/infinite-canvas.d.ts +13 -1
  307. package/dist/ui/infinite-canvas.js +139 -20
  308. package/dist/ui/input-group.d.ts +2 -4
  309. package/dist/ui/input-group.js +13 -14
  310. package/dist/ui/input-otp.d.ts +1 -1
  311. package/dist/ui/input-otp.js +32 -15
  312. package/dist/ui/input.js +11 -2
  313. package/dist/ui/item.d.ts +2 -1
  314. package/dist/ui/item.js +11 -7
  315. package/dist/ui/live-status.d.ts +7 -0
  316. package/dist/ui/live-status.js +17 -0
  317. package/dist/ui/markdown-elements.d.ts +6 -0
  318. package/dist/ui/markdown-elements.js +42 -9
  319. package/dist/ui/menubar.js +2 -2
  320. package/dist/ui/morphing-panel.js +2 -1
  321. package/dist/ui/native-select.d.ts +1 -1
  322. package/dist/ui/native-select.js +24 -11
  323. package/dist/ui/number-field.d.ts +1 -1
  324. package/dist/ui/number-field.js +13 -2
  325. package/dist/ui/page-layout.d.ts +2 -2
  326. package/dist/ui/page-layout.js +2 -4
  327. package/dist/ui/pagination.d.ts +7 -5
  328. package/dist/ui/pagination.js +19 -13
  329. package/dist/ui/phone-input.d.ts +1 -0
  330. package/dist/ui/phone-input.js +56 -58
  331. package/dist/ui/radio-group.d.ts +3 -0
  332. package/dist/ui/radio-group.js +11 -1
  333. package/dist/ui/resizable.d.ts +20 -2
  334. package/dist/ui/resizable.js +130 -8
  335. package/dist/ui/responsive-dialog.d.ts +1 -1
  336. package/dist/ui/responsive-dialog.js +9 -23
  337. package/dist/ui/rich-tooltip.d.ts +10 -4
  338. package/dist/ui/rich-tooltip.js +81 -33
  339. package/dist/ui/scroll-area.d.ts +4 -1
  340. package/dist/ui/scroll-area.js +44 -28
  341. package/dist/ui/select.d.ts +2 -1
  342. package/dist/ui/select.js +57 -32
  343. package/dist/ui/sidebar-menu.d.ts +5 -1
  344. package/dist/ui/sidebar-menu.js +31 -33
  345. package/dist/ui/sidebar-provider.d.ts +10 -1
  346. package/dist/ui/sidebar-provider.js +38 -13
  347. package/dist/ui/sidebar-resize-rail.js +7 -3
  348. package/dist/ui/sidebar.d.ts +11 -6
  349. package/dist/ui/sidebar.js +46 -23
  350. package/dist/ui/slider.js +31 -22
  351. package/dist/ui/spinner.d.ts +3 -2
  352. package/dist/ui/spinner.js +3 -2
  353. package/dist/ui/stepper.d.ts +8 -1
  354. package/dist/ui/stepper.js +74 -25
  355. package/dist/ui/switch.d.ts +1 -0
  356. package/dist/ui/table-of-contents.d.ts +5 -4
  357. package/dist/ui/table-of-contents.js +143 -52
  358. package/dist/ui/table.js +15 -9
  359. package/dist/ui/textarea.d.ts +1 -1
  360. package/dist/ui/textarea.js +20 -9
  361. package/dist/ui/timeline.d.ts +3 -1
  362. package/dist/ui/timeline.js +17 -9
  363. package/dist/ui/toast.d.ts +11 -5
  364. package/dist/ui/toast.js +100 -54
  365. package/dist/ui/toggle.d.ts +1 -1
  366. package/dist/ui/toggle.js +2 -1
  367. package/dist/ui/toolbar.d.ts +3 -2
  368. package/dist/ui/toolbar.js +4 -2
  369. package/dist/ui/tooltip.js +3 -20
  370. package/dist/ui/tree.js +120 -80
  371. package/dist/ui/trigger-menu.js +7 -2
  372. package/dist/user-ask.d.ts +10 -5
  373. package/dist/user-ask.js +31 -11
  374. package/package.json +5 -1
  375. package/dist/hooks/use-keyboard-navigation.d.ts +0 -3
  376. package/dist/hooks/use-keyboard-navigation.js +0 -22
@@ -2,18 +2,172 @@
2
2
  --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
3
3
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
4
4
 
5
+ --scale-neutral-seed: oklch(0.5 0 0);
6
+ --scale-primary-seed: var(--primary);
7
+ --scale-red-seed: var(--color-red-500);
8
+ --scale-orange-seed: var(--color-orange-500);
9
+ --scale-yellow-seed: var(--color-yellow-500);
10
+ --scale-green-seed: var(--color-green-500);
11
+ --scale-blue-seed: var(--color-blue-500);
12
+ --scale-purple-seed: var(--color-purple-500);
13
+ --scale-pink-seed: var(--color-pink-500);
14
+
15
+ --scale-neutral-lightness-1: 1;
16
+ --scale-neutral-lightness-2: 0.97;
17
+ --scale-neutral-lightness-3: 0.9425;
18
+ --scale-neutral-lightness-4: 0.9295;
19
+ --scale-neutral-lightness-5: 0.91;
20
+ --scale-neutral-lightness-6: 0.8851;
21
+ --scale-neutral-lightness-7: 0.83;
22
+ --scale-neutral-lightness-8: 0.74;
23
+ --scale-neutral-lightness-9: 0.62;
24
+ --scale-neutral-lightness-10: 0.57;
25
+ --scale-neutral-lightness-11: 0.52;
26
+ --scale-neutral-lightness-12: 0.1448;
27
+ --scale-lightness-1: 0.99;
28
+ --scale-lightness-2: 0.975;
29
+ --scale-lightness-3: 0.95;
30
+ --scale-lightness-4: 0.92;
31
+ --scale-lightness-5: 0.89;
32
+ --scale-lightness-6: 0.85;
33
+ --scale-lightness-7: 0.8;
34
+ --scale-lightness-8: 0.72;
35
+ --scale-lightness-11: 0.44;
36
+ --scale-lightness-12: 0.34;
37
+ --scale-chroma-1: 0.06;
38
+ --scale-chroma-2: 0.12;
39
+ --scale-chroma-3: 0.2;
40
+ --scale-chroma-4: 0.28;
41
+ --scale-chroma-5: 0.36;
42
+ --scale-chroma-6: 0.45;
43
+ --scale-chroma-7: 0.55;
44
+ --scale-chroma-8: 0.7;
45
+ --scale-chroma-9: 1;
46
+ --scale-chroma-10: 1;
47
+ --scale-chroma-11: 1;
48
+ --scale-chroma-12: 0.7;
49
+
50
+ --scale-neutral-1: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-1) calc(c * var(--scale-chroma-1)) h);
51
+ --scale-neutral-2: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-2) calc(c * var(--scale-chroma-2)) h);
52
+ --scale-neutral-3: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-3) calc(c * var(--scale-chroma-3)) h);
53
+ --scale-neutral-4: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-4) calc(c * var(--scale-chroma-4)) h);
54
+ --scale-neutral-5: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-5) calc(c * var(--scale-chroma-5)) h);
55
+ --scale-neutral-6: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-6) calc(c * var(--scale-chroma-6)) h);
56
+ --scale-neutral-7: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-7) calc(c * var(--scale-chroma-7)) h);
57
+ --scale-neutral-8: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-8) calc(c * var(--scale-chroma-8)) h);
58
+ --scale-neutral-9: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-9) calc(c * var(--scale-chroma-9)) h);
59
+ --scale-neutral-10: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-10) calc(c * var(--scale-chroma-10)) h);
60
+ --scale-neutral-11: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-11) calc(c * var(--scale-chroma-11)) h);
61
+ --scale-neutral-12: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-12) calc(c * var(--scale-chroma-12)) h);
62
+ --scale-primary-1: oklch(from var(--scale-primary-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
63
+ --scale-primary-2: oklch(from var(--scale-primary-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
64
+ --scale-primary-3: oklch(from var(--scale-primary-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
65
+ --scale-primary-4: oklch(from var(--scale-primary-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
66
+ --scale-primary-5: oklch(from var(--scale-primary-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
67
+ --scale-primary-6: oklch(from var(--scale-primary-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
68
+ --scale-primary-7: oklch(from var(--scale-primary-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
69
+ --scale-primary-8: oklch(from var(--scale-primary-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
70
+ --scale-primary-9: var(--scale-primary-seed);
71
+ --scale-primary-10: oklch(from var(--scale-primary-seed) calc(l - 0.05) c h);
72
+ --scale-primary-11: oklch(from var(--scale-primary-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
73
+ --scale-primary-12: oklch(from var(--scale-primary-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
74
+ --scale-red-1: oklch(from var(--scale-red-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
75
+ --scale-red-2: oklch(from var(--scale-red-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
76
+ --scale-red-3: oklch(from var(--scale-red-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
77
+ --scale-red-4: oklch(from var(--scale-red-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
78
+ --scale-red-5: oklch(from var(--scale-red-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
79
+ --scale-red-6: oklch(from var(--scale-red-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
80
+ --scale-red-7: oklch(from var(--scale-red-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
81
+ --scale-red-8: oklch(from var(--scale-red-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
82
+ --scale-red-9: var(--scale-red-seed);
83
+ --scale-red-10: oklch(from var(--scale-red-seed) calc(l - 0.05) c h);
84
+ --scale-red-11: oklch(from var(--scale-red-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
85
+ --scale-red-12: oklch(from var(--scale-red-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
86
+ --scale-orange-1: oklch(from var(--scale-orange-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
87
+ --scale-orange-2: oklch(from var(--scale-orange-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
88
+ --scale-orange-3: oklch(from var(--scale-orange-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
89
+ --scale-orange-4: oklch(from var(--scale-orange-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
90
+ --scale-orange-5: oklch(from var(--scale-orange-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
91
+ --scale-orange-6: oklch(from var(--scale-orange-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
92
+ --scale-orange-7: oklch(from var(--scale-orange-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
93
+ --scale-orange-8: oklch(from var(--scale-orange-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
94
+ --scale-orange-9: var(--scale-orange-seed);
95
+ --scale-orange-10: oklch(from var(--scale-orange-seed) calc(l - 0.05) c h);
96
+ --scale-orange-11: oklch(from var(--scale-orange-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
97
+ --scale-orange-12: oklch(from var(--scale-orange-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
98
+ --scale-yellow-1: oklch(from var(--scale-yellow-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
99
+ --scale-yellow-2: oklch(from var(--scale-yellow-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
100
+ --scale-yellow-3: oklch(from var(--scale-yellow-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
101
+ --scale-yellow-4: oklch(from var(--scale-yellow-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
102
+ --scale-yellow-5: oklch(from var(--scale-yellow-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
103
+ --scale-yellow-6: oklch(from var(--scale-yellow-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
104
+ --scale-yellow-7: oklch(from var(--scale-yellow-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
105
+ --scale-yellow-8: oklch(from var(--scale-yellow-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
106
+ --scale-yellow-9: var(--scale-yellow-seed);
107
+ --scale-yellow-10: oklch(from var(--scale-yellow-seed) calc(l - 0.05) c h);
108
+ --scale-yellow-11: oklch(from var(--scale-yellow-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
109
+ --scale-yellow-12: oklch(from var(--scale-yellow-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
110
+ --scale-green-1: oklch(from var(--scale-green-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
111
+ --scale-green-2: oklch(from var(--scale-green-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
112
+ --scale-green-3: oklch(from var(--scale-green-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
113
+ --scale-green-4: oklch(from var(--scale-green-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
114
+ --scale-green-5: oklch(from var(--scale-green-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
115
+ --scale-green-6: oklch(from var(--scale-green-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
116
+ --scale-green-7: oklch(from var(--scale-green-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
117
+ --scale-green-8: oklch(from var(--scale-green-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
118
+ --scale-green-9: var(--scale-green-seed);
119
+ --scale-green-10: oklch(from var(--scale-green-seed) calc(l - 0.05) c h);
120
+ --scale-green-11: oklch(from var(--scale-green-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
121
+ --scale-green-12: oklch(from var(--scale-green-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
122
+ --scale-blue-1: oklch(from var(--scale-blue-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
123
+ --scale-blue-2: oklch(from var(--scale-blue-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
124
+ --scale-blue-3: oklch(from var(--scale-blue-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
125
+ --scale-blue-4: oklch(from var(--scale-blue-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
126
+ --scale-blue-5: oklch(from var(--scale-blue-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
127
+ --scale-blue-6: oklch(from var(--scale-blue-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
128
+ --scale-blue-7: oklch(from var(--scale-blue-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
129
+ --scale-blue-8: oklch(from var(--scale-blue-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
130
+ --scale-blue-9: var(--scale-blue-seed);
131
+ --scale-blue-10: oklch(from var(--scale-blue-seed) calc(l - 0.05) c h);
132
+ --scale-blue-11: oklch(from var(--scale-blue-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
133
+ --scale-blue-12: oklch(from var(--scale-blue-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
134
+ --scale-purple-1: oklch(from var(--scale-purple-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
135
+ --scale-purple-2: oklch(from var(--scale-purple-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
136
+ --scale-purple-3: oklch(from var(--scale-purple-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
137
+ --scale-purple-4: oklch(from var(--scale-purple-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
138
+ --scale-purple-5: oklch(from var(--scale-purple-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
139
+ --scale-purple-6: oklch(from var(--scale-purple-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
140
+ --scale-purple-7: oklch(from var(--scale-purple-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
141
+ --scale-purple-8: oklch(from var(--scale-purple-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
142
+ --scale-purple-9: var(--scale-purple-seed);
143
+ --scale-purple-10: oklch(from var(--scale-purple-seed) calc(l - 0.05) c h);
144
+ --scale-purple-11: oklch(from var(--scale-purple-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
145
+ --scale-purple-12: oklch(from var(--scale-purple-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
146
+ --scale-pink-1: oklch(from var(--scale-pink-seed) var(--scale-lightness-1) calc(c * var(--scale-chroma-1)) h);
147
+ --scale-pink-2: oklch(from var(--scale-pink-seed) var(--scale-lightness-2) calc(c * var(--scale-chroma-2)) h);
148
+ --scale-pink-3: oklch(from var(--scale-pink-seed) var(--scale-lightness-3) calc(c * var(--scale-chroma-3)) h);
149
+ --scale-pink-4: oklch(from var(--scale-pink-seed) var(--scale-lightness-4) calc(c * var(--scale-chroma-4)) h);
150
+ --scale-pink-5: oklch(from var(--scale-pink-seed) var(--scale-lightness-5) calc(c * var(--scale-chroma-5)) h);
151
+ --scale-pink-6: oklch(from var(--scale-pink-seed) var(--scale-lightness-6) calc(c * var(--scale-chroma-6)) h);
152
+ --scale-pink-7: oklch(from var(--scale-pink-seed) var(--scale-lightness-7) calc(c * var(--scale-chroma-7)) h);
153
+ --scale-pink-8: oklch(from var(--scale-pink-seed) var(--scale-lightness-8) calc(c * var(--scale-chroma-8)) h);
154
+ --scale-pink-9: var(--scale-pink-seed);
155
+ --scale-pink-10: oklch(from var(--scale-pink-seed) calc(l - 0.05) c h);
156
+ --scale-pink-11: oklch(from var(--scale-pink-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
157
+ --scale-pink-12: oklch(from var(--scale-pink-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
158
+
5
159
  --primary: oklch(0.2046 0 0);
6
160
  --primary-foreground: oklch(0.9851 0 0);
7
- --foreground: oklch(0.1448 0 0);
8
- --secondary-foreground: oklch(0.1448 0 0);
9
- --accent-foreground: oklch(0.1448 0 0);
161
+ --foreground: var(--scale-neutral-12);
162
+ --secondary-foreground: var(--scale-neutral-12);
163
+ --accent-foreground: var(--scale-neutral-12);
10
164
 
11
- --background: oklch(1 0 0);
12
- --card: oklch(1 0 0);
13
- --card-foreground: oklch(0.1448 0 0);
14
- --popover: oklch(1 0 0);
15
- --popover-foreground: oklch(0.1448 0 0);
16
- --canvas: oklch(1 0 0);
165
+ --background: var(--scale-neutral-1);
166
+ --card: var(--scale-neutral-1);
167
+ --card-foreground: var(--scale-neutral-12);
168
+ --popover: var(--scale-neutral-1);
169
+ --popover-foreground: var(--scale-neutral-12);
170
+ --canvas: var(--scale-neutral-1);
17
171
 
18
172
  --radius: 0px;
19
173
  --shadow-size: 0;
@@ -27,14 +181,14 @@
27
181
  --padding-x: 16px;
28
182
  --padding-y: 10px;
29
183
 
30
- --muted: oklch(0.9425 0 0);
31
- --muted-foreground: oklch(0.52 0 0);
32
- --secondary: oklch(0.9425 0 0);
33
- --accent: oklch(0.9295 0 0);
184
+ --muted: var(--scale-neutral-3);
185
+ --muted-foreground: var(--scale-neutral-11);
186
+ --secondary: var(--scale-neutral-3);
187
+ --accent: var(--scale-neutral-4);
34
188
  --destructive: oklch(0.568 0.1961 32);
35
189
  --destructive-foreground: oklch(0.9852 0.0058 85);
36
- --border: oklch(0.8851 0 0 / var(--ring-opacity));
37
- --input: oklch(0.8851 0 0);
190
+ --border: oklch(from var(--scale-neutral-6) l c h / var(--ring-opacity));
191
+ --input: var(--scale-neutral-6);
38
192
  --ring: oklch(0.5 0 0);
39
193
  --text-label: 0.75rem;
40
194
  --radius-control: calc(var(--radius) * 2);
@@ -47,6 +201,7 @@
47
201
  --duration-fast: 150ms;
48
202
  --duration-base: 200ms;
49
203
  --duration-slow: 300ms;
204
+ --duration-loop: 1000ms;
50
205
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
51
206
  --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
52
207
  --z-overlay: 70;
@@ -55,20 +210,30 @@
55
210
  --z-tooltip: 90;
56
211
  --z-toast: 95;
57
212
  --popover-padding: 0.25rem;
213
+ --composer-padding: calc(var(--spacing) * 2.5);
58
214
  --font-body: var(--font-sans);
59
215
  --font-display: var(--font-sans);
60
- --primary-text: oklch(from var(--primary) 0.48 c h);
216
+ --primary-text: var(--scale-primary-11);
61
217
  --destructive-text: oklch(from var(--destructive) 0.48 c h);
218
+ --success-text: var(--scale-green-11);
219
+ --warning-text: var(--scale-yellow-11);
220
+ --info-text: var(--scale-blue-11);
62
221
  --ring-opacity: 1;
63
- --focus-ring: var(--ring);
222
+ --focus-ring: oklch(from var(--ring) l c h / calc(alpha * 0.7));
64
223
  --focus-ring-width: 2px;
65
224
  --focus-ring-style: solid;
66
225
  --focus-ring-offset: 2px;
67
226
 
68
227
  --control-rim: var(--border);
69
228
  --control-rim-width: 1px;
229
+ --control-boundary: oklch(from var(--foreground) l c h / 0.6);
230
+ --control-fill: oklch(from var(--card) l c h / 0.72);
70
231
  --hover-fill: oklch(from var(--foreground) l c h / 0.06);
71
232
  --active-fill: oklch(from var(--foreground) l c h / 0.08);
233
+ --image-outline: oklch(0 0 0 / 0.1);
234
+ --disabled-opacity: 0.45;
235
+ --touch-target: 44px;
236
+ --target-min: 24px;
72
237
 
73
238
  --text-micro: 0.625rem;
74
239
  --text-caption: 0.6875rem;
@@ -91,10 +256,15 @@
91
256
  --text-display--line-height: 1.1;
92
257
  --text-display--font-weight: 600;
93
258
  --text-display--letter-spacing: -0.026em;
259
+ --text-input-min: 16px;
94
260
 
95
261
  --corner-shape: round;
96
262
  --corner-radius-fit: 0.5;
97
263
  --radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
264
+ --radius-composer: calc(
265
+ min(var(--radius-control), calc(var(--control-h-xs) / 2)) +
266
+ clamp(0px, min(var(--radius-control), calc(var(--control-h-xs) / 2)) * 1000, var(--composer-padding) + var(--control-rim-width))
267
+ );
98
268
 
99
269
  --shadow-highlight: oklch(1 0 0 / 0.62);
100
270
  --shadow-y: 1;
@@ -112,42 +282,43 @@
112
282
  --badge-neutral-foreground: var(--foreground);
113
283
  --badge-neutral-border: oklch(from var(--foreground) l c h / 0.1);
114
284
  --badge-neutral-hover: oklch(from var(--foreground) l c h / 0.12);
115
- --badge-red: oklch(from var(--color-red-500) l c h / 0.14);
116
- --badge-red-foreground: var(--color-red-800);
117
- --badge-red-border: oklch(from var(--color-red-500) l c h / 0.18);
118
- --badge-red-hover: oklch(from var(--color-red-500) l c h / 0.2);
119
- --badge-orange: oklch(from var(--color-orange-500) l c h / 0.16);
120
- --badge-orange-foreground: var(--color-orange-800);
121
- --badge-orange-border: oklch(from var(--color-orange-500) l c h / 0.2);
122
- --badge-orange-hover: oklch(from var(--color-orange-500) l c h / 0.24);
123
- --badge-yellow: oklch(from var(--color-yellow-400) l c h / 0.2);
124
- --badge-yellow-foreground: var(--color-yellow-900);
125
- --badge-yellow-border: oklch(from var(--color-yellow-400) l c h / 0.24);
126
- --badge-yellow-hover: oklch(from var(--color-yellow-400) l c h / 0.28);
127
- --badge-green: oklch(from var(--color-green-500) l c h / 0.16);
128
- --badge-green-foreground: var(--color-green-800);
129
- --badge-green-border: oklch(from var(--color-green-500) l c h / 0.2);
130
- --badge-green-hover: oklch(from var(--color-green-500) l c h / 0.24);
131
- --badge-blue: oklch(from var(--color-blue-500) l c h / 0.16);
132
- --badge-blue-foreground: var(--color-blue-800);
133
- --badge-blue-border: oklch(from var(--color-blue-500) l c h / 0.2);
134
- --badge-blue-hover: oklch(from var(--color-blue-500) l c h / 0.24);
135
- --badge-purple: oklch(from var(--color-purple-500) l c h / 0.16);
136
- --badge-purple-foreground: var(--color-purple-800);
137
- --badge-purple-border: oklch(from var(--color-purple-500) l c h / 0.2);
138
- --badge-purple-hover: oklch(from var(--color-purple-500) l c h / 0.24);
139
- --badge-pink: oklch(from var(--color-pink-500) l c h / 0.16);
140
- --badge-pink-foreground: var(--color-pink-800);
141
- --badge-pink-border: oklch(from var(--color-pink-500) l c h / 0.2);
142
- --badge-pink-hover: oklch(from var(--color-pink-500) l c h / 0.24);
285
+ --badge-fill-alpha: 0.16;
286
+ --badge-border-alpha: 0.2;
287
+ --badge-hover-alpha: 0.24;
288
+ --badge-red: oklch(from var(--scale-red-9) l c h / var(--badge-fill-alpha));
289
+ --badge-red-foreground: var(--scale-red-11);
290
+ --badge-red-border: oklch(from var(--scale-red-9) l c h / var(--badge-border-alpha));
291
+ --badge-red-hover: oklch(from var(--scale-red-9) l c h / var(--badge-hover-alpha));
292
+ --badge-orange: oklch(from var(--scale-orange-9) l c h / var(--badge-fill-alpha));
293
+ --badge-orange-foreground: var(--scale-orange-11);
294
+ --badge-orange-border: oklch(from var(--scale-orange-9) l c h / var(--badge-border-alpha));
295
+ --badge-orange-hover: oklch(from var(--scale-orange-9) l c h / var(--badge-hover-alpha));
296
+ --badge-yellow: oklch(from var(--scale-yellow-9) l c h / var(--badge-fill-alpha));
297
+ --badge-yellow-foreground: var(--scale-yellow-11);
298
+ --badge-yellow-border: oklch(from var(--scale-yellow-9) l c h / var(--badge-border-alpha));
299
+ --badge-yellow-hover: oklch(from var(--scale-yellow-9) l c h / var(--badge-hover-alpha));
300
+ --badge-green: oklch(from var(--scale-green-9) l c h / var(--badge-fill-alpha));
301
+ --badge-green-foreground: var(--scale-green-11);
302
+ --badge-green-border: oklch(from var(--scale-green-9) l c h / var(--badge-border-alpha));
303
+ --badge-green-hover: oklch(from var(--scale-green-9) l c h / var(--badge-hover-alpha));
304
+ --badge-blue: oklch(from var(--scale-blue-9) l c h / var(--badge-fill-alpha));
305
+ --badge-blue-foreground: var(--scale-blue-11);
306
+ --badge-blue-border: oklch(from var(--scale-blue-9) l c h / var(--badge-border-alpha));
307
+ --badge-blue-hover: oklch(from var(--scale-blue-9) l c h / var(--badge-hover-alpha));
308
+ --badge-purple: oklch(from var(--scale-purple-9) l c h / var(--badge-fill-alpha));
309
+ --badge-purple-foreground: var(--scale-purple-11);
310
+ --badge-purple-border: oklch(from var(--scale-purple-9) l c h / var(--badge-border-alpha));
311
+ --badge-purple-hover: oklch(from var(--scale-purple-9) l c h / var(--badge-hover-alpha));
312
+ --badge-pink: oklch(from var(--scale-pink-9) l c h / var(--badge-fill-alpha));
313
+ --badge-pink-foreground: var(--scale-pink-11);
314
+ --badge-pink-border: oklch(from var(--scale-pink-9) l c h / var(--badge-border-alpha));
315
+ --badge-pink-hover: oklch(from var(--scale-pink-9) l c h / var(--badge-hover-alpha));
143
316
  --radius-sm: calc(var(--radius) * 0.6);
144
317
  --radius-md: calc(var(--radius) * 0.8);
145
318
  --radius-lg: var(--radius);
146
319
  --radius-xl: calc(var(--radius) * 1.4);
147
320
  --radius-2xl: calc(var(--radius) * 1.6);
148
321
  --radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
149
- --nest-safe: 1px;
150
- --nest-corner-ratio: 3.41421356;
151
322
  --control-h-md: var(--control-h);
152
323
  --sidebar: var(--canvas);
153
324
  --sidebar-foreground: var(--foreground);
@@ -156,67 +327,51 @@
156
327
  --sidebar-accent: var(--hover-fill);
157
328
  --sidebar-accent-foreground: var(--foreground);
158
329
  --sidebar-border: var(--border);
159
- --sidebar-ring: var(--ring);
330
+ --sidebar-ring: var(--focus-ring);
160
331
  }
161
332
 
162
333
  :where(.dark:root, .dark[data-skin], .dark [data-skin]) {
334
+ --scale-neutral-lightness-1: 0.1448;
335
+ --scale-neutral-lightness-2: 0.2046;
336
+ --scale-neutral-lightness-3: 0.2668;
337
+ --scale-neutral-lightness-4: 0.2864;
338
+ --scale-neutral-lightness-5: 0.297;
339
+ --scale-neutral-lightness-6: 0.3082;
340
+ --scale-neutral-lightness-7: 0.37;
341
+ --scale-neutral-lightness-8: 0.46;
342
+ --scale-neutral-lightness-9: 0.56;
343
+ --scale-neutral-lightness-10: 0.62;
344
+ --scale-neutral-lightness-11: 0.7405;
345
+ --scale-neutral-lightness-12: 0.9851;
346
+ --scale-lightness-1: 0.18;
347
+ --scale-lightness-2: 0.21;
348
+ --scale-lightness-3: 0.25;
349
+ --scale-lightness-4: 0.29;
350
+ --scale-lightness-5: 0.33;
351
+ --scale-lightness-6: 0.38;
352
+ --scale-lightness-7: 0.44;
353
+ --scale-lightness-8: 0.52;
354
+ --scale-lightness-11: 0.86;
355
+ --scale-lightness-12: 0.93;
356
+
163
357
  --primary: oklch(0.9851 0 0);
164
358
  --primary-foreground: oklch(0.2046 0 0);
165
- --foreground: oklch(0.9851 0 0);
166
- --card-foreground: oklch(0.9851 0 0);
167
- --popover-foreground: oklch(0.9851 0 0);
168
- --secondary-foreground: oklch(0.9851 0 0);
169
- --accent-foreground: oklch(0.9851 0 0);
170
- --background: oklch(0.1448 0 0);
171
- --card: oklch(0.2046 0 0);
172
- --popover: oklch(0.2046 0 0);
173
- --canvas: oklch(0.1448 0 0);
174
-
175
- --muted: oklch(0.2668 0 0);
176
- --muted-foreground: oklch(0.7405 0 0);
177
- --secondary: oklch(0.2668 0 0);
178
- --accent: oklch(0.2864 0 0);
359
+ --card: var(--scale-neutral-2);
360
+ --popover: var(--scale-neutral-2);
361
+
179
362
  --destructive: oklch(0.551 0.1799 32);
180
363
  --destructive-foreground: oklch(0.9645 0.008 84);
181
- --border: oklch(0.3082 0 0 / var(--ring-opacity));
182
- --input: oklch(0.3082 0 0);
183
364
  --ring: oklch(0.66 0 0);
184
- --focus-ring: oklch(0.66 0 0);
185
365
  --shadow-color: oklch(0 0 0);
186
- --primary-text: oklch(from var(--primary) 0.78 c h);
187
366
  --destructive-text: oklch(from var(--destructive) 0.78 c h);
188
367
  --shadow-highlight: oklch(1 0 0 / 0.055);
189
368
  --badge-neutral: oklch(from var(--foreground) l c h / 0.1);
190
369
  --badge-neutral-border: oklch(from var(--foreground) l c h / 0.12);
191
370
  --badge-neutral-hover: oklch(from var(--foreground) l c h / 0.14);
192
- --badge-red: oklch(from var(--color-red-400) l c h / 0.18);
193
- --badge-red-foreground: var(--color-red-300);
194
- --badge-red-border: oklch(from var(--color-red-400) l c h / 0.22);
195
- --badge-red-hover: oklch(from var(--color-red-400) l c h / 0.26);
196
- --badge-orange: oklch(from var(--color-orange-400) l c h / 0.2);
197
- --badge-orange-foreground: var(--color-orange-300);
198
- --badge-orange-border: oklch(from var(--color-orange-400) l c h / 0.24);
199
- --badge-orange-hover: oklch(from var(--color-orange-400) l c h / 0.28);
200
- --badge-yellow: oklch(from var(--color-yellow-400) l c h / 0.22);
201
- --badge-yellow-foreground: var(--color-yellow-300);
202
- --badge-yellow-border: oklch(from var(--color-yellow-400) l c h / 0.26);
203
- --badge-yellow-hover: oklch(from var(--color-yellow-400) l c h / 0.3);
204
- --badge-green: oklch(from var(--color-green-400) l c h / 0.2);
205
- --badge-green-foreground: var(--color-green-300);
206
- --badge-green-border: oklch(from var(--color-green-400) l c h / 0.24);
207
- --badge-green-hover: oklch(from var(--color-green-400) l c h / 0.28);
208
- --badge-blue: oklch(from var(--color-blue-400) l c h / 0.2);
209
- --badge-blue-foreground: var(--color-blue-300);
210
- --badge-blue-border: oklch(from var(--color-blue-400) l c h / 0.24);
211
- --badge-blue-hover: oklch(from var(--color-blue-400) l c h / 0.28);
212
- --badge-purple: oklch(from var(--color-purple-400) l c h / 0.2);
213
- --badge-purple-foreground: var(--color-purple-300);
214
- --badge-purple-border: oklch(from var(--color-purple-400) l c h / 0.24);
215
- --badge-purple-hover: oklch(from var(--color-purple-400) l c h / 0.28);
216
- --badge-pink: oklch(from var(--color-pink-400) l c h / 0.2);
217
- --badge-pink-foreground: var(--color-pink-300);
218
- --badge-pink-border: oklch(from var(--color-pink-400) l c h / 0.24);
219
- --badge-pink-hover: oklch(from var(--color-pink-400) l c h / 0.28);
371
+ --badge-fill-alpha: 0.2;
372
+ --badge-border-alpha: 0.24;
373
+ --badge-hover-alpha: 0.28;
374
+ --image-outline: oklch(1 0 0 / 0.1);
220
375
  }
221
376
 
222
377
  @custom-variant dark (&:is(.dark *));
@@ -231,7 +386,9 @@
231
386
  --duration-slow: 0ms !important;
232
387
  }
233
388
 
234
- :where(:root, :root *, [data-skin], [data-skin] *, [data-skin]::before, [data-skin]::after, [data-skin] *::before, [data-skin] *::after) {
389
+ :where(:root, :root *, [data-skin], [data-skin] *):where(:not([data-motion-essential], [data-motion-essential] *)),
390
+ :where(:root, :root *, [data-skin], [data-skin] *):where(:not([data-motion-essential], [data-motion-essential] *))::before,
391
+ :where(:root, :root *, [data-skin], [data-skin] *):where(:not([data-motion-essential], [data-motion-essential] *))::after {
235
392
  scroll-behavior: auto !important;
236
393
  transition-delay: 0ms !important;
237
394
  transition-duration: 0ms !important;
@@ -249,14 +406,9 @@
249
406
  --duration-slow: 0ms !important;
250
407
  }
251
408
 
252
- :where(
253
- [data-motion="reduced"],
254
- [data-motion="reduced"] *,
255
- [data-motion="reduced"]::before,
256
- [data-motion="reduced"]::after,
257
- [data-motion="reduced"] *::before,
258
- [data-motion="reduced"] *::after
259
- ) {
409
+ :where([data-motion="reduced"], [data-motion="reduced"] *):where(:not([data-motion-essential], [data-motion-essential] *)),
410
+ :where([data-motion="reduced"], [data-motion="reduced"] *):where(:not([data-motion-essential], [data-motion-essential] *))::before,
411
+ :where([data-motion="reduced"], [data-motion="reduced"] *):where(:not([data-motion-essential], [data-motion-essential] *))::after {
260
412
  scroll-behavior: auto !important;
261
413
  transition-delay: 0ms !important;
262
414
  transition-duration: 0ms !important;
@@ -266,6 +418,10 @@
266
418
  }
267
419
  /* biome-ignore-end lint/complexity/noImportantStyles: Reduced motion must override skin and inline motion. */
268
420
 
421
+ @theme static {
422
+ --breakpoint-lg: 64rem;
423
+ }
424
+
269
425
  @theme inline {
270
426
  --color-background: var(--background);
271
427
  --color-canvas: var(--canvas);
@@ -286,6 +442,9 @@
286
442
  --color-destructive: var(--destructive);
287
443
  --color-destructive-foreground: var(--destructive-foreground);
288
444
  --color-destructive-text: var(--destructive-text);
445
+ --color-success-text: var(--success-text);
446
+ --color-warning-text: var(--warning-text);
447
+ --color-info-text: var(--info-text);
289
448
  --color-border: var(--border);
290
449
  --color-input: var(--input);
291
450
  --color-ring: var(--ring);
@@ -420,6 +579,10 @@
420
579
  calc(12px * var(--shadow-size) * var(--shadow-ambient-multiplier)) calc(-2.5px * var(--shadow-size) * var(--shadow-ambient-multiplier))
421
580
  oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity)));
422
581
 
582
+ --shadow-overlay:
583
+ 0 0 16px -4px oklch(from var(--shadow-color) l c h / calc(0.03 * var(--shadow-opacity))),
584
+ 0 0 56px -8px oklch(from var(--shadow-color) l c h / calc(0.07 * var(--shadow-opacity)));
585
+
423
586
  --shadow-inset:
424
587
  inset 0 calc(1px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
425
588
  calc(2px * var(--shadow-size) * var(--shadow-control-multiplier))
@@ -452,6 +615,10 @@
452
615
  --radius-popup-item: calc(var(--radius-control) * 0.6);
453
616
  --radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
454
617
  --radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
618
+ --radius-composer: calc(
619
+ min(var(--radius-control), calc(var(--control-h-xs) / 2)) +
620
+ clamp(0px, min(var(--radius-control), calc(var(--control-h-xs) / 2)) * 1000, var(--composer-padding) + var(--control-rim-width))
621
+ );
455
622
 
456
623
  --radius-sm: calc(var(--radius) * 0.6 * var(--corner-radius-fit));
457
624
  --radius-md: calc(var(--radius) * 0.8 * var(--corner-radius-fit));
@@ -497,22 +664,35 @@
497
664
 
498
665
  @layer components {
499
666
  :where([data-control-family]):focus-visible,
500
- :where([data-control-family][data-control="true"]):has(:focus-visible) {
667
+ :where([data-control-family][data-control="true"]):has(:focus-visible),
668
+ :where([data-control-family][data-focus-ring="within"]):has(:focus-visible) {
501
669
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring);
502
670
  outline-offset: var(--focus-ring-offset);
503
671
  }
504
672
 
505
- :where([data-control-family][data-control="true"] [data-control-family]):focus-visible {
673
+ :where(
674
+ [data-control-family][data-control="true"] [data-control-family],
675
+ [data-control-family][data-focus-ring="within"] [data-control-family]
676
+ ):focus-visible {
506
677
  outline-width: 0;
507
678
  }
508
679
 
680
+ :where([data-control-family][data-highlighted]):focus-visible {
681
+ outline-offset: calc(var(--focus-ring-width) * -1);
682
+ }
683
+
509
684
  @media (forced-colors: active) {
510
685
  :where([data-control-family]):focus-visible,
511
- :where([data-control-family][data-control="true"]):has(:focus-visible) {
512
- outline-color: transparent;
686
+ :where([data-control-family][data-control="true"]):has(:focus-visible),
687
+ :where([data-control-family][data-focus-ring="within"]):has(:focus-visible) {
688
+ outline-color: Highlight;
513
689
  }
514
690
  }
515
691
 
692
+ :where([data-icon-dir="inline"]:dir(rtl)) {
693
+ scale: -1 1;
694
+ }
695
+
516
696
  :where([data-control-ui="chat-message"][data-slot="root"], [data-control-ui="chat-composer"][data-slot="root"]) {
517
697
  opacity: 1;
518
698
  filter: none;
@@ -3,13 +3,16 @@ import { TaskListKnobStyle } from "./knob-contracts/task-list-knobs.js";
3
3
  import { CSSProperties, ComponentProps, ReactNode } from "react";
4
4
  //#region src/task-list.d.ts
5
5
  export type TaskStatus = "pending" | "active" | "completed";
6
+ export type TaskStatusLabels = Record<TaskStatus, string>;
7
+ export declare const taskStatusLabels: TaskStatusLabels;
6
8
  export type TaskListProps = Omit<CollapsibleProps, "style"> & {
9
+ statusLabels?: Partial<TaskStatusLabels>;
7
10
  style?: CSSProperties & TaskListKnobStyle;
8
11
  };
9
12
  type TaskListStyleProps<Props, Style> = Omit<Props, "style"> & {
10
13
  style?: CSSProperties & Style;
11
14
  };
12
- export declare function TaskList({ className, children, ...props }: TaskListProps): import("react").JSX.Element;
15
+ export declare function TaskList({ statusLabels, className, children, ...props }: TaskListProps): import("react").JSX.Element;
13
16
  export type TaskListTriggerProps = TaskListStyleProps<ComponentProps<"button">, TaskListKnobStyle>;
14
17
  export declare function TaskListTrigger({ className, children, ...props }: TaskListTriggerProps): import("react").JSX.Element;
15
18
  export type TaskListProgressProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle>;