@flikk/ui 1.0.0-beta.30 → 1.0.0-beta.32

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 (610) hide show
  1. package/CHANGELOG.md +375 -5
  2. package/dist/components/ai/AgentRequest/AgentRequest.animations.d.ts +25 -0
  3. package/dist/components/ai/AgentRequest/AgentRequest.animations.js +81 -0
  4. package/dist/components/ai/AgentRequest/AgentRequest.d.ts +3 -0
  5. package/dist/components/ai/AgentRequest/AgentRequest.js +435 -0
  6. package/dist/components/ai/AgentRequest/AgentRequest.theme.d.ts +2 -0
  7. package/dist/components/ai/AgentRequest/AgentRequest.theme.js +106 -0
  8. package/dist/components/ai/AgentRequest/AgentRequest.types.d.ts +241 -0
  9. package/dist/components/ai/AgentRequest/index.d.ts +3 -0
  10. package/dist/components/ai/AgentStatus/AgentStatus.d.ts +3 -0
  11. package/dist/components/ai/AgentStatus/AgentStatus.js +144 -0
  12. package/dist/components/ai/AgentStatus/AgentStatus.theme.d.ts +2 -0
  13. package/dist/components/ai/AgentStatus/AgentStatus.theme.js +37 -0
  14. package/dist/components/ai/AgentStatus/AgentStatus.types.d.ts +116 -0
  15. package/dist/components/ai/AgentStatus/index.d.ts +3 -0
  16. package/dist/components/ai/CodeBlock/CodeBlock.js +3 -3
  17. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +2 -2
  18. package/dist/components/ai/PromptInput/PromptInput.js +13 -14
  19. package/dist/components/ai/PromptInput/PromptInput.theme.js +3 -3
  20. package/dist/components/ai/PromptInput/VoiceRecorder.js +3 -3
  21. package/dist/components/ai/PromptSuggestion/PromptSuggestion.theme.js +2 -2
  22. package/dist/components/ai/Reasoning/Reasoning.d.ts +5 -0
  23. package/dist/components/ai/Reasoning/Reasoning.js +40 -0
  24. package/dist/components/ai/Reasoning/Reasoning.theme.d.ts +6 -0
  25. package/dist/components/ai/Reasoning/Reasoning.theme.js +36 -0
  26. package/dist/components/ai/Reasoning/Reasoning.types.d.ts +73 -0
  27. package/dist/components/ai/Reasoning/ReasoningTrace.d.ts +11 -0
  28. package/dist/components/ai/Reasoning/ReasoningTrace.js +84 -0
  29. package/dist/components/ai/Reasoning/index.d.ts +3 -0
  30. package/dist/components/ai/SourceCitation/SourceCitation.d.ts +4 -0
  31. package/dist/components/ai/SourceCitation/SourceCitation.js +29 -0
  32. package/dist/components/ai/SourceCitation/SourceCitation.theme.d.ts +2 -0
  33. package/dist/components/ai/SourceCitation/SourceCitation.theme.js +23 -0
  34. package/dist/components/ai/SourceCitation/SourceCitation.types.d.ts +55 -0
  35. package/dist/components/ai/SourceCitation/index.d.ts +3 -0
  36. package/dist/components/ai/StreamingResponse/AnimatedText.d.ts +7 -0
  37. package/dist/components/ai/StreamingResponse/AnimatedText.js +8 -7
  38. package/dist/components/ai/StreamingResponse/ErrorDisplay.js +2 -2
  39. package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -0
  40. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +4 -4
  41. package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +2 -2
  42. package/dist/components/ai/StreamingResponse/StreamingCursor.js +10 -7
  43. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +10 -0
  44. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +59 -33
  45. package/dist/components/ai/StreamingResponse/StreamingResponse.js +14 -10
  46. package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +3 -1
  47. package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +33 -2
  48. package/dist/components/ai/StreamingResponse/StreamingSurface.d.ts +13 -0
  49. package/dist/components/ai/StreamingResponse/StreamingSurface.js +38 -0
  50. package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +5 -0
  51. package/dist/components/ai/StreamingResponse/WordAnimationContext.js +5 -4
  52. package/dist/components/ai/StreamingResponse/index.d.ts +4 -2
  53. package/dist/components/ai/TokenCounter/TokenCounter.js +2 -2
  54. package/dist/components/ai/TokenCounter/TokenCounter.theme.js +1 -1
  55. package/dist/components/ai/index.d.ts +6 -2
  56. package/dist/components/ai/index.js +10 -3
  57. package/dist/components/ai/shared/StatusIndicator.d.ts +8 -0
  58. package/dist/components/ai/shared/StatusIndicator.js +34 -0
  59. package/dist/components/canvas/BaseNode.js +1 -1
  60. package/dist/components/canvas/CanvasToolbar.js +2 -3
  61. package/dist/components/canvas/Edge.js +2 -2
  62. package/dist/components/canvas/NodeControls.js +2 -3
  63. package/dist/components/canvas/NodeRenderer.js +4 -4
  64. package/dist/components/charts/ActivityRings/ActivityRings.js +4 -4
  65. package/dist/components/charts/ActivityRings/ActivityRings.theme.js +1 -1
  66. package/dist/components/charts/AreaChart/AreaChart.js +24 -35
  67. package/dist/components/charts/AreaChart/AreaChart.theme.d.ts +1 -6
  68. package/dist/components/charts/AreaChart/AreaChart.theme.js +10 -22
  69. package/dist/components/charts/AreaChart/AreaChart.types.d.ts +18 -11
  70. package/dist/components/charts/AreaChart/AreaChart.types.js +10 -3
  71. package/dist/components/charts/AreaChart/index.d.ts +1 -1
  72. package/dist/components/charts/BarChart/BarChart.js +13 -32
  73. package/dist/components/charts/BarChart/BarChart.types.d.ts +20 -16
  74. package/dist/components/charts/BarChart/BarChart.types.js +11 -4
  75. package/dist/components/charts/ComboChart/BarRenderer.js +10 -7
  76. package/dist/components/charts/ComboChart/BarRenderer.types.d.ts +1 -1
  77. package/dist/components/charts/ComboChart/ComboChart.js +11 -24
  78. package/dist/components/charts/ComboChart/ComboChart.types.d.ts +15 -13
  79. package/dist/components/charts/ComboChart/ComboChart.types.js +14 -2
  80. package/dist/components/charts/ComboChart/ComboChartCanvas.js +1 -1
  81. package/dist/components/charts/ComboChart/LineRenderer.js +16 -11
  82. package/dist/components/charts/ComboChart/LineRenderer.types.d.ts +1 -1
  83. package/dist/components/charts/DonutChart/DonutChart.theme.js +4 -4
  84. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
  85. package/dist/components/charts/Heatmap/Heatmap.js +49 -42
  86. package/dist/components/charts/Heatmap/Heatmap.theme.d.ts +6 -2
  87. package/dist/components/charts/Heatmap/Heatmap.theme.js +20 -8
  88. package/dist/components/charts/Heatmap/Heatmap.types.d.ts +49 -82
  89. package/dist/components/charts/Heatmap/HeatmapCell.js +30 -81
  90. package/dist/components/charts/Heatmap/HeatmapLegend.d.ts +7 -6
  91. package/dist/components/charts/Heatmap/HeatmapLegend.js +6 -6
  92. package/dist/components/charts/Heatmap/index.d.ts +1 -1
  93. package/dist/components/charts/Heatmap/utils/heatmapUtils.d.ts +7 -12
  94. package/dist/components/charts/Heatmap/utils/heatmapUtils.js +16 -61
  95. package/dist/components/charts/Heatmap/utils/heatmapUtils.test.d.ts +1 -0
  96. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.d.ts +16 -0
  97. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.js +237 -0
  98. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.d.ts +62 -0
  99. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.js +21 -0
  100. package/dist/components/charts/HorizontalBarChart/index.d.ts +3 -0
  101. package/dist/components/charts/LineChart/LineChart.js +11 -28
  102. package/dist/components/charts/LineChart/LineChart.types.d.ts +11 -14
  103. package/dist/components/charts/LineChart/LineChart.types.js +11 -3
  104. package/dist/components/charts/LollipopChart/LollipopChart.d.ts +3 -0
  105. package/dist/components/charts/LollipopChart/LollipopChart.js +361 -0
  106. package/dist/components/charts/LollipopChart/LollipopChart.types.d.ts +42 -0
  107. package/dist/components/charts/LollipopChart/LollipopChart.types.js +12 -0
  108. package/dist/components/charts/LollipopChart/index.d.ts +3 -0
  109. package/dist/components/charts/RadarChart/RadarChart.js +1 -1
  110. package/dist/components/charts/StackedBarChart/StackedBarChart.js +151 -133
  111. package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +20 -18
  112. package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +10 -4
  113. package/dist/components/charts/hooks/useChartAccessibility.d.ts +1 -1
  114. package/dist/components/charts/hooks/useChartAccessibility.js +12 -6
  115. package/dist/components/charts/hooks/useTooltipPosition.js +18 -6
  116. package/dist/components/charts/index.d.ts +10 -8
  117. package/dist/components/charts/index.js +8 -4
  118. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.d.ts +14 -0
  119. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.js +35 -0
  120. package/dist/components/charts/shared/ChartAxis/ChartAxis.types.d.ts +69 -8
  121. package/dist/components/charts/shared/ChartAxis/ValueXAxis.d.ts +14 -0
  122. package/dist/components/charts/shared/ChartAxis/ValueXAxis.js +64 -0
  123. package/dist/components/charts/shared/ChartAxis/XAxis.js +1 -1
  124. package/dist/components/charts/shared/ChartAxis/YAxis.js +2 -2
  125. package/dist/components/charts/shared/ChartAxis/index.d.ts +3 -1
  126. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.d.ts +0 -2
  127. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.js +1 -1
  128. package/dist/components/charts/shared/ChartGrid/VerticalGrid.d.ts +29 -0
  129. package/dist/components/charts/shared/ChartGrid/VerticalGrid.js +26 -0
  130. package/dist/components/charts/shared/ChartGrid/index.d.ts +2 -0
  131. package/dist/components/charts/shared/ChartMarker/ChartMarker.js +7 -1
  132. package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
  133. package/dist/components/charts/shared/index.d.ts +1 -1
  134. package/dist/components/charts/theme/chart.theme.js +21 -26
  135. package/dist/components/charts/types/chart.types.d.ts +9 -5
  136. package/dist/components/charts/types/chart.types.js +1 -7
  137. package/dist/components/charts/utils/animation-utils.d.ts +12 -7
  138. package/dist/components/charts/utils/animation-utils.js +19 -21
  139. package/dist/components/charts/utils/bar-emphasis.d.ts +32 -3
  140. package/dist/components/charts/utils/bar-emphasis.js +24 -8
  141. package/dist/components/charts/utils/index.d.ts +1 -0
  142. package/dist/components/charts/utils/series-color.d.ts +7 -0
  143. package/dist/components/charts/utils/series-color.js +20 -0
  144. package/dist/components/core/Accordion/Accordion.theme.js +3 -3
  145. package/dist/components/core/Accordion/AccordionTrigger.js +2 -2
  146. package/dist/components/core/Alert/Alert.animations.d.ts +11 -3
  147. package/dist/components/core/Alert/Alert.animations.js +30 -8
  148. package/dist/components/core/Alert/Alert.js +23 -9
  149. package/dist/components/core/Alert/Alert.theme.js +1 -1
  150. package/dist/components/core/Alert/Alert.types.d.ts +4 -2
  151. package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
  152. package/dist/components/core/Avatar/Avatar.js +50 -42
  153. package/dist/components/core/Avatar/Avatar.theme.d.ts +8 -4
  154. package/dist/components/core/Avatar/Avatar.theme.js +64 -8
  155. package/dist/components/core/Avatar/Avatar.types.d.ts +13 -2
  156. package/dist/components/core/Avatar/index.d.ts +1 -1
  157. package/dist/components/core/AvatarGroup/AvatarGroup.js +6 -8
  158. package/dist/components/core/AvatarGroup/AvatarGroup.theme.d.ts +1 -2
  159. package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +2 -6
  160. package/dist/components/core/AvatarGroup/AvatarGroup.types.d.ts +0 -6
  161. package/dist/components/core/AvatarGroup/index.d.ts +1 -1
  162. package/dist/components/core/Badge/Badge.animations.d.ts +0 -5
  163. package/dist/components/core/Badge/Badge.animations.js +5 -82
  164. package/dist/components/core/Badge/Badge.d.ts +7 -4
  165. package/dist/components/core/Badge/Badge.js +33 -65
  166. package/dist/components/core/Badge/Badge.theme.js +26 -24
  167. package/dist/components/core/Badge/Badge.types.d.ts +18 -34
  168. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.d.ts +1 -4
  169. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.js +6 -6
  170. package/dist/components/core/Button/Button.js +14 -58
  171. package/dist/components/core/Button/Button.theme.d.ts +2 -0
  172. package/dist/components/core/Button/Button.theme.js +35 -22
  173. package/dist/components/core/Button/Button.types.d.ts +26 -13
  174. package/dist/components/core/Button/index.d.ts +0 -2
  175. package/dist/components/core/Calendar/Calendar.js +20 -5
  176. package/dist/components/core/Calendar/Calendar.theme.js +15 -23
  177. package/dist/components/core/Calendar/Calendar.types.d.ts +0 -1
  178. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -3
  179. package/dist/components/core/Calendar/CalendarMini/CalendarMini.theme.js +2 -2
  180. package/dist/components/core/Card/Card.js +7 -2
  181. package/dist/components/core/Card/Card.theme.js +40 -4
  182. package/dist/components/core/Card/Card.types.d.ts +20 -0
  183. package/dist/components/core/Card/CardBody.js +9 -1
  184. package/dist/components/core/Card/CardContext.d.ts +13 -0
  185. package/dist/components/core/Card/CardContext.js +14 -0
  186. package/dist/components/core/Card/CardFooter.js +1 -1
  187. package/dist/components/core/Card/CardHeader.js +4 -1
  188. package/dist/components/core/CommandPalette/CommandPalette.js +5 -4
  189. package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -7
  190. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +2 -0
  191. package/dist/components/core/ContextMenu/ContextMenu.theme.js +4 -3
  192. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +8 -1
  193. package/dist/components/core/ContextMenu/ContextMenuItem.js +2 -2
  194. package/dist/components/core/ContextMenu/ContextMenuSub.d.ts +11 -1
  195. package/dist/components/core/ContextMenu/ContextMenuSub.js +35 -22
  196. package/dist/components/core/ContextMenu/ContextMenuSubBody.js +14 -3
  197. package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +22 -9
  198. package/dist/components/core/DragDrop/DragDrop.theme.js +2 -2
  199. package/dist/components/core/Drawer/Drawer.theme.js +7 -4
  200. package/dist/components/core/Drawer/DrawerHeader.js +2 -3
  201. package/dist/components/core/Dropdown/Dropdown.theme.js +3 -1
  202. package/dist/components/core/Dropdown/DropdownItem.js +2 -2
  203. package/dist/components/core/Dropdown/DropdownMenu.js +22 -7
  204. package/dist/components/core/Dropdown/DropdownTrigger.js +16 -5
  205. package/dist/components/core/HeroCard/HeroCard.theme.js +5 -2
  206. package/dist/components/core/Kbd/Kbd.theme.js +4 -2
  207. package/dist/components/core/Link/Link.js +7 -5
  208. package/dist/components/core/Masonry/Masonry.theme.js +1 -1
  209. package/dist/components/core/MenuItem/MenuItem.js +2 -1
  210. package/dist/components/core/MenuItem/MenuItem.theme.js +13 -1
  211. package/dist/components/core/Message/Message.js +4 -2
  212. package/dist/components/core/Message/Message.theme.js +8 -10
  213. package/dist/components/core/Message/MessageAudio.js +2 -2
  214. package/dist/components/core/Message/MessageFile.js +2 -2
  215. package/dist/components/core/Message/MessageLink.js +2 -2
  216. package/dist/components/core/Message/MessageStatusIndicator.js +5 -5
  217. package/dist/components/core/Modal/Modal.animations.d.ts +1 -1
  218. package/dist/components/core/Modal/Modal.animations.js +50 -11
  219. package/dist/components/core/Modal/Modal.d.ts +1 -1
  220. package/dist/components/core/Modal/Modal.js +6 -2
  221. package/dist/components/core/Modal/Modal.theme.js +9 -4
  222. package/dist/components/core/Modal/ModalHeader.js +2 -3
  223. package/dist/components/core/ModalStack/ModalStackModal.js +4 -2
  224. package/dist/components/core/NavItem/NavItem.js +8 -7
  225. package/dist/components/core/NavItem/NavItem.theme.js +1 -1
  226. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.d.ts +22 -0
  227. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.js +54 -0
  228. package/dist/components/core/OfflineIndicator/OfflineIndicator.js +23 -24
  229. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +27 -6
  230. package/dist/components/core/OfflineIndicator/OfflineIndicator.types.d.ts +17 -0
  231. package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
  232. package/dist/components/core/PageHeading/PageHeadingBackButton.js +2 -2
  233. package/dist/components/core/Pagination/Pagination.js +3 -3
  234. package/dist/components/core/Pagination/Pagination.theme.js +5 -5
  235. package/dist/components/core/Pill/Pill.js +5 -2
  236. package/dist/components/core/Pill/Pill.theme.js +9 -5
  237. package/dist/components/core/Popover/PopoverBody.js +16 -5
  238. package/dist/components/core/Progress/Progress.d.ts +0 -25
  239. package/dist/components/core/Progress/Progress.js +79 -11
  240. package/dist/components/core/Progress/Progress.theme.js +17 -0
  241. package/dist/components/core/Progress/Progress.types.d.ts +47 -1
  242. package/dist/components/core/Rating/Rating.js +4 -5
  243. package/dist/components/core/Rating/Rating.theme.js +2 -2
  244. package/dist/components/core/Rating/Rating.types.d.ts +3 -2
  245. package/dist/components/core/ScrollArea/ScrollArea.js +1 -1
  246. package/dist/components/core/ScrollArea/ScrollArea.theme.js +1 -1
  247. package/dist/components/core/Segmented/Segmented.theme.js +10 -7
  248. package/dist/components/core/Segmented/SegmentedContext.js +1 -0
  249. package/dist/components/core/Sidebar/Sidebar.js +5 -2
  250. package/dist/components/core/Sidebar/Sidebar.theme.js +2 -2
  251. package/dist/components/core/Sidebar/Sidebar.types.d.ts +4 -2
  252. package/dist/components/core/Sidebar/SidebarContent.js +1 -1
  253. package/dist/components/core/Sidebar/SidebarHeader.js +3 -3
  254. package/dist/components/core/Sidebar/SidebarMobileTrigger.js +2 -2
  255. package/dist/components/core/Sidebar/SidebarSearch.js +4 -4
  256. package/dist/components/core/Sidebar/SidebarToggle.js +3 -3
  257. package/dist/components/core/Sidebar/SidebarUserProfile.js +3 -3
  258. package/dist/components/core/Sortable/Sortable.js +2 -2
  259. package/dist/components/core/Sortable/Sortable.theme.js +1 -1
  260. package/dist/components/core/Tabs/Tabs.theme.js +1 -1
  261. package/dist/components/core/Tag/Tag.js +2 -2
  262. package/dist/components/core/Tag/Tag.theme.js +5 -3
  263. package/dist/components/core/Toast/Toast.js +3 -3
  264. package/dist/components/core/Toast/Toast.types.d.ts +1 -1
  265. package/dist/components/core/Toast/ToastProvider.js +1 -1
  266. package/dist/components/core/Toast/useToast.js +5 -5
  267. package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
  268. package/dist/components/core/Tooltip/Tooltip.js +42 -10
  269. package/dist/components/core/Tooltip/Tooltip.types.d.ts +25 -0
  270. package/dist/components/core/Tree/Tree.js +2 -2
  271. package/dist/components/core/Tree/Tree.theme.js +1 -1
  272. package/dist/components/core/index.d.ts +0 -2
  273. package/dist/components/core/index.js +0 -4
  274. package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.d.ts +4 -0
  275. package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.js +20 -0
  276. package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.js +1 -1
  277. package/dist/components/core/shared/Ripple.d.ts +16 -0
  278. package/dist/components/core/shared/Ripple.js +141 -0
  279. package/dist/components/core/shared/interaction.animations.d.ts +51 -0
  280. package/dist/components/core/shared/interaction.animations.js +59 -0
  281. package/dist/components/data-display/Feed/Feed.js +2 -2
  282. package/dist/components/data-display/GanttChart/GanttChart.theme.js +7 -7
  283. package/dist/components/data-display/GanttChart/GanttChartPanel.js +2 -2
  284. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +3 -3
  285. package/dist/components/data-display/GanttChart/GanttTaskBar.js +1 -1
  286. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +2 -2
  287. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +1 -1
  288. package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -3
  289. package/dist/components/data-display/KPI/KPI.js +12 -21
  290. package/dist/components/data-display/KPI/KPI.theme.js +8 -4
  291. package/dist/components/data-display/Metric/Metric.js +2 -2
  292. package/dist/components/data-display/Metric/Metric.theme.js +25 -8
  293. package/dist/components/data-display/Metric/Metric.types.d.ts +1 -1
  294. package/dist/components/data-display/Table/Table.theme.js +11 -11
  295. package/dist/components/data-display/Table/TableActions.js +2 -2
  296. package/dist/components/data-display/Table/TableActionsMenu.js +1 -1
  297. package/dist/components/data-display/Table/TableColumnManager.js +2 -3
  298. package/dist/components/data-display/Table/TableContext.js +1 -0
  299. package/dist/components/data-display/Table/TableDeclarative.js +3 -3
  300. package/dist/components/data-display/Table/TableFilter.js +13 -6
  301. package/dist/components/data-display/Table/TableHeader.js +3 -3
  302. package/dist/components/data-display/Table/TableRow.js +2 -2
  303. package/dist/components/data-display/Table/TableSelectionHeader.js +4 -4
  304. package/dist/components/data-display/Timeline/Timeline.theme.js +1 -1
  305. package/dist/components/data-display/Timeline/TimelineMarker.js +2 -2
  306. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +1 -1
  307. package/dist/components/effects/CustomCursor/CustomCursor.js +3 -3
  308. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +4 -4
  309. package/dist/components/effects/DotPattern/DotPattern.js +6 -0
  310. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +4 -2
  311. package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +1 -1
  312. package/dist/components/effects/MeshGradient/MeshGradient.utils.js +1 -1
  313. package/dist/components/effects/Neumorphic/InsetCircleButton.js +1 -1
  314. package/dist/components/effects/Overlay/Overlay.js +7 -3
  315. package/dist/components/effects/index.d.ts +0 -32
  316. package/dist/components/effects/index.js +0 -16
  317. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.d.ts +0 -2
  318. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.js +1 -93
  319. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +0 -10
  320. package/dist/components/effects/shared/ShaderCanvas/index.d.ts +1 -1
  321. package/dist/components/effects/shared/index.d.ts +1 -3
  322. package/dist/components/effects/shared/shaderNoise.glsl.d.ts +1 -1
  323. package/dist/components/effects/shared/shaderNoise.glsl.js +2 -11
  324. package/dist/components/forms/Checkbox/Checkbox.js +2 -1
  325. package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -3
  326. package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +2 -2
  327. package/dist/components/forms/ColorPicker/ColorPickerGradient.js +2 -2
  328. package/dist/components/forms/ColorPicker/ColorPickerHeader.js +2 -2
  329. package/dist/components/forms/ColorPicker/ColorPickerImage.js +3 -3
  330. package/dist/components/forms/ColorPicker/ColorPickerInput.js +2 -2
  331. package/dist/components/forms/ColorPicker/ColorPickerPresets.js +2 -2
  332. package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +2 -2
  333. package/dist/components/forms/Combobox/Combobox.js +5 -3
  334. package/dist/components/forms/Combobox/Combobox.theme.js +2 -2
  335. package/dist/components/forms/DatePicker/DatePicker.animations.js +16 -25
  336. package/dist/components/forms/DatePicker/DatePicker.theme.js +2 -2
  337. package/dist/components/forms/DatePicker/DatePickerBody.js +1 -1
  338. package/dist/components/forms/DatePicker/DatePickerTrigger.js +2 -2
  339. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +4 -4
  340. package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +1 -1
  341. package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +1 -0
  342. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +2 -2
  343. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +2 -2
  344. package/dist/components/forms/FileUpload/FileUpload.js +4 -4
  345. package/dist/components/forms/FileUpload/FileUpload.theme.js +7 -3
  346. package/dist/components/forms/FileUpload/FileUploadProgress.js +7 -7
  347. package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +1 -1
  348. package/dist/components/forms/Input/Input.js +6 -7
  349. package/dist/components/forms/Input/Input.theme.js +19 -15
  350. package/dist/components/forms/InputAddress/InputAddress.js +10 -3
  351. package/dist/components/forms/InputAddress/InputAddress.types.d.ts +2 -2
  352. package/dist/components/forms/InputCounter/InputCounter.js +3 -3
  353. package/dist/components/forms/InputOTP/InputOTP.d.ts +3 -12
  354. package/dist/components/forms/InputOTP/InputOTP.js +140 -151
  355. package/dist/components/forms/InputOTP/InputOTP.theme.d.ts +5 -1
  356. package/dist/components/forms/InputOTP/InputOTP.theme.js +40 -5
  357. package/dist/components/forms/InputOTP/InputOTP.types.d.ts +45 -2
  358. package/dist/components/forms/InputOTP/index.d.ts +1 -1
  359. package/dist/components/forms/InputTag/InputTag.js +5 -5
  360. package/dist/components/forms/InputTag/InputTag.theme.js +1 -2
  361. package/dist/components/forms/Mention/Mention.theme.js +3 -5
  362. package/dist/components/forms/Radio/Radio.js +3 -2
  363. package/dist/components/forms/Radio/Radio.theme.js +3 -3
  364. package/dist/components/forms/RichTextEditor/RichTextEditor.d.ts +12 -16
  365. package/dist/components/forms/RichTextEditor/RichTextEditor.js +165 -1681
  366. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.d.ts +12 -56
  367. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +60 -118
  368. package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +62 -126
  369. package/dist/components/forms/RichTextEditor/RichTextLinkField.d.ts +18 -0
  370. package/dist/components/forms/RichTextEditor/RichTextLinkField.js +46 -0
  371. package/dist/components/forms/RichTextEditor/RichTextToolbar.d.ts +15 -0
  372. package/dist/components/forms/RichTextEditor/RichTextToolbar.js +93 -0
  373. package/dist/components/forms/RichTextEditor/editorCommands.d.ts +50 -0
  374. package/dist/components/forms/RichTextEditor/editorCommands.js +58 -0
  375. package/dist/components/forms/RichTextEditor/editorState.d.ts +19 -0
  376. package/dist/components/forms/RichTextEditor/editorState.js +103 -0
  377. package/dist/components/forms/RichTextEditor/index.d.ts +5 -3
  378. package/dist/components/forms/RichTextEditor/sanitizeHtml.d.ts +38 -0
  379. package/dist/components/forms/RichTextEditor/sanitizeHtml.js +179 -0
  380. package/dist/components/forms/RichTextEditor/sanitizeHtml.test.d.ts +1 -0
  381. package/dist/components/forms/Select/Select.d.ts +5 -1
  382. package/dist/components/forms/Select/Select.js +14 -13
  383. package/dist/components/forms/Select/Select.theme.js +4 -4
  384. package/dist/components/forms/Select/Select.types.d.ts +74 -8
  385. package/dist/components/forms/Select/useSelectState.d.ts +9 -3
  386. package/dist/components/forms/Select/useSelectState.js +4 -1
  387. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +1 -2
  388. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +6 -7
  389. package/dist/components/forms/SelectableCard/SelectableCard.js +3 -2
  390. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +1 -1
  391. package/dist/components/forms/Signature/Signature.js +1 -1
  392. package/dist/components/forms/Slider/Slider.js +24 -11
  393. package/dist/components/forms/Slider/Slider.theme.js +9 -3
  394. package/dist/components/forms/Switch/Switch.theme.js +3 -3
  395. package/dist/components/forms/TimePicker/TimePicker.theme.js +7 -8
  396. package/dist/components/forms/TimePicker/TimePickerContent.js +1 -1
  397. package/dist/components/forms/TimePicker/TimePickerTrigger.js +3 -3
  398. package/dist/components/forms/forms.theme.js +38 -13
  399. package/dist/components/forms/index.js +2 -1
  400. package/dist/components/generative/FormShell.d.ts +22 -0
  401. package/dist/components/generative/FormShell.js +102 -0
  402. package/dist/components/generative/GenerativeView.d.ts +52 -1
  403. package/dist/components/generative/GenerativeView.js +203 -11
  404. package/dist/components/generative/actions.d.ts +5 -0
  405. package/dist/components/generative/ai-sdk/index.d.ts +1 -0
  406. package/dist/components/generative/ai-sdk/index.js +1 -0
  407. package/dist/components/generative/ai-sdk/useGenerativeChat.d.ts +52 -0
  408. package/dist/components/generative/ai-sdk/useGenerativeChat.js +73 -0
  409. package/dist/components/generative/ai-sdk/useGenerativeChat.test.d.ts +1 -0
  410. package/dist/components/generative/fieldBinding.d.ts +31 -0
  411. package/dist/components/generative/fieldBinding.js +33 -0
  412. package/dist/components/generative/fieldBinding.test.d.ts +1 -0
  413. package/dist/components/generative/formScope.d.ts +71 -0
  414. package/dist/components/generative/formScope.js +135 -0
  415. package/dist/components/generative/index.d.ts +4 -0
  416. package/dist/components/generative/index.js +4 -0
  417. package/dist/components/generative/registry.d.ts +2 -0
  418. package/dist/components/generative/registry.js +197 -4
  419. package/dist/components/generative/resolvers.js +16 -16
  420. package/dist/components/generative/schema.generated.js +2522 -328
  421. package/dist/components/generative/toToolResult.d.ts +21 -0
  422. package/dist/components/generative/toToolResult.js +15 -0
  423. package/dist/components/generative/toToolResult.test.d.ts +1 -0
  424. package/dist/components/generative/validate.d.ts +10 -1
  425. package/dist/components/generative/validate.js +126 -11
  426. package/dist/components/layout/Grid/Grid.js +1 -0
  427. package/dist/components/layout/Section/Section.theme.js +1 -1
  428. package/dist/components/layout/Stack/Stack.js +1 -0
  429. package/dist/generative.schema.json +2522 -328
  430. package/dist/hooks/index.d.ts +2 -0
  431. package/dist/hooks/useElapsedTime.d.ts +28 -0
  432. package/dist/hooks/useElapsedTime.js +37 -0
  433. package/dist/hooks/useSelectPortal.d.ts +10 -2
  434. package/dist/hooks/useSelectPortal.js +6 -3
  435. package/dist/index.js +2 -5
  436. package/dist/registry.json +3262 -2464
  437. package/dist/shadcn-compat.css +6 -6
  438. package/dist/styles/theme.test.d.ts +1 -0
  439. package/dist/styles.css +1 -1
  440. package/dist/test/render.d.ts +17 -0
  441. package/dist/theme.css +5 -1
  442. package/dist/themes/ember.css +131 -0
  443. package/dist/themes/iris.css +94 -0
  444. package/dist/themes/jade.css +139 -0
  445. package/dist/themes/precision.css +232 -0
  446. package/dist/tools.json +2557 -328
  447. package/dist/utils/colorUtils.d.ts +6 -6
  448. package/dist/utils/colorUtils.js +8 -8
  449. package/dist/utils/index.d.ts +0 -1
  450. package/package.json +39 -6
  451. package/src/global.scss +32 -28
  452. package/src/styles/theme.css +547 -176
  453. package/src/styles/theme.test.ts +119 -0
  454. package/tailwind.preset.cjs +66 -38
  455. package/dist/components/charts/FunnelChart/FunnelChart.animations.d.ts +0 -35
  456. package/dist/components/charts/FunnelChart/FunnelChart.animations.js +0 -59
  457. package/dist/components/charts/FunnelChart/FunnelChart.d.ts +0 -8
  458. package/dist/components/charts/FunnelChart/FunnelChart.js +0 -410
  459. package/dist/components/charts/FunnelChart/FunnelChart.theme.d.ts +0 -2
  460. package/dist/components/charts/FunnelChart/FunnelChart.theme.js +0 -12
  461. package/dist/components/charts/FunnelChart/FunnelChart.types.d.ts +0 -105
  462. package/dist/components/charts/FunnelChart/index.d.ts +0 -4
  463. package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +0 -9
  464. package/dist/components/charts/ScatterPlot/ScatterPlot.js +0 -207
  465. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -18
  466. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +0 -42
  467. package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +0 -65
  468. package/dist/components/charts/ScatterPlot/ScatterPlot.types.js +0 -12
  469. package/dist/components/charts/ScatterPlot/index.d.ts +0 -3
  470. package/dist/components/core/Button/Button.ripple.d.ts +0 -71
  471. package/dist/components/core/Button/Button.ripple.js +0 -236
  472. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.d.ts +0 -4
  473. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.theme.d.ts +0 -12
  474. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +0 -23
  475. package/dist/components/core/Calendar/CalendarEvent/index.d.ts +0 -2
  476. package/dist/components/core/CardStack/CardStack.animations.d.ts +0 -47
  477. package/dist/components/core/CardStack/CardStack.d.ts +0 -3
  478. package/dist/components/core/CardStack/CardStack.js +0 -187
  479. package/dist/components/core/CardStack/CardStack.theme.d.ts +0 -6
  480. package/dist/components/core/CardStack/CardStack.theme.js +0 -33
  481. package/dist/components/core/CardStack/CardStack.types.d.ts +0 -139
  482. package/dist/components/core/CardStack/index.d.ts +0 -7
  483. package/dist/components/core/Carousel/Carousel.d.ts +0 -3
  484. package/dist/components/core/Carousel/Carousel.js +0 -83
  485. package/dist/components/core/Carousel/Carousel.theme.d.ts +0 -10
  486. package/dist/components/core/Carousel/Carousel.theme.js +0 -20
  487. package/dist/components/core/Carousel/Carousel.types.d.ts +0 -113
  488. package/dist/components/core/Carousel/CarouselBody.d.ts +0 -4
  489. package/dist/components/core/Carousel/CarouselBody.js +0 -59
  490. package/dist/components/core/Carousel/CarouselContext.d.ts +0 -3
  491. package/dist/components/core/Carousel/CarouselContext.js +0 -13
  492. package/dist/components/core/Carousel/CarouselItem.d.ts +0 -4
  493. package/dist/components/core/Carousel/CarouselItem.js +0 -11
  494. package/dist/components/core/Carousel/CarouselNext.d.ts +0 -4
  495. package/dist/components/core/Carousel/CarouselNext.js +0 -16
  496. package/dist/components/core/Carousel/CarouselPrevious.d.ts +0 -4
  497. package/dist/components/core/Carousel/CarouselPrevious.js +0 -16
  498. package/dist/components/core/Carousel/index.d.ts +0 -3
  499. package/dist/components/core/Pill/Pill.animations.d.ts +0 -32
  500. package/dist/components/core/Pill/Pill.animations.js +0 -16
  501. package/dist/components/effects/ColorPanels/ColorPanels.d.ts +0 -8
  502. package/dist/components/effects/ColorPanels/ColorPanels.js +0 -66
  503. package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +0 -12
  504. package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +0 -218
  505. package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +0 -29
  506. package/dist/components/effects/ColorPanels/ColorPanels.types.js +0 -3
  507. package/dist/components/effects/ColorPanels/index.d.ts +0 -2
  508. package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +0 -9
  509. package/dist/components/effects/FlutedGlass/FlutedGlass.js +0 -80
  510. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +0 -12
  511. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +0 -335
  512. package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +0 -61
  513. package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +0 -16
  514. package/dist/components/effects/FlutedGlass/index.d.ts +0 -3
  515. package/dist/components/effects/GlassEffect/GlassEffect.d.ts +0 -15
  516. package/dist/components/effects/GlassEffect/GlassEffect.js +0 -38
  517. package/dist/components/effects/GlassEffect/GlassEffect.types.d.ts +0 -19
  518. package/dist/components/effects/GlassEffect/index.d.ts +0 -2
  519. package/dist/components/effects/GlassSurface/GlassSurface.d.ts +0 -8
  520. package/dist/components/effects/GlassSurface/GlassSurface.js +0 -250
  521. package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +0 -66
  522. package/dist/components/effects/GlassSurface/index.d.ts +0 -2
  523. package/dist/components/effects/GodRays/GodRays.d.ts +0 -8
  524. package/dist/components/effects/GodRays/GodRays.js +0 -68
  525. package/dist/components/effects/GodRays/GodRays.shaders.d.ts +0 -10
  526. package/dist/components/effects/GodRays/GodRays.shaders.js +0 -128
  527. package/dist/components/effects/GodRays/GodRays.types.d.ts +0 -25
  528. package/dist/components/effects/GodRays/GodRays.types.js +0 -3
  529. package/dist/components/effects/GodRays/index.d.ts +0 -2
  530. package/dist/components/effects/GridPattern/GridPattern.d.ts +0 -18
  531. package/dist/components/effects/GridPattern/GridPattern.js +0 -65
  532. package/dist/components/effects/GridPattern/GridPattern.types.d.ts +0 -47
  533. package/dist/components/effects/GridPattern/index.d.ts +0 -2
  534. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +0 -10
  535. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +0 -78
  536. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +0 -22
  537. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +0 -239
  538. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +0 -52
  539. package/dist/components/effects/HalftoneCmyk/index.d.ts +0 -2
  540. package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +0 -9
  541. package/dist/components/effects/HalftoneDots/HalftoneDots.js +0 -68
  542. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +0 -13
  543. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +0 -296
  544. package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +0 -43
  545. package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +0 -12
  546. package/dist/components/effects/HalftoneDots/index.d.ts +0 -3
  547. package/dist/components/effects/ImageDithering/ImageDithering.d.ts +0 -9
  548. package/dist/components/effects/ImageDithering/ImageDithering.js +0 -68
  549. package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +0 -12
  550. package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +0 -117
  551. package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +0 -30
  552. package/dist/components/effects/ImageDithering/ImageDithering.types.js +0 -8
  553. package/dist/components/effects/ImageDithering/index.d.ts +0 -3
  554. package/dist/components/effects/MagneticElement/MagneticElement.d.ts +0 -30
  555. package/dist/components/effects/MagneticElement/MagneticElement.js +0 -111
  556. package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +0 -44
  557. package/dist/components/effects/MagneticElement/index.d.ts +0 -2
  558. package/dist/components/effects/Metaballs/Metaballs.d.ts +0 -8
  559. package/dist/components/effects/Metaballs/Metaballs.js +0 -59
  560. package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +0 -10
  561. package/dist/components/effects/Metaballs/Metaballs.shaders.js +0 -102
  562. package/dist/components/effects/Metaballs/Metaballs.types.d.ts +0 -16
  563. package/dist/components/effects/Metaballs/Metaballs.types.js +0 -3
  564. package/dist/components/effects/Metaballs/index.d.ts +0 -2
  565. package/dist/components/effects/PaperTexture/PaperTexture.d.ts +0 -9
  566. package/dist/components/effects/PaperTexture/PaperTexture.js +0 -61
  567. package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +0 -22
  568. package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +0 -145
  569. package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +0 -19
  570. package/dist/components/effects/PaperTexture/index.d.ts +0 -2
  571. package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +0 -27
  572. package/dist/components/effects/PulsingBorder/PulsingBorder.js +0 -174
  573. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +0 -14
  574. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +0 -258
  575. package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +0 -75
  576. package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +0 -3
  577. package/dist/components/effects/PulsingBorder/index.d.ts +0 -2
  578. package/dist/components/effects/SmokeRing/SmokeRing.d.ts +0 -8
  579. package/dist/components/effects/SmokeRing/SmokeRing.js +0 -62
  580. package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +0 -14
  581. package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +0 -130
  582. package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +0 -22
  583. package/dist/components/effects/SmokeRing/SmokeRing.types.js +0 -3
  584. package/dist/components/effects/SmokeRing/index.d.ts +0 -2
  585. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +0 -9
  586. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +0 -59
  587. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +0 -14
  588. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +0 -129
  589. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +0 -23
  590. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +0 -3
  591. package/dist/components/effects/StaticGradientMesh/index.d.ts +0 -2
  592. package/dist/components/effects/Water/Water.d.ts +0 -9
  593. package/dist/components/effects/Water/Water.js +0 -65
  594. package/dist/components/effects/Water/Water.shaders.d.ts +0 -11
  595. package/dist/components/effects/Water/Water.shaders.js +0 -123
  596. package/dist/components/effects/Water/Water.types.d.ts +0 -25
  597. package/dist/components/effects/Water/index.d.ts +0 -2
  598. package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +0 -10
  599. package/dist/components/effects/shared/bayerMatrices.glsl.js +0 -44
  600. package/dist/components/effects/shared/imageUV.glsl.d.ts +0 -12
  601. package/dist/components/effects/shared/imageUV.glsl.js +0 -26
  602. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.d.ts +0 -7
  603. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +0 -32
  604. package/dist/utils/calendarUtils.d.ts +0 -60
  605. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.d.ts +0 -0
  606. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.d.ts +0 -0
  607. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.js +0 -0
  608. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.types.d.ts +0 -0
  609. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltipContent.d.ts +0 -0
  610. /package/dist/components/{charts → core}/shared/ChartTooltip/index.d.ts +0 -0
