@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
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useId, useEffect, useRef, useMemo } from 'react';
2
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
+ import { useState, useId, useRef, useMemo, useEffect } from 'react';
4
4
  import { useReducedMotion, motion } from 'motion/react';
5
5
  import { cn } from '../../../utils/cn.js';
6
6
  import { useTooltipPosition } from '../hooks/useTooltipPosition.js';
@@ -11,12 +11,14 @@ import { ChartErrorBoundary } from '../shared/ChartErrorBoundary/ChartErrorBound
11
11
  import { XAxis } from '../shared/ChartAxis/XAxis.js';
12
12
  import { YAxis } from '../shared/ChartAxis/YAxis.js';
13
13
  import { HorizontalGrid } from '../shared/ChartGrid/HorizontalGrid.js';
14
- import { ChartTooltip } from '../shared/ChartTooltip/ChartTooltip.js';
14
+ import { ChartTooltip } from '../../core/shared/ChartTooltip/ChartTooltip.js';
15
15
  import { resolveLegendPosition, ChartLegend } from '../shared/ChartLegend/ChartLegend.js';
16
16
  import { STACKED_BAR_CHART_DEFAULTS } from './StackedBarChart.types.js';
17
17
  import { X_AXIS_MARGIN } from '../types/chart.types.js';
18
- import { RISE_FROM_BASELINE, barEntranceTransition, STACKED_BAR_STAGGER } from '../utils/animation-utils.js';
19
- import { ExclamationTriangleIcon } from '@heroicons/react/20/solid';
18
+ import { BAR_STACK_CATEGORY_DELAY, RISE_FROM_BASELINE, stackedSegmentTransition } from '../utils/animation-utils.js';
19
+ import { resolveSeriesColor } from '../utils/series-color.js';
20
+ import { chartTheme } from '../theme/chart.theme.js';
21
+ import { Warning } from '@phosphor-icons/react';
20
22
 
21
23
  // Pure helper functions moved to module level to avoid recreation per render
22
24
  const createRoundedTopBarPath = (x, y, width, height, radius) => {
@@ -61,42 +63,11 @@ className, title, description, enableKeyboardNavigation = STACKED_BAR_CHART_DEFA
61
63
  const stackGradientId = (index) => `${rawId}-stack-gradient-${index}`;
62
64
  const columnShadowId = `${rawId}-column-shadow`;
63
65
  const columnGlowId = `${rawId}-column-glow`;
64
- useEffect(() => {
65
- if (!shouldReduceMotion && showAnimation) {
66
- setHasAnimated(true);
67
- }
68
- else {
69
- setHasAnimated(true);
70
- }
71
- }, [shouldReduceMotion, showAnimation]);
72
66
  // Validate data and config with error handling
73
67
  const { validation, sanitizedData, isValid, hasWarnings, safeScale, safeMath, } = useChartValidation(data, config, {
74
68
  autoSanitize: true,
75
69
  });
76
- // Color palette using CSS variables
77
- const getSeriesFillColor = (index, key) => {
78
- var _a;
79
- if (key && config && ((_a = config[key]) === null || _a === void 0 ? void 0 : _a.color)) {
80
- const customColor = config[key].color;
81
- if (!customColor.startsWith("var(") &&
82
- !customColor.startsWith("#") &&
83
- !customColor.startsWith("rgb") &&
84
- !customColor.startsWith("hsl") &&
85
- customColor.includes("-")) {
86
- return `var(--color-${customColor})`;
87
- }
88
- return customColor;
89
- }
90
- const colorVars = [
91
- "var(--color-primary)",
92
- "var(--color-primary-400)",
93
- "var(--color-primary-300)",
94
- "var(--color-primary-200)",
95
- "var(--color-warning)",
96
- "var(--color-success)",
97
- ];
98
- return colorVars[index % colorVars.length];
99
- };
70
+ const getSeriesFillColor = (index, key) => resolveSeriesColor(index, key, config, chartTheme.baseStyle.colors.series);
100
71
  const containerRef = useRef(null);
101
72
  // `measured` gates bar mount so motion captures geometry in the real
102
73
  // coordinate space, not the 600×400 fallback (cold-load below-baseline bug).
@@ -171,13 +142,34 @@ className, title, description, enableKeyboardNavigation = STACKED_BAR_CHART_DEFA
171
142
  });
172
143
  return max;
173
144
  }, [sanitizedData, dataKeys]);
145
+ useEffect(() => {
146
+ if (!shouldReduceMotion &&
147
+ showAnimation &&
148
+ sanitizedData.length > 0 &&
149
+ dataKeys.length > 0) {
150
+ const maxDelay = (sanitizedData.length - 1) * BAR_STACK_CATEGORY_DELAY +
151
+ (dataKeys.length - 1) * 0.4;
152
+ const timer = setTimeout(() => {
153
+ setHasAnimated(true);
154
+ }, (maxDelay + 0.4) * 1000);
155
+ return () => clearTimeout(timer);
156
+ }
157
+ else {
158
+ setHasAnimated(true);
159
+ }
160
+ }, [
161
+ shouldReduceMotion,
162
+ showAnimation,
163
+ sanitizedData.length,
164
+ dataKeys.length,
165
+ ]);
174
166
  // --- Every hook above this line runs unconditionally, every render, in the