@@ -2,17 +2,17 @@
2
2
  /* Primary color palette — monochrome: aliased to the neutral scale.
3
3
  (Original blue ramp kept for easy revert:
4
4
  50 oklch(0.962 0.018 272.314) … 600 oklch(0.511 0.262 276.966) … 950 oklch(0.257 0.09 281.288)) */
5
- --color-primary-50: var(--color-neutral-50);
6
- --color-primary-100: var(--color-neutral-100);
7
- --color-primary-200: var(--color-neutral-200);
8
- --color-primary-300: var(--color-neutral-300);
9
- --color-primary-400: var(--color-neutral-400);
10
- --color-primary-500: var(--color-neutral-500);
11
- --color-primary-600: var(--color-neutral-600);
12
- --color-primary-700: var(--color-neutral-700);
13
- --color-primary-800: var(--color-neutral-800);
14
- --color-primary-900: var(--color-neutral-900);
15
- --color-primary-950: var(--color-neutral-950);
5
+ --color-primary-50: var(--color-mono-50);
6
+ --color-primary-100: var(--color-mono-100);
7
+ --color-primary-200: var(--color-mono-200);
8
+ --color-primary-300: var(--color-mono-300);
9
+ --color-primary-400: var(--color-mono-400);
10
+ --color-primary-500: var(--color-mono-500);
11
+ --color-primary-600: var(--color-mono-600);
12
+ --color-primary-700: var(--color-mono-700);
13
+ --color-primary-800: var(--color-mono-800);
14
+ --color-primary-900: var(--color-mono-900);
15
+ --color-primary-950: var(--color-mono-950);
16
16
 
17
17
  /* Light mode: dark primary → dark buttons with light text (contrast auto-resolves white). */
18
18
  --color-primary: var(--color-primary-900);
@@ -21,26 +21,6 @@
21
21
  the live --color-primary, so a raw override (even white) self-corrects. */
22
22
  --color-primary-contrast: oklch(from var(--color-primary) clamp(0, (0.85 - l) * 1000, 1) 0 0);
23
23
 
24
- /* DEPRECATED: the `secondary` semantic color was removed (it overlapped
25
- `neutral` and was ambiguous — see CLAUDE.md §8). These vars are now aliased
26
- to the neutral scale so any stray/consumer CSS still resolves. Remove next
27
- major. Original Tailwind-gray ramp kept for reference:
28
- 50 oklch(0.984 0.003 247.858) … 600 oklch(0.446 0.043 257.281) … 950 oklch(0.129 0.042 264.695). */
29
- --color-secondary-50: var(--color-neutral-50);
30
- --color-secondary-100: var(--color-neutral-100);
31
- --color-secondary-200: var(--color-neutral-200);
32
- --color-secondary-300: var(--color-neutral-300);
33
- --color-secondary-400: var(--color-neutral-400);
34
- --color-secondary-500: var(--color-neutral-500);
35
- --color-secondary-600: var(--color-neutral-600);
36
- --color-secondary-700: var(--color-neutral-700);
37
- --color-secondary-800: var(--color-neutral-800);
38
- --color-secondary-900: var(--color-neutral-900);
39
- --color-secondary-950: var(--color-neutral-950);
40
-
41
- --color-secondary: var(--color-secondary-600);
42
- --color-secondary-contrast: oklch(from var(--color-secondary) clamp(0, (0.85 - l) * 1000, 1) 0 0);
43
-
44
24
  /* Danger/Error color palette - full 50-950 range */