175
167
  // same order. Only NOW — after the last hook — do we branch on validity, so
176
168
  // a chart going from populated → empty/invalid data (a common loading-state
177
169
  // transition) never changes its hook count mid-lifetime. See BarChart.tsx.
178
170
  // Early return for invalid data
179
171
  if (!isValid) {
180
- return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-border rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(ExclamationTriangleIcon, { className: "size-6 text-[var(--color-danger)]" }), jsx("div", { className: "text-base font-semibold text-[var(--color-text-secondary)]", children: "Invalid Chart Data" })] }), jsx("p", { className: "text-base text-[var(--color-text-secondary)]/70 mb-2", children: ((_a = validation.errors[0]) === null || _a === void 0 ? void 0 : _a.message) ||
172
+ return (jsxs("div", { className: cn("chart-container flex flex-col items-center justify-center p-6 border border-border rounded-lg text-2xl", className), role: "alert", "aria-live": "polite", ...props, children: [jsxs("div", { className: "flex flex-col items-center gap-4 mb-1", children: [jsx(Warning, { className: "size-6 text-[var(--color-danger)]" }), jsx("div", { className: "text-base font-semibold text-[var(--color-text-secondary)]", children: "Invalid Chart Data" })] }), jsx("p", { className: "text-base text-[var(--color-text-secondary)]/70 mb-2", children: ((_a = validation.errors[0]) === null || _a === void 0 ? void 0 : _a.message) ||
181
173
  "Unable to render chart due to data validation errors" })] }));
182
174
  }
183
175
  // Early return for empty data
@@ -211,114 +203,140 @@ className, title, description, enableKeyboardNavigation = STACKED_BAR_CHART_DEFA
211
203
  ? isHovered
212
204
  ? `url(#${columnGlowId})`
213
205
  : `url(#${columnShadowId})`
214
- : undefined, style: isGradientVariant ? { overflow: "visible" } : undefined, children: dataKeys.map((key, keyIndex) => {
215
- var _a;
216
- const stackData = (_a = getStackedValues[key]) === null || _a === void 0 ? void 0 : _a[categoryIndex];
217
- if (!stackData)
218
- return null;
219
- let baseValue = stackData.base;
220
- let topValue = stackData.top;
221
- // Apply expand offset (normalize to percentage)
222
- if (stackOffset === "expand") {
223
- const totalForCategory = dataKeys.reduce((sum, k) => {
224
- const rawVal = item[k];
225
- return (sum +
226
- (typeof rawVal === "number" && isFinite(rawVal) ? rawVal : 0));
227
- }, 0);
228
- if (totalForCategory > 0) {
229
- baseValue = (stackData.base / totalForCategory) * 100;
230
- topValue = (stackData.top / totalForCategory) * 100;
206
+ : undefined, style: isGradientVariant ? { overflow: "visible" } : undefined, children: jsx("g", { clipPath: `url(#${rawId}-column-clip-${categoryIndex})`, children: dataKeys.map((key, keyIndex) => {
207
+ var _a;
208
+ const stackData = (_a = getStackedValues[key]) === null || _a === void 0 ? void 0 : _a[categoryIndex];
209
+ if (!stackData)
210
+ return null;
211
+ let baseValue = stackData.base;
212
+ let topValue = stackData.top;
213
+ // Apply expand offset (normalize to percentage)
214
+ if (stackOffset === "expand") {
215
+ const totalForCategory = dataKeys.reduce((sum, k) => {
216
+ const rawVal = item[k];
217
+ return (sum +
218
+ (typeof rawVal === "number" && isFinite(rawVal) ? rawVal : 0));
219
+ }, 0);
220
+ if (totalForCategory > 0) {
221
+ baseValue = (stackData.base / totalForCategory) * 100;
222
+ topValue = (stackData.top / totalForCategory) * 100;
223
+ }
231
224
  }
232
- }
233
- const barHeight = range > 0
234
- ? safeMath.scale(topValue - baseValue, 0, range, 0, innerHeight)
235
- : 0;
236
- const barY = margin.top +
237
- innerHeight -
238
- safeMath.scale(topValue, minValue, maxValue, 0, innerHeight);
239
- const isTopSegment = keyIndex === dataKeys.length - 1;
240
- const pathD = isTopSegment
241
- ? createRoundedTopBarPath(x, barY, barWidth, barHeight, barRadius)
242
- : createRectPath(x, barY, barWidth, barHeight);
243
- const fillColor = getSeriesFillColor(keyIndex, key);
244
- const delay = categoryIndex * STACKED_BAR_STAGGER;
245
- return (jsx(motion.path, { d: pathD, initial: showAnimation && !shouldReduceMotion
246
- ? { scaleY: 0, opacity: 0 }
247
- : { scaleY: 1, opacity: 1 }, animate: {
248
- scaleY: 1,
249
- // Hover dim lives in `animate` (not `style`): motion.path freezes
250
- // plain style values at mount and ignores re-render changes.
251
- opacity: shouldReduceOpacity ? (isGradientVariant ? 0.42 : 0.9) : 1,
252
- }, transition: barEntranceTransition(delay, hasAnimated), className: cn(isGradientVariant
253
- ? "transition-all duration-300 ease-out cursor-pointer"
254
- : "transition-colors duration-200 cursor-pointer", isFocused && "stroke-2"), style: {
255
- ...RISE_FROM_BASELINE,
256
- fill: isGradientVariant
257
- ? `url(#${stackGradientId(keyIndex)})`
258
- : shouldReduceOpacity
259
- ? "var(--color-surface-sunken)"
260
- : fillColor,
261
- // Hairline white seam separates stacked segments in gradient mode.
262
- stroke: isFocused
263
- ? "var(--color-primary)"
264
- : isGradientVariant
265
- ? "rgba(255,255,255,0.16)"
266
- : "none",
267
- strokeWidth: isFocused ? 2 : isGradientVariant ? 1 : undefined,
268
- vectorEffect: "non-scaling-stroke",
269
- }, onMouseEnter: (e) => {
270
- setHoveredCategory(categoryIndex);
271
- // Create tooltip content with all series
272
- const series = dataKeys.map((dataKey, idx) => {
273
- var _a;
274
- const rawValue = item[dataKey];
275
- const value = typeof rawValue === "number" && isFinite(rawValue)
276
- ? rawValue
277
- : 0;
278
- return {
279
- key: dataKey,
280
- label: ((_a = config[dataKey]) === null || _a === void 0 ? void 0 : _a.label) || dataKey,
281
- value,
282
- color: getSeriesFillColor(idx, dataKey),
225
+ const barHeight = range > 0
226
+ ? safeMath.scale(topValue - baseValue, 0, range, 0, innerHeight)
227
+ : 0;
228
+ const barY = margin.top +
229
+ innerHeight -
230
+ safeMath.scale(topValue, minValue, maxValue, 0, innerHeight);
231
+ const segmentGap = 2;
232
+ const renderedHeight = Math.max(0, barHeight - segmentGap);
233
+ if (renderedHeight <= 0)
234
+ return null;
235
+ const renderedY = barY + segmentGap / 2;
236
+ const pathD = createRectPath(x, renderedY, barWidth, renderedHeight);
237
+ const fillColor = getSeriesFillColor(keyIndex, key);
238
+ const delay = categoryIndex * BAR_STACK_CATEGORY_DELAY +
239
+ keyIndex * 0.4;
240
+ return (jsx(motion.path, { d: pathD, initial: showAnimation && !shouldReduceMotion
241
+ ? { scaleY: 0, opacity: 0 }
242
+ : { scaleY: 1, opacity: 1 }, animate: {
243
+ scaleY: 1,
244
+ // Hover dim lives in `animate` (not `style`): motion.path freezes
245
+ // plain style values at mount and ignores re-render changes.
246
+ opacity: shouldReduceOpacity ? (isGradientVariant ? 0.42 : 0.9) : 1,
247
+ }, transition: stackedSegmentTransition(delay, hasAnimated), className: cn(isGradientVariant
248
+ ? "transition-all duration-[var(--motion-duration-slow)] ease-out cursor-pointer"
249
+ : "transition-colors duration-[var(--motion-duration-base)] cursor-pointer", isFocused && "stroke-2"), style: {
250
+ ...RISE_FROM_BASELINE,
251
+ fill: isGradientVariant
252
+ ? `url(#${stackGradientId(keyIndex)})`
253
+ : shouldReduceOpacity
254
+ ? "var(--color-surface-sunken)"
255
+ : fillColor,
256
+ // Hairline stroke on keyboard focus only; 2px gap handles segment separation.
257
+ stroke: isFocused ? "var(--color-primary)" : "none",
258
+ strokeWidth: isFocused ? 2 : undefined,
259
+ vectorEffect: "non-scaling-stroke",
260
+ }, onMouseEnter: (e) => {
261
+ setHoveredCategory(categoryIndex);
262
+ // Create tooltip content with all series
263
+ const series = dataKeys.map((dataKey, idx) => {
264
+ var _a;
265
+ const rawValue = item[dataKey];
266
+ const value = typeof rawValue === "number" && isFinite(rawValue)
267
+ ? rawValue
268
+ : 0;
269
+ return {
270
+ key: dataKey,
271
+ label: ((_a = config[dataKey]) === null || _a === void 0 ? void 0 : _a.label) || dataKey,
272
+ value,
273
+ color: getSeriesFillColor(idx, dataKey),
274
+ };
275
+ });
276
+ // Calculate total
277
+ const total = series.reduce((sum, s) => sum + s.value, 0);
278
+ const content = {
279
+ category: item.name || `Category ${categoryIndex + 1}`,
280
+ series,
281
+ total,
283
282
  };
284
- });
285
- // Calculate total
286
- const total = series.reduce((sum, s) => sum + s.value, 0);
287
- const content = {
288
- category: item.name || `Category ${categoryIndex + 1}`,
289
- series,
290
- total,
291
- };
292
- const svgCoordinates = {
293
- x: x + barWidth / 2,
294
- y: barY,
295
- dimensions,
296
- };
297
- handleMouseEnter(e, content, svgCoordinates);
298
- }, onMouseMove: (e) => {
299
- if (hoveredCategory === categoryIndex) {
300
283
  const svgCoordinates = {
301
284
  x: x + barWidth / 2,
302
285
  y: barY,
303
286
  dimensions,
304
287
  };
305
- handleMouseMove(e, svgCoordinates);
306
- }
307
- }, onMouseLeave: () => {
308
- setHoveredCategory(null);
309
- handleMouseLeave();
310
- } }, key));
311
- }) }, categoryIndex));
288
+ handleMouseEnter(e, content, svgCoordinates);
289
+ }, onMouseMove: (e) => {
290
+ if (hoveredCategory === categoryIndex) {
291
+ const svgCoordinates = {
292
+ x: x + barWidth / 2,
293
+ y: barY,
294
+ dimensions,
295
+ };
296
+ handleMouseMove(e, svgCoordinates);
297
+ }
298
+ }, onMouseLeave: () => {
299
+ setHoveredCategory(null);
300
+ handleMouseLeave();
301
+ } }, key));
302
+ }) }) }, categoryIndex));
312
303
  };