45
25
  --color-danger-50: oklch(0.971 0.013 17.38);
46
26
  --color-danger-100: oklch(0.936 0.032 17.717);
@@ -70,7 +50,8 @@
70
50
  --color-success-900: oklch(0.386 0.063 188.416);
71
51
  --color-success-950: oklch(0.277 0.046 192.524);
72
52
 
73
- --color-success: var(--color-success-500);
53
+ /* -600 like danger/warning — white -contrast text passes AA (500 was ~2.7:1) */
54
+ --color-success: var(--color-success-600);
74
55
  --color-success-contrast: oklch(from var(--color-success) clamp(0, (0.85 - l) * 1000, 1) 0 0);
75
56
 
76
57
  /* Warning color palette - full 50-950 range */
@@ -90,12 +71,18 @@
90
71
  --color-warning-contrast: oklch(from var(--color-warning) clamp(0, (0.85 - l) * 1000, 1) 0 0);
91
72
 
92
73
  /* text color */
93
- --color-text-primary: var(--color-neutral-950);
94
- --color-text-secondary: var(--color-neutral-700);
95
- --color-text-placeholder: var(--color-neutral-400);
96
- --color-text-muted: var(--color-neutral-500);
97
- --color-text-disabled: var(--color-neutral-400);
98
- --color-text-inverse: var(--color-neutral-50);
74
+ --color-text-primary: var(--color-mono-950);
75
+ --color-text-secondary: var(--color-mono-700);
76
+ /* placeholder/muted are ALPHA-DERIVED from text-primary (not ramp rungs):
77
+ they auto-track any theme's text color in both modes, and translucency
78
+ composites correctly over any surface. Components must consume these
79
+ tokens — never point text at neutral rungs (dark:text-[--color-mono-N]
80
+ bypasses are the theming bug fixed here; same class as Segmented PER-292).
81
+ Re-derived in .dark below (same reason contrast tokens are). */
82
+ --color-text-placeholder: color-mix(in oklab, var(--color-text-primary) 40%, transparent);
83
+ --color-text-muted: color-mix(in oklab, var(--color-text-primary) 57%, transparent);
84
+ --color-text-disabled: var(--color-mono-400);
85
+ --color-text-inverse: var(--color-mono-50);
99
86
 
100
87
  /* generic colors */
101
88
  --color-border: oklch(93% 0 0);
@@ -141,32 +128,82 @@
141
128
  over ANY surface level — darkens in light, lightens in dark. For hover/active highlights. */
142
129
  --color-surface-hover: oklch(0% 0 0 / 0.05);
143
130
  --color-chart-track: rgba(0, 0, 0, 0.06);
131
+ /* Categorical chart series palette — 5 fixed slots, independent of the
132
+ semantic status tokens (primary/success/warning/danger). Series N always
133
+ maps to slot N; don't reorder or reuse these for status meaning. */
134
+ --color-chart-1: #3b82f6;
135
+ /* blue */
136
+ --color-chart-1-contrast: oklch(from var(--color-chart-1) clamp(0, (0.85 - l) * 1000, 1) 0 0);
137
+ --color-chart-2: #14b8a6;
138
+ /* teal */
139
+ --color-chart-2-contrast: oklch(from var(--color-chart-2) clamp(0, (0.85 - l) * 1000, 1) 0 0);
140
+ --color-chart-3: #f59e0b;
141
+ /* amber */
142
+ --color-chart-3-contrast: oklch(from var(--color-chart-3) clamp(0, (0.85 - l) * 1000, 1) 0 0);
143
+ --color-chart-4: #8b5cf6;
144
+ /* violet */
145
+ --color-chart-4-contrast: oklch(from var(--color-chart-4) clamp(0, (0.85 - l) * 1000, 1) 0 0);
146
+ --color-chart-5: #ec4899;
147
+ /* pink */
148
+ --color-chart-5-contrast: oklch(from var(--color-chart-5) clamp(0, (0.85 - l) * 1000, 1) 0 0);
144
149
  --color-background: var(--surface-1);
145
150
  /* near-white page canvas (rung 1) — white cards lift via the shadow ring */
146
- /* DEPRECATED (remove next major): alias of --color-surface. Use the surface ladder. */
147
- --color-background-secondary: var(--color-surface);
148
- /* DEPRECATED (remove next major): recessed/subtle fills. Migrate per-usage to --color-surface-sunken
149
- (dark values below are inverted vs. a correct sunken token, so no blind alias). */
150
- --color-background-tertiary: oklch(90% 0.002 247.839);
151
- --color-background-quaternary: oklch(85% 0.002 247.839);
152
- --color-background-quinary: oklch(80% 0.002 247.839);
153
- --color-background-disabled: var(--color-neutral-100);
154
-
155
- --color-neutral-50: oklch(98.5% 0 0);
156
- --color-neutral-100: oklch(97% 0 0);
157
- --color-neutral-200: oklch(92.2% 0 0);
158
- --color-neutral-300: oklch(87% 0 0);
159
- --color-neutral-400: oklch(70.8% 0 0);
160
- --color-neutral-500: oklch(55.6% 0 0);
161
- --color-neutral-600: oklch(43.9% 0 0);
162
- --color-neutral-700: oklch(37.1% 0 0);
163
- --color-neutral-800: oklch(26.9% 0 0);
164
- --color-neutral-900: oklch(20.5% 0 0);
165
- --color-neutral-950: oklch(14.5% 0 0);
151
+ --color-background-disabled: var(--color-mono-100);
152
+
153
+ --color-mono-50: oklch(98.5% 0 0);
154
+ --color-mono-100: oklch(97% 0 0);
155
+ --color-mono-200: oklch(92.2% 0 0);
156
+ --color-mono-300: oklch(87% 0 0);
157
+ --color-mono-400: oklch(70.8% 0 0);
158
+ --color-mono-500: oklch(55.6% 0 0);
159
+ --color-mono-600: oklch(43.9% 0 0);
160
+ --color-mono-700: oklch(37.1% 0 0);
161
+ --color-mono-800: oklch(26.9% 0 0);
162
+ --color-mono-900: oklch(20.5% 0 0);
163
+ --color-mono-950: oklch(14.5% 0 0);
164
+
165
+ /* Mono (gray-role) fill default + auto contrast — same machinery as the
166
+ semantic hues, for FILLED gray surfaces (Button color="mono" etc.): dark
167
+ ink in light mode, light chip in dark (flipped in .dark below). Lets
168
+ components write bg-[var(--color-mono)] text-[var(--color-mono-contrast)]
169
+ instead of hand-picking rungs + hardcoding text-white (§3 foreground rule). */
170
+ --color-mono: var(--color-mono-900);
171
+ --color-mono-contrast: oklch(from var(--color-mono) clamp(0, (0.85 - l) * 1000, 1) 0 0);
166
172
 
167
173
  /* Font family variables */
168
174
  --font-family-base: var(--font-sans);
169
- --font-cursive: "Birthstone", cursive;
175
+ /* Heading font defaults to the body font so the default render is
176
+ unchanged; themes override it independently (e.g. display face for
177
+ headings, workhorse for body). */
178
+ --font-heading: var(--font-family-base);
179
+
180
+ /* ============================================
181
+ TYPE SCALE — one --font-scale knob (like --radius-base).
182
+ Tailwind v4 defines each --text-* step as an independent literal, so a
183
+ smaller "base font size" would otherwise mean redefining every step per
184
+ theme. Here the ramp is Tailwind's EXACT defaults × --font-scale: at the
185
+ default 1 every utility is byte-for-byte Tailwind (text-sm = 14px);
186
+ a theme sets ONE factor (e.g. 0.9375 → 15px-based text) and the whole
187
+ ramp follows. Line-heights are unitless ratios upstream, so they scale
188
+ automatically. Text-only: spacing (--spacing is rem) and px geometry
189
+ tokens are deliberately unaffected. Each step is round()ed to a whole px
190
+ so scaled sizes stay clean (0.9375 → text-sm 13px, not 13.125px); at
191
+ scale 1 the rounding is inert (Tailwind's defaults are already integers).
192
+ ============================================ */
193
+ --font-scale: 1;
194
+ --text-xs: round(calc(0.75rem * var(--font-scale)), 1px);
195
+ --text-sm: round(calc(0.875rem * var(--font-scale)), 1px);
196
+ --text-base: round(calc(1rem * var(--font-scale)), 1px);
197
+ --text-lg: round(calc(1.125rem * var(--font-scale)), 1px);
198
+ --text-xl: round(calc(1.25rem * var(--font-scale)), 1px);
199
+ --text-2xl: round(calc(1.5rem * var(--font-scale)), 1px);
200
+ --text-3xl: round(calc(1.875rem * var(--font-scale)), 1px);
201
+ --text-4xl: round(calc(2.25rem * var(--font-scale)), 1px);
202
+ --text-5xl: round(calc(3rem * var(--font-scale)), 1px);
203
+ --text-6xl: round(calc(3.75rem * var(--font-scale)), 1px);
204
+ --text-7xl: round(calc(4.5rem * var(--font-scale)), 1px);
205
+ --text-8xl: round(calc(6rem * var(--font-scale)), 1px);
206
+ --text-9xl: round(calc(8rem * var(--font-scale)), 1px);
170
207
  --font-weight-light: 300;
171
208
  --font-weight-normal: 400;
172
209
  --font-weight-medium: 500;
@@ -174,13 +211,91 @@
174
211
  --font-weight-bold: 700;
175
212
  --font-weight-extrabold: 800;
176
213
 
214
+ /* ============================================
215
+ TYPE ROLE SYSTEM — mirrors the two-tier override pattern used by
216
+ BORDER RADIUS SYSTEM below (--card-radius/--metric-radius etc.): a
217
+ shared base scale (the --text-* ramp / --font-scale above) that everything derives
218
+ from by default, plus independently-overridable per-role tokens for the
219
+ handful of prominent heading/value elements a theme most often wants to
220
+ differentiate. --font-scale alone can only resize the WHOLE UI
221
+ uniformly — there was previously no way to make e.g. just Card titles
222
+ bigger without touching every other text size too.
223
+
224
+ Each token below defaults to a specific --text-* rung, so it inherits
225
+ --font-scale automatically (zero visual change for any theme that
226
+ doesn't touch these). A theme can override a token two ways:
227
+ 1. Scale-following: --card-title-size: var(--text-lg);
228
+ (stays pinned to a rung, so it still tracks --font-scale)
229
+ 2. Fixed: --card-title-size: 1.25rem;
230
+ (a literal opts that one role out of the scale entirely — same
231
+ escape hatch --card-radius: 20px gives for geometry)
232
+ This is an ADDITIVE namespace layered on top of --text-* — it does NOT
233
+ redefine individual --text-* steps, which stays forbidden (see TYPE
234
+ SCALE above).
235
+
236
+ 🔴 Consume these via `text-[length:var(--x)]`, NEVER `text-[var(--x)]` —
237
+ Tailwind's arbitrary text-[...] syntax is ambiguous between color and
238
+ font-size, and a bare var() value resolves to the COLOR branch (silently
239
+ dropping the font-size change, no error). The `length:` type hint forces
240
+ the correct branch.
241
+
242
+ 🔴 Every size token below has a PAIRED --*-line-height token, consumed via
243
+ the `/[var(--…)]` modifier: `text-[length:var(--x-size)]/[var(--x-line-height)]`.
244
+ This is the same rule CONTROL TYPE SIZE states for --form-text-size-*, and it
245
+ is mandatory for the same reason. A named utility like `text-sm` compiles to
246
+ font-size AND Tailwind's paired --text-sm--line-height; an arbitrary
247
+ `text-[length:…]` carries font-size ONLY and silently falls back to
248
+ normal/1.5. These roles previously pinned the gap shut with hardcoded
249
+ literals (leading-[1.4], leading-6, leading-none), which meant a theme could
250
+ resize a title but never re-lead it — and a theme raising --card-title-size
251
+ got a title that stayed locked at line-height 1. Defaults below are the exact
252
+ values those literals resolved to, so this is a zero-visual-change addition.
253
+ ============================================ */
254
+ --card-title-size: var(--text-base);
255
+ --modal-title-size: var(--text-base);
256
+ --drawer-title-size: var(--text-base);
257
+ --page-heading-title-size: var(--text-xl);
258
+ --section-title-size: var(--text-base);
259
+ /* Unitless where the old literal was unitless (1.4/1.5 scale with the font),
260
+ and 1.5rem where it was leading-6 (a fixed 6 x --spacing step, which did
261
+ NOT scale with the title size) — preserving each role's existing behaviour
262
+ rather than silently converting one model into the other. */
263
+ --card-title-line-height: 1;
264
+ --modal-title-line-height: 1.5rem;
265
+ --drawer-title-line-height: 1.5rem;
266
+ --page-heading-title-line-height: 1.4;
267
+ --section-title-line-height: 1.5;
268
+ /* AlertDialog has no title style of its own — it renders Modal.Title
269
+ directly, so it already inherits --modal-title-size above. */
270
+
271
+ /* Metric/KPI: one token per size variant, not a single shared token — the
272
+ sm/md/lg values today are deliberate information-density choices, not
273
+ a formula (e.g. Metric's md and lg are literally identical), so a
274
+ single token would either collapse that hierarchy or force an
275
+ arbitrary scaling relationship that doesn't match today's values. */
276
+ --metric-value-size-sm: var(--text-xl);
277
+ --metric-value-size-md: var(--text-3xl);
278
+ --metric-value-size-lg: var(--text-3xl);
279
+ --kpi-value-size-sm: var(--text-xl);
280
+ --kpi-value-size-md: var(--text-2xl);
281
+ --kpi-value-size-lg: var(--text-3xl);
282
+ /* Paired leading, per the rule above. Unitless so a themed value-size still
283
+ leads proportionally — these are big display numerals where a fixed rem
284
+ leading would clip descenders the moment a theme scaled the size up. */
285
+ --metric-value-line-height-sm: 1.4;
286
+ --metric-value-line-height-md: 1.2;
287
+ --metric-value-line-height-lg: 1.2;
288
+ --kpi-value-line-height-sm: 1.4;
289
+ --kpi-value-line-height-md: 1.333;
290
+ --kpi-value-line-height-lg: 1.2;
291
+
177
292
  /* Form element variables — fixed px so they don't scale with root font-size */
178
293
  --form-min-h-sm: 32px;