313
304
  return (jsx(ChartErrorBoundary, { className: className, showErrorDetails: process.env.NODE_ENV === "development", children: jsxs("div", { ref: containerRef, className: cn("chart-container w-full h-full flex flex-col", className), style: {
314
305
  width: width !== undefined ? (typeof width === "number" ? `${width}px` : width) : undefined,
315
306
  height: height !== undefined ? (typeof height === "number" ? `${height}px` : height) : undefined,
316
307
  }, ...chartAccessibilityProps, onMouseEnter: handleMouseInteraction, onMouseMove: handleMouseInteraction, ...props, children: [resolvedLegendPosition === "top" && (jsx(ChartLegend, { items: legendItems, className: "shrink-0 pb-2" })), descriptionProps && jsx("div", { ...descriptionProps }), showValidationWarnings && hasWarnings && (jsxs("div", { className: "absolute top-2 left-2 right-2 z-10 p-2 bg-[var(--color-warning-50)] border border-[var(--color-warning-200)] rounded text-sm text-[var(--color-warning)] shadow-sm", children: [jsx("strong", { children: "Chart Warnings:" }), jsx("ul", { className: "mt-1", children: validation.warnings.map((warning, index) => (jsxs("li", { children: ["\u2022 ", warning.message] }, index))) })] })), jsx("div", { className: "relative flex-1 min-h-0", children: jsxs("svg", { width: "100%", height: "100%", viewBox: `0 0 ${dimensions.width} ${dimensions.height}`,
317
308
  // Let the column lift shadow / hover glow paint past the plot edges.
318
- className: isGradientVariant ? "overflow-visible" : undefined, children: [isGradientVariant && (jsxs("defs", { children: [dataKeys.map((key, index) => {
319
- const color = getSeriesFillColor(index, key);
320
- return (jsxs("linearGradient", { id: stackGradientId(index), x1: "0", y1: "0", x2: "0", y2: "1", children: [jsx("stop", { offset: "0%", stopColor: color, stopOpacity: "0.92" }), jsx("stop", { offset: "45%", stopColor: color, stopOpacity: "1" }), jsx("stop", { offset: "100%", stopColor: color, stopOpacity: "0.84" })] }, key));
321
- }), jsx("filter", { id: columnShadowId, x: "-40%", y: "-25%", width: "180%", height: "160%", colorInterpolationFilters: "sRGB", children: jsx("feDropShadow", { dx: "0", dy: "10", stdDeviation: "9", floodColor: "var(--color-neutral-950)", floodOpacity: "0.16" }) }), jsxs("filter", { id: columnGlowId, x: "-50%", y: "-45%", width: "200%", height: "200%", colorInterpolationFilters: "sRGB", children: [jsx("feDropShadow", { dx: "0", dy: "0", stdDeviation: "5", floodColor: getSeriesFillColor(0, dataKeys[0]), floodOpacity: "0.4" }), jsx("feDropShadow", { dx: "0", dy: "10", stdDeviation: "9", floodColor: "var(--color-neutral-950)", floodOpacity: "0.14" })] })] })), jsx(HorizontalGrid, { show: showGrid, x: margin.left, y: margin.top, width: innerWidth, height: innerHeight, lineCount: 5 }), jsx(YAxis, { show: showYAxis, min: minValue, max: maxValue, x: margin.left, y: margin.top, height: innerHeight, showGrid: false, gridWidth: innerWidth, tickFormatter: (value) => {
309
+ className: isGradientVariant ? "overflow-visible" : undefined, children: [jsxs("defs", { children: [isGradientVariant && (jsxs(Fragment, { children: [dataKeys.map((key, index) => {
310
+ const color = getSeriesFillColor(index, key);
311
+ return (jsxs("linearGradient", { id: stackGradientId(index), x1: "0", y1: "0", x2: "0", y2: "1", children: [jsx("stop", { offset: "0%", stopColor: color, stopOpacity: "0.92" }), jsx("stop", { offset: "45%", stopColor: color, stopOpacity: "1" }), jsx("stop", { offset: "100%", stopColor: color, stopOpacity: "0.84" })] }, key));
312
+ }), jsx("filter", { id: columnShadowId, x: "-40%", y: "-25%", width: "180%", height: "160%", colorInterpolationFilters: "sRGB", children: jsx("feDropShadow", { dx: "0", dy: "10", stdDeviation: "9", floodColor: "var(--color-mono-950)", floodOpacity: "0.16" }) }), jsxs("filter", { id: columnGlowId, x: "-50%", y: "-45%", width: "200%", height: "200%", colorInterpolationFilters: "sRGB", children: [jsx("feDropShadow", { dx: "0", dy: "0", stdDeviation: "5", floodColor: getSeriesFillColor(0, dataKeys[0]), floodOpacity: "0.4" }), jsx("feDropShadow", { dx: "0", dy: "10", stdDeviation: "9", floodColor: "var(--color-mono-950)", floodOpacity: "0.14" })] })] })), measured &&
313
+ sanitizedData.map((item, categoryIndex) => {
314
+ var _a;
315
+ const x = margin.left + categoryIndex * (barWidth + categoryGap);
316
+ const topSegmentKey = dataKeys[dataKeys.length - 1];
317
+ const topStackData = (_a = getStackedValues[topSegmentKey]) === null || _a === void 0 ? void 0 : _a[categoryIndex];
318
+ let maxVal = topStackData ? topStackData.top : 0;
319
+ if (stackOffset === "expand") {
320
+ const totalForCategory = dataKeys.reduce((sum, k) => {
321
+ const rawVal = item[k];
322
+ return (sum +
323
+ (typeof rawVal === "number" && isFinite(rawVal) ? rawVal : 0));
324
+ }, 0);
325
+ if (totalForCategory > 0) {
326
+ maxVal = 100;
327
+ }
328
+ }
329
+ const range = maxValue - minValue;
330
+ const columnTopY = range > 0
331
+ ? margin.top +
332
+ innerHeight -
333
+ safeMath.scale(maxVal, minValue, maxValue, 0, innerHeight)
334
+ : margin.top + innerHeight;
335
+ const zeroY = margin.top + innerHeight;
336
+ const columnHeight = Math.max(0, zeroY - columnTopY);
337
+ const columnPathD = createRoundedTopBarPath(x, columnTopY, barWidth, columnHeight, barRadius);
338
+ return (jsx("clipPath", { id: `${rawId}-column-clip-${categoryIndex}`, children: jsx("path", { d: columnPathD }) }, categoryIndex));
339
+ })] }), jsx(HorizontalGrid, { show: showGrid, x: margin.left, y: margin.top, width: innerWidth, height: innerHeight, lineCount: 5 }), jsx(YAxis, { show: showYAxis, min: minValue, max: maxValue, x: margin.left, y: margin.top, height: innerHeight, showGrid: false, gridWidth: innerWidth, tickFormatter: (value) => {
322
340
  if (stackOffset === "expand")
323
341
  return `${value}%`;
324
342
  if (Math.abs(value) >= 1000)
@@ -1,34 +1,36 @@
1
1
  import { BaseChartProps, StandardChartDisplayProps, StandardVisualProps, BarChartSpecificProps, ChartVariant } from "../types/chart.types";
2
2
  export type StackOffset = "none" | "expand" | "wiggle" | "silhouette";
3
- export interface StackedBarChartProps extends BaseChartProps, StandardChartDisplayProps, StandardVisualProps, BarChartSpecificProps {
3
+ /**
4
+ * Visual props that actually apply to a stacked bar chart.
5
+ *
6
+ * 🔴 Narrowed with `Omit` on purpose — see the note on `StandardVisualProps`.
7
+ * Kept: `barRadius` only.
8
+ * Dropped: dot/cell radii, stroke width, the line/area-only props, `gap` (segment
9
+ * separation is a fixed hairline, not a tunable), and `stacked` (this chart always is).
10
+ */
11
+ export type StackedBarVisualProps = Omit<StandardVisualProps, "dotRadius" | "radius" | "strokeWidth" | "gap" | "curved" | "curveType" | "showDots" | "fillOpacity" | "showStroke" | "stacked">;
12
+ export interface StackedBarChartProps extends BaseChartProps, StandardChartDisplayProps, StackedBarVisualProps, BarChartSpecificProps {
4
13
  barRadius?: number;
5
- gap?: number;
6
14
  categoryGap?: number;
7
15
  stackOffset?: StackOffset;
8
16
  showAnimation?: boolean;
9
17
  showValidationWarnings?: boolean;
10
18
  }
19
+ /**
20
+ * Default values using centralized defaults.
21
+ *
22
+ * 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — see the note on
23
+ * `BAR_CHART_DEFAULTS`.
24
+ */
11
25
  export declare const STACKED_BAR_CHART_DEFAULTS: {
26
+ readonly showGrid: true;
27
+ readonly showXAxis: true;
28
+ readonly showYAxis: true;
29
+ readonly enableKeyboardNavigation: true;
12
30
  readonly barRadius: 32;
13
- readonly gap: 4;
14
31
  readonly categoryGap: 16;
15
- readonly orientation: "horizontal" | "vertical";
16
32
  readonly stackOffset: StackOffset;
17
33
  readonly showAnimation: true;
18
34
  readonly variant: ChartVariant;
19
- readonly showGrid: true;
20
- readonly showXAxis: true;
21
- readonly showYAxis: true;
22
- readonly dotRadius: 3;
23
- readonly cellRadius: 4;
24
- readonly radius: 20;
25
- readonly strokeWidth: 2;
26
- readonly curved: true;
27
- readonly curveType: import("..").CurveType;
28
- readonly fillOpacity: 0.3;
29
- readonly showStroke: true;
30
- readonly showDots: false;
31
- readonly stacked: false;
32
- readonly enableKeyboardNavigation: true;
33
35
  };
34
36
  export type StackedBarChartData = BaseChartProps["data"][0];
@@ -1,12 +1,18 @@
1
1
  import { CHART_DEFAULTS } from '../types/chart.types.js';
2
2
 
3
- // Default values using centralized defaults
3
+ /**
4
+ * Default values using centralized defaults.
5
+ *
6
+ * 🔴 Picks explicitly rather than spreading `...CHART_DEFAULTS` — see the note on
7
+ * `BAR_CHART_DEFAULTS`.
8
+ */
4
9
  const STACKED_BAR_CHART_DEFAULTS = {
5
- ...CHART_DEFAULTS,
10
+ showGrid: CHART_DEFAULTS.showGrid,
11
+ showXAxis: CHART_DEFAULTS.showXAxis,
12
+ showYAxis: CHART_DEFAULTS.showYAxis,
13
+ enableKeyboardNavigation: CHART_DEFAULTS.enableKeyboardNavigation,
6
14
  barRadius: CHART_DEFAULTS.barRadius,
7
- gap: CHART_DEFAULTS.gap,
8
15
  categoryGap: CHART_DEFAULTS.categoryGap,
9
- orientation: CHART_DEFAULTS.orientation,
10
16
  stackOffset: "none",
11
17
  showAnimation: true,
12
18
  // Premium look by default (per-segment gradient + lift shadow + hover glow),
@@ -1,7 +1,7 @@
1
1
  import { ChartDataPoint, ChartConfig } from '../types/chart.types';
2
2
  export interface UseChartAccessibilityOptions {
3
3
  /** Chart type for ARIA descriptions */
4
- chartType: 'bar' | 'line' | 'area' | 'heatmap' | 'combo' | 'scatter';
4
+ chartType: 'bar' | 'line' | 'area' | 'heatmap' | 'combo' | 'scatter' | 'lollipop';
5
5
  /** Chart data for generating descriptions */
6
6
  data: ChartDataPoint[];
7
7
  /** Chart configuration */
@@ -1,10 +1,13 @@
1
1
  "use client";
2
- import { useState, useRef, useCallback, useMemo } from 'react';
2
+ import { useState, useId, useCallback, useMemo } from 'react';
3
3
 
4
4
  function useChartAccessibility({ chartType, data, config, title, description, enableKeyboardNavigation = true, }) {
5
5
  const [focusedElementIndex, setFocusedElementIndex] = useState(-1);
6
6
  const [isKeyboardMode, setIsKeyboardMode] = useState(false);
7
- const descriptionId = useRef(`chart-description-${Math.random().toString(36).substr(2, 9)}`);
7
+ // useId() (never Math.random()) — the id is rendered into markup on both the
8
+ // sr-only element and the container's aria-describedby, so a per-render
9
+ // random value mismatches across hydration.
10
+ const descriptionId = useId();
8
11
  // Generate chart summary for screen readers
9
12
  const generateChartSummary = useCallback(() => {
10
13
  var _a;
@@ -16,6 +19,9 @@ function useChartAccessibility({ chartType, data, config, title, description, en
16
19
  case 'bar':
17
20
  summary = `Bar chart with ${dataCount} categories`;
18
21
  break;
22
+ case 'lollipop':
23
+ summary = `Lollipop chart with ${dataCount} categories`;
24
+ break;
19
25
  case 'line':
20
26
  summary = `Line chart with ${dataCount} data points`;
21
27
  break;
@@ -99,16 +105,16 @@ function useChartAccessibility({ chartType, data, config, title, description, en
99
105
  const chartAccessibilityProps = useMemo(() => ({
100
106
  role: 'img',
101
107
  'aria-label': ariaLabel,
102
- 'aria-describedby': description ? descriptionId.current : undefined,
108
+ 'aria-describedby': description ? descriptionId : undefined,
103
109
  tabIndex: enableKeyboardNavigation ? 0 : -1,
104
110
  onKeyDown: handleKeyDown,
105
- }), [ariaLabel, description, enableKeyboardNavigation, handleKeyDown]);
111
+ }), [ariaLabel, description, descriptionId, enableKeyboardNavigation, handleKeyDown]);
106
112
  // Description element props
107
113
  const descriptionProps = useMemo(() => description ? {
108
- id: descriptionId.current,
114
+ id: descriptionId,
109
115
  className: 'sr-only',
110
116
  children: description,
111
- } : null, [description]);
117
+ } : null, [description, descriptionId]);
112
118
  return {
113
119
  chartAccessibilityProps,
114
120
  descriptionProps,
@@ -112,11 +112,23 @@ function useTooltipPosition({ containerRef, padding = 10, offset = 15, isMobile
112
112
  * Get tooltip position for SVG elements (mobile/touch)
113
113
  */
114
114
  const getSVGTooltipPosition = useCallback((event, svgX, svgY, actualDimensions) => {
115
- var _a, _b;
115
+ var _a, _b, _c, _d, _e;
116
116
  try {
117
- const svgElement = event.currentTarget.closest('svg');
117
+ // Keyboard-driven callers have no real mouse event and synthesise one, whose
118
+ // `currentTarget` is null — the DOM only populates it during dispatch. Only the
119
+ // <svg> is wanted here, and `containerRef` already reaches it, so don't make
120
+ // finding it depend on the event: reading `.closest` off a null currentTarget
121
+ // threw on every keyboard focus move, and the catch below quietly swallowed it
122
+ // into a mouse-coordinate fallback.
123
+ const svgElement = (_b = (_a = event.currentTarget) === null || _a === void 0 ? void 0 : _a.closest('svg')) !== null && _b !== void 0 ? _b : (_c = containerRef.current) === null || _c === void 0 ? void 0 : _c.querySelector('svg');
118
124
  const svgRect = svgElement === null || svgElement === void 0 ? void 0 : svgElement.getBoundingClientRect();
119
- if (!svgRect || !actualDimensions.width || !actualDimensions.height) {
125
+ // A zero-sized rect is as unusable as a missing one: the scale factors below
126
+ // divide by it, so a not-yet-laid-out <svg> would collapse every coordinate
127
+ // onto its origin rather than fail loudly. Fall back to mouse coordinates.
128
+ if (!(svgRect === null || svgRect === void 0 ? void 0 : svgRect.width) ||
129
+ !svgRect.height ||
130
+ !actualDimensions.width ||
131
+ !actualDimensions.height) {
120
132
  if (process.env.NODE_ENV !== 'production') {
121
133
  console.warn('[useTooltipPosition]: SVG positioning fallback: missing SVG rect or dimensions');
122
134
  }
@@ -130,8 +142,8 @@ function useTooltipPosition({ containerRef, padding = 10, offset = 15, isMobile
130
142
  const screenY = svgRect.top + svgY * scaleY;
131
143
  const x = screenX;
132
144
  const y = screenY - offset;
133
- const tooltipWidth = ((_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 200;
134
- const tooltipHeight = ((_b = tooltipRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 60;
145
+ const tooltipWidth = ((_d = tooltipRef.current) === null || _d === void 0 ? void 0 : _d.offsetWidth) || 200;
146
+ const tooltipHeight = ((_e = tooltipRef.current) === null || _e === void 0 ? void 0 : _e.offsetHeight) || 60;
135
147
  return calculateBoundedPosition(x, y, tooltipWidth, tooltipHeight);
136
148
  }
137
149
  catch (error) {
@@ -140,7 +152,7 @@ function useTooltipPosition({ containerRef, padding = 10, offset = 15, isMobile
140
152
  }
141
153
  return getMouseTooltipPosition(event);
142
154
  }
143
- }, [calculateBoundedPosition, getMouseTooltipPosition, offset]);
155
+ }, [calculateBoundedPosition, getMouseTooltipPosition, offset, containerRef]);
144
156
  /**
145
157
  * Show tooltip with content and position
146
158
  */
@@ -1,17 +1,17 @@
1
1
  export { ChartContainer } from "./ChartContainer";
2
2
  export { BarChart } from "./BarChart";
3
+ export { HorizontalBarChart } from "./HorizontalBarChart";
3
4
  export { StackedBarChart } from "./StackedBarChart";
4
5
  export { LineChart } from "./LineChart";
5
6
  export { AreaChart } from "./AreaChart";
6
7
  export { DonutChart } from "./DonutChart/DonutChart";
7
8
  export { MultiSegmentDonutChart } from "./DonutChart/MultiSegmentDonutChart";
8
9
  export { Heatmap } from "./Heatmap";
9
- export { FunnelChart } from "./FunnelChart";
10
- export { ScatterPlot } from "./ScatterPlot";
11
10
  export { RadarChart } from "./RadarChart";
12
11
  export { ComboChart } from "./ComboChart";
13
12
  export { ActivityRings } from "./ActivityRings";
14
- export { ChartTooltip } from "./shared/ChartTooltip";
13
+ export { LollipopChart } from "./LollipopChart";
14
+ export { ChartTooltip } from "../core/shared/ChartTooltip";
15
15
  export { ChartLegend } from "./shared/ChartLegend";
16
16
  export { XAxis, YAxis } from "./shared/ChartAxis";
17
17
  export { ChartText } from "./shared/ChartText";
@@ -23,9 +23,9 @@ export { useTooltipPosition } from "./hooks/useTooltipPosition";
23
23
  export { useChartAccessibility } from "./hooks/useChartAccessibility";
24
24
  export { useChartValidation } from "./hooks/useChartValidation";
25
25
  export { generateColorPalette, getContrastColor } from "./utils/color-utils";
26
- export { processHeatmapData, calculateIntensity, createGridMatrix, getDefaultTooltipContent, formatAxisLabel, generateSampleData, } from "./Heatmap/utils/heatmapUtils";
26
+ export { processHeatmapData, calculateIntensity, createGridMatrix, getDefaultTooltipContent, formatAxisLabel, } from "./Heatmap/utils/heatmapUtils";
27
27
  export type { ChartDataPoint, ChartConfig, ChartVariant, CurveType, ChartLegendPosition, BaseChartProps, StandardChartDisplayProps, StandardVisualProps, BarChartSpecificProps, StandardAxisConfig, ChartThemeOverrides, CHART_DEFAULTS, } from "./types/chart.types";
28
- export type { ChartTooltipProps, ChartTooltipContentProps, } from "./shared/ChartTooltip/ChartTooltip.types";
28
+ export type { ChartTooltipProps, ChartTooltipContentProps, } from "../core/shared/ChartTooltip/ChartTooltip.types";
29
29
  export type { ChartLegendProps, ChartLegendItem, } from "./shared/ChartLegend/ChartLegend.types";
30
30
  export type { BaseAxisProps, XAxisProps, YAxisProps, AxisTickProps, } from "./shared/ChartAxis/ChartAxis.types";
31
31
  export type { ChartTextProps, ChartTextTheme, } from "./shared/ChartText/ChartText.types";
@@ -33,22 +33,24 @@ export type { ChartMarkerProps, ChartMarkerTheme, } from "./shared/ChartMarker/C
33
33
  export type { ChartCrosshairProps, ChartCrosshairTheme, } from "./shared/ChartCrosshair/ChartCrosshair.types";
34
34
  export type { HorizontalGridProps } from "./shared/ChartGrid";
35
35
  export type { BarChartProps } from "./BarChart/BarChart.types";
36
+ export type { HorizontalBarChartProps, HorizontalBarVisualProps, } from "./HorizontalBarChart/HorizontalBarChart.types";
36
37
  export type { StackedBarChartProps, StackOffset, } from "./StackedBarChart/StackedBarChart.types";
37
38
  export type { LineChartProps } from "./LineChart/LineChart.types";
38
39
  export type { AreaChartProps } from "./AreaChart/AreaChart.types";
39
40
  export type { DonutChartProps } from "./DonutChart/DonutChart.types";
40
41
  export type { MultiSegmentDonutChartProps, DonutSegment, } from "./DonutChart/MultiSegmentDonutChart.types";
41
- export type { HeatmapProps } from "./Heatmap/Heatmap.types";
42
- export type { FunnelChartProps, FunnelChartDataPoint, } from "./FunnelChart/FunnelChart.types";
43
- export type { ScatterPlotProps, ScatterPlotDataPoint, } from "./ScatterPlot/ScatterPlot.types";
42
+ export type { HeatmapProps, HeatmapVariant } from "./Heatmap/Heatmap.types";
44
43
  export type { RadarChartProps, RadarChartSeries, } from "./RadarChart/RadarChart.types";
45
44
  export type { ComboChartProps, ComboChartConfig, SeriesType, } from "./ComboChart/ComboChart.types";
46
45
  export type { ActivityRingsProps, RingData, ActivityRingsThemeOverrides, } from "./ActivityRings/ActivityRings.types";
46
+ export type { LollipopChartProps, LollipopChartData } from "./LollipopChart/LollipopChart.types";
47
47
  export { chartTheme } from "./theme/chart.theme";
48
48
  export { extractFillClass, extractStrokeClass, colorClassToVariable, combineClasses, createColorClass, generateSeriesColors, DEFAULT_CHART_COLORS, EXTENDED_CHART_COLORS, MINIMAL_CHART_COLORS, } from "./utils/color-utils";
49
49
  export { validateChart, validateChartData, validateChartConfig, sanitizeChartData, calculateSafeScaleRange, niceNum, generateNiceTicks, SafeMath, } from "./utils/chart-validation";
50
50
  export { BAR_CHART_DEFAULTS } from "./BarChart/BarChart.types";
51
+ export { HORIZONTAL_BAR_CHART_DEFAULTS } from "./HorizontalBarChart/HorizontalBarChart.types";
51
52
  export { STACKED_BAR_CHART_DEFAULTS } from "./StackedBarChart/StackedBarChart.types";
52
53
  export { LINE_CHART_DEFAULTS } from "./LineChart/LineChart.types";
53
54
  export { AREA_CHART_DEFAULTS } from "./AreaChart/AreaChart.types";
55
+ export { LOLLIPOP_CHART_DEFAULTS } from "./LollipopChart/LollipopChart.types";
54
56
  export { ChartErrorBoundary } from "./shared/ChartErrorBoundary";