179
294
  /* h-8 in Tailwind */
180
- --form-min-h-md: 40px;
295
+ --form-min-h-md: 36px;
296
+ /* h-9 in Tailwind */
297
+ --form-min-h-lg: 40px;
181
298
  /* h-10 in Tailwind */
182
- --form-min-h-lg: 48px;
183
- /* h-12 in Tailwind */
184
299
 
185
300
  --form-label-pb: 8px;
186
301
  /* pb-2 in Tailwind */
@@ -193,21 +308,97 @@
193
308
  /* px-4 in Tailwind */
194
309
 
195
310
  --form-py-sm: 8px;
196
- /* py-1 in Tailwind */
197
- --form-py-md: 10px;
198
311
  /* py-2 in Tailwind */
312
+ --form-py-md: 10px;
313
+ /* py-2.5 in Tailwind */
199
314
  --form-py-lg: 12px;
200
315
  /* py-3 in Tailwind */
201
316
 
317
+ /* CONTROL TYPE SIZE — the last control-tier axis that was still a raw
318
+ Tailwind literal baked into the .theme.ts files. Height, padding and
319
+ radius were already tokens, so a theme could retune a control's box but
320
+ never its type; same "a library can't hardcode a Tailwind literal and
321
+ call it themeable" reasoning as the SURFACE PADDING and TYPE ROLE
322
+ systems below/above. Defaults to a --text-* rung, so --font-scale still
323
+ applies unless a theme overrides one outright.
324
+
325
+ Deliberately TWO rungs across three sizes: 14px is the workhorse control
326
+ size and dropping sm to 12px is a legibility liability on a 32px-tall
327
+ primary action — sm/md are separated by box (height + padding), not type.
328
+ Don't "fix" the repeat into a 12/14/16 ramp without a design pass.
329
+
330
+ 🔴 Consume as text-[length:var(--…)], never bare text-[var(--…)] —
331
+ Tailwind's arbitrary text-[…] syntax is ambiguous between colour and
332
+ font-size and a bare var() resolves to the COLOUR branch, silently
333
+ no-oping the size (see TYPE ROLE SYSTEM). */
334
+ --form-text-size-sm: var(--text-sm);
335
+ --form-text-size-md: var(--text-sm);
336
+ --form-text-size-lg: var(--text-base);
337
+
338
+ /* 🔴 Paired line-heights are NOT optional here. A bare `text-sm` utility
339
+ compiles to font-size AND Tailwind's paired `--text-sm--line-height`
340
+ (14px/20px); an arbitrary `text-[length:…]` carries font-size ONLY and
341
+ the element falls back to normal/1.5 (14px/21px). Consuming these
342
+ tokens without the `/[var(--…-line-height-…)]` modifier therefore
343
+ silently changes every control's leading — caught in review at exactly
344
+ that 20px→21px step. Values alias Tailwind's own pairing vars so the
345
+ ramp stays byte-identical and --font-scale still flows through (the
346
+ pairings are unitless ratios). */
347
+ --form-line-height-sm: var(--text-sm--line-height);
348
+ --form-line-height-md: var(--text-sm--line-height);
349
+ --form-line-height-lg: var(--text-base--line-height);
350
+
351
+ /* ============================================
352
+ OTP SLOT SIZING
353
+ OTP slots are SQUARE, so this is one size token per rung, not a height +
354
+ width pair. sm/md/lg ALIAS the form ramp so slots line up with an adjacent
355
+ Input of the same size — break an alias to size OTP independently (same
356
+ pattern as --button-min-h-* / --segmented-min-h-*).
357
+
358
+ xl is DERIVED, not a literal, and there is deliberately no global
359
+ --form-min-h-xl: OTP is the only control large enough to want one, and a
360
+ global rung would ship without its px/py/text siblings. A hardcoded 48px
361
+ would not track a theme's ramp the way sm/md/lg do — it renders SMALLER
362
+ than lg in both Jade (36/44/52) and Ember (40/48/56). The 1.2 factor is
363
+ anchored so the default theme lands on 48px exactly.
364
+ ============================================ */
365
+ --otp-slot-size-sm: var(--form-min-h-sm);
366
+ /* 32px */
367
+ --otp-slot-size-md: var(--form-min-h-md);
368
+ /* 36px */
369
+ --otp-slot-size-lg: var(--form-min-h-lg);
370
+ /* 40px */
371
+ --otp-slot-size-xl: calc(var(--form-min-h-lg) * 1.2);
372
+ /* 48px in the default theme */
373
+
374
+ /* The digit runs one rung HOTTER than form body text — it is a display
375
+ numeral, not label text — so these deliberately do NOT alias
376
+ --form-text-size-*. Same two-rungs-across-the-low-end shape as the form
377
+ ramp: sm and md share a rung, lg and xl each step. */
378
+ --otp-text-size-sm: var(--text-base);
379
+ --otp-text-size-md: var(--text-base);
380
+ --otp-text-size-lg: var(--text-lg);
381
+ --otp-text-size-xl: var(--text-xl);
382
+
383
+ /* 🔴 MANDATORY pairing. A bare `text-lg` utility compiles to font-size AND
384
+ Tailwind's paired --text-lg--line-height; an arbitrary text-[length:…]
385
+ carries font-size ONLY and falls back to normal/1.5, silently changing
386
+ the digit's leading. Aliases Tailwind's own pairing vars so --font-scale
387
+ still flows through. */
388
+ --otp-line-height-sm: var(--text-base--line-height);
389
+ --otp-line-height-md: var(--text-base--line-height);
390
+ --otp-line-height-lg: var(--text-lg--line-height);
391
+ --otp-line-height-xl: var(--text-xl--line-height);
392
+
202
393
  /* ============================================
203
394
  BORDER RADIUS SYSTEM
204
395
  Change --radius-base to adjust the entire UI.
205
396
  Individual --*-radius variables can be overridden independently.
206
397
  ============================================ */
207
- --radius-base: 12px;
398
+ --radius-base: 8px;
208
399
  /* Base radius token */
209
400
 
210
- /* Forms & Controls (1x base = 8px) */
401
+ /* Forms & Controls (1x base = 12px) */
211
402
  --form-radius: var(--radius-base);
212
403
 
213
404
  /* Checkbox: small absolute box (20–28px), so the radius is CAPPED — a raw
@@ -215,49 +406,119 @@
215
406
  base grows. min() keeps it a rounded square at any base. */
216
407
  --checkbox-radius: min(calc(var(--radius-base) * 0.5), 6px);
217
408
 
218
- /* Overlays (1.5x base = 12px) */
219
- --dropdown-radius: calc(var(--radius-base) * 1.5);
220
- --tooltip-radius: calc(var(--radius-base) / 1);
221
- --codeblock-radius: calc(var(--radius-base) * 1.5);
222
- --popover-radius: calc(var(--radius-base) * 1.5);
409
+ /* Surface radius ceilings every CONTENT-BEARING container (Tooltip,
410
+ ChartTooltip, Dropdown, CodeBlock, Popover, Alert, Toast, Metric,
411
+ Message, GanttChart, Card, Modal, Drawer, HeroCard) caps its computed
412
+ radius at one of these, so a theme chasing pill-shaped controls at a
413
+ very large --radius-base can never round a padded surface past what
414
+ its own padding can absorb — the curve would otherwise start visually
415
+ eating into header text/icons sitting in that padding. Three tiers
416
+ because containers aren't one size: tiny fixed-padding chips run
417
+ ~4–12px padding, compact fixed-height surfaces run ~12–20px, spacious
418
+ freeform ones run ~24px. CONTROLS (Button/Input/Badge/NavItem/
419
+ Segmented) are the one category deliberately NOT capped below — going
420
+ fully pill at an extreme --radius-base is the correct, common look
421
+ there, and CSS itself auto-clamps border-radius to 50% of the box, so
422
+ a control can never visually break either way. (Tooltip looks like a
423
+ control at a glance — small, single-purpose — but unlike Button/Badge
424
+ it's a PADDED content box, not a filled shape with no internal inset,
425
+ so the padding-collision risk applies to it too; it belongs in the
426
+ capped camp, not the uncapped one — this was gotten wrong in an
427
+ earlier pass.) Override any cap per-theme for a more/less rounded
428
+ ceiling on surfaces specifically (independent of how round the
429
+ theme's controls are). Every new content-bearing container's radius
430
+ token MUST derive from one of these three caps — never a bare
431
+ `calc(var(--radius-base) * N)` — or it silently re-opens this exact gap
432
+ (see the OfflineIndicator/Message/HeroCard/GanttChart/Tooltip fixes
433
+ this system replaced). */
434
+ --surface-radius-cap-xs: 12px;
435
+ /* tiny/tight-padding chips (~4–12px padding): Tooltip, ChartTooltip */
436
+ --surface-radius-cap-sm: 24px;
437
+ /* compact/fixed-height content (~12–20px padding): Dropdown, CodeBlock,
438
+ Popover, Alert, Toast, Metric, Message, GanttChart */
439
+ --surface-radius-cap-lg: 32px;
440
+ /* spacious/freeform containers (~24px padding): Card, Modal, Drawer, HeroCard */
441
+
442
+ /* Overlays (1.5x base = 18px, capped; tooltip stays 1x but is now ALSO
443
+ capped — same 1x multiplier as before, just no longer unbounded) */
444
+ --dropdown-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
445
+ /* The form listbox panel (Select/Combobox/InputTag/Mention) is the same kind of
446
+ anchored menu panel as the one above — Mention literally renders MenuItem rows
447
+ in it — so it ALIASES --dropdown-radius rather than restating the formula. An
448
+ alias, not a copy: `precision.css` overrides --dropdown-radius alone, and two
449
+ parallel formulas would have left form listboxes at a different radius than the
450
+ menus they sit beside. Override this token to deliberately split the two.
451
+ 🔴 It used to paint --form-radius, which is `var(--radius-base)`: the UNCAPPED
452
+ CONTROL token, on a padded content container — the exact bypass the caps above
453
+ exist to prevent (on `ember`, base 24px, a 24px curve against 4px of padding).
454
+ Never route a panel through a control token. */
455
+ --form-dropdown-radius: var(--dropdown-radius);
456
+ --tooltip-radius: min(var(--radius-base), var(--surface-radius-cap-xs));
457
+ --codeblock-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
458
+ --popover-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
223
459
 
224
460
  /* Feedback surfaces */
225
- --alert-radius: calc(var(--radius-base) * 1.5);
226
- --toast-radius: calc(var(--radius-base) * 1.5);
227
- --drawer-radius: calc(var(--radius-base) * 2);
228
- --metric-radius: calc(var(--radius-base) * 2);
229
-
230
- /* Surfaces (3x base = 24px) */
231
- --card-radius: calc(var(--radius-base) * 1.5);
232
- --modal-radius: calc(var(--radius-base) * 1.5);
461
+ --alert-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
462
+ --toast-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
463
+ --drawer-radius: min(calc(var(--radius-base) * 2), var(--surface-radius-cap-lg));
464
+ /* Metric is a compact stat tile, not a Drawer-scale surface — same tier
465
+ and cap as the other compact containers above, not 2x/lg. */
466
+ --metric-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
467
+ /* Chat bubble: same formula/tier as Alert/Toast/Metric above (compact,
468
+ padded content) its own token rather than reusing one of theirs so a
469
+ theme can dial bubble roundness independently. */
470
+ --message-bubble-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
471
+ /* Owns its own border/bg/shadow with compact (~12-20px) paddings, closer
472
+ to Alert/Dropdown's profile than Card's, despite living in data-display. */
473
+ --gantt-chart-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
474
+ /* AgentRequest: the composer-slot panel. Compact chrome (~14px padding), so
475
+ it takes the sm cap like Dropdown/Popover/Toast — NOT --card-radius. It
476
+ used to borrow that token, but Card earns the lg cap by having 24px of
477
+ padding to absorb the curve; at 14px the same 32px radius visibly crowds
478
+ the header row (ember, --radius-base: 24px). */
479
+ --agent-request-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-sm));
480
+ /* The payload well INSIDE that panel (the command/diff being approved) has
481
+ only ~10px of padding, so it needs the tight xs cap — same formula and
482
+ reasoning as --tooltip-radius, one tier below its own container. A bare
483
+ var(--radius-base) here rendered a 24px curve on a 10px-padded box. */
484
+ --agent-request-well-radius: min(var(--radius-base), var(--surface-radius-cap-xs));
485
+
486
+ /* Surfaces (1.5x base = 18px, capped) */
487
+ --card-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-lg));
488
+ --modal-radius: min(calc(var(--radius-base) * 1.5), var(--surface-radius-cap-lg));
489
+ /* HeroCard has no radius token of its own — it's a Card presentation, so
490
+ it shares --card-radius (overridable per-instance via className, same
491
+ as every other component). */
233
492
 
234
493
  /* Special shapes - not part of scale */
235
494
  --segmented-radius: var(--form-radius);
236
495
  --avatar-radius: 50%;
237
496
 
238
- /* Focus ring styling */
239
- --form-focus-ring-width: 2px;
240
- --form-focus-ring-offset: -1px;
241
- --form-focus-ring-opacity: 0.1;
242
-
243
- /* Outline/border styling */
244
- --form-outline-width: 1px;
245
- --form-outline-focused-width: 2px;
246
-
247
497
  /* Button variables - inheriting from form variables */
248
498
  --button-radius: var(--form-radius);
249
499
  --button-min-h-sm: var(--form-min-h-sm);
250
500
  --button-min-h-md: var(--form-min-h-md);
251
501
  --button-min-h-lg: var(--form-min-h-lg);
252
502
 
253
- /* Button padding — fixed px */
254
- --button-px-sm: 12px;
503
+ /* Button padding — fixed px. A +2 ramp (10/12/14); py is 0 because the
504
+ height comes from --button-min-h-* (i.e. --form-min-h-*), not padding. */
505
+ --button-px-sm: 10px;
255
506
  --button-py-sm: 0;
256
- --button-px-md: 14px;
507
+ --button-px-md: 12px;
257
508
  --button-py-md: 0;
258
- --button-px-lg: 20px;
509
+ --button-px-lg: 14px;
259
510
  --button-py-lg: 0;
260
511
 
512
+ /* Button type size — aliases the form ramp, like --button-min-h-* aliases
513
+ --form-min-h-*. A theme can break the alias to size button type
514
+ independently of input type. */
515
+ --button-text-size-sm: var(--form-text-size-sm);
516
+ --button-text-size-md: var(--form-text-size-md);
517
+ --button-text-size-lg: var(--form-text-size-lg);
518
+ --button-line-height-sm: var(--form-line-height-sm);
519
+ --button-line-height-md: var(--form-line-height-md);
520
+ --button-line-height-lg: var(--form-line-height-lg);
521
+
261
522
  /* Button icon-only padding — fixed px */
262
523
  --button-icon-p-sm: 6px;
263
524
  --button-icon-p-md: 8px;
@@ -268,8 +529,58 @@
268
529
  --button-icon-size-md: var(--form-min-h-md);
269
530
  --button-icon-size-lg: var(--form-min-h-lg);
270
531
 
271
- /* Badge variables */
272
- --badge-radius: 6px;
532
+ /* Badge variables.
533
+ Radius derives from --radius-base like every other CONTROL (Button/Input/
534
+ Segmented) — 0.75x = 6px at the 8px base, and now it tracks a themed base
535
+ (was a hardcoded 6px literal that silently ignored --radius-base). Uncapped:
536
+ a large base takes Badge fully pill, which CSS auto-clamps to 50%.
537
+ Paddings are fixed px (like --button-px-* / --form-px-*), overridable per theme
538
+ so a spacious theme can grow the chip tier alongside its controls. py drives
539
+ height together with the text line-height + 1px border (sm: 16+2+2=20, md:
540
+ 16+4+2=22). pill-px must clear the rounded-full cap so text is not eaten
541
+ by the curve.
542
+
543
+ RADIUS IS PER SIZE. A single shared radius does not survive down the ramp:
544
+ the curve starts `radius` in from each edge while text starts `px + border`
545
+ in, so the smaller box — which has LESS padding to absorb the curve — is the
546
+ one whose glyphs end up sitting inside it. At the shared 0.75x (6px) sm's
547
+ text started at 5px against a 6px curve; 0.5x (4px) clears it. Same
548
+ curve-vs-padding collision the --surface-radius-cap-* ceilings solve for
549
+ containers, one tier down. Both still derive from --radius-base so a themed
550
+ base scales them; --badge-radius stays the md value (and the name a theme
551
+ already overrides), with --badge-radius-md aliasing it. */
552
+ --badge-radius: calc(var(--radius-base) * 0.75);
553
+ --badge-radius-sm: calc(var(--radius-base) * 0.5);
554
+ --badge-radius-md: var(--badge-radius);
555
+ --badge-px-sm: 4px;
556
+ --badge-px-md: 6px;
557
+ --badge-py-sm: 1px;
558
+ --badge-py-md: 2px;
559
+ --badge-pill-px-sm: 10px;
560
+ --badge-pill-px-md: 10px;
561
+
562
+ /* Pill (chip tier) — px/py per size. rounded-full is intrinsic (no radius
563
+ token needed); a themed --radius-base leaves it pill either way. */
564
+ --pill-px-sm: 10px;
565
+ --pill-px-md: 10px;
566
+ --pill-px-lg: 12px;
567
+ --pill-py-sm: 2px;
568
+ --pill-py-md: 2px;
569
+ --pill-py-lg: 4px;
570
+
571
+ /* Tag (chip tier) — rounded-full intrinsic. md carries a slightly larger LEFT
572
+ inset (--tag-pl-md) so a leading avatar/icon sits right; px-md is the right
573
+ edge. */
574
+ --tag-px-sm: 8px;
575
+ --tag-px-md: 8px;
576
+ --tag-pl-md: 10px;
577
+ --tag-py-sm: 2px;
578
+ --tag-py-md: 2px;
579
+
580
+ /* Kbd (chip tier) — px only; height stays the fixed h-5/h-6 keycap size and
581
+ radius already derives from --radius-base in Kbd.theme.ts. */
582
+ --kbd-px-sm: 4px;
583
+ --kbd-px-md: 6px;
273
584
 
274
585
  /* Segmented variables - now defined in radius system above */
275
586
  --segmented-min-h-sm: var(--form-min-h-sm);
@@ -285,6 +596,81 @@
285
596
  --segmented-py-md: var(--form-py-md);
286
597
  --segmented-py-lg: var(--form-py-lg);
287
598
 
599
+ /* Segmented type size — aliases the form ramp like every other Segmented
600
+ box token. Previously Segmented was text-sm at ALL THREE sizes while
601
+ Button/Input both stepped up at lg, despite --segmented-min-h-* being a
602
+ straight alias of --form-min-h-*: lg grew its box but not its type. */
603
+ --segmented-text-size-sm: var(--form-text-size-sm);
604
+ --segmented-text-size-md: var(--form-text-size-md);
605
+ --segmented-text-size-lg: var(--form-text-size-lg);
606
+ --segmented-line-height-sm: var(--form-line-height-sm);
607
+ --segmented-line-height-md: var(--form-line-height-md);
608
+ --segmented-line-height-lg: var(--form-line-height-lg);
609
+
610
+ /* ============================================
611
+ SURFACE PADDING SYSTEM — same idea as BORDER RADIUS SYSTEM/TYPE ROLE
612
+ SYSTEM above: a library can't bake a Tailwind literal (p-6, p-4) into a
613
+ .theme.ts file and call it themeable — a consumer's theme has no lever
614
+ to reach it. These are the "brand-visible container weight" surfaces a
615
+ theme author would actually want to dial roomier/tighter (e.g. the
616
+ spacious-dialog look), not every padded box in the library — denser/
617
+ data-oriented chrome (Alert, Toast, Popover, Message, Tooltip,
618
+ ChartTooltip, GanttChart, CommandPalette, Table, etc.) is deliberately
619
+ out of scope for now. HeroCard is also deliberately excluded — it's a
620
+ custom/override presentation of Card, not a foundational container, and
621
+ keeps its hardcoded p-10.
622
+ Each token defaults to today's exact px value — zero visual change for
623
+ any theme that doesn't override these. */
624
+ --card-px: 24px;
625
+ --card-py: 24px;
626
+ /* from p-6 */
627
+ --modal-px: 16px;
628
+ --modal-py: 16px;
629
+ /* from p-4 */
630
+ --drawer-px: 16px;
631
+ --drawer-py: 16px;
632
+ /* from p-4 */
633
+
634
+ /* Metric: uniform (not split px/py) — matches its existing non-split
635
+ contentPaddingSizes shape and the --metric-value-size-* naming. */
636
+ --metric-content-p-sm: 12px;
637
+ /* from p-3 */
638
+ --metric-content-p-md: 16px;
639
+ /* from p-4 */
640
+ --metric-content-p-lg: 20px;
641
+ /* from p-5 */
642
+
643
+ /* ============================================
644
+ MOTION SYSTEM — the transition-duration tier, tokenised.
645
+
646
+ Unlike the type utilities, Tailwind's duration-* does NOT route through a
647
+ theme variable: `duration-200` compiles to a literal `transition-duration:
648
+ .2s`, so a theme had no way to make the whole UI quicker or calmer. These
649
+ five tokens cover every duration the library actually uses; consume them as
650
+ `duration-[var(--motion-duration-base)]`.
651
+
652
+ 🔴 Values are the EXACT literals they replace — this is a tokenisation, not
653
+ a retune. The names label the existing tiers rather than proposing new
654
+ timings, so a theme opts into a different feel by overriding a token; the
655
+ default rendering is byte-identical.
656
+
657
+ 🔴 There is deliberately NO --motion-ease-* family. Easing ALREADY routes
658
+ through overridable variables — `ease-out` compiles to
659
+ `transition-timing-function: var(--ease-out)`, same as `tracking-tight` ->
660
+ var(--tracking-tight). A theme retunes --ease-out/--ease-in/--ease-in-out
661
+ directly; adding a parallel --motion-ease-* namespace would give the same
662
+ property two competing knobs.
663
+
664
+ 🔴 Scope is CSS transitions only. motion/react animations take durations as
665
+ JS numbers (seconds) in .animations.ts and cannot read a CSS variable — see
666
+ interaction.animations.ts for the shared press/hover springs, which stay the
667
+ single source of truth for those. Don't mirror these tokens into JS. */
668
+ --motion-duration-fast: 150ms;
669
+ --motion-duration-base: 200ms;
670
+ --motion-duration-slow: 300ms;
671
+ --motion-duration-slower: 400ms;
672
+ --motion-duration-slowest: 500ms;
673
+
288
674
  /* Segmented inner offset — drives wrapper padding AND inner radius so
289
675
  the sliding background + items stay concentric with the outer shell.
290
676
  border (1px) + padding (--segmented-padding) = total inset. */
@@ -292,15 +678,24 @@
292
678
  /* 2px */
293
679
  --segmented-inner-radius: calc(var(--segmented-radius) - var(--segmented-padding) - 1px);
294
680
 
295
- /* Segmented sliding background */
296
- --segmented-active-bg: #ffffff;
297
- --segmented-active-shadow:
298
- 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
299
-
300
- /* Glass effect variables */
301
- --glass-layer-padding: 0.5px;
302
- --glass-layer-border-width: 0.5px;
303
- --glass-layer-inner-offset: 1.5px;
681
+ /* Menu panel inner offset — same model as --segmented-* above: one padding
682
+ token drives BOTH the panel's own padding AND the outer corner radius of
683
+ its first/last row, so the rows stay concentric with the panel instead of
684
+ bulging past its curve. border (1px) + padding (--dropdown-padding) = total
685
+ inset. Consumed by Dropdown's menu, ContextMenu's body + submenu body, and
686
+ MenuItem's first:/last: rules change the padding here, never at a call
687
+ site, or the two drift apart. Interior rows keep their own flat radius;
688
+ only the two rows that meet the panel's corners take this one. */
689
+ --dropdown-padding: 0.25rem;
690
+ /* 4px */
691
+ --dropdown-inner-radius: calc(var(--dropdown-radius) - var(--dropdown-padding) - 1px);
692
+
693
+ /* Same pair for the FORM listbox panel, aliasing the menu's by default (see
694
+ --form-dropdown-radius). Named separately so a theme CAN split the two — and so
695
+ the inner radius always derives from the panel it actually sits in, whichever
696
+ way that goes. */
697
+ --form-dropdown-padding: var(--dropdown-padding);
698
+ --form-dropdown-inner-radius: calc(var(--form-dropdown-radius) - var(--form-dropdown-padding) - 1px);
304
699
 
305
700
  /* Glass effect gradient variables */
306
701
  --glass-gradient-outer: linear-gradient(to bottom,
@@ -312,10 +707,6 @@
312
707
  rgba(242, 242, 242, 0.8) 0%,
313
708
  rgba(250, 250, 250, 0.8) 100%);
314
709
 
315
- /* Chat message variables */
316
- --chat-bubble-border-sender: rgba(255, 255, 255, 0.4);
317
- --chat-bubble-border-receiver: rgba(255, 255, 255, 1);
318
-
319
710
  /* Avatar variables — fixed px */
320
711
  --avatar-size-xs: 24px;
321
712
  /* size-6 in Tailwind */
@@ -330,60 +721,16 @@
330
721
 
331
722
  /* Avatar radius - now defined in radius system above */
332
723
 
333
- /* Carousel Variables */
334
- --carousel-container-width: 100%;
335
- /* Full width container */
336
- --carousel-slide-width: 66vw;
337
- /* Default slide width - can be overridden */
338
- --carousel-slide-height: 44rem;
339
- /* 384px = h-96 */
340
- --carousel-slide-gap: 16px;
341
- /* gap between slides */
342
- --carousel-controls-size: 48px;
343
- /* control button size */
344
- --carousel-controls-offset: 16px;
345
- /* distance from edge */
346
-
347
- /* Popover variables - radius now defined in radius system above */
348
- --popover-shadow:
349
- 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
350
- --popover-border-width: 1px;
351
- --popover-backdrop-opacity: 0.5;
352
- --popover-offset-sm: 8px;
353
- --popover-offset-md: 8px;
354
- --popover-offset-lg: 12px;
355
- --popover-max-width-sm: 256px;
356
- --popover-max-width-md: 384px;
357
- --popover-max-width-lg: 512px;
358
- --popover-padding-sm: 12px;
359
- --popover-padding-md: 12px;
360
- --popover-padding-lg: 16px;
361
-
362
- /* NavItem variables */
724
+ /* NavItem variables — radius only (padding/height live in NavItem.theme.ts) */
363
725
  --nav-item-radius: var(--radius-base);
364
- --nav-item-min-h: 40px;
365
- /* h-10 in Tailwind */
366
-
367
- /* NavItem padding — fixed px */
368
- --nav-item-px: 12px;
369
- /* px-3 in Tailwind */
370
- --nav-item-py: 10px;
371
- /* py-2.5 in Tailwind */
372
726
 
373
727
  /* Modal and Drawer */
374
- --overlay-bg: rgba(0, 0, 0, 0.65);
728
+ --overlay-bg: rgba(0, 0, 0, 0.75);
375
729
  --overlay-blur: 8px;
376
730
  --color-scale-background: oklch(0% 0 0);
377
731
  /* backdrop behind scaled content */
378
732
  /* Modal radius - now defined in radius system above */
379
733
 
380
- /* Shadow color presets for utility generation */
381
- --shadow-color-primary: var(--color-primary);
382
- --shadow-color-success: var(--color-success);
383
- --shadow-color-warning: var(--color-warning);
384
- --shadow-color-danger: var(--color-danger);
385
- --shadow-color-secondary: var(--color-secondary);
386
-
387
734
  /* Neumorphic tokens — light mode (multi-layer realistic) */
388
735
  --neu-raised-shadow:
389
736
  1px 1px 2px rgba(0, 0, 0, 0.04), 3px 3px 6px rgba(0, 0, 0, 0.06),
@@ -425,6 +772,17 @@
425
772
  rgba(255, 255, 255, 0.5) 100%);
426
773
  }
427
774
 
775
+ /* NOTE on --color-neutral-*: the gray ROLE was renamed to `mono`
776
+ (--color-mono-* / color="mono") so it stops colliding with Tailwind's own
777
+ `neutral`. We deliberately do NOT re-alias --color-neutral-* here: in a
778
+ Tailwind build those names already resolve to Tailwind's real neutral
779
+ palette (emitted into styles.css alongside slate/zinc/stone, which the
780
+ RichTextEditor swatches rely on), and re-aliasing them to mono would
781
+ re-shadow Tailwind's neutral — exactly what this rename removes. Raw-var
782
+ consumers who used var(--color-neutral-*) for the role should migrate to
783
+ var(--color-mono-*); the old name now yields Tailwind's neutral (a near-
784
+ identical gray in the default theme). See CHANGELOG. */
785
+
428
786
  /* ============================================
429
787
  DARK MODE OVERRIDES
430
788
  Add .dark class to <html> or a parent container
@@ -603,12 +961,18 @@
603
961
 
604
962
  /* Neutral text ramp (Linear's text reads essentially neutral off-white;
605
963
  slate was too blue against the low-chroma surfaces). */
606
- --color-text-primary: var(--color-neutral-50);
964
+ --color-text-primary: var(--color-mono-50);
607
965
  --color-text-secondary: oklch(80% 0 0);
608
- --color-text-placeholder: var(--color-neutral-600);
609
- --color-text-muted: var(--color-neutral-600);
610
- --color-text-disabled: var(--color-neutral-400);
611
- --color-text-inverse: var(--color-neutral-950);
966
+ /* Re-derived (same formulas as :root) so the mix picks up the dark
967
+ text-primary even when .dark is scoped to a subtree — mirrors the
968
+ contrast-token re-declaration below. 40% of near-white over the dark
969
+ surfaces lands at the neutral-500 lightness the components used. */
970
+ --color-text-placeholder: color-mix(in oklab, var(--color-text-primary) 40%, transparent);
971
+ --color-text-muted: color-mix(in oklab, var(--color-text-primary) 50%, transparent);
972
+ /* neutral-600, not -400: the value every date/time picker bypassed to —
973
+ encoded here so components don't need dark: overrides */
974
+ --color-text-disabled: var(--color-mono-600);
975
+ --color-text-inverse: var(--color-mono-950);
612
976
 
613
977
  /* Shimmer surface sweep — dim the white streak on the near-black floor. */
614
978
  --shimmer-surface-highlight: color-mix(in srgb, #fff 8%, transparent);
@@ -619,7 +983,8 @@
619
983
  --color-success: var(--color-success-400);
620
984
  --color-warning: var(--color-warning-400);
621
985
  --color-danger: var(--color-danger-400);
622
- --color-secondary: var(--color-secondary-400);
986
+ /* Neutral fill flips to a light chip (dark ink text via auto contrast) */
987
+ --color-mono: var(--color-mono-200);
623
988
 
624
989
  /* Contrast colors for filled variants on semantic backgrounds.
625
990
  Auto-derived (same formula as :root) — recomputes against the dark-mode
@@ -628,7 +993,7 @@
628
993
  --color-danger-contrast: oklch(from var(--color-danger) clamp(0, (0.85 - l) * 1000, 1) 0 0);
629
994
  --color-success-contrast: oklch(from var(--color-success) clamp(0, (0.85 - l) * 1000, 1) 0 0);
630
995
  --color-warning-contrast: oklch(from var(--color-warning) clamp(0, (0.85 - l) * 1000, 1) 0 0);
631
- --color-secondary-contrast: oklch(from var(--color-secondary) clamp(0, (0.85 - l) * 1000, 1) 0 0);
996
+ --color-mono-contrast: oklch(from var(--color-mono) clamp(0, (0.85 - l) * 1000, 1) 0 0);
632
997
 
633
998
  /* Background colors - dark equivalents */
634
999
  /* Surface ladder — faithful Fluid Functionalism dark palette. 8 rungs step up neutrally
@@ -650,13 +1015,7 @@
650
1015
  --color-surface-hover: oklch(100% 0 0 / 0.07);
651
1016
  --color-background: var(--surface-1);
652
1017
  /* rung 1 — dark floor */
653
- /* DEPRECATED (remove next major): alias of --color-surface. */
654
- --color-background-secondary: var(--color-surface);
655
- /* DEPRECATED (remove next major): migrate per-usage to --color-surface-sunken / surface ladder. */
656
- --color-background-tertiary: oklch(22% 0 0);
657
- --color-background-quaternary: oklch(26% 0 0);
658
- --color-background-quinary: oklch(30% 0 0);
659
- --color-background-disabled: var(--color-neutral-800);
1018
+ --color-background-disabled: var(--color-mono-800);
660
1019
 
661
1020
  /* Scale backdrop — sits behind scaled content, darker than the #171717 floor */
662
1021
  --color-scale-background: #0a0a0a;
@@ -777,20 +1136,32 @@
777
1136
  inset 0 20px 40px -8px rgba(0, 0, 0, 0.36),
778
1137
  inset 0 -1px 0 rgba(255, 255, 255, 0.12);
779
1138
  --color-chart-track: rgba(255, 255, 255, 0.05);
780
-
781
- /* Glass effect gradients - dark mode */
1139
+ --color-chart-1: #60a5fa;
1140
+ --color-chart-1-contrast: oklch(from var(--color-chart-1) clamp(0, (0.85 - l) * 1000, 1) 0 0);
1141
+ --color-chart-2: #2dd4bf;
1142
+ --color-chart-2-contrast: oklch(from var(--color-chart-2) clamp(0, (0.85 - l) * 1000, 1) 0 0);
1143
+ --color-chart-3: #fbbf24;
1144
+ --color-chart-3-contrast: oklch(from var(--color-chart-3) clamp(0, (0.85 - l) * 1000, 1) 0 0);
1145
+ --color-chart-4: #a78bfa;
1146
+ --color-chart-4-contrast: oklch(from var(--color-chart-4) clamp(0, (0.85 - l) * 1000, 1) 0 0);
1147
+ --color-chart-5: #f472b6;
1148
+ --color-chart-5-contrast: oklch(from var(--color-chart-5) clamp(0, (0.85 - l) * 1000, 1) 0 0);
1149
+
1150
+ /* Glass effect gradients - dark mode. Surface-ladder rungs, NOT the deprecated
1151
+ --color-background-* aliases (removed next major); values match the old ones
1152
+ (tertiary oklch 22% ≈ surface-4, secondary = surface-3, background = surface-1). */
782
1153
  --glass-gradient-outer: linear-gradient(135deg,
783
- var(--color-background-tertiary) 0%,
784
- var(--color-background-secondary) 30%,
785
- var(--color-background) 70%,
786
- var(--color-background-tertiary) 100%);
1154
+ var(--surface-4) 0%,
1155
+ var(--surface-3) 30%,
1156
+ var(--surface-1) 70%,
1157
+ var(--surface-4) 100%);
787
1158
  --glass-gradient-inner: linear-gradient(to bottom,
788
- var(--color-background-secondary) 0%,
789
- var(--color-background) 100%);
1159
+ var(--surface-3) 0%,
1160
+ var(--surface-1) 100%);
790
1161
 
791
1162
  /* Scrollbar - dark mode */
792
1163
  --ui-scrollbar-thumb-rest: rgba(75, 85, 99, 0.3);
793
- --ui-scrollbar-thumb-active: rgb(75 85 99, 0.75);
1164
+ --ui-scrollbar-thumb-active: rgb(75 85 99 / 0.75);
794
1165
  --ui-scrollbar-track-rest: transparent;
795
1166
  --ui-scrollbar-track-active: rgba(55, 65, 81, 0.1);
796
1167