@flikk/ui 1.0.0-beta.3 → 1.0.0-beta.31

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 (1373) hide show
  1. package/CHANGELOG.md +1281 -0
  2. package/README.md +52 -0
  3. package/dist/bg/1.webp +0 -0
  4. package/dist/bg/10.webp +0 -0
  5. package/dist/bg/11.webp +0 -0
  6. package/dist/bg/12.webp +0 -0
  7. package/dist/bg/13.webp +0 -0
  8. package/dist/bg/14.webp +0 -0
  9. package/dist/bg/15.webp +0 -0
  10. package/dist/bg/16.webp +0 -0
  11. package/dist/bg/17.webp +0 -0
  12. package/dist/bg/18.webp +0 -0
  13. package/dist/bg/19.webp +0 -0
  14. package/dist/bg/2.webp +0 -0
  15. package/dist/bg/20.webp +0 -0
  16. package/dist/bg/21.webp +0 -0
  17. package/dist/bg/22.webp +0 -0
  18. package/dist/bg/3.webp +0 -0
  19. package/dist/bg/4.webp +0 -0
  20. package/dist/bg/5.webp +0 -0
  21. package/dist/bg/6.webp +0 -0
  22. package/dist/bg/7.webp +0 -0
  23. package/dist/bg/8.webp +0 -0
  24. package/dist/bg/9.webp +0 -0
  25. package/dist/components/ai/AgentStatus/AgentStatus.d.ts +3 -0
  26. package/dist/components/ai/AgentStatus/AgentStatus.js +144 -0
  27. package/dist/components/ai/AgentStatus/AgentStatus.theme.d.ts +2 -0
  28. package/dist/components/ai/AgentStatus/AgentStatus.theme.js +37 -0
  29. package/dist/components/ai/AgentStatus/AgentStatus.types.d.ts +116 -0
  30. package/dist/components/ai/AgentStatus/index.d.ts +3 -0
  31. package/dist/components/ai/CodeBlock/CodeBlock.js +24 -7
  32. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +3 -4
  33. package/dist/components/ai/CodeBlock/CodeBlock.types.d.ts +0 -2
  34. package/dist/components/ai/CodeBlock/LanguageIcon.js +1 -0
  35. package/dist/components/ai/PromptInput/PromptInput.animations.d.ts +25 -0
  36. package/dist/components/ai/PromptInput/PromptInput.animations.js +61 -0
  37. package/dist/components/ai/PromptInput/PromptInput.js +110 -150
  38. package/dist/components/ai/PromptInput/PromptInput.theme.js +24 -3
  39. package/dist/components/ai/PromptInput/PromptInput.types.d.ts +49 -1
  40. package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +11 -0
  41. package/dist/components/ai/PromptInput/VoiceRecorder.js +328 -0
  42. package/dist/components/ai/PromptInput/VoiceRecorder.types.d.ts +17 -0
  43. package/dist/components/ai/PromptInput/index.d.ts +1 -0
  44. package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.js +1 -0
  45. package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.js +4 -4
  46. package/dist/components/ai/Reasoning/Reasoning.d.ts +5 -0
  47. package/dist/components/ai/Reasoning/Reasoning.js +16 -0
  48. package/dist/components/ai/Reasoning/Reasoning.types.d.ts +20 -0
  49. package/dist/components/ai/Reasoning/index.d.ts +2 -0
  50. package/dist/components/ai/SourceCitation/SourceCitation.d.ts +4 -0
  51. package/dist/components/ai/SourceCitation/SourceCitation.js +29 -0
  52. package/dist/components/ai/SourceCitation/SourceCitation.theme.d.ts +2 -0
  53. package/dist/components/ai/SourceCitation/SourceCitation.theme.js +23 -0
  54. package/dist/components/ai/SourceCitation/SourceCitation.types.d.ts +55 -0
  55. package/dist/components/ai/SourceCitation/index.d.ts +3 -0
  56. package/dist/components/ai/StreamingResponse/AnimatedText.js +4 -3
  57. package/dist/components/ai/StreamingResponse/ErrorDisplay.js +3 -2
  58. package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -2
  59. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +60 -35
  60. package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +4 -5
  61. package/dist/components/ai/StreamingResponse/StreamingCursor.js +14 -10
  62. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +9 -2
  63. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +37 -12
  64. package/dist/components/ai/StreamingResponse/StreamingResponse.js +9 -4
  65. package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +3 -1
  66. package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +9 -7
  67. package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +27 -0
  68. package/dist/components/ai/StreamingResponse/WordAnimationContext.js +136 -0
  69. package/dist/components/ai/StreamingResponse/index.d.ts +3 -1
  70. package/dist/components/ai/TokenCounter/TokenCounter.js +3 -2
  71. package/dist/components/ai/TokenCounter/TokenCounter.theme.js +1 -1
  72. package/dist/components/ai/index.d.ts +5 -9
  73. package/dist/components/ai/index.js +14 -8
  74. package/dist/components/ai/shared/StatusIndicator.d.ts +8 -0
  75. package/dist/components/ai/shared/StatusIndicator.js +34 -0
  76. package/dist/components/canvas/Background.d.ts +19 -0
  77. package/dist/components/canvas/Background.js +24 -0
  78. package/dist/components/canvas/BaseNode.d.ts +15 -0
  79. package/dist/components/canvas/BaseNode.js +20 -0
  80. package/dist/components/canvas/CanvasToolbar.d.ts +34 -0
  81. package/dist/components/canvas/CanvasToolbar.js +35 -0
  82. package/dist/components/canvas/Edge.d.ts +32 -0
  83. package/dist/components/canvas/Edge.js +113 -0
  84. package/dist/components/canvas/EdgeLayer.d.ts +19 -0
  85. package/dist/components/canvas/EdgeLayer.js +121 -0
  86. package/dist/components/canvas/Handle.d.ts +11 -0
  87. package/dist/components/canvas/Handle.js +64 -0
  88. package/dist/components/canvas/MiniMap.d.ts +22 -0
  89. package/dist/components/canvas/MiniMap.js +106 -0
  90. package/dist/components/canvas/NodeCanvas.d.ts +10 -0
  91. package/dist/components/canvas/NodeCanvas.js +481 -0
  92. package/dist/components/canvas/NodeCanvas.theme.d.ts +7 -0
  93. package/dist/components/canvas/NodeCanvas.theme.js +9 -0
  94. package/dist/components/canvas/NodeCanvas.types.d.ts +191 -0
  95. package/dist/components/canvas/NodeControls.d.ts +25 -0
  96. package/dist/components/canvas/NodeControls.js +41 -0
  97. package/dist/components/canvas/NodeRenderer.d.ts +22 -0
  98. package/dist/components/canvas/NodeRenderer.js +126 -0
  99. package/dist/components/canvas/changes.d.ts +11 -0
  100. package/dist/components/canvas/changes.js +76 -0
  101. package/dist/components/canvas/changes.test.d.ts +1 -0
  102. package/dist/components/canvas/context/CanvasContext.d.ts +41 -0
  103. package/dist/components/canvas/context/CanvasContext.js +34 -0
  104. package/dist/components/canvas/context/ConnectionContext.d.ts +33 -0
  105. package/dist/components/canvas/context/ConnectionContext.js +14 -0
  106. package/dist/components/canvas/context/HandleRegistry.d.ts +24 -0
  107. package/dist/components/canvas/context/HandleRegistry.js +16 -0
  108. package/dist/components/canvas/context/InteractionContext.d.ts +18 -0
  109. package/dist/components/canvas/context/InteractionContext.js +15 -0
  110. package/dist/components/canvas/context/NodeIdContext.d.ts +3 -0
  111. package/dist/components/canvas/context/NodeIdContext.js +16 -0
  112. package/dist/components/canvas/hooks/useConnection.d.ts +17 -0
  113. package/dist/components/canvas/hooks/useConnection.js +30 -0
  114. package/dist/components/canvas/hooks/useMarquee.d.ts +25 -0
  115. package/dist/components/canvas/hooks/useMarquee.js +92 -0
  116. package/dist/components/canvas/hooks/useNodeDrag.d.ts +23 -0
  117. package/dist/components/canvas/hooks/useNodeDrag.js +111 -0
  118. package/dist/components/canvas/hooks/usePanZoom.d.ts +30 -0
  119. package/dist/components/canvas/hooks/usePanZoom.js +195 -0
  120. package/dist/components/canvas/hooks/useViewport.d.ts +21 -0
  121. package/dist/components/canvas/hooks/useViewport.js +36 -0
  122. package/dist/components/canvas/index.d.ts +14 -0
  123. package/dist/components/canvas/index.js +12 -0
  124. package/dist/components/canvas/layout.d.ts +22 -0
  125. package/dist/components/canvas/layout.js +67 -0
  126. package/dist/components/canvas/layout.test.d.ts +1 -0
  127. package/dist/components/canvas/utils.d.ts +4 -0
  128. package/dist/components/canvas/utils.js +16 -0
  129. package/dist/components/canvas/utils.test.d.ts +1 -0
  130. package/dist/components/charts/ActivityRings/ActivityRings.js +29 -18
  131. package/dist/components/charts/ActivityRings/ActivityRings.types.d.ts +2 -3
  132. package/dist/components/charts/ActivityRings/ActivityRings.types.js +2 -1
  133. package/dist/components/charts/AreaChart/AreaChart.js +213 -176
  134. package/dist/components/charts/AreaChart/AreaChart.theme.d.ts +1 -6
  135. package/dist/components/charts/AreaChart/AreaChart.theme.js +7 -19
  136. package/dist/components/charts/AreaChart/AreaChart.types.d.ts +23 -16
  137. package/dist/components/charts/AreaChart/AreaChart.types.js +11 -3
  138. package/dist/components/charts/AreaChart/index.d.ts +1 -1
  139. package/dist/components/charts/BarChart/BarChart.js +220 -185
  140. package/dist/components/charts/BarChart/BarChart.types.d.ts +22 -18
  141. package/dist/components/charts/BarChart/BarChart.types.js +12 -4
  142. package/dist/components/charts/ChartContainer.d.ts +7 -0
  143. package/dist/components/charts/ChartContainer.js +11 -8
  144. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.d.ts +3 -1
  145. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.js +145 -107
  146. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.types.d.ts +17 -5
  147. package/dist/components/charts/ComboChart/ComboChart.js +29 -25
  148. package/dist/components/charts/ComboChart/ComboChart.types.d.ts +18 -16
  149. package/dist/components/charts/ComboChart/ComboChart.types.js +18 -2
  150. package/dist/components/charts/ComboChart/ComboChartCanvas.d.ts +98 -0
  151. package/dist/components/charts/{shared/ChartContainer/ChartContainer.js → ComboChart/ComboChartCanvas.js} +41 -44
  152. package/dist/components/charts/{shared/ChartContainer/ChartContainer.types.d.ts → ComboChart/ComboChartCanvas.types.d.ts} +23 -3
  153. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.d.ts +3 -1
  154. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.js +42 -24
  155. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.types.d.ts +11 -5
  156. package/dist/components/charts/DonutChart/DonutChart.js +3 -2
  157. package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
  158. package/dist/components/charts/DonutChart/DonutChart.types.d.ts +1 -2
  159. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +10 -24
  160. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.types.d.ts +1 -2
  161. package/dist/components/charts/DonutChart/donut-utils.js +1 -0
  162. package/dist/components/charts/FunnelChart/FunnelChart.animations.js +1 -48
  163. package/dist/components/charts/FunnelChart/FunnelChart.d.ts +3 -4
  164. package/dist/components/charts/FunnelChart/FunnelChart.js +306 -358
  165. package/dist/components/charts/Heatmap/Heatmap.js +29 -36
  166. package/dist/components/charts/Heatmap/HeatmapCell.js +2 -1
  167. package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
  168. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.d.ts +16 -0
  169. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.js +237 -0
  170. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.d.ts +62 -0
  171. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.types.js +21 -0
  172. package/dist/components/charts/HorizontalBarChart/index.d.ts +3 -0
  173. package/dist/components/charts/LineChart/LineChart.js +197 -167
  174. package/dist/components/charts/LineChart/LineChart.types.d.ts +14 -17
  175. package/dist/components/charts/LineChart/LineChart.types.js +11 -3
  176. package/dist/components/charts/LollipopChart/LollipopChart.d.ts +3 -0
  177. package/dist/components/charts/LollipopChart/LollipopChart.js +361 -0
  178. package/dist/components/charts/LollipopChart/LollipopChart.types.d.ts +42 -0
  179. package/dist/components/charts/LollipopChart/LollipopChart.types.js +12 -0
  180. package/dist/components/charts/LollipopChart/index.d.ts +3 -0
  181. package/dist/components/charts/RadarChart/RadarChart.js +10 -2
  182. package/dist/components/charts/RadarChart/RadarChart.theme.js +5 -10
  183. package/dist/components/charts/RadarChart/RadarChart.types.d.ts +0 -8
  184. package/dist/components/charts/ScatterPlot/ScatterPlot.js +72 -72
  185. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -4
  186. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +10 -6
  187. package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +15 -26
  188. package/dist/components/charts/ScatterPlot/ScatterPlot.types.js +9 -2
  189. package/dist/components/charts/StackedBarChart/StackedBarChart.js +209 -154
  190. package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +22 -20
  191. package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +13 -4
  192. package/dist/components/charts/hooks/index.d.ts +3 -1
  193. package/dist/components/charts/hooks/useChartAccessibility.d.ts +1 -1
  194. package/dist/components/charts/hooks/useChartAccessibility.js +4 -0
  195. package/dist/components/charts/hooks/useChartDimensions.d.ts +29 -0
  196. package/dist/components/charts/hooks/useChartDimensions.js +43 -0
  197. package/dist/components/charts/hooks/useChartScales.js +1 -1
  198. package/dist/components/charts/hooks/useChartTheme.js +1 -0
  199. package/dist/components/charts/hooks/useChartValidation.d.ts +0 -8
  200. package/dist/components/charts/hooks/useChartValidation.js +1 -0
  201. package/dist/components/charts/hooks/useTooltipPosition.js +19 -6
  202. package/dist/components/charts/index.d.ts +9 -3
  203. package/dist/components/charts/index.js +7 -3
  204. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.d.ts +14 -0
  205. package/dist/components/charts/shared/ChartAxis/CategoryYAxis.js +35 -0
  206. package/dist/components/charts/shared/ChartAxis/ChartAxis.types.d.ts +69 -8
  207. package/dist/components/charts/shared/ChartAxis/ValueXAxis.d.ts +14 -0
  208. package/dist/components/charts/shared/ChartAxis/ValueXAxis.js +64 -0
  209. package/dist/components/charts/shared/ChartAxis/XAxis.js +1 -1
  210. package/dist/components/charts/shared/ChartAxis/YAxis.js +2 -2
  211. package/dist/components/charts/shared/ChartAxis/index.d.ts +3 -1
  212. package/dist/components/charts/shared/ChartCrosshair/ChartCrosshair.js +5 -12
  213. package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +2 -1
  214. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.d.ts +0 -2
  215. package/dist/components/charts/shared/ChartGrid/HorizontalGrid.js +1 -1
  216. package/dist/components/charts/shared/ChartGrid/VerticalGrid.d.ts +29 -0
  217. package/dist/components/charts/shared/ChartGrid/VerticalGrid.js +26 -0
  218. package/dist/components/charts/shared/ChartGrid/index.d.ts +2 -0
  219. package/dist/components/charts/shared/ChartLegend/ChartLegend.d.ts +5 -2
  220. package/dist/components/charts/shared/ChartLegend/ChartLegend.js +15 -22
  221. package/dist/components/charts/shared/ChartLegend/ChartLegend.types.d.ts +7 -12
  222. package/dist/components/charts/shared/ChartLegend/index.d.ts +2 -3
  223. package/dist/components/charts/shared/ChartMarker/ChartMarker.js +8 -1
  224. package/dist/components/charts/shared/ChartText/ChartText.js +2 -1
  225. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.js +4 -13
  226. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +1 -1
  227. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.types.d.ts +13 -2
  228. package/dist/components/charts/shared/index.d.ts +0 -7
  229. package/dist/components/charts/theme/chart.theme.js +24 -23
  230. package/dist/components/charts/types/chart.types.d.ts +35 -7
  231. package/dist/components/charts/types/chart.types.js +11 -10
  232. package/dist/components/charts/utils/animation-utils.d.ts +95 -0
  233. package/dist/components/charts/utils/animation-utils.js +148 -2
  234. package/dist/components/charts/utils/bar-emphasis.d.ts +109 -0
  235. package/dist/components/charts/utils/bar-emphasis.js +85 -0
  236. package/dist/components/charts/utils/chart-validation.js +7 -0
  237. package/dist/components/charts/utils/index.d.ts +1 -0
  238. package/dist/components/charts/utils/series-color.d.ts +7 -0
  239. package/dist/components/charts/utils/series-color.js +20 -0
  240. package/dist/components/core/Accordion/Accordion.animations.d.ts +6 -1
  241. package/dist/components/core/Accordion/Accordion.animations.js +15 -1
  242. package/dist/components/core/Accordion/Accordion.d.ts +4 -4
  243. package/dist/components/core/Accordion/Accordion.js +23 -19
  244. package/dist/components/core/Accordion/Accordion.theme.d.ts +2 -2
  245. package/dist/components/core/Accordion/Accordion.theme.js +7 -7
  246. package/dist/components/core/Accordion/Accordion.types.d.ts +63 -5
  247. package/dist/components/core/Accordion/AccordionBody.d.ts +3 -0
  248. package/dist/components/core/Accordion/{AccordionContent.js → AccordionBody.js} +6 -5
  249. package/dist/components/core/Accordion/AccordionContext.d.ts +3 -0
  250. package/dist/components/core/Accordion/AccordionContext.js +15 -0
  251. package/dist/components/core/Accordion/AccordionItem.js +14 -10
  252. package/dist/components/core/Accordion/AccordionTrigger.js +52 -10
  253. package/dist/components/core/Accordion/index.d.ts +2 -2
  254. package/dist/components/core/Alert/Alert.animations.d.ts +12 -0
  255. package/dist/components/core/Alert/Alert.animations.js +60 -0
  256. package/dist/components/core/Alert/Alert.js +29 -10
  257. package/dist/components/core/Alert/Alert.theme.js +3 -12
  258. package/dist/components/core/Alert/Alert.types.d.ts +6 -13
  259. package/dist/components/core/Alert/index.d.ts +1 -1
  260. package/dist/components/core/AlertDialog/AlertDialog.js +15 -1
  261. package/dist/components/core/Avatar/Avatar.js +104 -39
  262. package/dist/components/core/Avatar/Avatar.theme.d.ts +10 -8
  263. package/dist/components/core/Avatar/Avatar.theme.js +80 -14
  264. package/dist/components/core/Avatar/Avatar.types.d.ts +55 -9
  265. package/dist/components/core/Avatar/index.d.ts +1 -1
  266. package/dist/components/core/AvatarGroup/AvatarGroup.animations.js +3 -2
  267. package/dist/components/core/AvatarGroup/AvatarGroup.js +12 -10
  268. package/dist/components/core/AvatarGroup/AvatarGroup.theme.d.ts +1 -2
  269. package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +6 -8
  270. package/dist/components/core/AvatarGroup/AvatarGroup.types.d.ts +0 -6
  271. package/dist/components/core/AvatarGroup/index.d.ts +1 -1
  272. package/dist/components/core/Badge/Badge.animations.js +6 -3
  273. package/dist/components/core/Badge/Badge.d.ts +1 -1
  274. package/dist/components/core/Badge/Badge.js +36 -74
  275. package/dist/components/core/Badge/Badge.theme.js +75 -66
  276. package/dist/components/core/Badge/Badge.types.d.ts +21 -34
  277. package/dist/components/core/Breadcrumbs/Breadcrumbs.js +24 -25
  278. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.d.ts +1 -4
  279. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.js +4 -4
  280. package/dist/components/core/Breadcrumbs/Breadcrumbs.types.d.ts +1 -1
  281. package/dist/components/core/Button/Button.d.ts +1 -1
  282. package/dist/components/core/Button/Button.js +49 -53
  283. package/dist/components/core/Button/Button.ripple.d.ts +5 -1
  284. package/dist/components/core/Button/Button.ripple.js +31 -24
  285. package/dist/components/core/Button/Button.theme.d.ts +4 -4
  286. package/dist/components/core/Button/Button.theme.js +63 -92
  287. package/dist/components/core/Button/Button.types.d.ts +23 -7
  288. package/dist/components/core/Button/index.d.ts +2 -0
  289. package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +6 -6
  290. package/dist/components/core/ButtonGroup/ButtonGroupText.js +1 -3
  291. package/dist/components/core/Calendar/Calendar.animations.js +1 -0
  292. package/dist/components/core/Calendar/Calendar.js +134 -10
  293. package/dist/components/core/Calendar/Calendar.theme.js +22 -26
  294. package/dist/components/core/Calendar/Calendar.types.d.ts +4 -2
  295. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +5 -6
  296. package/dist/components/core/Calendar/CalendarMini/CalendarMini.animations.js +1 -0
  297. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +9 -5
  298. package/dist/components/core/Calendar/CalendarMini/CalendarMini.theme.js +2 -2
  299. package/dist/components/core/Card/Card.d.ts +2 -2
  300. package/dist/components/core/Card/Card.js +17 -6
  301. package/dist/components/core/Card/Card.theme.js +16 -6
  302. package/dist/components/core/Card/Card.types.d.ts +43 -15
  303. package/dist/components/core/Card/CardBody.d.ts +3 -0
  304. package/dist/components/core/Card/CardBody.js +11 -0
  305. package/dist/components/core/Card/CardFooter.js +1 -1
  306. package/dist/components/core/Card/CardHeader.js +1 -1
  307. package/dist/components/core/Card/CardSubtitle.d.ts +1 -1
  308. package/dist/components/core/Card/CardTitle.d.ts +1 -1
  309. package/dist/components/core/Card/index.d.ts +2 -2
  310. package/dist/components/core/CardStack/CardStack.js +1 -0
  311. package/dist/components/core/Carousel/Carousel.js +5 -4
  312. package/dist/components/core/Carousel/Carousel.types.d.ts +4 -4
  313. package/dist/components/core/Carousel/CarouselBody.d.ts +4 -0
  314. package/dist/components/core/Carousel/{CarouselContent.js → CarouselBody.js} +12 -5
  315. package/dist/components/core/Carousel/CarouselContext.js +1 -0
  316. package/dist/components/core/Carousel/CarouselNext.js +3 -2
  317. package/dist/components/core/Carousel/CarouselPrevious.js +3 -2
  318. package/dist/components/core/Carousel/index.d.ts +2 -1
  319. package/dist/components/core/CommandPalette/CommandItem.js +5 -5
  320. package/dist/components/core/CommandPalette/CommandPalette.animations.js +1 -0
  321. package/dist/components/core/CommandPalette/CommandPalette.js +61 -14
  322. package/dist/components/core/CommandPalette/CommandPalette.theme.js +15 -18
  323. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +16 -2
  324. package/dist/components/core/ContextMenu/ContextMenu.d.ts +2 -2
  325. package/dist/components/core/ContextMenu/ContextMenu.js +38 -15
  326. package/dist/components/core/ContextMenu/ContextMenu.theme.js +15 -15
  327. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +19 -2
  328. package/dist/components/core/ContextMenu/ContextMenuBody.d.ts +6 -0
  329. package/dist/components/core/ContextMenu/{ContextMenuContent.js → ContextMenuBody.js} +20 -11
  330. package/dist/components/core/ContextMenu/ContextMenuContext.js +1 -0
  331. package/dist/components/core/ContextMenu/ContextMenuItem.js +19 -9
  332. package/dist/components/core/ContextMenu/ContextMenuLabel.js +1 -0
  333. package/dist/components/core/ContextMenu/ContextMenuSeparator.js +1 -0
  334. package/dist/components/core/ContextMenu/ContextMenuSub.js +4 -3
  335. package/dist/components/core/ContextMenu/ContextMenuSubBody.d.ts +6 -0
  336. package/dist/components/core/ContextMenu/{ContextMenuSubContent.js → ContextMenuSubBody.js} +16 -9
  337. package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +4 -3
  338. package/dist/components/core/ContextMenu/ContextMenuTrigger.js +13 -6
  339. package/dist/components/core/ContextMenu/index.d.ts +1 -1
  340. package/dist/components/core/DotSeparator/DotSeparator.d.ts +3 -0
  341. package/dist/components/core/DotSeparator/DotSeparator.js +20 -0
  342. package/dist/components/core/DotSeparator/DotSeparator.theme.d.ts +2 -0
  343. package/dist/components/core/DotSeparator/DotSeparator.theme.js +10 -0
  344. package/dist/components/core/DotSeparator/DotSeparator.types.d.ts +25 -0
  345. package/dist/components/core/DotSeparator/index.d.ts +3 -0
  346. package/dist/components/core/DragDrop/DragDrop.js +189 -17
  347. package/dist/components/core/DragDrop/DragDrop.types.d.ts +6 -0
  348. package/dist/components/core/Drawer/Drawer.animations.js +14 -12
  349. package/dist/components/core/Drawer/Drawer.d.ts +6 -6
  350. package/dist/components/core/Drawer/Drawer.js +63 -20
  351. package/dist/components/core/Drawer/Drawer.theme.d.ts +2 -0
  352. package/dist/components/core/Drawer/Drawer.theme.js +23 -16
  353. package/dist/components/core/Drawer/Drawer.types.d.ts +24 -6
  354. package/dist/components/core/Drawer/DrawerBody.d.ts +5 -0
  355. package/dist/components/core/Drawer/{DrawerContent.js → DrawerBody.js} +5 -4
  356. package/dist/components/core/Drawer/DrawerContext.d.ts +3 -0
  357. package/dist/components/core/Drawer/DrawerContext.js +15 -0
  358. package/dist/components/core/Drawer/DrawerFooter.js +2 -1
  359. package/dist/components/core/Drawer/DrawerHeader.js +5 -3
  360. package/dist/components/core/Drawer/DrawerSubtitle.js +2 -1
  361. package/dist/components/core/Drawer/DrawerTitle.d.ts +1 -1
  362. package/dist/components/core/Drawer/DrawerTitle.js +4 -3
  363. package/dist/components/core/Drawer/index.d.ts +2 -1
  364. package/dist/components/core/Dropdown/Dropdown.d.ts +1 -1
  365. package/dist/components/core/Dropdown/Dropdown.js +28 -10
  366. package/dist/components/core/Dropdown/Dropdown.theme.js +9 -7
  367. package/dist/components/core/Dropdown/Dropdown.types.d.ts +12 -3
  368. package/dist/components/core/Dropdown/DropdownContext.js +1 -0
  369. package/dist/components/core/Dropdown/DropdownItem.js +5 -4
  370. package/dist/components/core/Dropdown/DropdownMenu.js +75 -74
  371. package/dist/components/core/Dropdown/DropdownSection.js +5 -2
  372. package/dist/components/core/Dropdown/DropdownSeparator.js +2 -1
  373. package/dist/components/core/Dropdown/DropdownTrigger.d.ts +6 -1
  374. package/dist/components/core/Dropdown/DropdownTrigger.js +42 -9
  375. package/dist/components/core/Empty/Empty.js +1 -1
  376. package/dist/components/core/Empty/Empty.theme.js +1 -1
  377. package/dist/components/core/HeroCard/HeroCard.d.ts +5 -0
  378. package/dist/components/core/HeroCard/HeroCard.js +100 -0
  379. package/dist/components/core/HeroCard/HeroCard.theme.d.ts +3 -0
  380. package/dist/components/core/HeroCard/HeroCard.theme.js +11 -0
  381. package/dist/components/core/HeroCard/HeroCard.types.d.ts +70 -0
  382. package/dist/components/core/HeroCard/index.d.ts +4 -0
  383. package/dist/components/core/Icon/Icon.d.ts +3 -0
  384. package/dist/components/core/Icon/Icon.js +70 -0
  385. package/dist/components/core/Icon/Icon.theme.d.ts +2 -0
  386. package/dist/components/core/Icon/Icon.theme.js +19 -0
  387. package/dist/components/core/Icon/Icon.types.d.ts +32 -0
  388. package/dist/components/core/Icon/data/fileTypes.d.ts +7 -0
  389. package/dist/components/core/Icon/data/fileTypes.js +30 -0
  390. package/dist/components/core/Icon/data/paymentMethods.d.ts +27 -0
  391. package/dist/components/core/Icon/data/paymentMethods.js +169 -0
  392. package/dist/components/core/Icon/index.d.ts +4 -0
  393. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.d.ts +14 -0
  394. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.js +37 -0
  395. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.theme.d.ts +6 -0
  396. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.theme.js +8 -0
  397. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.types.d.ts +32 -0
  398. package/dist/components/core/ImagePlaceholder/index.d.ts +2 -0
  399. package/dist/components/core/Kbd/Kbd.theme.js +5 -3
  400. package/dist/components/core/Link/Link.d.ts +1 -1
  401. package/dist/components/core/Link/Link.js +62 -29
  402. package/dist/components/core/Link/Link.types.d.ts +26 -9
  403. package/dist/components/core/Masonry/Masonry.js +88 -71
  404. package/dist/components/core/Masonry/Masonry.theme.js +10 -4
  405. package/dist/components/core/MenuItem/MenuItem.js +23 -2
  406. package/dist/components/core/MenuItem/MenuItem.theme.d.ts +6 -0
  407. package/dist/components/core/MenuItem/MenuItem.theme.js +25 -18
  408. package/dist/components/core/MenuItem/MenuItem.types.d.ts +3 -1
  409. package/dist/components/core/Message/Message.d.ts +10 -1
  410. package/dist/components/core/Message/Message.js +50 -8
  411. package/dist/components/core/Message/Message.theme.js +27 -7
  412. package/dist/components/core/Message/Message.types.d.ts +122 -7
  413. package/dist/components/core/Message/MessageActions.js +1 -0
  414. package/dist/components/core/Message/MessageAudio.d.ts +8 -0
  415. package/dist/components/core/Message/MessageAudio.js +12 -0
  416. package/dist/components/core/Message/MessageAvatar.d.ts +2 -2
  417. package/dist/components/core/Message/MessageAvatar.js +4 -3
  418. package/dist/components/core/Message/MessageBody.d.ts +8 -0
  419. package/dist/components/core/Message/{MessageContent.js → MessageBody.js} +4 -3
  420. package/dist/components/core/Message/MessageContext.d.ts +3 -1
  421. package/dist/components/core/Message/MessageContext.js +1 -0
  422. package/dist/components/core/Message/MessageDateDivider.d.ts +6 -0
  423. package/dist/components/core/Message/MessageDateDivider.js +10 -0
  424. package/dist/components/core/Message/MessageFile.d.ts +9 -0
  425. package/dist/components/core/Message/MessageFile.js +16 -0
  426. package/dist/components/core/Message/MessageImage.d.ts +11 -0
  427. package/dist/components/core/Message/MessageImage.js +14 -0
  428. package/dist/components/core/Message/MessageLink.d.ts +10 -0
  429. package/dist/components/core/Message/MessageLink.js +15 -0
  430. package/dist/components/core/Message/MessageList.js +1 -0
  431. package/dist/components/core/Message/MessageReactions.d.ts +8 -0
  432. package/dist/components/core/Message/MessageReactions.js +13 -0
  433. package/dist/components/core/Message/MessageReply.d.ts +8 -0
  434. package/dist/components/core/Message/MessageReply.js +10 -0
  435. package/dist/components/core/Message/MessageSenderName.d.ts +6 -0
  436. package/dist/components/core/Message/MessageSenderName.js +10 -0
  437. package/dist/components/core/Message/MessageStatusIndicator.d.ts +9 -0
  438. package/dist/components/core/Message/MessageStatusIndicator.js +46 -0
  439. package/dist/components/core/Message/MessageTimestamp.js +1 -0
  440. package/dist/components/core/Message/TypeWriter.d.ts +1 -1
  441. package/dist/components/core/Message/TypeWriter.js +74 -9
  442. package/dist/components/core/Message/index.d.ts +21 -1
  443. package/dist/components/core/Modal/Modal.animations.d.ts +1 -0
  444. package/dist/components/core/Modal/Modal.animations.js +20 -30
  445. package/dist/components/core/Modal/Modal.d.ts +4 -6
  446. package/dist/components/core/Modal/Modal.js +21 -22
  447. package/dist/components/core/Modal/Modal.theme.js +15 -12
  448. package/dist/components/core/Modal/Modal.types.d.ts +15 -12
  449. package/dist/components/core/Modal/ModalBody.js +9 -9
  450. package/dist/components/core/Modal/ModalContext.d.ts +3 -0
  451. package/dist/components/core/Modal/ModalContext.js +16 -0
  452. package/dist/components/core/Modal/ModalFooter.js +3 -2
  453. package/dist/components/core/Modal/ModalHeader.js +5 -3
  454. package/dist/components/core/Modal/ModalSubtitle.js +2 -1
  455. package/dist/components/core/Modal/ModalTitle.d.ts +1 -1
  456. package/dist/components/core/Modal/ModalTitle.js +4 -3
  457. package/dist/components/core/Modal/index.d.ts +1 -1
  458. package/dist/components/core/ModalStack/ModalStack.animations.js +1 -0
  459. package/dist/components/core/ModalStack/ModalStack.d.ts +1 -1
  460. package/dist/components/core/ModalStack/ModalStack.js +2 -1
  461. package/dist/components/core/ModalStack/ModalStack.types.d.ts +1 -2
  462. package/dist/components/core/ModalStack/ModalStackModal.d.ts +1 -1
  463. package/dist/components/core/ModalStack/ModalStackModal.js +20 -16
  464. package/dist/components/core/NavItem/NavItem.d.ts +1 -1
  465. package/dist/components/core/NavItem/NavItem.js +273 -79
  466. package/dist/components/core/NavItem/NavItem.theme.js +31 -9
  467. package/dist/components/core/NavItem/NavItem.types.d.ts +51 -59
  468. package/dist/components/core/NavItem/index.d.ts +1 -1
  469. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.d.ts +22 -0
  470. package/dist/components/core/OfflineIndicator/OfflineIndicator.animations.js +54 -0
  471. package/dist/components/core/OfflineIndicator/OfflineIndicator.js +24 -24
  472. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +26 -7
  473. package/dist/components/core/OfflineIndicator/OfflineIndicator.types.d.ts +17 -0
  474. package/dist/components/core/PageHeading/PageHeading.js +8 -3
  475. package/dist/components/core/PageHeading/PageHeading.theme.js +3 -3
  476. package/dist/components/core/PageHeading/PageHeading.types.d.ts +13 -2
  477. package/dist/components/core/PageHeading/PageHeadingBackButton.js +6 -3
  478. package/dist/components/core/Pagination/Pagination.js +10 -4
  479. package/dist/components/core/Pagination/Pagination.theme.d.ts +2 -10
  480. package/dist/components/core/Pagination/Pagination.theme.js +6 -6
  481. package/dist/components/core/Pagination/Pagination.types.d.ts +11 -1
  482. package/dist/components/core/Pill/Pill.js +17 -6
  483. package/dist/components/core/Pill/Pill.theme.js +13 -11
  484. package/dist/components/core/Popover/Popover.d.ts +2 -2
  485. package/dist/components/core/Popover/Popover.js +11 -10
  486. package/dist/components/core/Popover/Popover.theme.d.ts +1 -1
  487. package/dist/components/core/Popover/Popover.theme.js +4 -2
  488. package/dist/components/core/Popover/Popover.types.d.ts +21 -3
  489. package/dist/components/core/Popover/PopoverBody.d.ts +7 -0
  490. package/dist/components/core/Popover/PopoverBody.js +134 -0
  491. package/dist/components/core/Popover/PopoverContext.js +1 -0
  492. package/dist/components/core/Popover/PopoverTrigger.d.ts +1 -1
  493. package/dist/components/core/Popover/PopoverTrigger.js +13 -12
  494. package/dist/components/core/Popover/index.d.ts +4 -3
  495. package/dist/components/core/Progress/Progress.d.ts +9 -8
  496. package/dist/components/core/Progress/Progress.js +18 -17
  497. package/dist/components/core/Progress/Progress.theme.js +6 -14
  498. package/dist/components/core/Progress/Progress.types.d.ts +2 -19
  499. package/dist/components/core/Progress/index.d.ts +1 -1
  500. package/dist/components/core/Rating/Rating.js +17 -10
  501. package/dist/components/core/Rating/Rating.theme.js +1 -1
  502. package/dist/components/core/ScrollArea/ScrollArea.js +294 -12
  503. package/dist/components/core/ScrollArea/ScrollArea.theme.js +1 -1
  504. package/dist/components/core/ScrollArea/ScrollArea.types.d.ts +24 -4
  505. package/dist/components/core/ScrollArea/index.d.ts +1 -1
  506. package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.d.ts +5 -0
  507. package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.js +37 -3
  508. package/dist/components/core/ScrollArea/smooth/SnapPointDetector.js +1 -0
  509. package/dist/components/core/ScrollArea/smooth/useSmoothScroll.js +5 -0
  510. package/dist/components/core/ScrollArea/smooth/useSmoothScroll.types.d.ts +5 -0
  511. package/dist/components/core/Segmented/Segmented.js +21 -19
  512. package/dist/components/core/Segmented/Segmented.theme.js +10 -7
  513. package/dist/components/core/Segmented/SegmentedItem.js +30 -3
  514. package/dist/components/core/Separator/Separator.js +1 -0
  515. package/dist/components/core/Sidebar/Sidebar.d.ts +14 -1
  516. package/dist/components/core/Sidebar/Sidebar.js +95 -21
  517. package/dist/components/core/Sidebar/Sidebar.theme.js +7 -7
  518. package/dist/components/core/Sidebar/Sidebar.types.d.ts +190 -8
  519. package/dist/components/core/Sidebar/SidebarCard.d.ts +25 -0
  520. package/dist/components/core/Sidebar/SidebarCard.js +69 -0
  521. package/dist/components/core/Sidebar/SidebarCard.theme.d.ts +8 -0
  522. package/dist/components/core/Sidebar/SidebarCard.theme.js +18 -0
  523. package/dist/components/core/Sidebar/SidebarContent.js +11 -4
  524. package/dist/components/core/Sidebar/SidebarContext.d.ts +26 -11
  525. package/dist/components/core/Sidebar/SidebarContext.js +87 -11
  526. package/dist/components/core/Sidebar/SidebarFooter.js +5 -4
  527. package/dist/components/core/Sidebar/SidebarHeader.js +15 -4
  528. package/dist/components/core/Sidebar/SidebarLogo.d.ts +3 -0
  529. package/dist/components/core/Sidebar/SidebarLogo.js +49 -0
  530. package/dist/components/core/Sidebar/SidebarMobileTrigger.d.ts +3 -0
  531. package/dist/components/core/Sidebar/SidebarMobileTrigger.js +30 -0
  532. package/dist/components/core/Sidebar/SidebarNav.js +6 -2
  533. package/dist/components/core/Sidebar/SidebarNavGroup.js +6 -5
  534. package/dist/components/core/Sidebar/SidebarSearch.d.ts +22 -0
  535. package/dist/components/core/Sidebar/SidebarSearch.js +136 -0
  536. package/dist/components/core/Sidebar/SidebarToggle.js +9 -4
  537. package/dist/components/core/Sidebar/SidebarUserProfile.d.ts +3 -0
  538. package/dist/components/core/Sidebar/SidebarUserProfile.js +49 -0
  539. package/dist/components/core/Sidebar/index.d.ts +7 -3
  540. package/dist/components/core/Skeleton/Skeleton.js +2 -2
  541. package/dist/components/core/Skeleton/Skeleton.theme.js +1 -1
  542. package/dist/components/core/SlidingNumber/SlidingNumber.js +3 -1
  543. package/dist/components/core/Sortable/Sortable.animations.js +1 -0
  544. package/dist/components/core/Sortable/Sortable.d.ts +1 -1
  545. package/dist/components/core/Sortable/Sortable.js +25 -8
  546. package/dist/components/core/Sortable/Sortable.theme.js +1 -1
  547. package/dist/components/core/Sortable/Sortable.types.d.ts +9 -5
  548. package/dist/components/core/Spinner/Spinner.js +1 -0
  549. package/dist/components/core/Spinner/Spinner.theme.js +4 -6
  550. package/dist/components/core/Spinner/Spinner.types.d.ts +2 -1
  551. package/dist/components/core/Tabs/Tabs.animations.d.ts +2 -2
  552. package/dist/components/core/Tabs/Tabs.animations.js +4 -3
  553. package/dist/components/core/Tabs/Tabs.d.ts +1 -1
  554. package/dist/components/core/Tabs/Tabs.js +15 -7
  555. package/dist/components/core/Tabs/Tabs.theme.d.ts +2 -2
  556. package/dist/components/core/Tabs/Tabs.theme.js +6 -6
  557. package/dist/components/core/Tabs/Tabs.types.d.ts +13 -9
  558. package/dist/components/core/Tabs/TabsBody.d.ts +6 -0
  559. package/dist/components/core/Tabs/{TabsContent.js → TabsBody.js} +15 -12
  560. package/dist/components/core/Tabs/TabsContext.js +1 -0
  561. package/dist/components/core/Tabs/TabsList.js +20 -21
  562. package/dist/components/core/Tabs/TabsTrigger.js +81 -38
  563. package/dist/components/core/Tabs/index.d.ts +2 -2
  564. package/dist/components/core/Tag/Tag.animations.js +0 -13
  565. package/dist/components/core/Tag/Tag.d.ts +2 -2
  566. package/dist/components/core/Tag/Tag.js +48 -6
  567. package/dist/components/core/Tag/Tag.theme.js +21 -6
  568. package/dist/components/core/Tag/Tag.types.d.ts +31 -1
  569. package/dist/components/core/Toast/Toast.animations.d.ts +3 -2
  570. package/dist/components/core/Toast/Toast.animations.js +20 -17
  571. package/dist/components/core/Toast/Toast.d.ts +2 -2
  572. package/dist/components/core/Toast/Toast.js +67 -32
  573. package/dist/components/core/Toast/Toast.theme.js +8 -16
  574. package/dist/components/core/Toast/Toast.types.d.ts +41 -48
  575. package/dist/components/core/Toast/ToastProvider.js +7 -2
  576. package/dist/components/core/Toast/index.d.ts +1 -1
  577. package/dist/components/core/Toast/useToast.js +10 -11
  578. package/dist/components/core/Tooltip/Tooltip.animations.js +19 -53
  579. package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
  580. package/dist/components/core/Tooltip/Tooltip.js +89 -45
  581. package/dist/components/core/Tooltip/Tooltip.theme.js +4 -3
  582. package/dist/components/core/Tooltip/Tooltip.types.d.ts +38 -1
  583. package/dist/components/core/Tree/Tree.animations.d.ts +1 -2
  584. package/dist/components/core/Tree/Tree.animations.js +20 -58
  585. package/dist/components/core/Tree/Tree.js +184 -12
  586. package/dist/components/core/index.d.ts +4 -2
  587. package/dist/components/core/index.js +29 -6
  588. package/dist/components/core/shared/interaction.animations.d.ts +51 -0
  589. package/dist/components/core/shared/interaction.animations.js +59 -0
  590. package/dist/components/data-display/DescriptionList/DescriptionList.js +24 -7
  591. package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +10 -3
  592. package/dist/components/data-display/DescriptionList/DescriptionList.types.d.ts +49 -10
  593. package/dist/components/data-display/DescriptionList/index.d.ts +1 -1
  594. package/dist/components/data-display/Feed/Feed.animations.d.ts +40 -0
  595. package/dist/components/data-display/Feed/Feed.animations.js +26 -0
  596. package/dist/components/data-display/Feed/Feed.d.ts +5 -1
  597. package/dist/components/data-display/Feed/Feed.js +114 -55
  598. package/dist/components/data-display/Feed/Feed.theme.js +11 -13
  599. package/dist/components/data-display/Feed/Feed.types.d.ts +66 -34
  600. package/dist/components/data-display/Feed/index.d.ts +1 -1
  601. package/dist/components/data-display/GanttChart/GanttChart.d.ts +3 -4
  602. package/dist/components/data-display/GanttChart/GanttChart.js +36 -25
  603. package/dist/components/data-display/GanttChart/GanttChart.theme.js +19 -17
  604. package/dist/components/data-display/GanttChart/GanttChart.types.d.ts +21 -2
  605. package/dist/components/data-display/GanttChart/GanttChart.utils.js +1 -1
  606. package/dist/components/data-display/GanttChart/GanttChartContext.d.ts +5 -0
  607. package/dist/components/data-display/GanttChart/GanttChartContext.js +26 -0
  608. package/dist/components/data-display/GanttChart/GanttChartPanel.d.ts +1 -1
  609. package/dist/components/data-display/GanttChart/GanttChartPanel.js +6 -5
  610. package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +9 -5
  611. package/dist/components/data-display/GanttChart/GanttGroupBar.js +2 -1
  612. package/dist/components/data-display/GanttChart/GanttMilestone.js +8 -7
  613. package/dist/components/data-display/GanttChart/GanttSplitter.js +17 -2
  614. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +5 -4
  615. package/dist/components/data-display/GanttChart/GanttTableHeader.js +2 -1
  616. package/dist/components/data-display/GanttChart/GanttTablePanel.js +3 -2
  617. package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +4 -3
  618. package/dist/components/data-display/GanttChart/GanttTaskBar.js +43 -19
  619. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +4 -3
  620. package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +4 -2
  621. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +37 -12
  622. package/dist/components/data-display/GanttChart/GanttToolbar.js +6 -4
  623. package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +1 -0
  624. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +4 -2
  625. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +1 -0
  626. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +1 -0
  627. package/dist/components/data-display/GanttChart/index.d.ts +1 -1
  628. package/dist/components/data-display/KPI/KPI.js +15 -4
  629. package/dist/components/data-display/KPI/KPI.theme.js +10 -11
  630. package/dist/components/data-display/KPI/KPI.types.d.ts +5 -4
  631. package/dist/components/data-display/Metric/Metric.js +9 -9
  632. package/dist/components/data-display/Metric/Metric.theme.d.ts +3 -2
  633. package/dist/components/data-display/Metric/Metric.theme.js +55 -64
  634. package/dist/components/data-display/Metric/Metric.types.d.ts +22 -25
  635. package/dist/components/data-display/Table/Table.animations.js +17 -10
  636. package/dist/components/data-display/Table/Table.d.ts +2 -7
  637. package/dist/components/data-display/Table/Table.filterUtils.js +8 -1
  638. package/dist/components/data-display/Table/Table.js +28 -31
  639. package/dist/components/data-display/Table/Table.theme.js +47 -19
  640. package/dist/components/data-display/Table/Table.types.d.ts +37 -8
  641. package/dist/components/data-display/Table/TableActions.js +7 -6
  642. package/dist/components/data-display/Table/TableActionsMenu.js +3 -3
  643. package/dist/components/data-display/Table/TableBody.js +3 -2
  644. package/dist/components/data-display/Table/TableCell.d.ts +1 -1
  645. package/dist/components/data-display/Table/TableCell.js +13 -5
  646. package/dist/components/data-display/Table/TableColumnManager.js +5 -2
  647. package/dist/components/data-display/Table/TableContext.d.ts +11 -0
  648. package/dist/components/data-display/Table/TableContext.js +21 -0
  649. package/dist/components/data-display/Table/TableDeclarative.js +8 -9
  650. package/dist/components/data-display/Table/TableFilter.js +34 -26
  651. package/dist/components/data-display/Table/TableHeader.js +6 -2
  652. package/dist/components/data-display/Table/TablePagination.js +4 -7
  653. package/dist/components/data-display/Table/TableRow.d.ts +1 -1
  654. package/dist/components/data-display/Table/TableRow.js +14 -10
  655. package/dist/components/data-display/Table/TableSelectionHeader.js +7 -5
  656. package/dist/components/data-display/Table/hooks/useTableColumns.js +1 -0
  657. package/dist/components/data-display/Table/hooks/useTableExpansion.js +1 -0
  658. package/dist/components/data-display/Table/hooks/useTableFilter.js +1 -0
  659. package/dist/components/data-display/Table/hooks/useTablePagination.js +1 -0
  660. package/dist/components/data-display/Table/hooks/useTableSelection.js +1 -0
  661. package/dist/components/data-display/Table/index.d.ts +2 -2
  662. package/dist/components/data-display/Table/index.js +2 -2
  663. package/dist/components/data-display/Timeline/Timeline.animations.d.ts +0 -7
  664. package/dist/components/data-display/Timeline/Timeline.animations.js +2 -27
  665. package/dist/components/data-display/Timeline/Timeline.d.ts +2 -2
  666. package/dist/components/data-display/Timeline/Timeline.js +33 -17
  667. package/dist/components/data-display/Timeline/Timeline.theme.d.ts +2 -16
  668. package/dist/components/data-display/Timeline/Timeline.theme.js +14 -8
  669. package/dist/components/data-display/Timeline/Timeline.types.d.ts +70 -27
  670. package/dist/components/data-display/Timeline/Timeline.utils.d.ts +6 -0
  671. package/dist/components/data-display/Timeline/Timeline.utils.js +11 -0
  672. package/dist/components/data-display/Timeline/TimelineContent.js +5 -8
  673. package/dist/components/data-display/Timeline/TimelineContext.d.ts +3 -0
  674. package/dist/components/data-display/Timeline/TimelineContext.js +16 -0
  675. package/dist/components/data-display/Timeline/TimelineItem.js +21 -40
  676. package/dist/components/data-display/Timeline/TimelineMarker.js +14 -11
  677. package/dist/components/data-display/Timeline/index.d.ts +2 -2
  678. package/dist/components/effects/3d/index.d.ts +4 -0
  679. package/dist/components/effects/3d/index.js +2 -0
  680. package/dist/components/effects/AIOrb/AIOrb.d.ts +1 -0
  681. package/dist/components/effects/AIOrb/AIOrb.js +3 -2
  682. package/dist/components/effects/AIOrb/AIOrb.types.d.ts +1 -0
  683. package/dist/components/effects/AIOrb/hooks/index.d.ts +2 -0
  684. package/dist/components/effects/AIOrb/hooks/useOrbState.d.ts +20 -0
  685. package/dist/components/effects/AIOrb/hooks/useOrbState.js +28 -0
  686. package/dist/components/effects/AIOrb/index.d.ts +2 -2
  687. package/dist/components/effects/AIOrb/variants/Aura/Aura.d.ts +3 -0
  688. package/dist/components/effects/AIOrb/variants/Aura/Aura.js +84 -0
  689. package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.d.ts +28 -0
  690. package/dist/components/effects/AIOrb/variants/Aura/Aura.shaders.js +191 -0
  691. package/dist/components/effects/AIOrb/variants/Aura/Aura.types.d.ts +53 -0
  692. package/dist/components/effects/AIOrb/variants/Aura/index.d.ts +2 -0
  693. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.d.ts +7 -0
  694. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.d.ts +3 -0
  695. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.js +176 -0
  696. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +29 -130
  697. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.types.d.ts +6 -0
  698. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.d.ts +8 -0
  699. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.d.ts +3 -0
  700. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.js +140 -0
  701. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +29 -101
  702. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.types.d.ts +6 -0
  703. package/dist/components/effects/AIOrb/variants/index.d.ts +2 -0
  704. package/dist/components/effects/Animated/Animated.animations.js +29 -10
  705. package/dist/components/effects/Animated/Animated.d.ts +4 -4
  706. package/dist/components/effects/Animated/Animated.js +9 -9
  707. package/dist/components/effects/Animated/AnimatedContext.d.ts +3 -0
  708. package/dist/components/effects/Animated/AnimatedContext.js +12 -0
  709. package/dist/components/effects/Animated/AnimatedItem.d.ts +1 -1
  710. package/dist/components/effects/Animated/AnimatedItem.js +7 -5
  711. package/dist/components/effects/Aurora/Aurora.d.ts +6 -17
  712. package/dist/components/effects/Aurora/Aurora.js +332 -105
  713. package/dist/components/effects/Aurora/Aurora.types.d.ts +6 -0
  714. package/dist/components/effects/ColorPanels/ColorPanels.d.ts +8 -0
  715. package/dist/components/effects/ColorPanels/ColorPanels.js +66 -0
  716. package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +12 -0
  717. package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +218 -0
  718. package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +29 -0
  719. package/dist/components/effects/ColorPanels/ColorPanels.types.js +3 -0
  720. package/dist/components/effects/ColorPanels/index.d.ts +2 -0
  721. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +4 -4
  722. package/dist/components/effects/CustomCursor/CustomCursor.js +55 -55
  723. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +2 -2
  724. package/dist/components/effects/CustomCursor/CustomCursor.types.d.ts +5 -4
  725. package/dist/components/effects/Dithering/Dithering.d.ts +10 -0
  726. package/dist/components/effects/Dithering/Dithering.js +62 -0
  727. package/dist/components/effects/Dithering/Dithering.shaders.d.ts +11 -0
  728. package/dist/components/effects/Dithering/Dithering.shaders.js +166 -0
  729. package/dist/components/effects/Dithering/Dithering.types.d.ts +31 -0
  730. package/dist/components/effects/Dithering/Dithering.types.js +17 -0
  731. package/dist/components/effects/Dithering/index.d.ts +3 -0
  732. package/dist/components/effects/DotPattern/DotPattern.js +8 -1
  733. package/dist/components/effects/DotPattern/DotPattern.types.d.ts +4 -2
  734. package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +9 -0
  735. package/dist/components/effects/FlutedGlass/FlutedGlass.js +80 -0
  736. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +12 -0
  737. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +335 -0
  738. package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +61 -0
  739. package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +16 -0
  740. package/dist/components/effects/FlutedGlass/index.d.ts +3 -0
  741. package/dist/components/effects/GemSmoke/GemSmoke.d.ts +8 -0
  742. package/dist/components/effects/GemSmoke/GemSmoke.js +70 -0
  743. package/dist/components/effects/GemSmoke/GemSmoke.shaders.d.ts +18 -0
  744. package/dist/components/effects/GemSmoke/GemSmoke.shaders.js +181 -0
  745. package/dist/components/effects/GemSmoke/GemSmoke.types.d.ts +37 -0
  746. package/dist/components/effects/GemSmoke/GemSmoke.types.js +10 -0
  747. package/dist/components/effects/GemSmoke/index.d.ts +3 -0
  748. package/dist/components/effects/GlassEffect/GlassEffect.js +1 -1
  749. package/dist/components/effects/GlassSurface/GlassSurface.d.ts +1 -1
  750. package/dist/components/effects/GlassSurface/GlassSurface.js +40 -34
  751. package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +14 -0
  752. package/dist/components/effects/GodRays/GodRays.d.ts +8 -0
  753. package/dist/components/effects/GodRays/GodRays.js +68 -0
  754. package/dist/components/effects/GodRays/GodRays.shaders.d.ts +10 -0
  755. package/dist/components/effects/GodRays/GodRays.shaders.js +128 -0
  756. package/dist/components/effects/GodRays/GodRays.types.d.ts +25 -0
  757. package/dist/components/effects/GodRays/GodRays.types.js +3 -0
  758. package/dist/components/effects/GodRays/index.d.ts +2 -0
  759. package/dist/components/effects/GradientMesh/GradientMesh.d.ts +9 -0
  760. package/dist/components/effects/GradientMesh/GradientMesh.js +56 -0
  761. package/dist/components/effects/GradientMesh/GradientMesh.shaders.d.ts +15 -0
  762. package/dist/components/effects/GradientMesh/GradientMesh.shaders.js +127 -0
  763. package/dist/components/effects/GradientMesh/GradientMesh.types.d.ts +17 -0
  764. package/dist/components/effects/GradientMesh/GradientMesh.types.js +3 -0
  765. package/dist/components/effects/GradientMesh/index.d.ts +2 -0
  766. package/dist/components/effects/GrainGradient/GrainGradient.d.ts +9 -0
  767. package/dist/components/effects/GrainGradient/GrainGradient.js +62 -0
  768. package/dist/components/effects/GrainGradient/GrainGradient.shaders.d.ts +17 -0
  769. package/dist/components/effects/GrainGradient/GrainGradient.shaders.js +168 -0
  770. package/dist/components/effects/GrainGradient/GrainGradient.types.d.ts +26 -0
  771. package/dist/components/effects/GrainGradient/GrainGradient.types.js +9 -0
  772. package/dist/components/effects/GrainGradient/index.d.ts +3 -0
  773. package/dist/components/effects/GridPattern/GridPattern.js +1 -0
  774. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +10 -0
  775. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +78 -0
  776. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +22 -0
  777. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +239 -0
  778. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +52 -0
  779. package/dist/components/effects/HalftoneCmyk/index.d.ts +2 -0
  780. package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +9 -0
  781. package/dist/components/effects/HalftoneDots/HalftoneDots.js +68 -0
  782. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +13 -0
  783. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +296 -0
  784. package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +43 -0
  785. package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +12 -0
  786. package/dist/components/effects/HalftoneDots/index.d.ts +3 -0
  787. package/dist/components/effects/ImageDithering/ImageDithering.d.ts +9 -0
  788. package/dist/components/effects/ImageDithering/ImageDithering.js +68 -0
  789. package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +12 -0
  790. package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +117 -0
  791. package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +30 -0
  792. package/dist/components/effects/ImageDithering/ImageDithering.types.js +8 -0
  793. package/dist/components/effects/ImageDithering/index.d.ts +3 -0
  794. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.d.ts +39 -0
  795. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.animations.js +98 -0
  796. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.d.ts +3 -0
  797. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.js +105 -0
  798. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.types.d.ts +30 -0
  799. package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.d.ts +3 -0
  800. package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.js +46 -0
  801. package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.d.ts +3 -0
  802. package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.js +46 -0
  803. package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.d.ts +3 -0
  804. package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.js +48 -0
  805. package/dist/components/effects/InteractiveCharacters/hooks/useBlink.d.ts +14 -0
  806. package/dist/components/effects/InteractiveCharacters/hooks/useBlink.js +42 -0
  807. package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.d.ts +25 -0
  808. package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.js +85 -0
  809. package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.d.ts +18 -0
  810. package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.js +36 -0
  811. package/dist/components/effects/InteractiveCharacters/index.d.ts +2 -0
  812. package/dist/components/effects/LiquidMetal/LiquidMetal.d.ts +9 -0
  813. package/dist/components/effects/LiquidMetal/LiquidMetal.js +61 -0
  814. package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.d.ts +19 -0
  815. package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.js +202 -0
  816. package/dist/components/effects/LiquidMetal/LiquidMetal.types.d.ts +34 -0
  817. package/dist/components/effects/LiquidMetal/LiquidMetal.types.js +9 -0
  818. package/dist/components/effects/LiquidMetal/index.d.ts +3 -0
  819. package/dist/components/effects/MagneticElement/MagneticElement.js +1 -0
  820. package/dist/components/effects/MeshGradient/MeshGradient.d.ts +25 -0
  821. package/dist/components/effects/MeshGradient/MeshGradient.js +47 -0
  822. package/dist/components/effects/MeshGradient/MeshGradient.types.d.ts +40 -0
  823. package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +83 -0
  824. package/dist/components/effects/MeshGradient/MeshGradient.utils.js +112 -0
  825. package/dist/components/effects/MeshGradient/index.d.ts +4 -0
  826. package/dist/components/effects/Metaballs/Metaballs.d.ts +8 -0
  827. package/dist/components/effects/Metaballs/Metaballs.js +59 -0
  828. package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +10 -0
  829. package/dist/components/effects/Metaballs/Metaballs.shaders.js +102 -0
  830. package/dist/components/effects/Metaballs/Metaballs.types.d.ts +16 -0
  831. package/dist/components/effects/Metaballs/Metaballs.types.js +3 -0
  832. package/dist/components/effects/Metaballs/index.d.ts +2 -0
  833. package/dist/components/effects/Neumorphic/InsetCircleButton.d.ts +10 -0
  834. package/dist/components/effects/Neumorphic/InsetCircleButton.js +11 -0
  835. package/dist/components/effects/Neumorphic/InsetPill.d.ts +8 -0
  836. package/dist/components/effects/Neumorphic/InsetPill.js +8 -0
  837. package/dist/components/effects/Neumorphic/index.d.ts +4 -0
  838. package/dist/components/effects/NoiseOverlay/NoiseOverlay.d.ts +1 -1
  839. package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +5 -4
  840. package/dist/components/effects/Overlay/Overlay.js +52 -25
  841. package/dist/components/effects/Overlay/Overlay.theme.js +1 -2
  842. package/dist/components/effects/PaperTexture/PaperTexture.d.ts +9 -0
  843. package/dist/components/effects/PaperTexture/PaperTexture.js +61 -0
  844. package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +22 -0
  845. package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +145 -0
  846. package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +19 -0
  847. package/dist/components/effects/PaperTexture/index.d.ts +2 -0
  848. package/dist/components/effects/Particles/Particles.js +1 -0
  849. package/dist/components/effects/Particles/Particles.scene.js +1 -0
  850. package/dist/components/effects/Preloader/Preloader.animations.d.ts +23 -0
  851. package/dist/components/effects/Preloader/Preloader.animations.js +150 -0
  852. package/dist/components/effects/Preloader/Preloader.d.ts +3 -0
  853. package/dist/components/effects/Preloader/Preloader.js +120 -0
  854. package/dist/components/effects/Preloader/Preloader.types.d.ts +63 -0
  855. package/dist/components/effects/Preloader/index.d.ts +2 -0
  856. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +26 -14
  857. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.types.d.ts +2 -0
  858. package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +27 -0
  859. package/dist/components/effects/PulsingBorder/PulsingBorder.js +174 -0
  860. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +14 -0
  861. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +258 -0
  862. package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +75 -0
  863. package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +3 -0
  864. package/dist/components/effects/PulsingBorder/index.d.ts +2 -0
  865. package/dist/components/effects/ScrollReveal/ScrollReveal.js +1 -0
  866. package/dist/components/effects/Shimmer/Shimmer.d.ts +21 -0
  867. package/dist/components/effects/Shimmer/Shimmer.js +44 -0
  868. package/dist/components/effects/Shimmer/Shimmer.types.d.ts +49 -0
  869. package/dist/components/effects/Shimmer/index.d.ts +2 -0
  870. package/dist/components/effects/SmokeRing/SmokeRing.d.ts +8 -0
  871. package/dist/components/effects/SmokeRing/SmokeRing.js +62 -0
  872. package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +14 -0
  873. package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +130 -0
  874. package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +22 -0
  875. package/dist/components/effects/SmokeRing/SmokeRing.types.js +3 -0
  876. package/dist/components/effects/SmokeRing/index.d.ts +2 -0
  877. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +9 -0
  878. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +59 -0
  879. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +14 -0
  880. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +129 -0
  881. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +23 -0
  882. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +3 -0
  883. package/dist/components/effects/StaticGradientMesh/index.d.ts +2 -0
  884. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.d.ts +9 -0
  885. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.js +66 -0
  886. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.d.ts +13 -0
  887. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.js +169 -0
  888. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.d.ts +29 -0
  889. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.js +3 -0
  890. package/dist/components/effects/StaticRadialGradient/index.d.ts +2 -0
  891. package/dist/components/effects/StripePattern/StripePattern.d.ts +18 -0
  892. package/dist/components/effects/StripePattern/StripePattern.js +55 -0
  893. package/dist/components/effects/StripePattern/StripePattern.types.d.ts +53 -0
  894. package/dist/components/effects/StripePattern/index.d.ts +2 -0
  895. package/dist/components/effects/TiltCard/TiltCard.d.ts +12 -0
  896. package/dist/components/effects/TiltCard/TiltCard.glow.d.ts +28 -0
  897. package/dist/components/effects/TiltCard/TiltCard.glow.js +115 -0
  898. package/dist/components/effects/TiltCard/TiltCard.js +178 -0
  899. package/dist/components/effects/{SpotlightBorder/SpotlightBorder.shaders.d.ts → TiltCard/TiltCard.shaders.d.ts} +1 -1
  900. package/dist/components/effects/{SpotlightBorder/SpotlightBorder.shaders.js → TiltCard/TiltCard.shaders.js} +1 -1
  901. package/dist/components/effects/TiltCard/TiltCard.types.d.ts +88 -0
  902. package/dist/components/effects/TiltCard/index.d.ts +2 -0
  903. package/dist/components/effects/Water/Water.d.ts +9 -0
  904. package/dist/components/effects/Water/Water.js +65 -0
  905. package/dist/components/effects/Water/Water.shaders.d.ts +11 -0
  906. package/dist/components/effects/Water/Water.shaders.js +123 -0
  907. package/dist/components/effects/Water/Water.types.d.ts +25 -0
  908. package/dist/components/effects/Water/index.d.ts +2 -0
  909. package/dist/components/effects/index.d.ts +57 -16
  910. package/dist/components/effects/index.js +30 -8
  911. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.d.ts +13 -0
  912. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.js +255 -0
  913. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +18 -0
  914. package/dist/components/effects/shared/ShaderCanvas/index.d.ts +2 -0
  915. package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +10 -0
  916. package/dist/components/effects/shared/bayerMatrices.glsl.js +44 -0
  917. package/dist/components/effects/shared/imageUV.glsl.d.ts +12 -0
  918. package/dist/components/effects/shared/imageUV.glsl.js +26 -0
  919. package/dist/components/effects/shared/index.d.ts +7 -0
  920. package/dist/components/effects/shared/resolveShaderColor.d.ts +13 -0
  921. package/dist/components/effects/shared/resolveShaderColor.js +62 -0
  922. package/dist/components/effects/shared/resolveShaderColor.test.d.ts +1 -0
  923. package/dist/components/effects/shared/shaderNoise.glsl.d.ts +34 -0
  924. package/dist/components/effects/shared/shaderNoise.glsl.js +84 -0
  925. package/dist/components/forms/Checkbox/Checkbox.animations.d.ts +14 -0
  926. package/dist/components/forms/Checkbox/Checkbox.animations.js +54 -0
  927. package/dist/components/forms/Checkbox/Checkbox.d.ts +3 -4
  928. package/dist/components/forms/Checkbox/Checkbox.js +55 -12
  929. package/dist/components/forms/Checkbox/Checkbox.theme.js +14 -8
  930. package/dist/components/forms/Checkbox/Checkbox.types.d.ts +36 -8
  931. package/dist/components/forms/Checkbox/CheckboxContext.d.ts +14 -0
  932. package/dist/components/forms/Checkbox/CheckboxContext.js +13 -0
  933. package/dist/components/forms/Checkbox/CheckboxGroup.d.ts +3 -0
  934. package/dist/components/forms/Checkbox/CheckboxGroup.js +48 -0
  935. package/dist/components/forms/Checkbox/index.d.ts +1 -1
  936. package/dist/components/forms/ColorPicker/ColorPicker.d.ts +6 -10
  937. package/dist/components/forms/ColorPicker/ColorPicker.js +150 -27
  938. package/dist/components/forms/ColorPicker/ColorPicker.theme.js +8 -5
  939. package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +112 -5
  940. package/dist/components/forms/ColorPicker/ColorPicker2DCanvas.js +44 -6
  941. package/dist/components/forms/ColorPicker/ColorPickerBody.d.ts +7 -0
  942. package/dist/components/forms/ColorPicker/{ColorPickerContent.js → ColorPickerBody.js} +17 -14
  943. package/dist/components/forms/ColorPicker/ColorPickerContext.d.ts +4 -0
  944. package/dist/components/forms/ColorPicker/ColorPickerContext.js +13 -0
  945. package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +7 -6
  946. package/dist/components/forms/ColorPicker/ColorPickerFormatSelector.js +2 -1
  947. package/dist/components/forms/ColorPicker/ColorPickerGradient.d.ts +7 -0
  948. package/dist/components/forms/ColorPicker/ColorPickerGradient.js +187 -0
  949. package/dist/components/forms/ColorPicker/ColorPickerHeader.d.ts +14 -0
  950. package/dist/components/forms/ColorPicker/ColorPickerHeader.js +32 -0
  951. package/dist/components/forms/ColorPicker/ColorPickerImage.d.ts +6 -0
  952. package/dist/components/forms/ColorPicker/ColorPickerImage.js +155 -0
  953. package/dist/components/forms/ColorPicker/ColorPickerInput.d.ts +0 -4
  954. package/dist/components/forms/ColorPicker/ColorPickerInput.js +54 -61
  955. package/dist/components/forms/ColorPicker/ColorPickerPresets.js +14 -12
  956. package/dist/components/forms/ColorPicker/ColorPickerSavedColors.d.ts +3 -0
  957. package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +70 -0
  958. package/dist/components/forms/ColorPicker/ColorPickerSliders.d.ts +1 -2
  959. package/dist/components/forms/ColorPicker/ColorPickerSliders.js +85 -23
  960. package/dist/components/forms/ColorPicker/ColorPickerSwatch.d.ts +1 -1
  961. package/dist/components/forms/ColorPicker/ColorPickerSwatch.js +11 -9
  962. package/dist/components/forms/ColorPicker/ColorPickerTrigger.js +22 -3
  963. package/dist/components/forms/ColorPicker/index.d.ts +9 -3
  964. package/dist/components/forms/Combobox/Combobox.js +92 -71
  965. package/dist/components/forms/Combobox/Combobox.theme.js +4 -6
  966. package/dist/components/forms/Combobox/Combobox.types.d.ts +12 -2
  967. package/dist/components/forms/DatePicker/DatePicker.animations.js +17 -25
  968. package/dist/components/forms/DatePicker/DatePicker.d.ts +6 -26
  969. package/dist/components/forms/DatePicker/DatePicker.js +10 -8
  970. package/dist/components/forms/DatePicker/DatePicker.theme.js +13 -20
  971. package/dist/components/forms/DatePicker/DatePicker.types.d.ts +28 -6
  972. package/dist/components/forms/DatePicker/DatePickerBody.d.ts +7 -0
  973. package/dist/components/forms/DatePicker/{DatePickerContent.js → DatePickerBody.js} +32 -54
  974. package/dist/components/forms/DatePicker/DatePickerContext.d.ts +29 -0
  975. package/dist/components/forms/DatePicker/DatePickerContext.js +6 -0
  976. package/dist/components/forms/DatePicker/DatePickerPresets.js +2 -1
  977. package/dist/components/forms/DatePicker/DatePickerTrigger.js +6 -5
  978. package/dist/components/forms/DatePicker/index.d.ts +2 -2
  979. package/dist/components/forms/DateRangePicker/DateRangePicker.animations.d.ts +1 -0
  980. package/dist/components/forms/DateRangePicker/DateRangePicker.d.ts +17 -0
  981. package/dist/components/forms/DateRangePicker/DateRangePicker.js +121 -0
  982. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.d.ts +5 -0
  983. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +45 -0
  984. package/dist/components/forms/DateRangePicker/DateRangePicker.types.d.ts +177 -0
  985. package/dist/components/forms/DateRangePicker/DateRangePickerBody.d.ts +6 -0
  986. package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +186 -0
  987. package/dist/components/forms/DateRangePicker/DateRangePickerContext.d.ts +24 -0
  988. package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +5 -0
  989. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.d.ts +6 -0
  990. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +42 -0
  991. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.d.ts +6 -0
  992. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +33 -0
  993. package/dist/components/forms/DateRangePicker/dateRangePresets.d.ts +5 -0
  994. package/dist/components/forms/DateRangePicker/dateRangePresets.js +59 -0
  995. package/dist/components/forms/DateRangePicker/index.d.ts +4 -0
  996. package/dist/components/forms/FileUpload/FileUpload.animations.d.ts +29 -0
  997. package/dist/components/forms/FileUpload/FileUpload.animations.js +19 -0
  998. package/dist/components/forms/FileUpload/FileUpload.js +96 -133
  999. package/dist/components/forms/FileUpload/FileUpload.theme.d.ts +2 -10
  1000. package/dist/components/forms/FileUpload/FileUpload.theme.js +20 -30
  1001. package/dist/components/forms/FileUpload/FileUpload.types.d.ts +41 -10
  1002. package/dist/components/forms/FileUpload/FileUploadProgress.animations.d.ts +36 -0
  1003. package/dist/components/forms/FileUpload/FileUploadProgress.animations.js +22 -0
  1004. package/dist/components/forms/FileUpload/FileUploadProgress.d.ts +3 -0
  1005. package/dist/components/forms/FileUpload/FileUploadProgress.js +119 -0
  1006. package/dist/components/forms/FileUpload/FileUploadProgress.theme.d.ts +19 -0
  1007. package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +27 -0
  1008. package/dist/components/forms/FileUpload/FileUploadProgress.types.d.ts +33 -0
  1009. package/dist/components/forms/FileUpload/index.d.ts +3 -0
  1010. package/dist/components/forms/FormLabel/FormLabel.js +2 -2
  1011. package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
  1012. package/dist/components/forms/Input/Input.js +17 -17
  1013. package/dist/components/forms/Input/Input.theme.js +42 -31
  1014. package/dist/components/forms/Input/Input.types.d.ts +20 -4
  1015. package/dist/components/forms/Input/index.d.ts +1 -0
  1016. package/dist/components/forms/Input/inputMasks.d.ts +24 -0
  1017. package/dist/components/forms/Input/inputMasks.js +61 -5
  1018. package/dist/components/forms/InputAddress/InputAddress.d.ts +6 -1
  1019. package/dist/components/forms/InputAddress/InputAddress.js +108 -20
  1020. package/dist/components/forms/InputAddress/InputAddress.theme.js +5 -5
  1021. package/dist/components/forms/InputAddress/InputAddress.types.d.ts +8 -2
  1022. package/dist/components/forms/InputAddress/index.d.ts +1 -1
  1023. package/dist/components/forms/InputCounter/InputCounter.d.ts +1 -1
  1024. package/dist/components/forms/InputCounter/InputCounter.js +81 -55
  1025. package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
  1026. package/dist/components/forms/InputCounter/InputCounter.types.d.ts +17 -3
  1027. package/dist/components/forms/InputCreditCard/InputCreditCard.d.ts +1 -1
  1028. package/dist/components/forms/InputCreditCard/InputCreditCard.js +33 -9
  1029. package/dist/components/forms/InputCreditCard/InputCreditCard.theme.js +5 -5
  1030. package/dist/components/forms/InputCreditCard/InputCreditCard.types.d.ts +9 -0
  1031. package/dist/components/forms/InputCreditCard/index.d.ts +1 -0
  1032. package/dist/components/forms/InputDate/InputDate.js +1 -0
  1033. package/dist/components/forms/InputOTP/InputOTP.d.ts +3 -12
  1034. package/dist/components/forms/InputOTP/InputOTP.js +160 -150
  1035. package/dist/components/forms/InputOTP/InputOTP.theme.d.ts +5 -1
  1036. package/dist/components/forms/InputOTP/InputOTP.theme.js +40 -5
  1037. package/dist/components/forms/InputOTP/InputOTP.types.d.ts +72 -6
  1038. package/dist/components/forms/InputOTP/index.d.ts +1 -1
  1039. package/dist/components/forms/InputTag/InputTag.js +71 -54
  1040. package/dist/components/forms/InputTag/InputTag.theme.js +1 -1
  1041. package/dist/components/forms/InputTag/InputTag.types.d.ts +10 -2
  1042. package/dist/components/forms/Mention/Mention.d.ts +1 -1
  1043. package/dist/components/forms/Mention/Mention.js +505 -199
  1044. package/dist/components/forms/Mention/Mention.theme.js +19 -28
  1045. package/dist/components/forms/Mention/Mention.types.d.ts +75 -18
  1046. package/dist/components/forms/Mention/Mention.utils.d.ts +42 -0
  1047. package/dist/components/forms/Mention/Mention.utils.js +314 -0
  1048. package/dist/components/forms/Mention/index.d.ts +1 -1
  1049. package/dist/components/forms/Radio/Radio.animations.d.ts +10 -0
  1050. package/dist/components/forms/Radio/Radio.animations.js +38 -0
  1051. package/dist/components/forms/Radio/Radio.d.ts +3 -4
  1052. package/dist/components/forms/Radio/Radio.js +46 -5
  1053. package/dist/components/forms/Radio/Radio.theme.js +25 -13
  1054. package/dist/components/forms/Radio/Radio.types.d.ts +39 -10
  1055. package/dist/components/forms/Radio/RadioContext.d.ts +14 -0
  1056. package/dist/components/forms/Radio/RadioContext.js +13 -0
  1057. package/dist/components/forms/Radio/RadioGroup.d.ts +3 -0
  1058. package/dist/components/forms/Radio/RadioGroup.js +44 -0
  1059. package/dist/components/forms/Radio/index.d.ts +1 -1
  1060. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +1 -0
  1061. package/dist/components/forms/RichTextEditor/RichTextEditor.d.ts +18 -0
  1062. package/dist/components/forms/RichTextEditor/RichTextEditor.js +1268 -255
  1063. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.d.ts +53 -1
  1064. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +100 -25
  1065. package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +69 -5
  1066. package/dist/components/forms/RichTextEditor/index.d.ts +2 -2
  1067. package/dist/components/forms/Select/Select.animations.js +17 -25
  1068. package/dist/components/forms/Select/Select.d.ts +11 -3
  1069. package/dist/components/forms/Select/Select.js +84 -79
  1070. package/dist/components/forms/Select/Select.theme.js +7 -7
  1071. package/dist/components/forms/Select/Select.types.d.ts +53 -9
  1072. package/dist/components/forms/Select/useSelectState.js +7 -0
  1073. package/dist/components/forms/SelectableCard/SelectableCard.animations.d.ts +1 -2
  1074. package/dist/components/forms/SelectableCard/SelectableCard.animations.js +6 -7
  1075. package/dist/components/forms/SelectableCard/SelectableCard.d.ts +1 -1
  1076. package/dist/components/forms/SelectableCard/SelectableCard.js +43 -27
  1077. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +15 -25
  1078. package/dist/components/forms/SelectableCard/SelectableCard.types.d.ts +16 -4
  1079. package/dist/components/forms/SelectableCard/SelectableCardContext.d.ts +1 -0
  1080. package/dist/components/forms/SelectableCard/SelectableCardContext.js +5 -7
  1081. package/dist/components/forms/SelectableCard/SelectableCardGroup.js +32 -10
  1082. package/dist/components/forms/SelectableCard/index.d.ts +1 -1
  1083. package/dist/components/forms/Signature/Signature.js +13 -3
  1084. package/dist/components/forms/Signature/Signature.types.d.ts +9 -3
  1085. package/dist/components/forms/Slider/Slider.js +42 -7
  1086. package/dist/components/forms/Slider/Slider.theme.js +11 -5
  1087. package/dist/components/forms/Slider/Slider.types.d.ts +2 -2
  1088. package/dist/components/forms/Switch/Switch.js +41 -21
  1089. package/dist/components/forms/Switch/Switch.theme.d.ts +36 -6
  1090. package/dist/components/forms/Switch/Switch.theme.js +45 -4
  1091. package/dist/components/forms/Switch/Switch.types.d.ts +36 -8
  1092. package/dist/components/forms/Textarea/Textarea.js +12 -3
  1093. package/dist/components/forms/Textarea/Textarea.types.d.ts +12 -4
  1094. package/dist/components/forms/TimePicker/TimePicker.d.ts +2 -12
  1095. package/dist/components/forms/TimePicker/TimePicker.js +8 -5
  1096. package/dist/components/forms/TimePicker/TimePicker.theme.js +11 -14
  1097. package/dist/components/forms/TimePicker/TimePicker.types.d.ts +21 -2
  1098. package/dist/components/forms/TimePicker/TimePickerContent.js +13 -112
  1099. package/dist/components/forms/TimePicker/TimePickerContext.d.ts +15 -0
  1100. package/dist/components/forms/TimePicker/TimePickerContext.js +6 -0
  1101. package/dist/components/forms/TimePicker/TimePickerTrigger.js +22 -8
  1102. package/dist/components/forms/TimePicker/WheelColumn.js +1 -0
  1103. package/dist/components/forms/TimePicker/useWheelPicker.js +1 -0
  1104. package/dist/components/forms/forms.theme.d.ts +1 -0
  1105. package/dist/components/forms/forms.theme.js +98 -45
  1106. package/dist/components/forms/index.d.ts +11 -11
  1107. package/dist/components/forms/index.js +22 -88
  1108. package/dist/components/generative/GenerativeView.d.ts +21 -0
  1109. package/dist/components/generative/GenerativeView.js +117 -0
  1110. package/dist/components/generative/actions.d.ts +26 -0
  1111. package/dist/components/generative/actions.js +51 -0
  1112. package/dist/components/generative/actions.test.d.ts +1 -0
  1113. package/dist/components/generative/index.d.ts +11 -0
  1114. package/dist/components/generative/index.js +9 -0
  1115. package/dist/components/generative/registry.d.ts +43 -0
  1116. package/dist/components/generative/registry.js +325 -0
  1117. package/dist/components/generative/resolvers.d.ts +35 -0
  1118. package/dist/components/generative/resolvers.js +93 -0
  1119. package/dist/components/generative/schema.generated.d.ts +2 -0
  1120. package/dist/components/generative/schema.generated.js +4362 -0
  1121. package/dist/components/generative/schemaTypes.d.ts +30 -0
  1122. package/dist/components/generative/streaming.d.ts +39 -0
  1123. package/dist/components/generative/streaming.js +283 -0
  1124. package/dist/components/generative/streaming.test.d.ts +1 -0
  1125. package/dist/components/generative/tools.d.ts +21 -0
  1126. package/dist/components/generative/tools.js +54 -0
  1127. package/dist/components/generative/tools.test.d.ts +1 -0
  1128. package/dist/components/generative/types.d.ts +41 -0
  1129. package/dist/components/generative/useGenerativeStream.d.ts +37 -0
  1130. package/dist/components/generative/useGenerativeStream.js +37 -0
  1131. package/dist/components/generative/validate.d.ts +24 -0
  1132. package/dist/components/generative/validate.js +351 -0
  1133. package/dist/components/generative/validate.test.d.ts +1 -0
  1134. package/dist/components/layout/AppShell/AppShell.d.ts +10 -0
  1135. package/dist/components/layout/AppShell/AppShell.js +85 -0
  1136. package/dist/components/layout/AppShell/AppShell.theme.d.ts +3 -0
  1137. package/dist/components/layout/AppShell/AppShell.theme.js +42 -0
  1138. package/dist/components/layout/AppShell/AppShell.types.d.ts +127 -0
  1139. package/dist/components/layout/AppShell/AppShellContext.d.ts +14 -0
  1140. package/dist/components/layout/AppShell/AppShellContext.js +20 -0
  1141. package/dist/components/layout/AppShell/AppShellFooter.d.ts +3 -0
  1142. package/dist/components/layout/AppShell/AppShellFooter.js +12 -0
  1143. package/dist/components/layout/AppShell/AppShellHeader.d.ts +3 -0
  1144. package/dist/components/layout/AppShell/AppShellHeader.js +12 -0
  1145. package/dist/components/layout/AppShell/AppShellMain.d.ts +3 -0
  1146. package/dist/components/layout/AppShell/AppShellMain.js +20 -0
  1147. package/dist/components/layout/AppShell/AppShellRightPanel.d.ts +3 -0
  1148. package/dist/components/layout/AppShell/AppShellRightPanel.js +17 -0
  1149. package/dist/components/layout/AppShell/AppShellSidebar.d.ts +3 -0
  1150. package/dist/components/layout/AppShell/AppShellSidebar.js +17 -0
  1151. package/dist/components/layout/AppShell/AppShellTopbar.d.ts +3 -0
  1152. package/dist/components/layout/AppShell/AppShellTopbar.js +12 -0
  1153. package/dist/components/layout/AppShell/index.d.ts +3 -0
  1154. package/dist/components/layout/FormLayout/FormLayout.d.ts +0 -2
  1155. package/dist/components/layout/FormLayout/FormLayout.js +14 -6
  1156. package/dist/components/layout/FormLayout/FormLayout.theme.js +2 -5
  1157. package/dist/components/layout/FormLayout/FormLayout.types.d.ts +9 -27
  1158. package/dist/components/layout/FormLayout/FormLayoutSection.js +9 -2
  1159. package/dist/components/layout/FormLayout/index.d.ts +1 -1
  1160. package/dist/components/layout/Grid/Grid.d.ts +3 -0
  1161. package/dist/components/layout/Grid/Grid.js +58 -0
  1162. package/dist/components/layout/Grid/Grid.theme.d.ts +2 -0
  1163. package/dist/components/layout/Grid/Grid.theme.js +35 -0
  1164. package/dist/components/layout/Grid/Grid.types.d.ts +71 -0
  1165. package/dist/components/layout/Grid/index.d.ts +3 -0
  1166. package/dist/components/layout/Section/Section.d.ts +3 -0
  1167. package/dist/components/layout/Section/Section.js +19 -0
  1168. package/dist/components/layout/Section/Section.theme.d.ts +2 -0
  1169. package/dist/components/layout/Section/Section.theme.js +10 -0
  1170. package/dist/components/layout/Section/Section.types.d.ts +34 -0
  1171. package/dist/components/layout/Section/index.d.ts +3 -0
  1172. package/dist/components/layout/Stack/Stack.d.ts +3 -0
  1173. package/dist/components/layout/Stack/Stack.js +27 -0
  1174. package/dist/components/layout/Stack/Stack.theme.d.ts +2 -0
  1175. package/dist/components/layout/Stack/Stack.theme.js +10 -0
  1176. package/dist/components/layout/Stack/Stack.types.d.ts +46 -0
  1177. package/dist/components/layout/Stack/index.d.ts +3 -0
  1178. package/dist/components/layout/index.d.ts +4 -1
  1179. package/dist/components/layout/index.js +10 -0
  1180. package/dist/generative.schema.json +4360 -0
  1181. package/dist/hooks/index.d.ts +4 -0
  1182. package/dist/hooks/useClickOutside.d.ts +10 -4
  1183. package/dist/hooks/useClickOutside.js +45 -24
  1184. package/dist/hooks/useDarkMode.d.ts +1 -0
  1185. package/dist/hooks/useDarkMode.js +43 -0
  1186. package/dist/hooks/useElapsedTime.d.ts +28 -0
  1187. package/dist/hooks/useElapsedTime.js +37 -0
  1188. package/dist/hooks/useFocusTrap.js +1 -0
  1189. package/dist/hooks/useFormStateMachine.d.ts +1 -1
  1190. package/dist/hooks/useIsClient.js +1 -0
  1191. package/dist/hooks/useMediaQuery.d.ts +5 -0
  1192. package/dist/hooks/useMediaQuery.js +22 -0
  1193. package/dist/hooks/useNetworkStatus.d.ts +0 -4
  1194. package/dist/hooks/useNetworkStatus.js +2 -5
  1195. package/dist/hooks/useOverlay.d.ts +2 -0
  1196. package/dist/hooks/useOverlay.js +39 -4
  1197. package/dist/hooks/useScaleBackground.js +6 -2
  1198. package/dist/hooks/useSelectPortal.d.ts +20 -2
  1199. package/dist/hooks/useSelectPortal.js +180 -58
  1200. package/dist/hooks/useSlidingNumber.js +1 -0
  1201. package/dist/hooks/useStreamingSSE.d.ts +0 -5
  1202. package/dist/hooks/useStreamingSSE.js +1 -5
  1203. package/dist/hooks/useTypewriter.js +1 -0
  1204. package/dist/index.d.ts +1 -2
  1205. package/dist/index.js +60 -72
  1206. package/dist/registry.json +12043 -0
  1207. package/dist/shadcn-compat.css +80 -0
  1208. package/dist/styles.css +1 -1
  1209. package/dist/test/render.d.ts +11 -0
  1210. package/dist/test/setup.d.ts +1 -0
  1211. package/dist/theme/SurfaceContext.d.ts +98 -0
  1212. package/dist/theme/SurfaceContext.js +114 -0
  1213. package/dist/theme/ThemeContext.js +19 -0
  1214. package/dist/theme/animations.d.ts +75 -0
  1215. package/dist/theme/animations.js +132 -0
  1216. package/dist/theme/index.d.ts +5 -0
  1217. package/dist/theme.css +28 -0
  1218. package/dist/themes/ember.css +131 -0
  1219. package/dist/themes/iris.css +94 -0
  1220. package/dist/themes/jade.css +139 -0
  1221. package/dist/tools.json +4498 -0
  1222. package/dist/utils/actionQueue.d.ts +0 -4
  1223. package/dist/utils/actionQueue.js +1 -4
  1224. package/dist/utils/cn.js +21 -1
  1225. package/dist/utils/colorUtils.d.ts +53 -0
  1226. package/dist/utils/colorUtils.js +90 -0
  1227. package/dist/utils/dateUtils.js +81 -15
  1228. package/dist/utils/formatUtils.d.ts +10 -0
  1229. package/dist/utils/formatUtils.js +24 -0
  1230. package/dist/utils/index.d.ts +3 -1
  1231. package/dist/utils/paletteGenerator.d.ts +46 -0
  1232. package/dist/utils/performanceMonitor.js +1 -0
  1233. package/dist/utils/smoothScrollUtils.js +1 -0
  1234. package/dist/utils/stateMachine.d.ts +4 -4
  1235. package/package.json +87 -33
  1236. package/src/global.scss +1025 -0
  1237. package/src/styles/theme.css +1126 -0
  1238. package/tailwind.preset.cjs +60 -13
  1239. package/dist/components/ai/ApprovalCard/ApprovalCard.d.ts +0 -3
  1240. package/dist/components/ai/ApprovalCard/ApprovalCard.js +0 -15
  1241. package/dist/components/ai/ApprovalCard/ApprovalCard.theme.d.ts +0 -13
  1242. package/dist/components/ai/ApprovalCard/ApprovalCard.theme.js +0 -15
  1243. package/dist/components/ai/ApprovalCard/ApprovalCard.types.d.ts +0 -43
  1244. package/dist/components/ai/ApprovalCard/index.d.ts +0 -2
  1245. package/dist/components/ai/MessageHistory/MessageHistory.d.ts +0 -18
  1246. package/dist/components/ai/MessageHistory/MessageHistory.js +0 -97
  1247. package/dist/components/ai/MessageHistory/MessageHistory.theme.d.ts +0 -2
  1248. package/dist/components/ai/MessageHistory/MessageHistory.theme.js +0 -8
  1249. package/dist/components/ai/MessageHistory/MessageHistory.types.d.ts +0 -94
  1250. package/dist/components/ai/MessageHistory/index.d.ts +0 -3
  1251. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.d.ts +0 -10
  1252. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.animations.js +0 -47
  1253. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.d.ts +0 -20
  1254. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.js +0 -55
  1255. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.d.ts +0 -2
  1256. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +0 -20
  1257. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.types.d.ts +0 -67
  1258. package/dist/components/ai/ThinkingIndicator/index.d.ts +0 -3
  1259. package/dist/components/charts/shared/BarRenderer/index.d.ts +0 -3
  1260. package/dist/components/charts/shared/ChartContainer/ChartContainer.d.ts +0 -85
  1261. package/dist/components/charts/shared/ChartContainer/index.d.ts +0 -3
  1262. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.d.ts +0 -7
  1263. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +0 -18
  1264. package/dist/components/charts/shared/LineRenderer/index.d.ts +0 -2
  1265. package/dist/components/core/Accordion/AccordionContent.d.ts +0 -3
  1266. package/dist/components/core/Button/Button.animations.d.ts +0 -5
  1267. package/dist/components/core/Card/CardContent.d.ts +0 -3
  1268. package/dist/components/core/Card/CardContent.js +0 -11
  1269. package/dist/components/core/Carousel/CarouselContent.d.ts +0 -4
  1270. package/dist/components/core/ContextMenu/ContextMenuContent.d.ts +0 -6
  1271. package/dist/components/core/ContextMenu/ContextMenuSubContent.d.ts +0 -6
  1272. package/dist/components/core/Drawer/DrawerContent.d.ts +0 -5
  1273. package/dist/components/core/Loader/Loader.d.ts +0 -24
  1274. package/dist/components/core/Loader/Loader.js +0 -57
  1275. package/dist/components/core/Loader/Loader.theme.d.ts +0 -27
  1276. package/dist/components/core/Loader/Loader.theme.js +0 -60
  1277. package/dist/components/core/Loader/Loader.types.d.ts +0 -71
  1278. package/dist/components/core/Loader/index.d.ts +0 -2
  1279. package/dist/components/core/Message/MessageContent.d.ts +0 -8
  1280. package/dist/components/core/Pill/Pill.animations.d.ts +0 -32
  1281. package/dist/components/core/Pill/Pill.animations.js +0 -25
  1282. package/dist/components/core/Popover/Popover.animations.js +0 -13
  1283. package/dist/components/core/Popover/PopoverContent.d.ts +0 -7
  1284. package/dist/components/core/Popover/PopoverContent.js +0 -136
  1285. package/dist/components/core/Sidebar/SidebarSubmenu.d.ts +0 -7
  1286. package/dist/components/core/Sidebar/SidebarSubmenu.js +0 -12
  1287. package/dist/components/core/SocialIcon/SocialIcon.d.ts +0 -3
  1288. package/dist/components/core/SocialIcon/SocialIcon.js +0 -30
  1289. package/dist/components/core/SocialIcon/SocialIcon.theme.d.ts +0 -2
  1290. package/dist/components/core/SocialIcon/SocialIcon.theme.js +0 -12
  1291. package/dist/components/core/SocialIcon/SocialIcon.types.d.ts +0 -18
  1292. package/dist/components/core/SocialIcon/index.d.ts +0 -2
  1293. package/dist/components/core/Tabs/TabsContent.d.ts +0 -6
  1294. package/dist/components/effects/MorphingText/MorphingText.d.ts +0 -17
  1295. package/dist/components/effects/MorphingText/MorphingText.js +0 -91
  1296. package/dist/components/effects/MorphingText/MorphingText.types.d.ts +0 -18
  1297. package/dist/components/effects/MorphingText/index.d.ts +0 -2
  1298. package/dist/components/effects/ParallaxSection/ParallaxSection.d.ts +0 -26
  1299. package/dist/components/effects/ParallaxSection/ParallaxSection.js +0 -71
  1300. package/dist/components/effects/ParallaxSection/ParallaxSection.types.d.ts +0 -11
  1301. package/dist/components/effects/ParallaxSection/index.d.ts +0 -2
  1302. package/dist/components/effects/Spotlight/Spotlight.d.ts +0 -36
  1303. package/dist/components/effects/Spotlight/Spotlight.js +0 -112
  1304. package/dist/components/effects/Spotlight/Spotlight.types.d.ts +0 -29
  1305. package/dist/components/effects/Spotlight/index.d.ts +0 -2
  1306. package/dist/components/effects/SpotlightBorder/SpotlightBorder.d.ts +0 -18
  1307. package/dist/components/effects/SpotlightBorder/SpotlightBorder.js +0 -214
  1308. package/dist/components/effects/SpotlightBorder/SpotlightBorder.types.d.ts +0 -61
  1309. package/dist/components/effects/SpotlightBorder/index.d.ts +0 -2
  1310. package/dist/components/effects/StickyScroll/StickyScroll.d.ts +0 -30
  1311. package/dist/components/effects/StickyScroll/StickyScroll.js +0 -128
  1312. package/dist/components/effects/StickyScroll/StickyScroll.types.d.ts +0 -19
  1313. package/dist/components/effects/StickyScroll/index.d.ts +0 -2
  1314. package/dist/components/forms/ColorPicker/ColorPickerContent.d.ts +0 -7
  1315. package/dist/components/forms/CronInput/CronInput.d.ts +0 -3
  1316. package/dist/components/forms/CronInput/CronInput.js +0 -107
  1317. package/dist/components/forms/CronInput/CronInput.theme.d.ts +0 -6
  1318. package/dist/components/forms/CronInput/CronInput.theme.js +0 -84
  1319. package/dist/components/forms/CronInput/CronInput.types.d.ts +0 -98
  1320. package/dist/components/forms/CronInput/CronInput.utils.d.ts +0 -67
  1321. package/dist/components/forms/CronInput/CronInput.utils.js +0 -505
  1322. package/dist/components/forms/CronInput/index.d.ts +0 -4
  1323. package/dist/components/forms/DatePicker/DatePickerContent.d.ts +0 -7
  1324. package/dist/components/forms/TransferList/TransferList.animations.d.ts +0 -10
  1325. package/dist/components/forms/TransferList/TransferList.animations.js +0 -32
  1326. package/dist/components/forms/TransferList/TransferList.d.ts +0 -28
  1327. package/dist/components/forms/TransferList/TransferList.js +0 -199
  1328. package/dist/components/forms/TransferList/TransferList.theme.d.ts +0 -6
  1329. package/dist/components/forms/TransferList/TransferList.theme.js +0 -60
  1330. package/dist/components/forms/TransferList/TransferList.types.d.ts +0 -101
  1331. package/dist/components/forms/TransferList/index.d.ts +0 -3
  1332. package/dist/components/layout/FormLayout/FormLayoutBody.d.ts +0 -3
  1333. package/dist/components/layout/FormLayout/FormLayoutBody.js +0 -91
  1334. package/dist/components/layout/FormLayout/FormLayoutHeader.d.ts +0 -3
  1335. package/dist/components/layout/FormLayout/FormLayoutHeader.js +0 -12
  1336. package/dist/components/layout/PageLayout/PageLayout.d.ts +0 -7
  1337. package/dist/components/layout/PageLayout/PageLayout.js +0 -33
  1338. package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +0 -2
  1339. package/dist/components/layout/PageLayout/PageLayout.theme.js +0 -10
  1340. package/dist/components/layout/PageLayout/PageLayout.types.d.ts +0 -39
  1341. package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +0 -3
  1342. package/dist/components/layout/PageLayout/PageLayoutContent.js +0 -12
  1343. package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +0 -3
  1344. package/dist/components/layout/PageLayout/PageLayoutHeader.js +0 -12
  1345. package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +0 -3
  1346. package/dist/components/layout/PageLayout/PageLayoutSidebar.js +0 -12
  1347. package/dist/components/layout/PageLayout/index.d.ts +0 -3
  1348. package/dist/icons/Icon.d.ts +0 -24
  1349. package/dist/icons/Icon.js +0 -30
  1350. package/dist/icons/Index.d.ts +0 -16
  1351. package/dist/icons/core/ChevronUpDown.d.ts +0 -1
  1352. package/dist/icons/core/ChevronUpDown.js +0 -7
  1353. package/dist/icons/core/DollarIcon.d.ts +0 -1
  1354. package/dist/icons/core/DollarIcon.js +0 -5
  1355. package/dist/icons/core/LockIcon.d.ts +0 -1
  1356. package/dist/icons/core/LockIcon.js +0 -5
  1357. package/dist/icons/core/MinusIcon.d.ts +0 -1
  1358. package/dist/icons/core/MinusIcon.js +0 -7
  1359. package/dist/icons/core/PlusIcon.d.ts +0 -1
  1360. package/dist/icons/core/PlusIcon.js +0 -7
  1361. package/dist/icons/core/SearchIcon.d.ts +0 -1
  1362. package/dist/icons/core/SearchIcon.js +0 -7
  1363. package/dist/icons/core/TickIcon.d.ts +0 -1
  1364. package/dist/icons/core/TickIcon.js +0 -5
  1365. package/dist/icons/core/User.d.ts +0 -1
  1366. package/dist/utils/useClickOutside.d.ts +0 -1
  1367. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.d.ts +0 -0
  1368. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.d.ts +0 -0
  1369. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.types.d.ts +0 -0
  1370. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/index.d.ts +0 -0
  1371. /package/dist/components/core/{SocialIcon → Icon/data}/platforms.d.ts +0 -0
  1372. /package/dist/components/core/{SocialIcon → Icon/data}/platforms.js +0 -0
  1373. /package/dist/components/effects/{SpotlightBorder/SpotlightBorder.types.js → TiltCard/TiltCard.types.js} +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,1281 @@
1
+ # Changelog
2
+
3
+ All notable changes to Flikkui will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.0.0-beta.31] - 2026-07-31
11
+
12
+ ### Breaking Changes
13
+
14
+ - **Icon library swapped: `@heroicons/react` → `@phosphor-icons/react`** — The required icon peer dependency is now Phosphor (`>=2.1.0`); Heroicons is no longer used anywhere in the library. Migration for consumers: `yarn remove @heroicons/react && yarn add @phosphor-icons/react`. **No component API changes** — every icon slot stays `ReactNode`, so icons you pass in (from any library) keep working; only the *built-in* glyphs (chevrons, dismiss ✕, check marks, status icons, etc.) changed shape from Heroicons to the visually close Phosphor equivalents at `regular` weight (`bold` where the old icons used `strokeWidth≥2`, replacing the old `24/solid` uses — one consistent weight voice). Rationale: the Figma design kit standardised on the Phosphor library, and this aligns code with design 1:1. Bundle note: Phosphor modules carry all six weights (~3–6× per icon, ~10–15 KB gzipped total for the ~25 built-in chrome icons); the generative icon vocabulary (`DEFAULT_ICONS`) keeps its library-agnostic names, so generative specs and `generative.schema.json` are unchanged.
15
+
16
+ - **Color role `neutral` renamed to `mono`** — The gray/low-emphasis color role is now `mono` everywhere: the prop value (`color="mono"` on Button, Badge, Alert, Toast, KPI, Metric, Link, Spinner, CustomCursor), the `SemanticColor` / `ButtonColor` unions, and the CSS variables (`--color-mono-50…950`, `--color-mono`, `--color-mono-contrast`). The old name collided with Tailwind's own `neutral` color palette — mapping `neutral` in `tailwind.preset.cjs` shadowed Tailwind's real neutral so consumers couldn't reach it, and it blocked the goal of every role being usable as a shorthand (`bg-mono`, `bg-primary`, …) without stealing a Tailwind palette name. The preset now maps `mono` and no longer maps `neutral`, so `bg-neutral-*` / `bg-slate-*` / `bg-zinc-*` all resolve to Tailwind's real palettes again. There is **no `neutral` alias** at the prop level. Migration: replace `color="neutral"` → `color="mono"` and `var(--color-neutral-*)` → `var(--color-mono-*)`. Note: `--color-neutral-*` still resolves (to Tailwind's own neutral, a near-identical gray in the default theme) but no longer tracks the themed role — use `--color-mono-*` for the role.
17
+ - **Charts — ~25 dead props removed from the public API** — `BarChart`, `StackedBarChart` and `AreaChart` each declared `extends StandardVisualProps` with no `Omit`. That interface is the *union* of every chart's visual props, so each chart inherited the others': they type-checked, appeared in the generative schema (an LLM could emit them), and were never read. `BaseChartProps` doesn't extend `HTMLAttributes` and the spread targets are plain `<div>`s, so they couldn't even be forwarded — `<BarChart curved />` reached a div as an unknown attribute. Each chart's props are now narrowed with `Omit` to what it implements, matching what `LineChart`/`ComboChart`/`HorizontalBarChart` already did. Removed:
18
+ - **`BarChart`** — `orientation`, `curved`, `curveType`, `showDots`, `fillOpacity`, `showStroke`, `stacked`, `dotRadius`, `cellRadius`, `strokeWidth`. For horizontal bars use the new `HorizontalBarChart` (`orientation` was a second, non-functional way to ask for the same thing).
19
+ - **`StackedBarChart`** — the same ten, plus `gap` (segment separation is a fixed hairline, not a tunable) and `radius` (its `@deprecated` → `barRadius` mapping was never implemented, so unlike `BarChart`/`AreaChart`/`LineChart` it never worked at all).
20
+ - **`AreaChart`** — `barRadius`, `cellRadius`, `gap`.
21
+ - **`ComboChart`** — `fillOpacity`, `showStroke`, `cellRadius`. Its `SeriesType` is `'bar' | 'line'` with no area member, so the area-fill props had nothing to apply to.
22
+ - **`ScatterPlot`** — `variant`. Scatter points are flat single-colour marks; there is no gradient/minimal treatment to select.
23
+ - **`cellRadius` is gone library-wide** — it was declared "for heatmap cells" and `Heatmap` never referenced it.
24
+ - **Axis family** — `color` and `fontSize` are removed from `BaseAxisProps` and `AxisTickProps` (so from `XAxis`, `YAxis`, `ValueXAxis`, `CategoryYAxis`), and `color` from `HorizontalGrid`. Axis lines and labels are themed via CSS variables (`stroke-[var(--color-border)]`); `color` was accepted, defaulted to `"currentColor"`, and ignored, and `fontSize` had no implementation anywhere. Restyle an axis with `className`, or change the token.
25
+ - **Charts — `CHART_DEFAULTS` and the exported `*_DEFAULTS` objects lost their dead keys** — each `*_DEFAULTS` spread `...CHART_DEFAULTS`, so every chart published a default for every other chart's props. They now list only what their component reads. `CHART_DEFAULTS` also drops `cellRadius`, `orientation`, and `radius` (nothing consulted the last one — the deprecated `radius` *prop* still works on `BarChart`/`AreaChart`/`LineChart`, falling back to `barRadius`/`dotRadius`). These objects are publicly exported, so reads like `BAR_CHART_DEFAULTS.curved` no longer compile.
26
+ - **`AvatarGroup` — `spacing` prop removed** — The group now renders one fixed overlap (the former `"normal"`, `-ml-3`). The three-value scale was a styling axis with an inverted, confusing vocabulary — `"tight"` meant *more* overlap (`-ml-5`) and `"loose"` meant *less* (`-ml-2`), the reverse of how the words read — and it duplicated what `className` already does better. The `AvatarGroupSpacing` type is no longer exported. Migration: drop the prop; to restore a custom overlap, pass it through `className` (e.g. `className="[&>*+*]:-ml-5"`). Internal call sites that used `"loose"`/`"tight"` (`CalendarEvent`, Popover stories) now use the single default, so their avatars sit fractionally differently.
27
+ - **`Segmented` — default width is now fit-content** — The control previously stretched to fill its parent by default (its `flex` root is block-level, so it spanned full width regardless of the `block` prop, which was effectively a no-op). It now shrinks to fit its segments by default, and `block` genuinely opts into full width — matching the documented `block` contract and the iOS/shadcn segmented-control convention. Migration: add `block` to any `Segmented` that should span its container.
28
+ - **Control heights and button padding retuned — every form control and Button changes size** — No API change, but the default values move, so consumer layouts shift. Heights (`--form-min-h-sm/md/lg`) go from **32/40/48px → 32/36/40px**, an even 4px step where the old ramp jumped 8px; button horizontal padding (`--button-px-sm/md/lg`) goes from **12/12/20px → 10/12/14px**, a consistent +2 ramp (`sm` and `md` previously collided at 12px and `lg` was an outlier). This lands the ramp on the same scale Untitled UI and shadcn use, with our `lg` (40px) at the industry-standard default height. Blast radius is wider than the token names suggest: `--button-min-h-*` and `--button-icon-size-*` both alias `--form-min-h-*`, so this resizes every form control, every Button, and every icon-only Button. Icon-only `sm` stays 32×32, clear of WCAG 2.2 SC 2.5.8's 24×24 floor. `--form-px-*` is deliberately untouched (12/14/16) — controls get shorter but keep their horizontal padding. To keep the old sizing, override the three height tokens in your own CSS.
29
+ - **`--radius-base` default is now 8px** (was 12px) — Every derived radius in the library scales from this one token, so the default theme is uniformly less round. Set `--radius-base: 12px` to restore the previous look.
30
+ - **Default chart series colors are no longer the semantic status palette** — Multi-series charts previously drew from `primary`/`warning`/`success`/`danger` at two lightness steps, which meant a categorical series could read as a *status* (a red series looking like an error). They now resolve from the new dedicated `--color-chart-1…5` palette. An explicit `config[key].color` is unaffected and still wins, including the bare-token shorthand (`"success"` → `var(--color-success)`). To restore the old look, set the colors explicitly in `config`, or override `--color-chart-1…5`.
31
+ - **`--hero-card-radius` retired** — `HeroCard` had its own radius token at 3× base (vs `Card`'s 1.5×) on the belief that it needed a rounder look. It is a *presentation* of Card, not a distinct container, so it now shares `--card-radius`. Per-instance overrides still work via `className`. Migration: if you set `--hero-card-radius`, move that value onto the HeroCard's `className` or override `--card-radius`.
32
+
33
+ ### Added
34
+
35
+ - **AI — `AgentStatus`, `Reasoning` and `SourceCitation`** (`@flikk/ui/ai`) — `AgentStatus` is the single agent-activity-row primitive and owns the reasoning disclosure through a `mode` prop, so one component covers the three ways a chat surfaces the same row: a live status line (`Thinking… 4s`), a collapsible "show your work", and each step inside it. `mode` and the lifecycle `status` stay **orthogonal** — a reasoning block is itself active or settled. The reasoning body is not always a step list: `steps={[{label,status,duration}]}` renders an `<ol>` of nested rows, while `children` render **raw**, so prose and markdown stay valid HTML. `Reasoning` is a thin preset over `mode="reasoning"` (`Reasoning.Step` aliases a status row). `SourceCitation` renders inline citation chips with preview popovers. Both share one `StatusIndicator` glyph, whose active spinner is a CSS `animate-spin` comet — motion only does enter/exit, since a single-value `rotate` target flattens to a static transform. New public hook **`useElapsedTime`** powers `startedAt`: the duration ticks on its own while active, takes one exact final reading on settle, then freezes, and the clock is only read inside an effect so there is no `Date.now()` in render to hydrate-mismatch.
36
+ - **`HorizontalBarChart`** (`@flikk/ui/charts`) — Categories run down the left, values extend right. It shares `BarChart`'s data model and none of its axis wiring (the value/category axes are swapped), so it ships as its own component rather than an `orientation` flag. Use it when category names are long or numerous, or when the chart ranks items — a column chart cannot fit "United Kingdom" under its axis. Three new shared axis primitives came with it, because the axis layer had no horizontal support at all: `ValueXAxis` (a value axis rendered horizontally, Heckbert nice ticks), `CategoryYAxis` (a category axis rendered vertically), and `VerticalGrid`. 🔴 Note the axis family splits by what an axis **measures**, not which way it points — `XAxis` is a category axis despite being horizontal.
37
+ - **`LollipopChart`** (`@flikk/ui/charts`) — Stem-and-dot marks with a staggered entrance, an always-on stem gradient + soft glow, hover/keyboard-focus/pinned-selection states (controlled and uncontrolled `selected`/`defaultSelected`), and a dot↔pill morph that animates a single `rx`-interpolating `motion.rect`. Uses the shared `XAxis` and `X_AXIS_MARGIN` so its baseline aligns with every other chart.
38
+ - **`Button` — `iconStart` / `iconEnd`** — Button had no icon prop at all: `children` covers icons via the flex gap, which holds for hand-written code, but **a generative UI spec is JSON** — it can *name* an icon, never pass a React element — so an LLM literally could not put an icon on a button. This is the "one contract, two front doors" pattern §2 already established for collection `items` arrays and Card's flat `title`/`subtitle` slot-props. Button deliberately takes the **icon slots only** and *not* `contentStart`/`contentEnd`: an icon can be named, an arbitrary `ReactNode` cannot, so content slots would buy the generative path nothing. Composite stays the idiom and every existing call site is untouched — pass neither slot and `children` renders exactly as before. `theme.iconSizes` uses `[&>svg]:size-*` so a bare `<SearchIcon />` with no `className` still lands at the right size per button size (14/16/20 for sm/md/lg); a caller's own `className` still wins. The icon wrappers are `aria-hidden`, so the accessible name stays the label alone.
39
+ - **`Tooltip` — controlled mode** — New `isOpen` / `defaultIsOpen` / `onOpenChange` props, plus a `recalcTrigger` escape hatch for triggers that move without firing a scroll or resize event (a dragged `Slider` thumb, for instance). `aria-describedby` is now merged with any existing value instead of clobbering it.
40
+ - **`Modal` — `darkMode` prop** — Mirrors `Button`'s: applies the `dark` class to the modal container so a modal can render dark while the page is light.
41
+ - **`InputAddress` — `showCountrySelector` / `showPostalCode`** — Lets either field be hidden for address formats that don't use them. Because the fields render as one merged perimeter, the corner radii are position-aware: the last visible field carries the bottom corners, and a lone bottom field spans the full row instead of splitting into two columns.
42
+ - **`InputOTP` — `charset` prop (`numeric | alphanumeric`)** — Drives the sanitizer, `pattern` and `inputMode` together, so the on-screen keyboard, the accepted characters and the validation hint can't drift apart.
43
+ - **`OfflineIndicator` — `action` prop** — Takes `{ label, onClick }` for a link-styled button (mirroring `Toast`'s `action`) or any `ReactNode`. Also gains full-bleed banner positions and reduced-motion fallback variants.
44
+ - **`CommandPalette` — `onCommandSelect(id)`** — Fires alongside each command's own `onSelect`, so a single top-level callback can observe selection (this is what lets the generative registry bind commands through the standard action mechanism instead of synthesizing per-item callbacks).
45
+ - **`Checkbox` / `Radio` — selection ripple** — A shared ripple animation on check, with reduced-motion coverage.
46
+ - **Preset theme "Ember"** — A third shipped theme: orange primary, zinc neutrals, Plus Jakarta Sans, pill geometry and a 24px base radius. Registered in the Storybook theme switcher alongside Iris and Jade.
47
+ - **Four new themeable token systems** — (1) **Per-container padding**: `--card-px/py`, `--modal-px/py`, `--drawer-px/py`, `--metric-content-p-sm/md/lg`, so a theme can make the brand-visible containers roomier or tighter without touching every padded element in the library. (2) **Three-tier radius ceilings**: `--surface-radius-cap-xs/sm/lg` wrap every content-bearing container's derived radius in a `min()`, so a theme chasing pill *controls* at a large `--radius-base` can't round a padded container past what its own padding can absorb (a curve-vs-padding collision that visually eats into header text). Controls stay uncapped — going fully pill there is correct. (3) **Per-role font sizes**: `--card-title-size`, `--modal-title-size`, `--drawer-title-size`, `--page-heading-title-size`, `--section-title-size`, `--metric-value-size-*`, `--kpi-value-size-*` — `--font-scale` can only resize the *whole* UI, so these let a theme resize a single role. Each defaults to a `--text-*` rung, so `--font-scale` still flows through. (4) **`--color-chart-1…5`**: a categorical chart palette decoupled from the semantic status colors. Sixteen components whose radius/padding/title-size had drifted into a bare uncapped `calc()` were wired onto these systems.
48
+ - **Generative UI — curated set expanded from 32 to 66 components** — Forms were entirely uncurated before this (Input, Select, Combobox, Textarea, Checkbox, Switch, Slider, InputOTP, TimePicker, InputDate, InputCounter, InputTag), joined by 16 more Core/Data Display entries (Spinner, Skeleton, Link, Kbd, DotSeparator, Icon, Pagination, Message, MenuItem, Calendar, GanttChart, AspectRatio, ButtonGroup, Masonry, ScrollArea, HeroCard), `Tree` and `CommandPalette`, and the five remaining charts the manifest had deferred as "bespoke prop systems" (RadarChart, ScatterPlot, FunnelChart, ActivityRings, Heatmap). Notable: `Calendar`'s schema carries ISO strings with a `render:` wrapper coercing string→Date inbound and Date→ISO outbound; `CommandPalette` forces `isOpen: true` (it renders through the shared `Overlay`, so a spec node is always a full-screen modal) and supports only the flat `CommandItem[]` shape.
49
+ - **`flikkui init` CLI** (separate `flikkui` package, `npx flikkui init`) — Implements the setup command the installation docs have long referenced. Detects framework, package manager and Tailwind; installs `@flikk/ui@beta` plus any missing required peers; injects the `styles.css` (and optional preset theme) import; and wires the Tailwind v4 dark variant. Zero runtime dependencies. Every project ends in exactly one explicit outcome — auto-wired (Next App/Pages Router, Vite), a named-framework manual snippet (CRA, Remix/RR7, Gatsby, Astro), a generic snippet, or a refusal with a stated reason (no `package.json`, React Native/Expo, React < 18). Theme imports are capability-checked against the installed package version. 128 unit tests + fixtures. Tracked in `packages/cli/CHANGELOG.md`.
50
+ - **Figma design-kit generator (`yarn build:figma-tokens`)** — Design-ops tooling, deliberately **not** wired into `yarn build`. Parses `src/styles/theme.css` and emits `dist/figma-variables.json`: variables split across `Flikk/Primitives` (single mode) and `Flikk/Semantic` (Light/Dark), plus shadow effect styles derived from the `--elevation-surface-*` ladder. Mode-dependence is **derived, not curated** — a token is Semantic iff `.dark` overrides it *or it transitively references something that is*. Unknown value forms are a **hard failure (exit 1), never a guess**: the evaluator understands exactly four computed families, so adding a new one must break this build. See `docs/figma-component.md`.
51
+
52
+ - **`Avatar` / `AvatarGroup` — `size` now accepts an exact pixel number** — `size={30}` sizes the circle to exactly 30px alongside the existing `"xs" | "sm" | "md" | "lg" | "xl"` rungs (`AvatarSize = AvatarSizeToken | number`; the new `AvatarSizeToken` type is exported). The type already admitted `number` but no implementation backed it: the theme's `Record<AvatarSize, string>` lookup returned `undefined` for a number, so `size={30}` type-checked and rendered an avatar with **no size class at all**. This is a fix as much as a feature. Note that `className="size-[30px]"` is not an equivalent workaround — the shipped `styles.css` only contains classes found in this library's own source and `tailwindcss` is an optional peer, so an arbitrary size utility resolves to nothing for consumers who don't run Tailwind themselves. Geometry is exact; decorations (glyph, status dot, verified badge, text gap) snap to the nearest rung (30 → `sm`). Token sizes render byte-for-byte identical to before. Implementation note: the circle now always carries the class `size-[var(--avatar-size)]` with the value supplied inline via the `--avatar-size` custom property, so anything targeting the old per-token `size-[var(--avatar-size-md)]` class in CSS will no longer match.
53
+ - **Preset themes (`flikkui/themes/*`) + first theme "Iris"** — The library now ships swappable preset theme files: plain CSS-variable override files imported after `styles.css` (`import 'flikkui/themes/iris.css'`) — no config, no JS, no rebuild. The default look is unchanged and needs no import ("Neutral" is baked into `styles.css`). **Iris** restyles the whole library: Tailwind indigo primary ramp, slate-tinted neutrals and borders, Bricolage Grotesque type, and a rounder 16px base radius — with its own dark-mode values (theme files carry explicit `.dark` overrides inside `@layer theme` so dark mode composes correctly). Storybook gets a toolbar theme switcher (paintbrush icon) that live-swaps themes, including combined with dark mode. Custom themes are the same file format — see the Preset themes section in `docs/INSTALLATION.md`. A second preset, **Jade**, reshapes geometry and type as well as color: Tailwind emerald primary, warm stone neutrals (hueless in dark), Poppins on a 14px text scale, and pill-leaning controls (`--radius-base: 20px`, taller form/button heights with wider padding).
54
+ - **Chip-tier padding tokens — themeable Badge / Pill / Tag / Kbd spacing** — The four small "chip" controls now read their padding from CSS variables instead of hardcoded Tailwind literals, so a theme can grow (or tighten) them alongside its buttons and inputs — the same reasoning as the per-component container padding and type-role tokens (a global knob can't make *only* badges roomier). New tokens: `--badge-px-sm/md`, `--badge-py-sm/md`, `--badge-pill-px-sm/md`; `--pill-px-sm/md/lg`, `--pill-py-sm/md/lg`; `--tag-px-sm/md`, `--tag-pl-md`, `--tag-py-sm/md`; `--kbd-px-sm/md`. Defaults are byte-for-byte identical to the previous literals, so the default theme is unchanged. Radius needs no new token — `--badge-radius` now derives from `--radius-base` (`calc(var(--radius-base) * 0.75)`, was a hardcoded `6px` that silently ignored the base, so a large `--radius-base` now rounds badges too), Kbd already derived, and Pill/Tag are intrinsic `rounded-full`. The `jade` and `ember` presets set these so their badges/pills/tags match their spacious geometry. Chip **gap** and Kbd **height** stay literal for now.
55
+ - **`--font-scale` — one-knob type scale** — The base theme now defines the whole Tailwind `--text-xs…9xl` ramp as `calc(<tailwind default> * var(--font-scale))`. At the default `1` every utility is byte-for-byte Tailwind (`text-sm` = 14px); a theme or consumer sets a single factor (Jade: `0.875` → 14px-based text) and the entire ramp plus line-heights follow. Each step is `round()`ed to a whole pixel so scaled sizes stay clean (13px, not 13.125px). Text-only — spacing and px geometry tokens are unaffected.
56
+ - **Control type-size tokens — themeable Button / Input / Segmented label size** — The control tier had every *box* axis tokenised (`--form-min-h-*`, `--form-px/py-*`, `--form-radius`) while its *type* stayed a hardcoded `text-sm` / `text-base` in each `.theme.ts`, so a theme could retune a control's height and padding but never its label. New tokens: `--form-text-size-sm/md/lg` with `--button-text-size-*` and `--segmented-text-size-*` aliasing it (mirroring how `--button-min-h-*` already aliases `--form-min-h-*`), each paired with a `--*-line-height-*` token. Consumed by Button, Segmented, and — via `formsBaseTheme.sizes.*.text` — Input, Select, Textarea, Combobox, DatePicker, DateRangePicker, TimePicker and RichTextEditor. Defaults are byte-for-byte identical to the literals they replaced (sm/md 14px/20px, lg 16px/24px) and each points at a `--text-*` rung, so `--font-scale` still flows through and the default theme is visually unchanged apart from the Segmented fix below. Note the ramp is deliberately **two rungs across three sizes** — sm and md share 14px and only lg steps to 16px; the small sizes are separated by box, not type.
57
+ - **`InputOTP` — `size` prop (`sm | md | lg | xl`)** — `InputOTP` was the only text-entry form control without one, so an OTP could not be lined up with an adjacent `sm` or `lg` `Input`. `sm`/`md`/`lg` resolve to the same heights as the equivalent `Input` size; **`xl` is a new OTP-only rung** (48px in the default theme) for standalone verification screens where the code is the focus of the page. Defaults to `lg`. New tokens: `--otp-slot-size-sm/md/lg/xl`, `--otp-text-size-*` and `--otp-line-height-*`. `sm`/`md`/`lg` alias `--form-min-h-*` and `xl` derives from `--form-min-h-lg` (`calc(… * 1.2)`), so all four track a theme that retunes the form ramp — a hardcoded `xl` would have rendered *smaller than `lg`* under the `jade` (36/44/52) and `ember` (40/48/56) presets. The digit type ramp (16/16/18/20px) deliberately runs one rung hotter than form body text: an OTP numeral is a display glyph, not label text. The digit and the caret now scale with the slot; both were previously fixed at 18px and 20px regardless of size.
58
+ - **`DotPattern` — `fadeDirection="center"`** — A new inverse-radial fade: dots stay solid toward the edges and fade out in the center (the opposite of `"radial"`), producing a vignette that keeps the content area behind the pattern clear. Tunable via `fadeSize` like the other directions. `DotPatternFadeDirection` is now `"radial" | "center" | "top" | "bottom" | "left" | "right"`.
59
+
60
+ ### Changed
61
+
62
+ - **`InputOTP` slots are no longer responsive** — They previously stepped from `--form-min-h-md` to `--form-min-h-lg` at the `sm` breakpoint, which cannot coexist with an explicit `size` prop. The default `size="lg"` renders identically to the previous desktop output; narrow viewports now render at the same size rather than one rung smaller, and can opt into `size="sm"` — something that was impossible before. **Breaking for custom themes:** `InputOTPTheme.inputGroupStyle` (a single string) is replaced by `inputGroupSizes` and `charSizes`, both `Record<InputOTPSize, string>`. This only affects consumers passing a custom `theme` to `InputOTP`, and it is a compile-time type error, never a silent visual change.
63
+ - **`--color-neutral` + `--color-neutral-contrast`** — neutral gains the same bare-default machinery as the semantic hues (900 in light, 200 in dark, auto-derived contrast text). `Button`'s filled-neutral now uses the token pair instead of hand-picked rungs + hardcoded `text-white`/`dark:` inversions (its light-mode per-color border classes were also removed — dead code, always beaten by the universal `border-black/25` edge; the live color-matched `dark:border-*` classes remain).
64
+ - **Muted/placeholder/disabled text — one token source, no dark-mode bypasses** — `--color-text-placeholder` and `--color-text-muted` are now alpha-derived from `--color-text-primary` via `color-mix` (40% / 57% light, 40% / 50% dark), so they automatically track the theme's text color in both modes and on any surface. The ~30 hardcoded `dark:text-[var(--color-neutral-N)]` / `dark:placeholder:text-[var(--color-neutral-500)]` classes scattered across forms, CommandPalette, Calendar, Message, Pagination, Sidebar and the date/time pickers are removed — they bypassed the tokens and pinned dark text to neutral ramp rungs, which broke preset themes (an Iris dark placeholder rendered slate-blue; same disease as the Segmented fix below). Dark `--color-text-disabled` is now `neutral-600` (the value every picker was overriding to) instead of `neutral-400`. Visual deltas in the default theme are minor: dark helper text slightly dimmer, dark input icons slightly brighter (the two camps now share one muted value), dark disabled text dimmer.
65
+ - **`Table` — smaller row-expand toggle** — The data-driven expand/collapse control was a full 32px outlined `Button` (form-control height), which read as oversized against row content. It's now a compact ~24px borderless ghost icon button (`variant="ghost"`, `size-6`), matching the conventional table expand affordance. Behavior and a11y labels are unchanged.
66
+ - **`--color-success` default is now the `-600` step** (was `-500`) — matches danger/warning, and the auto-derived white `-contrast` text now passes WCAG AA on filled success surfaces (white on success-500 was ~2.7:1). Filled success Badges/Alerts/Toasts render a slightly darker teal; the full 50–950 ramp is unchanged.
67
+ - **Dark glass gradients moved onto the surface ladder** — `--glass-gradient-outer/inner` dark values now reference `--surface-1/3/4` instead of the deprecated `--color-background-secondary/tertiary` aliases (visually near-identical), so the aliases' scheduled removal can't break `GlassEffect` in dark mode.
68
+ - **`InputOTP` rebuilt around a single native input** — The control was N separate `Input` elements; it is now one invisible native input overlaying the visual slots. This fixes paste-with-separators truncation (`123-456` no longer loses characters) and caret drift, and is what makes the new `charset` prop able to drive sanitizer, `pattern` and `inputMode` from one place. Public API is otherwise unchanged.
69
+ - **`Slider` — drag tooltip rebuilt on the shared `Tooltip`** — The bespoke SVG liquid-lens filter and custom drag bubble are replaced by the shared `Tooltip` (in its new controlled mode, with `recalcTrigger` so the tooltip follows the dragged thumb). The solid glass-look thumb styling moved into the theme file, so it's overridable like every other component's.
70
+ - **`Link` — primary variant tints from the base `--color-primary` token** — Was pinned to the fixed `-600`/`-300` rungs, so it ignored whatever rung a theme parks the token at. Under every shipped preset this resolves to `primary-600` in light — identical to before — and one rung deeper in dark. The default Neutral theme, where primary aliases the mono ramp, renders a darker link than before. The animated underline is also offset 1px so it clears descenders.
71
+ - **Form dropdowns — one option treatment across `Select` / `Combobox` / `Mention` / `InputTag`** — Combobox and InputTag rendered full-bleed square option rows while Select and Mention rendered inset rounded ones. All four already shared `formsBaseTheme.dropdownStyles`; the base simply withheld the two classes the treatment needs, so each call site re-decided it and two got it wrong. The `p-1` container inset and the option's `rounded-[var(--radius-base)]` now live in the shared base — which already assumed this treatment, since it sets `gap-0.5` between rows and draws an inset hairline ring on hover, neither of which reads correctly on a square full-bleed row.
72
+ - **Press/hover feedback consolidated into one shared module** — `src/components/core/shared/interaction.animations.ts` (`createPressVariants` + press/release/hover transitions) is now the single source for Button, Pill and Badge; `Pill.animations.ts` is removed. Press-down is a fast ~80ms tween (feedback must be near-instant), release a stiff spring with slight overshoot. `Alert`, `DatePicker` and `SelectableCard` also drop their one-off transitions for the shared spring presets.
73
+
74
+ ### Removed
75
+
76
+ - **Unused internal theme tokens** — deleted from `theme.css`; never consumed by any component nor documented: `--form-focus-ring-*`, `--form-outline-*`, `--glass-layer-*`, `--segmented-active-bg/-shadow`, `--chat-bubble-border-*`, all `--carousel-*`, the dead `--popover-*` set (shadow, border-width, backdrop-opacity, offsets, max-widths, paddings — `--popover-radius` stays), `--nav-item-min-h/-px/-py` (`--nav-item-radius` stays), the `--shadow-color-*` presets, and `--font-cursive` (its font was only ever loaded inside Storybook).
77
+
78
+ ### Fixed
79
+
80
+ - **`PromptInput` — the invalid focus ring now uses the shared `--color-danger` token** — Its invalid state drew the `ring-4` glow from `--color-danger-500` in light mode, while every other form control (via `formsBaseTheme.states.invalid`) uses `--color-danger` (the 600 rung). Dark mode already agreed on both sides (`--color-danger-500` at 20%), so the two disagreed *only* in light — and the inset danger border on the very same line already used `--color-danger`, making the rule internally inconsistent as well. The light ring is now marginally deeper red and consistent with Input/Select/Textarea/OTP. No API change; the `dark:` value is untouched. Regression test added. This also lets the component share the Figma kit's single `Rings/Invalid` effect style instead of needing a one-off.
81
+ - **`Segmented` — `size="lg"` now steps its label up to 16px** — Segmented's box tokens are straight aliases of the shared form ramp (`--segmented-min-h-*` → `--form-min-h-*`), but its type was pinned to `text-sm` at **all three** sizes, so `lg` grew its height and padding while the label stayed at 14px — out of step with Button and Input, which both step 14px → 16px at `lg`. `lg` labels now render at 16px/24px like every other large control. **The control's height is unchanged** (still 40px; the taller line-height fits inside the existing `min-h`), so this is a type fix, not a layout shift. `sm` and `md` are untouched. The Figma design kit's `Segmented item` `lg` variants were re-pushed to match. Regression test added.
82
+ - **Dead props — five public props were accepted and typed but never read** — each silently did nothing when passed. All five are now implemented, with regression tests:
83
+ - **`ScatterPlot` — `legend`** — inherited from `StandardChartDisplayProps` but never destructured, so the legend was hardcoded to always-render-at-bottom and every value (`"top"`, `"bottom"`, `"none"`) did nothing. It now honours all three, resolved through the same shared `resolveLegendPosition` every other chart uses, satisfying the documented contract that ScatterPlot renders the shared `ChartLegend` from `legend`. **Behavior change:** an omitted `legend` now resolves to `"bottom"` for multi-category data and `"none"` for single-category — so a single-category scatter no longer shows a one-item legend by default. Pass `legend="bottom"` to keep it.
84
+ - **`Modal` — `darkMode`** — documented as applying the `dark` class to the container, but never destructured, so it fell through `...props` into `Overlay` (which doesn't declare it either) and dead-ended. It now applies `dark` to the modal container, matching the existing `Input`/`BarChart`/`LollipopChart` implementations of the same prop.
85
+ - **`Sidebar.Toggle` — `expandIcon` / `collapseIcon`** — destructured but unused; the toggle always rendered its hardcoded chevron. Both are now wired, falling back to the default chevron when omitted. Semantics are **action-based**, matching the button's own aria-label: `expandIcon` shows while the sidebar is *collapsed* (clicking expands), `collapseIcon` while *expanded*. A custom icon renders as-is — the default chevron's 180° flip is only applied to the chevron itself. The JSDoc, which described the opposite (state-based) meaning, was corrected.
86
+ - **`InputAddress` — `showCountrySelector` / `showPostalCode`** — typed but never read (the component has no rest spread, so they dead-ended entirely). Both now hide their field. Because the fields render as one merged perimeter, the radii are position-aware: the last visible field carries the bottom corners, and a lone bottom field spans the full row.
87
+ - **`ScatterPlot` — `gridClassName`** — destructured but unused, while `svgClassName`/`dotClassName`/`axisClassName` all worked. It now styles the grid lines (plumbed through the shared `YAxis`, which draws ScatterPlot's grid), matching `AreaChart`'s existing `gridClassName`.
88
+ - **`tailwind.preset.cjs` — `bg-primary` now matches component colors** — Each semantic color's `DEFAULT` was pinned to a fixed rung (`primary-600`, `success-500`, …), so consumer shorthands like `bg-primary` resolved to a different color than the library's own components (which paint the bare `--color-primary` base — `-900` in the monochrome base theme, `-600` in a colored theme). DEFAULTs now point at the bare `var(--color-*)` base, so `bg-primary` equals what components render and follows the active theme and dark mode. Also pruned deprecated `background-quaternary/quinary` maps, added the surface ladder + `border-secondary`/`border-hover`, and corrected the `--form-radius`/`--button-radius` token names. The `@flikk/ui/theme.css` v4 entry's broken `dist` relative import and a stale `--form-rounded` token in `shadcn-compat.css` were fixed too.
89
+ - **Dark-mode active scrollbar thumb color** — `--ui-scrollbar-thumb-active` used invalid mixed rgb syntax (`rgb(75 85 99, 0.75)`), so the declaration failed at computed-value time and the active thumb lost its intended dark tint. Now `rgb(75 85 99 / 0.75)`.
90
+ - **`Badge` — `iconStart` no longer hugs the edge** — the icon wrapper applied a `-ml-1` optical tuck unconditionally, which cancelled the regular badge's 4px padding and left the icon ~1px from the border. The tuck is now pill-only (pills have the extra `pillSizes` padding to absorb it), mirroring the avatar slot's existing pill/non-pill conditional. Badge width with text-only content is unchanged.
91
+ - **`PromptInput` — model-menu icon stacked above the label** — The model selector passed its icon inside `Dropdown.Item` children, where MenuItem's block-level `truncate` label span (plus Tailwind preflight's `svg { display: block }`) broke it onto its own line. The icon now goes through the proper `startContent` slot and renders inline with the label.
92
+ - **`Dropdown` — menu gets a `max-w-[20rem]` cap** — A long item label stretched the menu unboundedly (MenuItem's `truncate` could never engage without a width bound). Long labels now ellipsize at 320px.
93
+ - **`Dropdown.Trigger` — no longer overrides a `Button` trigger's styling** — The trigger injected a translucent `surface-hover` tint (on hover, and while the menu is open) onto whatever it wrapped. For a *filled* `Button` — which hovers via a `brightness` filter, not a `hover:bg-*` — that tint had nothing to override and instead replaced the solid fill, so a filled trigger (e.g. the chevron half of a filled split button) went see-through/dark on hover and mismatched its sibling. The tint is now skipped for `Button` children (Buttons are self-styled and bring their own hover/active/variant states); plain/custom trigger elements still get it. Fixes the `ButtonGroup` "Split Button" filled example.
94
+ - **`Calendar` — consistent selected & hover styling across single/range modes** — Range start/end days had their own fill/text rules and no hover override, so hovering an endpoint fell through to the generic neutral day-hover (a muddy grey with poor contrast) and looked different from a single-selected day. Endpoints now route through `data-selected`, inheriting the exact same fill, text, top-border, and hover as a single-selected cell (one source of truth for "a selected day"). In-range (between) days no longer carry a bespoke hover either — they use the same base day-hover as normal days, so a hovered cell looks identical whether or not it sits inside a range.
95
+ - **`Table` — jerk at the end of row collapse** — Expanding rows use a height-animating container inside a full-width colspan `<td>`. That cell was picking up ~20px of vertical padding from the table's `[&_td]:py-*` descendant rule (which out-specifies the cell's own `p-0`), so the cell held a ~21px residual height after the animator had already collapsed to 0 — then snapped to 0 when the row unmounted, jerking the rows below. The expanded cell now forces `!p-0` so it tracks the animator down to ~0 (mirrors Accordion, where the animating container carries no padding and the inner content owns it). Padding for expanded content is owned by `expandedRowRender`, as before.
96
+ - **`Segmented` — dark-mode background no longer collides with consumer utilities** — The theme hardcoded raw Tailwind classes (`bg-neutral-100 dark:bg-neutral-900` on the track, `dark:bg-neutral-800` on the sliding indicator). These emit global class names that a consumer's own `bg-neutral-*` utility could override by source order, permanently pinning the control's background to one tone regardless of the `.dark` class. The track now paints from `--color-surface-sunken` and the indicator from `--color-surface` (theme-aware CSS variables, no `dark:` variants), so it follows the theme correctly and can't collide. Visually unchanged. (PER-292)
97
+ - **`Avatar` — status dot stranded outside the circle** — The dot was corner-anchored (`left-0 bottom-0`), but an avatar is a *circle*: its bounding-box corner sits ~41% further from the centre than the edge does, so the dot floated off the arc. It now centres on the circle's 45° point via one proportional rule (`left-[14.6%] bottom-[14.6%]` plus half-translates), which holds at every size including the new arbitrary numeric ones. Three further fixes fell out of the same pass: **(1)** the ring was a flat 2px at every rung, making it proportionally 3.3× heavier on `xs` than `xl` — dot and ring now ramp together, holding the badge's total footprint near 30% of the avatar across the ladder (was 42%→25%); **(2)** the `offline` dot moved off `--color-text-muted` — the text tokens are `color-mix` alpha derivations, so as a *fill* the dot went translucent and the photo showed through; it now uses `--color-mono-500`, the only rung clearing WCAG 1.4.11's 3:1 against its ring in **both** modes; **(3)** `isolate` added to the circle, since `relative` with `z-index: auto` creates no stacking context, so the contents' `z-10` escaped and painted over the sibling status dot.
98
+ - **`Select` — `searchPlaceholder` was ignored** — The prop was declared and documented, but the search input hardcoded `"Search..."`, trapping a user-facing string (every built-in visible string must be overridable). It's now threaded through the Select context to the input. The default was inconsistent too — `SelectProps` documented `"Search..."` while the implementation defaulted to `"Search options..."`; both are `"Search..."` now. This is also what `InputAddress`'s new `showCountrySelector` depended on, since it was already passing `searchPlaceholder` to the country Select.
99
+ - **`Message` — system bubble radius bypassed the surface cap** — It derived from a bare `calc()` on `--radius-base`. It's a tiny, tight-padding chip, so it now takes `--surface-radius-cap-xs`; without the cap, a theme chasing pill controls at a large base rounded the corners past what the bubble's own padding could absorb.
100
+ - **`Metric` — `label` is now optional** — It was required with no reason to be; a metric can legitimately render a value alone. The generative schema is regenerated to match.
101
+ - **Generative — `registry.tsx` was missing `"use client"`** — It renders JSX with a real event handler (Calendar's `render` wraps the underlying `onChange`) but carried no directive, a genuine gap under the RSC deep-import rule. Separately, the `audit-use-client` script's browser-global heuristic was flagging `schema.generated.ts` on the literal word "navigator" inside an unrelated description string; that file is pure JSON-shaped data and is now excluded from the audit rather than given a directive the generator would strip on the next run.
102
+ - **Generative schema was stale for `InputOTP`** — The new `size` prop landed without a `yarn build:generative` regen, so the committed schema still advertised OTP without it and an LLM had no way to emit a sized OTP. Regenerated and committed as part of this release.
103
+ - **`Calendar` — focus rings clipped by the height animation** — The days grid is inside a container animating height with `overflow: hidden`, which cropped the focus ring on edge cells. The grid is now padded so the ring clears. An unused `navButtonStyle` theme key was also removed.
104
+
105
+ ## [1.0.0-beta.30] - 2026-07-04
106
+
107
+ ### Breaking Changes
108
+
109
+ - **`glass` variant removed** — `Alert`, `Toast`, and `Metric` no longer ship a `glass` variant. The `AlertVariant` / `ToastVariant` types (and the `variant` prop on `Alert`, `Toast`, `useToast` options, and `ToastData`) are removed entirely — `Alert` and `Toast` are now single-look components. `MetricVariant` drops `glass` (now `'filled' | 'ghost'`), and `MetricTheme`/`MetricThemeOverrides` drop `iconGlassShadows`. Migration: remove any `variant="glass"` / `variant="default"` props from these components; for a glass look compose `GlassEffect`/`GlassSurface` manually.
110
+ - **`PageLayout` removed** — The `PageLayout` compound component (`PageLayout.Sidebar` / `.Header` / `.Content`) is removed from the library, barrel exports, docs, and the MCP registry. It was superseded by `AppShell` (beta.27), which covers the same full-viewport layout with region sub-components. Migration: replace `PageLayout` with `AppShell` (`Sidebar` → `AppShell.Sidebar`, `Header` → `AppShell.Header`, `Content` → `AppShell.Main`).
111
+ - **`Button` — `link` variant removed** — `ButtonVariant` is now `'filled' | 'outline' | 'soft' | 'ghost'`. Use the `Link` component for text-action affordances. `Link` is now **polymorphic by behavior**: pass `href` to render an `<a>`, omit it (with `onClick`) to render a real `<button>` styled as a link, and it gains `color` (shared `SemanticColor`), `type`, `target`, and `rel`. `LinkProps` now extends `HTMLAttributes<HTMLElement>` (was `AnchorHTMLAttributes<HTMLAnchorElement>`).
112
+ - **`Button` — `error` state removed** — `ButtonState` is now `'default' | 'disabled' | 'loading'`. Form errors belong on form controls via `state="invalid"` + `errorMessage`, not on the action button. The loading state was also reworked: loading now resolves *before* disabled so a loading button keeps its color instead of desaturating; the spinner uses `border-current` so it inherits the button's text color (the `-contrast` token on filled variants — no hardcoded white, so it stays visible under brand overrides and dark mode); the button emits `aria-busy` while loading and uses `cursor-wait`.
113
+ - **`Button` — `color` narrowed to `'neutral' | 'primary' | 'danger'`** — `success`/`warning` removed from `ButtonColor` (they remain on the shared `SemanticColor` set for Badge/Alert/Toast/KPI/etc., which are status indicators, not actions). Migration: replace `color="success"`/`color="warning"` on `Button` with `color="primary"` (or `"danger"` if the action itself is destructive/negative). The generative schema was regenerated accordingly, so `Button` no longer offers `success`/`warning` there either.
114
+ - **`InputAddress` / `InputCreditCard` — group-led invalid state** — Composite inputs now take a consolidated `state="invalid"` + `errorMessage` on the group (`aria-invalid`/`aria-errormessage` on the `<fieldset>`), painted as one red perimeter overlay around the stitched fields instead of reddening each field; the message renders once with `role="alert"` and self-clears on the next edit. Per-field `helperText` was stripped. `InputAddress` gains top-level `state`/`errorMessage`, and its `countryInputProps` changed type from `Omit<InputProps, 'ref'>` to `Partial<SelectProps<string>>` (the country field is a `Select` — pass `searchable`, `placement`, etc.). `InputCreditCard`'s `error` prop is deprecated in favor of `errorMessage` (kept as an alias for now). Interior 1px seams between fields no longer double up, and a focused field lifts its own ring above its neighbors.
115
+ - **`StackedBarChart` — default `variant` is now `"gradient"`** — matches `BarChart`/`AreaChart` (premium per-segment gradient + lift shadow + hover glow). Pass `variant="default"` for the previous flat fills.
116
+ - **`LineChart` — `secondary` removed from its `SemanticColor`** — the chart `color` prop type is now `'primary' | 'success' | 'warning' | 'danger'` (the `secondary` semantic was already removed library-wide; use `neutral`/an explicit color).
117
+ - **Charts — multi-series legends render by default** — With the new shared legend (see Added), omitting `legend` resolves to `'bottom'` for multi-series `config` (previously these charts rendered no legend at all) and `'none'` for single-series. Pass `legend="none"` to keep legendless multi-series charts.
118
+ - **Charts — legend internals replaced** — The unused Recharts-style `ChartLegendContent` component and `ChartLegendContentProps` type are no longer exported from `@flikk/ui/charts`, and `ChartLegendProps` changed shape (now `{ items: ChartLegendItem[]; className? }` — an already-resolved `{key, label, color}` list). `RadarChartThemeOverrides` drops its bespoke legend styling keys (`legendStyle`, `legendItemStyle`, `legendDotStyle`, `legendLabelStyle`) — legends are now styled once via the shared `chartTheme.legend`. The dead shared `BarRenderer` / `LineRenderer` renderers were removed (the Combo variants now live under `ComboChart` internals).
119
+ - **`ActivityRings` — `variant` prop removed** — `variant` was declared on `ActivityRingsProps` but silently ignored (a ring chart has no variant concept), so it has been removed from the type entirely. Rendering is unchanged; migration is deleting the prop. Type-level break only. (#50)
120
+ - **`Table` — `data`/`columns` now win over `children`** — Passing both the data-driven and compound APIs previously let `children` silently win; per the library-wide collection contract (`items`/`data` wins, with a dev warning), `data`/`columns` now take precedence. Output changes only for consumers who were passing both — pick one API. (#54)
121
+
122
+ ### Added
123
+
124
+ - **Relative-elevation surface engine** — New `SurfaceProvider`, `useSurfaceLevel` / `useSurfaceElevation`, and `surfaceClasses` exported from the theme entry: surfaces read the rung they sit on and paint `substrate + offset` (clamped 1–8), so overlays lift *relative to their host* at runtime — anchored overlays (Dropdown, Popover, Select, Tooltip) lift `+2` over wherever they open; grounded overlays (Modal, Drawer, CommandPalette, Toast) paint a fixed rung. Override is first-class: `elevation` prop (re-bases children too) › `ground`/`lift={false}` › auto lift; `className` always wins for the element's own paint. See `docs/SURFACE_ELEVATION.md`.
125
+ - **Effects — 18 in-house WebGL2 shader effects** — Ported from paper-design/shaders (Apache 2.0) and built in-house so every color prop stays CSS-variable/theme-aware: 10 generative backgrounds (`Dithering`, `GradientMesh`, `StaticGradientMesh`, `StaticRadialGradient`, `Metaballs`, `ColorPanels`, `SmokeRing`, `GodRays`, `GrainGradient`, `PulsingBorder`), 2 dual-mode shape effects (`LiquidMetal`, `GemSmoke`), and 6 image filters (`Water`, `ImageDithering`, `PaperTexture`, `FlutedGlass`, `HalftoneDots`, `HalftoneCmyk`). All exported from `@flikk/ui/effects`. Built on shared shader infrastructure (generalized from `AIOrb.Aura`): tab-visibility RAF pause, image-texture loading, and a `resolveShaderColor` that normalizes any CSS color syntax — including `oklch()` and `var(--…)` theme tokens.
126
+ - **`MeshGradient`** — New effect in `@flikk/ui/effects`: a deterministic seed → marble-gradient tile (faithful SVG port of boring-avatars' marble — base rect + two Gaussian-blurred signature paths, transformed per seed; blur is in viewBox units so it's resolution-independent). Props: `seed`, `colors` (any CSS colors incl. theme vars), `blendMode`, `animated`, `noise` (grain overlay, default on). Also exports `MESH_PALETTES` / `MESH_PALETTE_BY_NAME` / `pickPalette` (curated palettes, `MeshPaletteName`) and `getMeshTextTone(seed)` — the readable text tone for a seed's gradient.
127
+ - **`Shimmer`** — New effect in `@flikk/ui/effects`: CSS-only shimmer with two variants — `text` (the "AI thinking" text-clip highlight sweep) and `surface` (a highlight band sweeping across a loading placeholder box). Polymorphic `as` prop, `active` toggle (freeze without unmounting), `duration`/band-width controls; respects `prefers-reduced-motion`; tokens themeable with a dark-mode override.
128
+ - **`Avatar` / `Badge` — mesh-gradient background** — `Avatar` gains a `gradient` prop (`boolean | string` seed) rendering a deterministic `MeshGradient` as its background layer — the image sits over it, initials overlay on top, with the initials color picked automatically from the gradient's luminance (via `getMeshTextTone`) so it stays legible on light and dark gradients alike. Plus palette controls: `gradientVariant` (curated `MeshPaletteName`) and `gradientColors` (raw CSS color override). `Badge`'s avatar slot gains the same `gradient` / `gradientVariant` / `gradientColors` for imageless person chips.
129
+ - **`PulsingBorder` — px-first geometry, neon glow, sweep animation** — New px-based props that stay constant at any element size: `radius` and `borderWidth` (the size-relative `roundness`/`thickness` remain, with exported `pxToRoundness`/`pxToThickness` converters), `glow` (one-sided neon falloff radiating outward from the line, lit by the moving spots), `offset` (gap between the host edge and the line), and `lineOpacity` (an always-visible hairline tracing the full border, gradient-tinted through `colors`). New `animation="sweep"`: a single soft beam orbits the border at constant speed, its color gliding through the `colors` ramp each lap — the default `"pulse"` keeps the original flickering-spots look.
130
+ - **Charts — `legend` prop + shared `ChartLegend`** — Every Cartesian chart (`AreaChart`, `BarChart`, `LineChart`, `StackedBarChart`, `ComboChart`) plus `ScatterPlot`/`RadarChart` now renders one shared, consistently-styled legend, controlled by `legend?: 'top' | 'bottom' | 'none'` on the standard chart props. Swatch colors come from each chart's own series-color resolver, so the legend always matches the plot. (Default behavior change — see Breaking Changes.)
131
+ - **RSC / Next.js App Router support** — dist now ships a `"use client"` directive on every client module (via `rollup-plugin-preserve-directives` + preserved modules), so App Router consumers can import components directly in server files with no client wrapper re-exports. Server-safe modules (`.types.ts`, `.theme.ts`, pure utils/validators) deliberately stay unmarked so server components can import them with zero client JS; a new build-time audit (`scripts/audit-use-client.mjs`) fails the build if coverage drifts.
132
+ - **`Grid` / `Stack` — polymorphic `as`** — Both accept `as?: LayoutTag` to swap the rendered `<div>` for a semantic tag (`ul`/`ol`/`nav`/`section`/`header`/`footer`/`aside`/`form`/`fieldset`) — e.g. a stack of nav links as `as="nav"`, a grid of cards announced as a list via `as="ul"`. Curated string union (not `React.ElementType`) so it stays JSON-serializable for the generative-UI schema.
133
+ - **`Accordion` — `items` data API + disabled items** — Accepts a serializable `items?: AccordionItemData[]` (`{ value, title, content?, className? }`) alongside the compound API, rendering through the same `Accordion.Item`/`Trigger`/`Body` primitives (one render path); `items` wins over `children` with a dev warning. Joins the sanctioned Dual-API set (Table, Timeline, DescriptionList, Feed). `Accordion.Item` also accepts `disabled`: the trigger renders natively disabled and roving arrow-key navigation skips it.
134
+ - **`PageHeading` — slot-props** — Accepts flat `title` / `subtitle` / `actions` slot-props composing the real `Title`/`Subtitle`/`Actions` sub-parts (managed mode), alongside the unchanged compound API — mirrors `Card`/`Section`.
135
+ - **Generative UI — curated set 22 → 30** — Eight components join the generative registry/schema: collections `Breadcrumbs`, `AvatarGroup`, `Accordion`, plus leaves `Empty`, `Rating`, `Pill`, `Tag`, and `PageHeading` (slot-prop header). Schema, tool def, and runtime `defaultRegistry` regenerated in the same pass.
136
+ - **`ContextMenu` — `startContent` slot** — `ContextMenu.Item` and `SubTrigger` gain a `startContent` leading-icon slot rendered in its own flex slot. The checked tick of checkable items now occupies the same leading gutter (with a spacer when unchecked), so checkable rows align with icon rows and labels never shift on toggle; `aria-checked`/`data-checked` are only emitted for actually-checkable items.
137
+ - **Forms — `errorMessage` on the whole family** — `Input`, `Textarea`, `InputDate`, `InputOTP`, `InputCounter`, `DateRangePicker`, `ColorPicker`, `RichTextEditor`, and `Signature` gain `errorMessage?: ReactNode`, completing the standard form error pattern. It takes precedence over `helperText` in the invalid state and is wired to `aria-describedby`/`aria-invalid` with `role="alert"` on the message; `helperText` behavior is unchanged when absent. (#52)
138
+ - **Forms — mask/validate split for expiry dates** — `formatExpiryDate` now clamps the month as you type (component owns format only); business validity stays the consumer's via new exported pure validators `isValidExpiryDate` / `isValidMonth`. `inputTheme` is also re-exported from the forms barrel.
139
+ - **`Calendar` — full keyboard grid navigation** — Roving tabindex plus arrow-key day navigation per the APG grid pattern. (#53)
140
+ - **`colorUtils` — contrast helpers** — New pure, dependency-free helpers: `hexToRgb`, `relativeLuminance` (WCAG), and `contrastTone(bg, { threshold })` → `"light" | "dark"` — picks the higher-contrast text tone for a background (accepts an array of colors and averages luminance, for gradients; `threshold` defaults to the WCAG 0.179 black/white crossover).
141
+ - **Automated test infrastructure** — Vitest 3 + React Testing Library + jest-axe on jsdom, with `yarn test` / `yarn test:watch`, shared `renderWithProviders` test utils, ResizeObserver/matchMedia polyfills, and the library's first CI workflow (typecheck, lint, test, build on every push/PR); `prepublishOnly` now runs the suite. (#39)
142
+ - **Library-wide test backfill** — ~2,200 tests across ~155 co-located `*.test.tsx` files covering every component category (forms, overlays, core interactive, display + data-display, charts, AI + layout, effects, NodeCanvas, generative engine) at WAI-ARIA APG depth: full keyboard matrices, controlled/uncontrolled parity with exact `onChange` payloads, resolved `aria-describedby`/`aria-errormessage` contracts, and jest-axe across states. The backfill pinned every defect fixed below; the full suite is deterministic under parallel runs (three.js-backed suites isolated into a sequential Vitest project). (#40–#48, #54)
143
+
144
+ ### Changed
145
+
146
+ - **Theme polish pass** — Toast, Pill, Badge, Radio, and related themes migrated to the shared surface/interaction tokens (`--color-surface*`, `--color-surface-hover`, `--color-border-hover`, `shadow-real-*`) and off bespoke per-step neutrals and the deprecated `--color-background-secondary` / `secondary` colors. Badge `soft`/`filled` now keep a transparent 1px border (consistent height); semantic fills drive from the mode-aware base var so auto-derived `-contrast` text stays readable. `FunnelChart` reworked visually (gradient fills, soft `Badge` callouts). Chart animation timings consolidated into `charts/utils/animation-utils.ts`.
147
+ - **Outline borders — full-color, library-wide** — `outline` variant borders are now color-matched per semantic color: `neutral` → `--color-border-secondary` (hueless, full-weight — no longer the faint `--color-border` hairline); `primary`/`success`/`warning`/`danger` → `border-[var(--color-{color}-600)]` (+ `-400` in dark), matching the text. Applies to `Button` (neutral only changed) and `Badge` (all five colors). Visual diff for outline Badges/Buttons.
148
+ - **Forms — invalid-state visual unified** — Invalid now paints a danger border + faint danger ring with **no surface fill** (previously a danger-50 background tint) — one treatment across single fields, OTP slots, and the new composite-group perimeter overlay.
149
+ - **`PulsingBorder` — self-configuring fit (visual behavior change)** — With no sizing props, the corner radius now auto-matches the host element's computed CSS `border-radius` (previously a fixed `roundness` of `0.4`), and the border line now sits fully *outside* the host (inner edge touching) so it never overlaps card content. The wrapper auto-expands past the host by exactly the room the soft band/glow needs, so the halo always fades out instead of cropping at the host edge. Existing usages will render slightly differently by default; pass explicit `roundness` and `margin` to approximate the old inside-the-box look.
150
+ - **Circular dependencies eliminated library-wide** — All 34 module cycles across 10 compound-component families (Accordion, Modal, Drawer, Animated, Table, Timeline, GanttChart, DatePicker, DateRangePicker, TimePicker) are gone: contexts extracted to dedicated `[Name]Context.ts` modules with the root files re-exporting the moved names, so public import paths are unchanged. Consumers' bundlers no longer emit circular-dependency warnings for `@flikk/ui`.
151
+ - **`NodeCanvas` — render-performance contract documented** — The split-context memoization (per-frame state vs. stable API contexts, memoized node/edge renderers: a graph update re-renders only the changed node; pan/zoom re-renders none) is now documented in `docs/NODE_CANVAS.md` — keep your `nodeTypes` map referentially stable or the memoization is defeated. The `NodeCanvasEditorLayout` reference story was reworked to demonstrate it.
152
+ - **`Segmented` — `data-state` attribute** — Items now emit `data-state="active|inactive"` alongside the existing `data-selected`, matching the library-wide `data-[state=*]` styling convention. `data-selected` is kept for one deprecation cycle. (#54)
153
+ - **`Tag` — spacing polish** — Tighter remove-button hit area, balanced avatar/icon left inset, and adjusted `md` padding.
154
+
155
+ ### Fixed
156
+
157
+ - **Charts — rules-of-hooks crashes** — `AreaChart`, `LineChart`, `StackedBarChart`, and `ActivityRings` threw "Rendered more/fewer hooks than during the previous render" when their data transitioned between empty and populated (early returns sat mid-hook-sequence); a follow-up sweep fixed the remaining conditional-hook sites in `Table`'s filter row and `Sidebar` navigation. (#50)
158
+ - **Charts — empty data no longer renders as an error** — `BarChart`, `StackedBarChart`, and `ComboChart` misclassified `data={[]}` as invalid and showed the red "Invalid Chart Data" panel; empty data now reaches the proper empty state. Genuinely invalid (non-numeric) data still errors. (#50)
159
+ - **`Heatmap` — standalone crash + grid semantics** — No longer throws when used with directly-passed `data`/`config` outside a chart container (its documented contract). Also emits a valid `grid > row > gridcell` structure for assistive tech with no visual change. (#50, #54)
160
+ - **`ComboChart` — `variant` now applied** — The declared `variant` prop was silently dropped; it now threads through to the bar renderer (line glow remains always-on, matching `LineChart`). (#50)
161
+ - **`Combobox` — opening no longer filters by the selected label** — With a value selected, opening the listbox previously narrowed it to the single already-selected match (the selected label doubles as the input text). The list now stays full on open and only filters once the user actually types, matching `Select` and the WAI-ARIA editable-combobox pattern.
162
+ - **`Checkbox` / `Radio` — rest props reach the `<input>`** — `aria-label` and other rest props were spread onto the wrapper `<div>`, leaving the actual control unlabeled (this surfaced in `Table`'s row-select checkboxes). Rest props now land on the `<input>`; `className` stays on the wrapper. (#51)
163
+ - **`Toast` — per-toast live regions** — Only the container had `aria-live`; each toast now carries `role="alert"` (danger/warning) or `role="status"` (info/success) so screen readers announce exactly once, with per-toast urgency. (#51)
164
+ - **`Toast` — timer resume** — Hovering or expanding a toast now resumes the *remaining* auto-dismiss time instead of restarting the full countdown on every hover/expand toggle.
165
+ - **A11y — labels on roleless elements** — `Avatar` now actually renders its computed `role` (fallback-initials avatars and consumer `role="img"` are honored); `SlidingNumber` gets `role="img"`; `Message`'s status indicator moves its label to an sr-only text node with the glyph `aria-hidden`. (#51)
166
+ - **`InputTag` — paste and reopen bugs** — Pasting comma-separated values committed only the last tag (stale-closure loop); all values now commit in one update, respecting `maxTags` and dedup. The suggestion dropdown also no longer reopens immediately after a click selection. (#52)
167
+ - **`DateRangePicker` — controlled mode drift** — Internal state no longer updates when a `value` prop is provided; `onChange` always fires. (#52)
168
+ - **`Signature` — `onChange` while disabled** — Pointer-up no longer fires `onChange` on a disabled signature pad. (#52)
169
+ - **Date formatting — March/May mangled** — `formatDateCustom` ran sequential replaces that re-matched the "M" inside already-substituted month names ("Mar" → "3ar"); formatting is now a single tokenized pass. Affects date display across the date/time inputs. (#52)
170
+ - **Forms — combobox roles and names** — `TimePicker`, `ColorPicker`, `InputTag` (with suggestions), and `Mention` triggers get proper `role="combobox"` + `aria-controls`; `InputOTP` slots get indexed labels ("Digit N of M"); `Slider` sets `aria-invalid`; `Pill` no longer dev-warns on every selectable-less pill. (#52)
171
+ - **`Checkbox` — standalone invalid** — A standalone invalid checkbox now emits `aria-invalid`.
172
+ - **Nested overlays — six more overlays join the portal guard** — `TimePicker`, `DatePicker`, `DateRangePicker`, `Mention`, `InputTag`, and `RichTextEditor` portals now carry `data-flikkui-portal`, so picking a value inside one of them no longer dismisses an ancestor overlay (Popover/Modal/Drawer).
173
+ - **`Dropdown` — nested overlay dismissal** — Picking an option in a portaled `Select` inside a `Dropdown` menu no longer dismisses the menu (the `data-flikkui-portal` click-outside bail was missing). (#53)
174
+ - **Overlay a11y** — `ModalStack` drops a redundant unlabelled `role="dialog"` wrapper; `AlertDialog`'s subtitle renders through `Modal.Subtitle` so `aria-describedby` resolves; `Tooltip` puts `aria-describedby` on the trigger element itself (via `useId()`), not a wrapper; `CommandPalette` keeps group labels for grouped input and skips disabled rows in arrow navigation; `ContextMenu` uses `role="menuitemcheckbox"` when checked and returns focus to the trigger on close. (#53)
175
+ - **`Select` — keyboard open + focus return** — Opens on ArrowDown/ArrowUp while closed, restores focus to the trigger after mouse selection, and the listbox gets an accessible name. (#53)
176
+ - **`Button` — consumer `data-state` honored** — A consumer-passed `data-state` is no longer clobbered by the internal one (fixes active/inactive toolbar buttons, e.g. in `RichTextEditor`). (#53)
177
+ - **Navigation a11y sweep** — `Tabs` arrow navigation skips disabled triggers; `Sidebar`/`NavItem` active items get `aria-current="page"` and submenu `aria-expanded` is no longer clobbered; `Breadcrumbs` marks only the current crumb `aria-current`; `Pagination` clamps disabled Prev/Next labels at bounds; `Carousel` passes `inert` as a real boolean (React 19 — it previously never applied); `MenuItem` sets `aria-selected`/`aria-checked` per role; `Tree` adds `role="group"` on child lists and hides chevrons from treeitem names; `Rating` removes nested-interactive star buttons inside its `role="slider"`. (#53)
178
+ - **`DragDrop` — keyboard drops** — Keyboard drop fired `onDrop` twice and arrow-cycling could only reach the first zone; drops now fire once with a full `type`/`data` payload and cycling reaches every zone. (#53)
179
+ - **`NodeCanvas` — pointer-capture crash** — Pane `setPointerCapture` is guarded, so panning no longer throws in environments without pointer-capture support. (#53)
180
+ - **`Message` — typewriter `onComplete` timing** — The typewriter's `onComplete` now fires after the animation actually settles, and also fires on the reduced-motion/disabled path (it previously fired at first paint, or never). Internal render is now pure (no ref mutation during render).
181
+ - **`Input` — nested trigger ring bleed** — A nested `aria-haspopup` trigger inside an Input addon (e.g. an embedded `Select`) no longer renders its own hover/focus edge and ring over the host field.
182
+ - **`CodeBlock` — `highlightLines` / `diffMode` without line numbers** — Both silently no-oped unless `showLineNumbers` was on; they now work independently. (#54)
183
+ - **`ImagePlaceholder`** — The `rounded` prop was a no-op (read the wrong CSS variable) and `ratio={undefined}` (fill-parent escape hatch) was dead code; both work now, and the default 16:9 still applies when `ratio` is omitted. (#54)
184
+ - **`useNetworkStatus` — initial offline state** — Seeds from `navigator.onLine` (SSR-safe), so a page loaded offline reports offline immediately instead of after the first event. (#54)
185
+ - **`Table` — header semantics** — Header cells get `scope="col"` and sortable data-driven headers wire `aria-sort`. (#54)
186
+ - **`PulsingBorder` — glow rendered at true strength** — The shader emitted premultiplied alpha while `ShaderCanvas` composites straight alpha, so every soft pixel rendered at alpha² and the glow was effectively invisible; output is now un-premultiplied. Also: the host is measured via layout px (`offsetWidth`/`offsetHeight`), so the ring no longer drifts off its card under ancestor `scale()` transforms such as `NodeCanvas` zoom.
187
+ - **`ColorPicker` — gradient detection** — `isGradientString` now matches `repeating-*` gradients.
188
+ - **`Masonry` — relayout thrash** — Pre-paint relayout is keyed on child count rather than children identity, avoiding a synchronous measure-and-arrange on every render.
189
+ - **`PromptInput` — paused waveform** — The voice recorder skips waveform redraws while paused (battery).
190
+ - **`TimePicker` — footer sizing** — Restored the footer Cancel/Save `flex-1` sizing.
191
+ - **`PromptSuggestion` — restored to the MCP registry** — Its folder (`ai/PromptSuggestions/`) was renamed to match the component name, so it is discovered by the inventory generator again (it was silently missing from `registry.json`).
192
+ - **Effects hygiene** — `GlassSurface` uses the shared `useDarkMode` singleton; `GlassEffect` and `AIOrb.Aura` are `aria-hidden` decorative (Aura also gains an SSR client gate); `OfflineIndicator` drops a hardcoded `text-white`; `InputCounter`'s decorative gesture wrappers no longer add unlabeled tab stops. (#54)
193
+ - **Generative — `Badge` schema default** — The generated schema declared `"default"` as `Badge`'s color default, which isn't in its own enum; corrected to `"primary"` (the real runtime default) and regenerated. (#49)
194
+
195
+ ### Security
196
+
197
+ - **Generative — `validate()` boundary hardened (7 fixes)** — The generative-spec validator was adversarially tested and hardened; specs from untrusted LLM output are now safe against a class of prototype/injection attacks: (#49)
198
+ 1. Component names colliding with `Object.prototype` keys (`"constructor"`, `"__proto__"`, `"toString"`, …) no longer crash `validate()` — every dynamic map read is gated on `Object.hasOwn`, restoring the "never throws" contract (unknown names take the normal unknown-component path).
199
+ 2. `constructor`/`__proto__` prop keys record an unknown-prop issue instead of silently vanishing.
200
+ 3. Object-shaped structured props (`chartConfig`, `donutColors`, `gridCols`, and every array-of-object shape) are now recursively sanitized — nested `className`/`style`/`dangerouslySetInnerHTML`/`on*` handlers/functions previously bypassed the injection guard entirely; each strip is a recorded issue.
201
+ 4. Handler detection is case-insensitive — `onclick`/`ONLOAD` are blocked, including via custom schemas.
202
+ 5. `actions.*.payload` runs through the same sanitizer (was copied verbatim).
203
+ 6. Recursion is depth-limited (100) at both node and structured-value levels — pathologically deep specs prune with a recorded issue instead of overflowing the stack.
204
+ 7. Prototype-pollution write-key guard: `__proto__`/`constructor`/`prototype` are denied at both dynamic-write sites, closing a silent prototype-chain hijack the read-side guard didn't cover.
205
+
206
+ ### MCP server (`@flikk/mcp`)
207
+
208
+ - New `customize_theme` tool (topic-filterable guide to overriding the Flikkui theme — brand palettes, radius, fonts, dark mode, `generatePalette`/`generateThemeCSS`); new self-describing `manifest` tool introspecting every tool's args/types/defaults/error codes; `get_component`/`get_block` not-found paths now return a stable, parseable `{error: {code, message}}` contract; new `review_usage` rule `overlay-portal-false-in-popover`.
209
+ - New `get_changelog` tool — per-version release notes with `since` (everything newer than a given version), `version`, and `breaking_only` filters, so an agent can read the breaking changes + migration paths after an `@flikk/ui` upgrade and fix code against them. Reads the changelog of the installed `@flikk/ui` when present (falls back to a bundled snapshot); to support that, **`@flikk/ui` now ships `CHANGELOG.md`** in the npm package (exported as `@flikk/ui/CHANGELOG.md`).
210
+
211
+ ## [1.0.0-beta.29] - 2026-06-16
212
+
213
+ ### Breaking Changes
214
+
215
+ - **Effects removed** — `Glass`, `MorphingText`, `ParallaxSection`, `Spotlight`, `StickyScroll`, and `SpotlightBorder` are no longer exported from `@flikk/ui/effects`. `Glass` (the refraction "lens" effect) was added in beta.28 and is removed here — use the mix-blend-mode `GlassEffect` (or `GlassSurface`) instead. (PER-160)
216
+ - **`PageTransition` → `Preloader`** — The `PageTransition` effect was renamed to `Preloader` (component, types, stories, docs, and registry entry). Update imports: `import { Preloader } from "@flikk/ui/effects"`. The animation engine was reworked with creative reveal variants (blinds / shutters / layers / iris).
217
+
218
+ ### Added
219
+
220
+ - **`HeroCard`** — New core component: a media/hero card with a parallax tilt surface (`parallaxIntensity`, default `32`). Exported from `@flikk/ui/core` (and the main barrel). (PER-160)
221
+ - **`TiltCard`** — New effect component: 3D pointer-tilt card. Tilt is CSS-only; the `glow` layer lazy-loads `three`. Exported from `@flikk/ui/effects`. (PER-160)
222
+ - **`ScrollArea` — drag-to-scroll** — Pointer drag-to-scroll backed by the smooth-scroll engine, with momentum. (PER-160)
223
+ - **Charts — `width` / `height` props** — Cartesian charts (`AreaChart`, `BarChart`, `LineChart`, `StackedBarChart`, `ScatterPlot`) accept explicit `width`/`height`, and `config.color` now resolves Tailwind palette names (e.g. `"blue-500"`) in addition to CSS variables/hex. (PER-161)
224
+
225
+ ### Changed
226
+
227
+ - **Theme — elevation polish pass** — Re-tuned the surface/elevation ladder to read *lighter in both modes* (monotonic + symmetric: higher = lighter), with real dark-mode-aware `shadow-real-*` / `shadow-inner-real-*` shadows (`--elevation-*` tokens; `.dark` swaps to a stronger depth-pool + a 1px white top rim). Refined the `AppShell` color model — only `root` paints the floor; chrome inherits; side-by-side panels are opt-in; horizontal sticky bars use a translucent frosted-floor tint. (PER-163)
228
+ - **`ProgressiveBlur` — perf + a11y** — Dropped redundant per-layer `z-index` (the `backdrop-filter` already establishes a stacking context), `aria-hidden` on decorative instances, memoized layer style objects, clamped/guarded the `layers` prop, deduped position arrays, and dev-warns on `ref` + multi-position. Demo wrappers constrained so the blur no longer smears past the container edge. (PER-164)
229
+ - **Assets** — `public/bg` backdrops converted from JPG to WebP for smaller payloads. (PER-162)
230
+
231
+ ### Fixed
232
+
233
+ - **Charts — `ScatterPlot` tooltip** — Fixed the tooltip rendering/positioning on `ScatterPlot`; tidied its theme and types. (PER-161)
234
+
235
+ ### Removed
236
+
237
+ - **Story-only blocks** — `ChangelogLayout` and `WaitlistLayout` reference layouts were removed (story-only, never part of the public API).
238
+
239
+ ## [1.0.0-beta.28] - 2026-06-11
240
+
241
+ ### Breaking Changes
242
+
243
+ - **`Card`** — The `title` prop is now a **header slot** (`ReactNode`), not the native DOM `title` attribute. `CardProps` changed from `extends HTMLAttributes<HTMLDivElement>` to `extends Omit<HTMLAttributes, "title">`. Passing `title="…"` to a `<Card>` for a hover tooltip now renders a card header instead. Migration: move tooltip text to a wrapper element, or compose `Card.Header` explicitly. (PER-148)
244
+ - **`BarChart` / `AreaChart`** — Default `variant` changed from flat `"default"` to `"gradient"` (the premium look). Charts render with gradient fills/glow unless you pass `variant="default"`. Also: `showDots` default `true → false` and `dotRadius` default `4 → 3`. (PER-149)
245
+ - **`Metric`** — The `MetricTheme` / `MetricThemeOverrides` shape was fully restructured to a flat per-element form. Removed `variantColors`, `iconContainerVariantColors`, and the nested `sizes` record; added flat records (`iconContainerVariants`, `iconColors`, `iconGlassShadows`, `contentPaddingSizes`, `iconContainerSizes`, `labelSizes`, `valueSizes`, `subtitleSizes`). Consumers passing a custom `theme` to `<Metric>` must migrate. (PER-155)
246
+ - **Theme — surface recolor** — The surface/elevation ladder values were re-tuned (`src/styles/theme.css`): light mode now uses a pure-white page/overlay with a neutral-100 card fill; dark mode uses a near-black floor with faintly cool ascending surfaces. Visual diff for all consumers. The legacy `--color-background-secondary…quinary` tokens remain deprecated aliases (removal in the next major). (PER-132)
247
+
248
+ ### Added
249
+
250
+ - **Generative UI engine** — New `@flikk/ui/generative` subpath: spec-renderable FlikkUI. An LLM emits a serializable `UINode` JSON tree that the engine validates and renders. Includes `GenerativeView`, `createRegistry`/`defaultRegistry`, `validate` (zero-dep repair), streaming (`parseStreamingSpec` + `useGenerativeStream`), serializable actions (`onAction`), and a runtime tool-def export (`GENERATIVE_TOOL` / `buildToolDefinition`). Curated, schema-checked 22-component safe set; one generation pass emits `schema.generated.ts` + `dist/generative.schema.json` + `dist/tools.json` (cannot drift). Subpath-only (not in the main barrel). See `docs/generative-ui.md` and CLAUDE.md §22. (PER-136, PER-138–142)
251
+ - **Layout primitives** — `Grid`, `Stack`, `Section` exported from `@flikk/ui/layout` (and the main barrel). `Grid` `cols` is a mobile-first auto-ramp number or explicit per-breakpoint map (purge-safe literals); `Stack` is the flex counterpart; `Section` is a titled region wiring `aria-labelledby`. (PER-137)
252
+ - **`items` data API** — Collection components `Table`, `Timeline`, `DescriptionList`, and `Feed` now accept a serializable `items` array alongside their compound API (one render path), so they drop into a generative-UI registry with no bespoke renderer glue. `Feed` also gains `collapseAfter`. (PER-133)
253
+ - **`Card` slot-props** — `Card` accepts flat `title` / `subtitle` / `actions` / `footer` slot-props alongside the compound API (mirrors `Section`). Setting any slot switches the card to managed mode (auto `Header`/`Body`/`Footer`); setting none renders children raw. (PER-148)
254
+ - **`Glass`** — New refraction "lens" effect in `@flikk/ui/effects` (`Glass`, `GlassLens`, `GlassProps`). Bends the live DOM it sits over (or an optional `refractionTarget`) via an SVG displacement filter — lens geometry, x/y travel, strength, erf-falloff depth band, spherical-dome profile. Distinct from the mix-blend-mode `GlassEffect`. (PER-147)
255
+ - **`Metric`** — New `ghost` variant. (PER-155)
256
+ - **`Table`** — `onRowClick(row)` on the data-driven API; rows get pointer cursor + keyboard activation (selection/expand controls still `stopPropagation`). (PER-141)
257
+ - **Charts — `useChartDimensions`** — New shared hook (`charts/hooks`) for layout-effect container measurement with a `measured` gate. (PER-149)
258
+ - **Canvas** — `Handle` accepts `children` for custom port visuals; `edge.color` per-edge stroke override. (PER-143)
259
+ - **Blocks** — New story-only reference layouts: `LMSDashboardLayout` (PER-153), interactive range-chart `GenerativeUI` cards + schema inspector (PER-154), and a Generative UI social-profile block (PER-135).
260
+
261
+ ### Changed
262
+
263
+ - **Charts — shared `X_AXIS_MARGIN`** — The X-axis bottom margin is now a single shared constant across Area/Line/Bar/StackedBar so plot baselines align when charts sit side by side. (PER-134)
264
+ - **`CanvasToolbar`** — The node palette collapsed into a single "+ Add node" dropdown of `nodeOptions`. (PER-144)
265
+ - **Theme polish** — Visual refinement across `Badge`, `Button`, `PageHeading`, `Tooltip`, `Table`, `Card`, and `Metric` (label/icon alignment, value sizing, soft-variant tints, header typography, backdrop blur). (PER-151, PER-152)
266
+ - **Canvas** — Quieter `BaseNode` selection (border-secondary + ring-2 primary whisper); real pane background with a visible dot grid. (PER-143)
267
+
268
+ ### Fixed
269
+
270
+ - **Charts — cold-load dimension race** — Charts measured their container in a 600×400 fallback before the real size landed, so mount animations captured the wrong transform-origins (bars rose from below the x-axis, clip-sweep reveals froze short, dots flew in from wrong spots). `useChartDimensions` now measures via a layout effect and exposes a `measured` flag that gates mount-animated SVG geometry. (PER-149)
271
+ - **`shadow-real-*` utilities** — Re-registered as Tailwind `@utility` rules instead of hand-written `@layer utilities` classes, so variant prefixes (`hover:`, `group-hover:`, `dark:`, …) now generate. Previously the base class worked but its variants were silently dropped. (PER-150)
272
+ - **`Dropdown`** — Placement-aware menu animation, a working keyboard layer, and Escape-to-close. (PER-145)
273
+ - **`Grid` / `Section`** — Grid auto-ramp is monotonic and extends to `xl` for high column counts; `Section` wires the `aria-labelledby` landmark and skips an empty body. (PER-137)
274
+
275
+ ## [1.0.0-beta.27] - 2026-05-29
276
+
277
+ ### Added
278
+
279
+ - **`AppShell`** — New layout component exported from `@flikk/ui/layout`. Provides a full viewport shell with region-named sub-components: `AppShell.Topbar`, `AppShell.Sidebar`, `AppShell.Header`, `AppShell.Main`, `AppShell.RightPanel`, and `AppShell.Footer`. Context-driven scroll mode (`scroll="main"` | `"page"`) with support for full-height rails (Sidebar, RightPanel). Children-discovery layout algorithm auto-places regions without requiring explicit ordering. Includes Storybook stories covering Default (Operating Snapshot dashboard) plus Sidebar, RightPanel, Footer, and PageFlow variants.
280
+ - **`Sidebar.Search`** — New `<Sidebar.Search />` sub-component (PER-67). Full-width search field that collapses gracefully in the rail state with a NavItem-style collapse animation, stable height on collapse, and a neutral icon with muted clear-x.
281
+ - **`Sidebar.Card`** — New `<Sidebar.Card />` sub-component for surfacing a custom card slot in the sidebar; ships with a NavItem-as-row recipe for composing card content.
282
+
283
+ ### Changed
284
+
285
+ - **`Sidebar`** — `children` and `Sidebar.Search` are now optional. Sidebar renders correctly with no child content (bare rail). This relaxes the previous hard requirement for children and enables minimal sidebar configurations.
286
+ - **`Sidebar`** — Collapsed rail redesigned with uniform 36×36 hit-areas on a 60px rail for all interactive row elements (NavItem, Sidebar.Search, Sidebar.UserProfile). Sidebar.Search row width aligned with NavItem rows.
287
+ - **`Popover`** — Viewport clamping, nested-overlay click-outside isolation, and auto-scroll support. A `Select` or `Dropdown` inside a `Popover` no longer inadvertently closes the ancestor when the user clicks an option. The popover now horizontal-clamps to stay on-screen near viewport edges and scrolls with its anchor trigger.
288
+ - **`MediaGalleryLayout`** — Storybook story content refresh.
289
+
290
+ ### Fixed
291
+
292
+ - **`Mention`** — Prevented a React `removeChild` crash that occurred when deleting a chip in a contentEditable host. Chips are now dismissable without causing a React reconciliation mismatch.
293
+ - **`Tag`** — Balanced avatar/icon insets for leading-content tags; padding was asymmetric when a leading avatar or icon was present.
294
+ - **Form controls`** — Hover-edge border added to form controls; `DotSeparator` menu updates.
295
+ - **`NavItem`** — Fixed a type error that broke consumer builds compiling from source against `react@canary` types (e.g. Next 16). `NavItemProps extends HTMLAttributes<HTMLElement>` typed `onSubmit` as `SubmitEventHandler<HTMLElement>`, which is not assignable to `motion.a`'s element-specific `HTMLMotionProps<"a">` once `SubmitEvent` gains a type-parameter-dependent field. `onSubmit`/`onSubmitCapture` are now stripped before the spread (behaviour-neutral — a nav item never submits a form), alongside the existing drag/animation handler strips.
296
+
297
+ ## [1.0.0-beta.26] - 2026-05-22
298
+
299
+ ### Breaking Changes
300
+
301
+ - **`Sidebar`** — Removed the `SidebarSubmenu` component. The Sidebar was rebuilt around context selectors, and nested navigation is now driven by `NavItem`'s `items` prop (with a collapsed-rail flyout) rather than a dedicated submenu component. Consumers using `Sidebar.Submenu` must migrate to `NavItem items={…}`.
302
+ - **`NavItem`** — Removed the `isDanger` prop (and `dangerStyle` from the theme). Danger actions belong in a menu (e.g. `Dropdown.Item isDanger` inside `Sidebar.UserProfile`'s `dropdownContent`). The NavItem variant/theme/type surface was also reworked.
303
+
304
+ ### Added
305
+
306
+ - **Theme — surface elevation ladder** — New semantic surface tokens `--color-surface-sunken`, `--color-surface-raised`, `--color-surface-overlay` (joining `--color-surface` and `--color-background`), plus the translucent `--color-surface-hover` interaction fill that composites over any surface level. Replaces the numbered `--color-background-secondary…quinary` scheme (kept as deprecated aliases for one major). See CLAUDE.md §3.
307
+ - **`StripePattern`**, **`ImagePlaceholder`** — New components for empty image/banner slots.
308
+ - **`Sidebar`** — Collapsed-rail hover **flyout submenus** (via `Dropdown`); `Sidebar.UserProfile` gains a `dropdownContent` menu and a custom `children` slot for the text region; new `UserMenu` story.
309
+ - **`RichTextEditor`** — Expanded editing capabilities and theme.
310
+
311
+ ### Changed
312
+
313
+ - **Theme migration onto the surface ladder** — Track/inset fills → `surface-sunken`; row/item/button hovers → `surface-hover`; overlays (Dropdown, Popover, Tooltip, etc.) → `surface-raised`/`-overlay`; chart null/dimmed fills → `surface-sunken`. No new usage of the legacy `background-*` tokens.
314
+ - **`NavItem`** — Two-line expanded layout (title + accessories, optional description); collapsed notifications render as a dot with an sr-only unread count; smoother padding/gap transitions.
315
+ - **`FileUploadProgress`** — Separated retry vs. remove behavior; the radial now doubles as the cancel/remove target with a shared confirm popover; larger radial center text.
316
+ - **`InteractiveCharacters`** — Redesigned the blob/tall/small character SVGs.
317
+ - **`KPI`** — Bumped label + subtitle typography contrast.
318
+ - **`Table`** — Added `flush` edge padding; trimmed block templates.
319
+ - **`MorphingText`** — Cross-fade now animates between measured text sizes.
320
+ - **Docs** — Condensed CLAUDE.md reference guide; README updates.
321
+
322
+ ### Fixed
323
+
324
+ - **Form-control borders** — Resting + focus borders on every form control (Input, Select, Combobox, Date/Time pickers, Textarea, etc.) are now drawn with an inset `box-shadow` instead of `outline`/`border`. Clip-safe inside `overflow-hidden` parents, no focus reflow, and the same height as `Button`. (Fixes the input-clip and Select-vs-Button size mismatch — Linear PER-58, PER-61.)
325
+ - **`ScrollArea`** — The `type="scroll"` overlay thumb was hardcoded `black/30` (invisible in dark mode); it now uses the mode-aware `--color-border`, and the `always` track moved off the deprecated `--color-background-secondary` onto `--color-surface-sunken`. (Linear PER-59.)
326
+ - **`MorphingText`** — Fixed the inline-box width snapping during transitions by measuring all candidate strings; added an SSR-safe layout-effect shim.
327
+
328
+ ### Tooling
329
+
330
+ - **`@flikk/mcp` 0.2.10** — Refreshed the component registry: 121 components (was 119), surface-ladder + text-taxonomy tokens, and removed stale `background-tertiary`/`background-quaternary` references.
331
+
332
+ ## [1.0.0-beta.25] - 2026-04-20
333
+
334
+ ### Breaking Changes
335
+
336
+ - **`Timeline`** — Removed `align` prop and `TimelineAlign` type (`"left" | "right" | "alternate"`). Timeline now uses a single layout per the component's `layout` prop (`"vertical" | "horizontal"`). Consumers setting `align` must remove it.
337
+ - **`Timeline.animations.ts`** — Internal animations module deleted. Not part of the public API, but anyone importing it directly will need to remove the reference.
338
+
339
+ ### Added
340
+
341
+ - **`@flikk/ui/effects` barrel** — `AIOrb` (+ `AIOrbProps`, `OrbState`, `DotSphereProps`, `LiquidProps`, `AuraProps`), `Particles` (+ `ParticlesProps`), and `SpotlightBorder` (+ `SpotlightBorderProps`, `SpotlightBorderVariation`) are now exported from the effects barrel. Previously only reachable via their component subpaths.
342
+
343
+ ### Changed
344
+
345
+ - **`Accordion`** — Trigger and body now inherit the library-wide `text-sm` baseline (was browser default).
346
+ - **`Breadcrumbs`** — Link and current-page styles moved to `text-sm` for consistency with the library baseline.
347
+ - **`Calendar`** — Dropped the `text-base` override on month/year `Select` dropdowns; they now use `Select`'s `size="sm"` default, matching every other Select in the library.
348
+ - **`CalendarMini`** — Internal refactor pass (~850-line diff); no behavioural change.
349
+ - **`Timeline`** / **`TimelineItem`** / **`TimelineContent`** — Simplified after removing the `align` prop and animation module.
350
+ - **`Empty`**, **`Link`** — Minor theme and formatting cleanup.
351
+ - **`Select`** — Removed an unused tag-class path on `Select.Tag`.
352
+
353
+ ### Fixed
354
+
355
+ - **Stories — `docs.source.code` import paths** — Normalized across `Feed`, `GanttChart`, `DateRangePicker`, `TimePicker`, `AlertDialog`, and others so the Storybook "Show code" panel displays the public barrel entry (`@flikk/ui`) instead of internal paths.
356
+ - **Story coverage** — Added `docs.source.code` to 14 previously missing stories and added new `MenuItem` stories. MCP code-example coverage is now 119/119 components.
357
+ - **Timeline stories** — Added `text-sm` to `h4` headings so the preview matches the library-wide baseline.
358
+
359
+ ## [1.0.0-beta.24] - 2026-04-20
360
+
361
+ ### Breaking Changes
362
+
363
+ - **`Segmented`** — Changed from `tablist`/`tab` ARIA roles to `radiogroup`/`radio` with roving `tabIndex` and arrow-key navigation. Consumers relying on the previous tab semantics must update keyboard interaction expectations.
364
+ - **`DragDrop`** — Added required `aria-label` type prop for accessible list labelling. Existing usages without this prop will need to be updated.
365
+ - **`CheckboxGroup` / `RadioGroup` `error` prop deprecated** — Use `state="invalid"` + `errorMessage` instead. The `error` prop will be removed in a future release.
366
+ - **`label` / `helperText` props changed from `string` to `ReactNode`** across all affected form components (`Checkbox`, `Radio`, `Input`, `Textarea`, `Select`, `Combobox`, `Slider`, `DatePicker`, `DateRangePicker`, `TimePicker`, `FileUpload`, `InputOTP`, `InputCounter`, `CronInput`, `Mention`).
367
+ - **`Checkbox` / `Radio`** now extend `InputHTMLAttributes` instead of `HTMLAttributes`. Prop forwarding behaviour may differ for consumers passing arbitrary HTML attributes.
368
+ - **`InputCreditCard` / `InputAddress`** — Replaced `FormLabel` with `<legend>` inside `<fieldset>` for correct semantics. Visual appearance is unchanged but DOM structure differs.
369
+ - **Main barrel (`@flikk/ui`) no longer exports charts or effects** — Import from `@flikk/ui/charts` and `@flikk/ui/effects` subpaths instead.
370
+ - **`tailwind.preset.cjs` borderRadius keys renamed** — `--form-rounded` → `--form-radius`, `--button-rounded` → `--button-radius`. Update any Tailwind config references.
371
+ - **`ColorPickerContext` removed from public export** — Use the `useColorPicker` hook instead.
372
+ - **`useFormStateMachine` / `stateMachine` generic default changed** — `TData = any` → `TData = unknown`. Code relying on implicit `any` typing will need explicit generic annotations.
373
+
374
+ ### Added
375
+
376
+ - **`Switch` `size` prop** — New `sm`, `md`, `lg` size variants.
377
+ - **`Switch` `defaultChecked`** — Uncontrolled initial checked state.
378
+ - **`Switch` native input passthrough props** — `name`, `value`, `required`, `form`, and optional `id` (auto-generated via `useId()` when omitted).
379
+ - **`state` prop on `InputOTP`, `CronInput`, `FileUpload`, `InputCounter`, `Mention`** — Unified validation state (`idle` / `invalid` / `disabled`) for components that previously had no validation API.
380
+ - **`Combobox` `iconEnd` slot** — New decorator slot that hides behind the clear button when a value is selected.
381
+ - **`Select` `contentStart` / `contentEnd` slots** — Structural decorator slots for the trigger element.
382
+ - **`Checkbox` / `Radio` `lg` size** — New large size variant.
383
+ - **`secondary`, `neutral`, `dark` color namespaces** — Added to the Tailwind preset for consistent utility-class access.
384
+ - **`./layout` subpath export** — `@flikk/ui/layout` is now a valid import path.
385
+ - **`useDarkMode` singleton hook** — Module-level singleton with one shared `MutationObserver` and N subscribers, replacing 9 inline per-component implementations (`Select`, `Combobox`, `InputTag`, `DatePicker`, `DateRangePicker`, `TimePicker`, `Tooltip`, `Popover`, `Dropdown`).
386
+
387
+ ### Changed
388
+
389
+ - **`Tabs`** — Trigger and panel IDs scoped with `useId()` per instance, preventing duplicate DOM IDs when multiple `Tabs` instances are on the same page.
390
+ - **`ModalTitle` / `DrawerTitle`** — Now render as `<h2>` with an overridable `as` prop for correct document outline.
391
+ - **`FormLabel`** — Receives `state` prop in `Select`, `Combobox`, `DatePicker`, `DateRangePicker`, `Slider` so the required indicator renders correctly in invalid state.
392
+ - **`Alert` / `Toast` ARIA roles** — Mapped to severity: `role="alert"` for error/warning, `role="status"` + `aria-live` for info/success.
393
+ - **`Progress`** — Animates `scaleX` instead of `width` for compositor-safe performance.
394
+ - **`NavItem`** — Uses `grid-template-columns` transition instead of `max-width` (compositor-safe).
395
+ - **`CustomCursor`** — `useRef` for stable random colour pick, fixing Strict Mode flicker.
396
+ - **`ThemeContext.Provider`** — Value memoised with `useMemo` to prevent unnecessary re-renders.
397
+ - **`Modal` context value** — Memoised with `useMemo`.
398
+ - **`Select` / `Combobox` / `InputTag` option lists** — Capped at 100 items with a refine-search prompt for performance.
399
+ - **`RichTextEditor` handlers** — Hoisted to `useCallback` for stable references.
400
+ - **`TableFilter` / `ColorPicker` / `ToastProvider`** — Replaced `Date.now()`/`Math.random()` keys with incrementing refs / `crypto.randomUUID()`.
401
+ - **`useClickOutside`** — Extended to accept additional exclusion refs.
402
+ - **`gsap` removed from `peerDependencies`** — Had zero imports in source; was an erroneous entry.
403
+ - **`tsconfig` `moduleResolution`** — Changed from `node` to `bundler` for correct ESM resolution.
404
+ - **Deleted `ThemeBuilder/` directory** — Orphaned directory removed from source.
405
+
406
+ ### Fixed
407
+
408
+ - **`Textarea` / `Combobox`** — Added `aria-describedby` wired to helper/error element IDs.
409
+ - **`Select` / `TimePicker` / `DatePicker` / `DateRangePicker` triggers** — Added `aria-invalid` and `aria-describedby`.
410
+ - **`Checkbox` / `Radio` (solo)** — `aria-invalid` wired when `state="invalid"`.
411
+ - **`Tree`** — Full APG keyboard navigation (`ArrowUp`/`ArrowDown`/`Home`/`End`) with roving `tabIndex`.
412
+ - **`DragDrop`** — Complete keyboard support with `aria-live` announcements.
413
+ - **`Breadcrumbs`** — One `<li>` per item (was a single `li.contents`).
414
+ - **`Select` / `Combobox`** — `aria-controls` wired to real DOM IDs; option IDs added.
415
+ - **`Popover`** — Corrected role and `aria-haspopup` attribute.
416
+ - **`Switch`** — All interaction routed through the native input; removed redundant track `onClick`.
417
+ - **`Sortable`** — `aria-live` reorder announcements; `ul`/`li` semantics.
418
+ - **`Carousel`** — `inert` attribute applied to hidden slides.
419
+ - **`Accordion`** — `ArrowDown`/`ArrowUp` keyboard navigation between triggers.
420
+ - **`FormLabel`** — Screen-reader-only "(required)" text added alongside the visual asterisk.
421
+ - **`Input`** — `role="alert"` on helper text element when `state="invalid"`.
422
+ - **`Table`** — `aria-sort` on sortable `th` columns; `scope="col"`; optional `caption` prop.
423
+ - **`Skeleton`** — `aria-hidden` on placeholder divs.
424
+ - **`Tooltip`** — Removed `aria-live`; fixed double Tab stop via `cloneElement`.
425
+ - **`Rating`** — `aria-hidden` on star buttons.
426
+ - **`Pagination`** — Ellipsis rendered as `<span>` with `role="separator"`, not a `<button>`.
427
+ - **`AlertDialog`** — Always allows `Escape` when no footer is present, preventing a keyboard trap.
428
+ - **`Dropdown`** — Removed hardcoded `"Menu"` `aria-label` fallback.
429
+ - **`Checkbox` / `Radio`** — Dev-mode warning when rendered without an accessible name.
430
+ - **`Progress`** — Consumer `aria-label` override now supported.
431
+ - **`InputCreditCard`** — Top-level `state` + `error` props for consolidated error message; internal dirty-tracking auto-clears error on re-entry; replaced `Math.random()` IDs with `useId()`.
432
+ - **`Tabs`** — Removed duplicate `role="tablist"`; fixed `Home`/`End` navigation.
433
+ - **`useSelectPortal` / `useScaleBackground`** — Added isomorphic `useLayoutEffect` shim (SSR-safe).
434
+ - **`useOverlay` scroll lock/unlock** — Added `typeof window` guard (affects `Modal`, `Drawer`, `Overlay`).
435
+ - **`ToastProvider` / `ColorPickerBody` / `ContextMenuBody`** — `document.body` access deferred until after `isClient` check.
436
+ - **`InputAddress`** — Replaced `Math.random()` IDs with `useId()` for hydration safety.
437
+ - **`DatePicker` / `DateRangePicker`** — Pinned `toLocaleDateString` to `'en-US'` locale for consistent SSR/CSR output.
438
+ - **`PageTransition`** — Added `typeof window`/`document` guards.
439
+ - **`Badge` / `SpotlightBorder`** — Replaced `window.matchMedia` with `useReducedMotion()` for SSR safety.
440
+ - **`TabsTrigger`** — Moved Storybook animation flag read into `useEffect` + `useRef`.
441
+ - **`Overlay`** — Replaced `useMemo` dark-mode read with `useDarkMode()` hook.
442
+ - **`GanttSplitter` / `Slider`** — Added pointer event listener cleanup on unmount.
443
+ - **`Segmented`** — Wrapped `updateActiveStyle` in `useCallback`.
444
+ - **`Masonry`** — Fixed stale closure in `MutationObserver` debounce.
445
+ - **`useNetworkStatus`** — Always initialises to `true` (optimistic SSR default).
446
+ - **CSS export paths** — `shadcn-compat.css` and `theme.css` now correctly copied to `dist/` during build.
447
+
448
+ ### Docs
449
+
450
+ - **`PageHeading` stories** — Added `docs.source.code` to all stories; removed redundant `WithBreadcrumbs` story.
451
+
452
+ ## [1.0.0-beta.23] - 2026-04-12
453
+
454
+ ### Added
455
+
456
+ - **SidebarLogo** — New `SidebarLogo` component for sidebar branding; shows an icon in both states and animates the text label in/out on expand/collapse.
457
+ - **Tooltip `triggerClassName`** — New prop to apply classes directly to the trigger wrapper element, separate from the tooltip bubble's `className`.
458
+
459
+ ### Changed
460
+
461
+ - **NavItem collapse animation** — Replaced conditional render with a CSS `max-width` + `opacity` transition so the label and end-content smoothly slide out when the sidebar collapses, rather than disappearing instantly. Added `aria-hidden` on the hidden content area.
462
+ - **Sidebar sub-component polish** — Various updates to `SidebarHeader`, `SidebarNavGroup`, `SidebarToggle`, `SidebarUserProfile`, and `SidebarContent` for layout and accessibility improvements.
463
+ - **MCP setup docs** — Improved `get_setup` CSS section with clearer guidance on `styles.css` being the only import needed and an explicit warning against importing `theme.css` in Next.js/Vite projects.
464
+
465
+ ### Fixed
466
+
467
+ - **Release build** — Added `prepublishOnly: "clean && build"` to `package.json` so `npm publish` always rebuilds from source; prevents stale `dist/styles.css` from shipping in a release.
468
+
469
+ ## [1.0.0-beta.22] - 2026-04-08
470
+
471
+ ### Added
472
+
473
+ - **Icon component** — Consolidated `PaymentIcon`, `SocialIcon`, and `FileTypeIcon` into a single unified `Icon` component with a consistent API across all icon categories.
474
+ - **SelectableCard standalone support** — `SelectableCard` can now be used outside a `SelectableCard.Group` via a new `standalone` prop and `useOptionalSelectableCardContext` hook.
475
+ - **SelectableCard `indicatorPosition` prop** — Control whether the indicator (checkbox/radio) appears at the top or bottom of the card.
476
+ - **SelectableCard `size` variants** — New `size` prop with `cardSizes` and `indicatorSizes` in the theme for consistent sizing.
477
+ - **SelectableCard Radio/Checkbox indicators** — Radio and Checkbox components can now be used as card indicators, replacing the previous custom indicator implementation.
478
+ - **SelectableCard exported types** — `SelectableCardIndicatorPosition` and `SelectableCardSize` are now exported from the package.
479
+ - **SelectableCard `defaultValue`** — `SelectableCard.Group` now accepts a `defaultValue` prop for uncontrolled initial selection.
480
+ - **ColorPicker gradient mode** — Added gradient, image, and saved colors modes with header navigation in the ColorPicker component.
481
+ - **AuthLayout block** — New `AuthLayout` block with Storybook stories and autodocs for login/signup page scaffolding.
482
+ - **Storybook status badges** — Components can now be tagged as `beta`, `experimental`, `deprecated`, or `new` with visual status badges in Storybook.
483
+
484
+ ### Changed
485
+
486
+ - **Theme font-size** — Removed root `font-size` override; text size scale shifted down one step for better alignment with browser defaults.
487
+ - **SelectableCard stories** — Rewritten with Untitled UI-inspired examples, Icon component integration, realistic copy, and corrected indicator sizing.
488
+ - **KPI stories** — Added beta status tag.
489
+ - **Table performance** — Optimised rendering performance and improved code quality across all table-related files.
490
+
491
+ ### Fixed
492
+
493
+ - **ColorPicker gradient stop colors** — Gradient stop colors are now correctly reflected in the trigger input.
494
+ - **Overlay animation** — Smoother open/close animation; eliminated scroll-lock layout shift.
495
+ - **SelectableCard stale closures** — `handleChange` is now wrapped in `useCallback` to prevent stale closure bugs.
496
+ - **SelectableCard RadioIndicator layout** — Wired `indicatorSizes` from theme and cleaned up RadioIndicator layout.
497
+
498
+ ## [1.0.0-beta.21] - 2026-03-30
499
+
500
+ ### Fixed
501
+
502
+ - **Animated hooks order** — Moved `useMemo` calls above early returns in `Animated.Group` and `Animated.Item` to fix React Rules of Hooks violation. Memoized `motion[as]` and added `will-change` GPU hint.
503
+ - **Animated variant allocation** — Pre-computed animation variants at module level; trimmed `visible` state to only animate properties each preset uses.
504
+ - **Radio dot positioning** — Fixed centering with `top-1/2 left-1/2` and `-50%` transforms in motion variants. Added `dotSizes` to theme.
505
+ - **Checkbox/Radio checked outline** — Removed `checked:outline` ring styling for a cleaner appearance (focus-visible outlines retained).
506
+ - **Tooltip radius & border** — Halved `--tooltip-radius` to `calc(var(--radius-base) / 2)` and removed white `border-t`.
507
+
508
+ ## [1.0.0-beta.20] - 2026-03-29
509
+
510
+ ### Added
511
+
512
+ - **Button `ghost` variant** — Transparent background, no border, full padding with subtle hover tint. Ideal for toolbars and icon-only actions.
513
+
514
+ ### Fixed
515
+
516
+ - **Segmented padding & radius** — Switched from per-item margins to container padding (`p-1`), corrected inner border-radius to `calc(var(--segmented-radius) - 4px)` for perfect nested curves, and computed slider top position from button rect for proper vertical centering.
517
+ - **Tooltip backdrop opacity** — Increased from 60%/80% to 90% for better readability.
518
+ - **Docs CSS import path** — Fixed `global.css` → `styles.css` in CLAUDE.md and Flikkui-components.md.
519
+
520
+ ## [1.0.0-beta.19] - 2026-03-28
521
+
522
+ ### Fixed
523
+
524
+ - **Popover/Dropdown layout interference** — Added `contents` display class to Dropdown and Popover root wrappers to prevent layout interference with parent containers.
525
+ - **Popover positioning flash** — Deferred PopoverBody animation until `isReady` flag from `useSelectPortal` confirms positioning is calculated, preventing initial flash/jump.
526
+
527
+ ### Changed
528
+
529
+ - **Separator stories** — Added `docs.source.code` to Variants story and new `CustomStyling` story with className override examples.
530
+
531
+ ## [1.0.0-beta.18] - 2026-03-18
532
+
533
+ ### Fixed
534
+
535
+ - **DatePickerBody CSS variable** — Fixed broken `text-[var(--color-text-muted)` (missing closing `]`) in range mode footer.
536
+
537
+ ### Changed
538
+
539
+ - **Tag enter animation removed** — Tags no longer scale-in on mount; exit animation preserved.
540
+
541
+ ## [1.0.0-beta.17] - 2026-03-18
542
+
543
+ ### Added
544
+
545
+ - **Background assets export** — New `./bg/*` export path and `build:assets` script to copy background images into the dist folder.
546
+ - **CustomCursor expanded exports** — Exported `CustomCursorProvider`, `CustomCursorFollow`, `useCustomCursor` hook, and all related types from the effects module.
547
+ - **AuthLayout story docs** — Added `autodocs` tag and `docs.source.code` blocks to AuthLayout stories for copy-paste-ready usage examples.
548
+
549
+ ### Fixed
550
+
551
+ - **Card.Body missing top padding** — When `Card.Body` is used without a preceding `Card.Header`, content no longer touches the top border. Added `first:pt-6` to `bodyStyle` and `footerStyle` in the Card theme so `:first-child` restores top padding automatically.
552
+ - **Button type attribute order** — Moved `type="button"` before spread props so it can be overridden by consumers passing `type="submit"`.
553
+ - **Calendar year range** — Default year dropdown now extends 10 years into the future (was capped at current year). Fixed `maxDate` year constraint logic to use `Math.max` so the dropdown always includes the max date's year.
554
+
555
+ ### Changed
556
+
557
+ - **MCP server v0.2.0** — Added `get_setup` tool, hooks extraction, and sub-component detection. Updated README and docs to include dependency information.
558
+ - **Tailwind config** — Removed external Google Fonts `@import` from `tailwind-config.css` to eliminate render-blocking network request.
559
+
560
+ ## [1.0.0-beta.16] - 2026-03-17
561
+
562
+ ### Added
563
+
564
+ - **Flikkui MCP server** — New `packages/mcp/` workspace with a build-time extraction pipeline that parses all component source files into a structured registry. Provides 4 MCP tools (`get_component`, `search_components`, `get_theme_tokens`, `generate_code`) for AI-powered component lookup and code generation. Includes Claude Code integration instructions in README.
565
+
566
+ ### Changed
567
+
568
+ - **Switch component** — Overhauled UI with updated theme and improved visual design (`Switch.tsx`, `Switch.theme.ts`).
569
+ - **Slider component** — Improved layout, styling, and theming; refined theme tokens (`Slider.tsx`, `Slider.theme.ts`).
570
+ - **StreamingResponse component** — Refined animation timings, markdown rendering, cursor behaviour, and word animation context logic.
571
+ - **Neumorphic components** — Updated stories with revised layout; added missing exports on `InsetCircleButton` and `InsetPill`.
572
+ - **GlassSurface component** — Fixed rendering issues and updated stories extensively; added new `GlassSurface.types.ts`.
573
+ - **Progress component** — Minor theme token updates.
574
+ - **Drawer stories** — Removed outdated story entries to keep documentation current.
575
+
576
+ ### Removed
577
+
578
+ - **ThinkingIndicator component** — Removed from the `ai` module along with all associated files (theme, animations, stories, types, index).
579
+
580
+ ## [1.0.0-beta.15] - 2026-03-16
581
+
582
+ ### Added
583
+
584
+ - **NeumorphicPrototype component** — New experimental neumorphic design prototype with associated stories demonstrating the neumorphic visual style.
585
+ - **InteractiveCharacters component** — New animated character component with blob/liquid character visuals and interactive behavior.
586
+ - **DateRangePicker component** — Full compound component with `DateRangePicker.Trigger`, `DateRangePicker.Body`, and preset support for common date ranges.
587
+ - **FileUploadProgress component** — New file upload progress component with radial progress indicator, `completionDelay` prop for configurable tick-to-remove transition, and returns null when items array is empty. Uses `TrashIcon` for completed file removal and `XMarkIcon` for cancel.
588
+ - **AuthLayout block story** — New login/auth layout block with page transition animation.
589
+ - **Calendar `showOtherMonthDays` prop** — New prop to control visibility of dates from adjacent months in the calendar grid.
590
+ - **Calendar range selection styling** — Range selection strip now uses rounded endpoints for a more polished appearance.
591
+ - **Drawer `closeOnBack` prop** — New prop that closes the Drawer when the browser back button is pressed, using the History API.
592
+
593
+ ### Changed
594
+
595
+ - **Progress component API simplified** — `color` prop and `colors` theme key removed. The fill bar color is now controlled via `className` (e.g. `className="bg-[var(--color-success)]"`). `trackClassName` and `fillClassName` props replaced by `wrapperClassName`. Default fill color is now always the primary CSS variable.
596
+ - **Progress indeterminate animation** — Animation updated from `translateX` to position-based (`left`/`width`) keyframes at 1.8s linear timing. Striped pattern applied by default using `repeating-linear-gradient`.
597
+ - **Progress label font weight** — Label changed from `font-medium` to `font-semibold` for improved legibility.
598
+ - **Progress `labelPosition="bottom"` layout** — Changed from `flex-col-reverse` to `flex-col` to maintain consistent visual order.
599
+ - **Modal animation** — Refined to use combined scale and slight slide-in style for a more polished entrance.
600
+ - **Toast component** — Refactored internal structure for cleaner implementation.
601
+ - **Button theme** — Removed `rounded-none overflow-visible` from link variant to fix layout artifacts.
602
+ - **`dateUtils`** — Token replacement now uses placeholder-based approach to prevent collisions with month names containing format tokens (e.g. "March" containing "M").
603
+ - **ButtonGroup single-child rounding** — Fixed border-radius removal on only-child buttons using `:not(:only-child)`.
604
+ - **KanbanLayout, OnboardingLayout, ProfileLayout, SettingsLayout stories** — Minor story updates for consistency.
605
+
606
+ ### Fixed
607
+
608
+ - **Badge icon sizing** — Removed `[&>svg]:size-full` rule that caused icons inside Badge to scale to the full badge size.
609
+ - **Badge icon visibility and alignment** — Fixed icon rendering and avatar alignment issues within Badge.
610
+ - **Badge size in Feed story** — Changed invalid `xs` size reference to `sm`.
611
+ - **Kbd component square rendering** — Fixed Kbd not rendering as a square for single-character keys.
612
+ - **Kbd size tokens** — Refined to 20px/24px with reduced padding for better proportions.
613
+ - **InputOTP number clipping** — Fixed OTP digit input numbers being clipped by removing inner padding on the input container.
614
+ - **Tag `startContent` and avatar alignment** — Fixed alignment issues when using `startContent` or avatar slots in the Tag component.
615
+ - **Avatar title visibility** — Fixed Avatar title not displaying when a subtitle was provided without an explicit title prop.
616
+ - **Avatar title/subtitle overflow** — Added `truncate` to prevent layout overflow when long text is used in title or subtitle slots.
617
+ - **SelectableCard icon circle shrinking** — Fixed icon circles in SelectableCard stories shrinking unexpectedly.
618
+ - **DateRangePicker range fix** — Corrected date range selection logic.
619
+ - **Type safety across 35+ files** — Fixed generic defaults, XSS protections, and type safety issues identified in comprehensive code review.
620
+ - **Accessibility improvements across 30+ files** — Addressed accessibility findings from code review including ARIA attributes and keyboard navigation.
621
+ - **Bundle analysis cleanup** — Removed unused custom icon system (entire codebase uses Heroicons).
622
+ - **Storybook build CSS import path** — Corrected CSS import path in Storybook preview config.
623
+ - **Avatar and AvatarGroup minor fixes** — Various alignment and rendering corrections.
624
+ - **CommandPalette fixes** — Minor rendering and behavior corrections.
625
+ - **`global.scss` indeterminate progress keyframes** — Updated keyframes to use `left`/`width` properties instead of `translateX` for correct indeterminate bar behavior.
626
+
627
+ ### Removed
628
+
629
+ - **`ApprovalCard` component** — Removed in favor of the new `InteractiveCharacters` component.
630
+ - **`MessageHistory` component** — Removed as part of the InteractiveCharacters introduction.
631
+ - **Unused custom icon system** — Removed all legacy custom SVG icon infrastructure; Heroicons is the only icon system.
632
+ - **Progress `color` prop** — Use `className` to set fill color instead (see Changed section above).
633
+ - **Progress `trackClassName` / `fillClassName` props** — Replaced by `wrapperClassName`.
634
+
635
+ ## [1.0.0-beta.14] - 2026-03-05
636
+
637
+ ### BREAKING CHANGES
638
+
639
+ - **Badge `ghost` variant renamed to `soft`** — `variant="ghost"` no longer exists on Badge. Use `variant="soft"` instead. The `BadgeVariant` TypeScript type has been updated — code using `"ghost"` will fail type-checking.
640
+ - **Button `ghost` variant renamed to `soft`** — `variant="ghost"` no longer exists on Button. Use `variant="soft"` instead. The `ButtonVariant` TypeScript type has been updated — code using `"ghost"` will fail type-checking.
641
+ - **Sidebar API overhaul** — The Sidebar component has been significantly restructured. New compound sub-components added (`Sidebar.MobileTrigger`, `Sidebar.UserProfile`). Hardcoded colors replaced with CSS variables. Mobile full-screen takeover behavior added. If you have custom Sidebar implementations, review the new API.
642
+ - **NavItem API changes** — NavItem now supports self-contained submenus via `items` prop, `notification` prop (number for badge, `true` for dot), and active indicator bar. The `NavItemProps` interface has changed. Hardcoded `hover:bg-neutral-100` replaced with `hover:bg-[var(--color-background-secondary)]`.
643
+
644
+ ### Added
645
+
646
+ - **Sidebar mobile support** — Full-screen mobile takeover with backdrop, body scroll lock, and close button. New `mobileBreakpoint` prop (default 1024px).
647
+ - **Sidebar.MobileTrigger** — New sub-component for hamburger menu button, auto-hidden on desktop.
648
+ - **Sidebar.UserProfile** — New sub-component with avatar, name, email, status dot, and collapsed tooltip that adapts to rail/expanded/mobile states.
649
+ - **Sidebar accordion mode** — `Sidebar.Nav` now supports accordion mode where only one submenu can be open at a time.
650
+ - **NavItem `items` prop** — Self-contained submenu support without manual `useState` per submenu.
651
+ - **NavItem `notification` prop** — Pass a number for a count badge or `true` for a dot indicator.
652
+ - **NavItem active indicator** — 3px rounded primary bar on left edge for active items.
653
+ - **NavItem focus-visible ring** — Keyboard navigation now shows a visible focus ring.
654
+
655
+ ### Changed
656
+
657
+ - **Badge/Pill sizes and font weights** — Adjusted sizes and font weights (`xs`/`sm` now use `font-semibold`, Pill `md` padding updated).
658
+ - **Tabs trigger font** — Changed to `font-semibold`, removed gap from size variants.
659
+ - **Link component** — Added `font-semibold` to link variant.
660
+ - **PromptInput width** — Changed from `min-w-xl` to `w-full` for fluid width.
661
+ - **PromptSuggestion padding** — Reduced from `py-2 px-3.5` to `py-1 px-3`.
662
+ - **Card/Modal radius** — Reduced from 3x to 2x base radius in `theme.css`.
663
+ - **Sidebar theming** — All hardcoded colors (`bg-white`, `border-gray-200`) replaced with CSS variables. Supports `bg-image` classes for dark/themed sidebars via `className`.
664
+ - **NavItem hover style** — Replaced `hover:bg-neutral-100` with `hover:bg-[var(--color-background-secondary)]` for theme consistency.
665
+ - **Block stories** — Added responsive breakpoints and mobile sizing to AIAssistant, ActivityTimeline, Changelog, Chat, and other layout stories.
666
+
667
+ ### Fixed
668
+
669
+ - **FileManagerLayout story** — Fixed Breadcrumbs usage (use `items` prop, not compound API).
670
+ - **SettingsLayout story** — Removed non-existent `FormLayout.Header`/`FormLayout.Body` sub-components.
671
+ - **Font size and CSS variables** — Fixed font size and variable references.
672
+
673
+ ### Removed
674
+
675
+ - **EmptyStatesLayout story** — Removed story file.
676
+
677
+ ## [1.0.0-beta.13] - 2026-03-04
678
+
679
+ ### Added
680
+
681
+ - **Feed compound component** — Rebuilt as `Feed.Item` + `Feed.Collapse` with SVG curved connector, staggered expand/collapse animation, and reduced-motion support. New `Feed.animations.ts` module added.
682
+ - **Badge `xs` size** — New extra-small size variant with adjusted typography and per-size font weight.
683
+ - **FileTypeIcon component** — New component for rendering file type indicators.
684
+ - **ThemeBuilder component** — New component for theme customization workflows.
685
+ - **AIOrb `Aura` variant** — New aura visual variant for the AIOrb component. `OrbState` type is now exported. Hooks directory added.
686
+ - **GlassSurface `colorScheme` prop** — Theme-aware defaults for light mode including opacity, distortion, blend mode, and saturation control. Storybook stories added.
687
+ - **`paletteGenerator` utility exported** — `paletteGenerator` is now exported from the main `utils` package.
688
+
689
+ ### Changed
690
+
691
+ - **Feed architecture** — Previous Feed component replaced entirely by the new compound component API (`Feed.Item`, `Feed.Collapse`).
692
+ - **Badge typography and alignment** — Adjusted per-size font weight, added `align-middle`, fixed `ghost-neutral` text color.
693
+ - **Avatar base styles simplified** — Removed ring and glass-effect styles, switched to `font-bold`, limited `xs` size to single initial character.
694
+ - **Button `sm` text size** — Changed from `text-base` to `text-sm` for small button variant.
695
+ - **Message component** — Timestamp text changed to `text-xs`, sender bubble darkened to `neutral-900`.
696
+ - **AIOrb container** — Changed to `overflow-visible` to allow visual effects to extend beyond container bounds.
697
+ - **Timeline horizontal connector positioning** — Fixed using `absolute` positioning instead of `flex` layout.
698
+ - **`--color-text-secondary` token** — Adjusted from `neutral-800` to `neutral-700` in `theme.css`.
699
+ - **SocialIcon stories** — Updated Storybook stories.
700
+ - **Storybook sort order** — Added "Tools" category to Storybook story sort order.
701
+
702
+ ### Removed
703
+
704
+ - **Loader component** — The `Loader` component has been removed from the library.
705
+
706
+ ### Fixed
707
+
708
+ - **Avatar `alt` prop renamed to `name`** — `alt` prop is now `name` across Avatar and AvatarGroup. Review issues from the refactor have been addressed.
709
+ - **Timeline horizontal connector** — Connector now uses `absolute` positioning to correctly align with timeline items.
710
+ - **Ghost-neutral Badge text color** — Corrected text color for `ghost` variant with `neutral` color.
711
+
712
+ ## [1.0.0-beta.12] - 2026-02-26
713
+
714
+ ### BREAKING CHANGES
715
+
716
+ - **Compound component `.Content` renamed to `.Body`** — All compound components that previously used `.Content` (e.g., `Card.Content`, `Accordion.Content`, `Modal.Content`, `Drawer.Content`) now use `.Body`. Backward compatibility aliases have been removed.
717
+
718
+ ### Added
719
+
720
+ - **DatePicker `yearRange` prop** — Year dropdown order reversed (newest first) and a new `yearRange` prop exposed for custom year range configuration.
721
+ - **`React.ReactNode` flexibility across 14 components** — Applied the ReactNode flexibility pattern to 14 components for greater composition flexibility.
722
+ - **Checkbox and Radio flexibility** — Enhanced Checkbox and Radio components for more flexible usage patterns.
723
+ - **AccordionTrigger chevron customization** — New `chevron`, `chevronRotation`, and `chevronPosition` props for full control over the trigger indicator icon.
724
+ - **FormLayout Storybook autodocs** — Added `tags: ["autodocs"]`, component description, subcomponents, and inline source code blocks to FormLayout stories.
725
+
726
+ ### Changed
727
+
728
+ - **FormLayout simplified** — Removed dedicated `FormLayout.Header` and `FormLayout.Body` sub-components; separator injection logic moved to the root `FormLayout` component for a flatter API.
729
+ - **Card, Button, Modal, and Drawer minor styling adjustments** — Minor theme refinements for consistency.
730
+
731
+ ### Fixed
732
+
733
+ - **DatePicker year dropdown** — Default year dropdown now ends at current year instead of +50 years into the future.
734
+
735
+ ## [1.0.0-beta.11] - 2026-02-24
736
+
737
+ ### Added
738
+
739
+ - **AccordionTrigger `iconStart` / `iconEnd` props** — Trigger now accepts a leading `iconStart` and a trailing `iconEnd` element. `iconEnd` defaults to `PlusIcon`; set to `null` to hide the indicator entirely.
740
+ - **AccordionTrigger `iconStartRotation` / `iconEndRotation` props** — Configurable rotation degrees applied to each icon when the accordion is open. `iconEndRotation` defaults to 45 (plus-to-X); use 180 for chevrons, 90 for arrows, 0 to disable. `iconRotation` retained as a deprecated alias for `iconEndRotation`.
741
+ - **`createTriggerIconVariants` animation factory** — New exported helper in `Accordion.animations.ts` that returns Framer Motion `Variants` for icon rotation, parameterized by target degrees.
742
+ - **Accordion `contentInnerStyle` theme key** — `AccordionThemeOverrides` now includes `contentInnerStyle`, exposed in context, so the inner content padding can be overridden via theme. `className` on `AccordionContent` now targets the inner div instead of the outer container.
743
+ - **Drawer `sm` size** — New `sm` size variant: 320 px wide (horizontal) / 240 px tall (vertical), capped at 90 % of the viewport.
744
+ - **`DrawerContentProps` and `DrawerFooterProps` exported** — Both prop interfaces are now re-exported from the Drawer barrel (`index.ts`) for consumer use.
745
+ - **Button ripple utilities exported** — `useRipple`, `getRippleColorClass`, `getRippleAnimation`, and the types `RippleEffectType`, `RippleConfig`, `Ripple` are now exported from `@flikk/ui/core` and `@flikk/ui`.
746
+ - **`ButtonTheme` interface exported** — The `ButtonTheme` interface is now `export`ed from `Button.theme.ts` for consumers who need to extend it.
747
+
748
+ ### Changed
749
+
750
+ - **AccordionTrigger icon rendering** — The default indicator icon (`PlusIcon`) is now rendered through the unified `iconEnd` / `renderIcon` path, removing the previous hardcoded `AnimatePresence` wrapper. Indicator motion div gains `ml-auto` to always push to the right.
751
+ - **Accordion content `max-h`** — `data-[state=open]:max-h-[500px]` reduced to `max-h-[320px]` to limit the transition distance and prevent janky over-shoot on short content.
752
+ - **Accordion item style** — Removed `data-[state=open]:shadow-xs` from `itemStyle`; open state no longer elevates the item card.
753
+ - **Accordion trigger style** — Removed duplicate and conflicting utilities from `triggerStyle` string (`justify-between` duplication, redundant `cursor-pointer`, redundant `flex`).
754
+ - **Badge font sizes simplified** — `text-xs md:text-sm` (sm) and `text-sm md:text-base` (md) replaced with flat `text-sm` and `text-base` respectively, consistent with the beta.9 base-font-size change.
755
+ - **Button `getRippleAnimation` signature** — Changed from `(effect, layer, baseScale)` to `(effect, ripple, baseScale)` so the full `Ripple` object is available; `layer` is derived internally.
756
+ - **Button `particle` ripple effect** — Random scale and duration values are now pre-computed at ripple creation time (`randomScale`, `randomDuration` fields on `Ripple`) and reused during render, eliminating React hydration/re-render instability from calling `Math.random()` during animation.
757
+ - **Button `echo` ripple timeouts tracked** — Echo ripple `setTimeout` calls are now stored in `timeoutsRef` and cleared on unmount, preventing state updates on unmounted components.
758
+ - **Button `muted` ripple color removed** — `getRippleColorClass` no longer has a `muted` case; falls through to the `default` primary color.
759
+ - **Button disabled state consolidation** — `isDisabled` now correctly includes the native `disabled` prop (`!!disabledProp`), unifying `state="disabled"`, `state="loading"`, and native `disabled={true}` into a single flag used for all conditional logic.
760
+ - **Button `mergedRef` stability** — The merged ref callback no longer lists `ref` in its dependency array; instead tracks the latest `ref` via `useRef<forwardedRef>` to avoid DOM detach/attach cycles on every render when an inline callback ref is passed.
761
+ - **Button prop spread order** — `restProps` and `animationProps` are now spread before the explicit props in the JSX to ensure explicitly set values (e.g., `aria-label`, `onClick`) always take precedence over motion or consumer overrides.
762
+ - **Button reflection gradient completed** — The inner reflection `<div>` now includes the missing `from-white/25 to-transparent` gradient classes that were accidentally omitted.
763
+ - **Card padding simplified** — All card sub-components (`Header`, `Content`, `Footer`) use flat `p-6` instead of responsive `p-4 md:p-6`. `contentStyle` and `footerStyle` now include `pt-0` to eliminate double-spacing when `Header` is present.
764
+ - **Card `[&>*+*]:pt-0` rule removed** — The implicit child padding override has been removed from `baseStyle`; spacing is now handled explicitly per sub-component.
765
+ - **`CardTitle` and `CardSubtitle` render as `<div>`** — Changed from `<h3>` / `<p>` to `<div>` for maximum flexibility. Consumers who want semantic heading or paragraph elements should add them inside.
766
+ - **`CardTitleProps` / `CardSubtitleProps` interfaces** — Extend `HTMLAttributes<HTMLDivElement>` instead of `HTMLAttributes<HTMLHeadingElement>` / `HTMLAttributes<HTMLParagraphElement>`. `children` removed from explicit props (inherited from HTMLAttributes).
767
+ - **`CardComponent` type signatures updated** — `Title` and `Subtitle` `ForwardRefExoticComponent` ref types changed from `HTMLHeadingElement` / `HTMLParagraphElement` to `HTMLDivElement`.
768
+ - **Drawer theme keys renamed** — `DrawerTheme.content` renamed to `inner` (the full-height flex wrapper); `DrawerTheme.body` renamed to `content` (the scrollable body region). `DrawerThemeOverrides` updated to match.
769
+ - **Drawer position variants** — `drawerPositionVariantsWithMargin` and `drawerPositionVariantsFullWidth` now use `0` offsets (e.g., `right-0 top-0 h-full`) instead of `6` (`right-6 top-6`), removing the previously baked-in viewport gutter. Apply margin via wrapper or `className` instead.
770
+ - **`DrawerTitle` renders as `<h2>`** — Changed from `<div>` to `<h2>` for correct document outline and screen-reader heading announcement.
771
+ - **Drawer dark mode border** — `drawerTheme.footer` dark mode border changed from `dark:border-[var(--color-neutral-700)]` to `dark:border-[var(--color-border)]` for consistency with the theme system.
772
+ - **Drawer stories** — Added `CustomStyling` story demonstrating `className` overrides on `Drawer.Header`, `Drawer.Content`, `Drawer.Footer`, and `Drawer.Title`. Added `sm` size button and Drawer instance to the `Variants` story. Storybook size control updated to include `"sm"` option.
773
+ - **`global.scss` shadow** — Removed `!important` from the `.shadow-real-xl` shadow value to avoid CSS specificity side-effects.
774
+ - **`import type` for Framer Motion `Variants`** — `Accordion.animations.ts` now uses `import type` for the `Variants` import.
775
+
776
+ ### Fixed
777
+
778
+ - **Button ripple memory leak** — `useRipple` now creates a `timeoutsRef` and clears all pending `setTimeout` handles via a `useEffect` cleanup. Previously, timers fired after component unmount and called `setRipples` on a dead component.
779
+ - **Button `particle` ripple render instability** — `Math.random()` was previously called inside `getRippleAnimation` during React render/re-render, producing different values each call and causing animation flicker. Random values are now stable.
780
+ - **AccordionTrigger `AnimatePresence` removed** — The previous implementation wrapped the icon in `AnimatePresence` unnecessarily; it has been replaced with a direct `motion.div` using `initial={false}` and `animate` state, which is simpler and avoids exit animation artifacts.
781
+
782
+ ## [1.0.0-beta.10] - 2026-02-23
783
+
784
+ ### Added
785
+
786
+ - **VoiceRecorder component** — New `VoiceRecorder` sub-component for `PromptInput` enabling voice recording with Web Speech API / MediaRecorder integration. Exports `VoiceRecorderProps` and `VoiceRecorderTypes` from the AI package entry point.
787
+ - **PromptInput voice recording support** — `PromptInput` now accepts a `voiceRecorder` prop to render the `VoiceRecorder` UI inline within the input bar.
788
+ - **PromptInput animation system** — New `PromptInput.animations.ts` file with dedicated motion variants for the prompt input component.
789
+ - **WordAnimationContext** — New React context (`WordAnimationContext.tsx`) for coordinating per-word animation timing across `StreamingResponse` child components.
790
+ - **StreamingResponse animation variants** — New `StreamingResponse.animations.ts` with dedicated motion variants for streaming text and markdown elements.
791
+
792
+ ### Changed
793
+
794
+ - **Mention component — click-to-select atomic tags** — Clicking a rendered `@mention` tag now selects it as a single atomic unit with a visible ring highlight. Pressing Backspace or Delete removes the selected mention; typing any character replaces it. Implemented via React state to avoid conflicts with React reconciliation (`removeChild` errors previously caused by direct DOM manipulation).
795
+ - **Mention component utilities** — New `Mention.utils.ts` file extracted from component logic for reuse and testability.
796
+ - **StreamingResponse MarkdownRenderer** — Refactored `MarkdownRenderer.tsx` with improved block-level animation sequencing, better code block rendering, and compatibility with the new `WordAnimationContext`.
797
+ - **StreamingCursor** — Enhanced `StreamingCursor.tsx` with refined animation and cursor character options.
798
+ - **PromptInput types** — `PromptInput.types.ts` updated with new props for voice recording integration and animation configuration.
799
+ - **StreamingResponse types** — `StreamingResponse.types.ts` updated with new animation and cursor configuration props.
800
+ - **Tag component** — Types, theme, and implementation updated for improved flexibility and better integration with Mention's tag rendering.
801
+ - **Core component theme adjustments** — Minor visual refinements to Avatar, Badge, Button, and Card themes for improved consistency.
802
+
803
+ ### Fixed
804
+
805
+ - **Dropdown portal rendering** — `DropdownMenu` now correctly handles portal attachment edge cases.
806
+ - **Popover positioning and types** — `PopoverContent` positioning logic improved; `Popover.types.ts` extended with additional placement options.
807
+ - **useSelectPortal hook** — Refactored `useSelectPortal.ts` with more robust portal selection and cleanup logic, eliminating positioning drift on scroll and resize.
808
+
809
+ ## [1.0.0-beta.9] - 2026-02-20
810
+
811
+ ### Fixed
812
+
813
+ - **Text sizing corrected across all components** — Base font size changed from `text-sm` to `text-base` throughout all component themes, matching the intended design system baseline. Affects AI components, charts, core components, data-display, forms, effects, and layout.
814
+ - **Corrupted CSS variable references in Avatar and Segmented themes** — A previous automated script corrupted `--avatar-text-*` and `--segmented-text-size-*` variable names (e.g. `--avatar-text-sm` was corrupted to `--avatar-text-base`). These have been replaced with direct Tailwind text-size classes, which are more reliable and remove the need for the intermediate CSS variables.
815
+ - **Unused CSS variables removed from theme.css** — `--form-text-*`, `--button-text-size-*`, `--segmented-text-size-*`, and `--avatar-text-*` variables have been removed as they are no longer referenced by any component theme.
816
+
817
+ ## [1.0.0-beta.8] - 2026-02-20
818
+
819
+ ### BREAKING CHANGES
820
+
821
+ - **Checkbox compound component API** — `Checkbox` now exports as a compound component with `Checkbox.Group`. The `id` and `name` props changed from required to optional (auto-generated when omitted or inherited from group context)
822
+ - **Radio compound component API** — `Radio` now exports as a compound component with `Radio.Group`. The `id` and `name` props changed from required to optional. The `value` prop type widened from `string` to `string | number`
823
+
824
+ ### Added
825
+
826
+ - **CheckboxGroup compound component** — `Checkbox.Group` for managing groups of checkboxes with controlled/uncontrolled value handling, label, description, error state, vertical/horizontal orientation, and full accessibility (aria-labelledby, aria-invalid, role="group")
827
+ - **RadioGroup compound component** — `Radio.Group` for managing groups of radios with same feature set plus `string | number` value support (role="radiogroup")
828
+ - **Secondary semantic color** — New `secondary` color option available in Alert, Badge, Button, Progress, Spinner, KPI, Metric, CustomCursor
829
+ - **colorUtils module** — Shared `SemanticColor` type and centralized `semanticBgColors`, `semanticTextColors`, `semanticSpinnerColors` maps, exported from `@flikk/ui`
830
+ - **Secondary color CSS variables** — `--color-secondary-50` through `--color-secondary-950`, `--color-secondary`, and `--color-secondary-contrast` in theme.css
831
+
832
+ ### Fixed
833
+
834
+ - **Popover scroll lag** — Replaced debounced scroll handler with `requestAnimationFrame`-synced updates so the popover tracks the trigger without visible delay during page scroll
835
+ - **Popover internal scroll shift** — Scroll events originating inside the popover content no longer trigger position recalculation, preventing horizontal jitter when scrolling within the popover
836
+ - **Popover stays open when trigger off-screen** — Popover now auto-closes when the trigger element scrolls out of the viewport
837
+
838
+ ### Changed
839
+
840
+ - **Color type consolidation** — All semantic-color components now use shared `SemanticColor` from colorUtils instead of per-component color unions
841
+ - **Component themes** — Alert, Badge, Button, Progress, Spinner, KPI, Metric, CustomCursor themes updated with secondary color variants
842
+ - **Checkbox/Radio themes** — Extended with groupStyle, groupHorizontalStyle, groupDescriptionStyle, groupErrorStyle, groupItemsStyle
843
+ - **Forms barrel export** — Added CheckboxGroupProps, CheckboxGroupOrientation, RadioGroupProps, RadioGroupOrientation type exports
844
+ - **Storybook stories** — Updated for all affected components to demonstrate secondary color and compound group APIs
845
+
846
+ ## [1.0.0-beta.7] - 2026-02-19
847
+
848
+ ### Added
849
+
850
+ - **Semantic contrast color system** — Introduces `--color-primary-contrast`, `--color-danger-contrast`, `--color-success-contrast`, and `--color-warning-contrast` CSS variables for configurable text color on filled semantic backgrounds. Particularly useful when the primary color is light (e.g., yellow), where the default `text-white` would be unreadable
851
+ - **Dark mode setup documentation** — New `docs/INSTALLATION.md` section covering dark mode configuration with `@custom-variant` and `data-theme` attribute approach
852
+
853
+ ### Changed
854
+
855
+ - **Badge component** — Replaced hardcoded `text-white` with `text-[var(--color-{semantic}-contrast)]` across all filled color variants (`primary`, `danger`, `success`, `warning`)
856
+ - **Button component** — All filled color variant text colors now use contrast variables instead of `text-white`
857
+ - **Calendar component** — Selected date and range highlight text uses contrast variables
858
+ - **CommandPalette component** — Active/selected item text migrated to contrast variable
859
+ - **MenuItem component** — Active state text color uses contrast variable
860
+ - **OfflineIndicator component** — Indicator text uses contrast variable
861
+ - **Progress component** — Progress bar label text uses contrast variable
862
+ - **Timeline component** — Active marker text uses contrast variable
863
+ - **TableFilter component** — Active filter badge text uses contrast variable
864
+ - **PromptInput component** — Submit button text uses contrast variable
865
+ - **`src/styles/theme.css`** — Added four new contrast variable definitions defaulting to `var(--color-neutral-50)` (near-white), overridable per-project
866
+
867
+ ## [1.0.0-beta.6] - 2026-02-19
868
+
869
+ ### Changed
870
+
871
+ - **`package-lock.json` updated** — Lockfile regenerated to reflect latest resolved dependency versions
872
+
873
+ ## [1.0.0-beta.5] - 2026-02-19
874
+
875
+ ### Added
876
+
877
+ - **`./theme.css` export entry** — New subpath export `@flikk/ui/theme.css` pointing to `src/theme-plugin.css`, allowing consumers to import the Tailwind theme plugin CSS directly
878
+ - **`src/theme-plugin.css`** — Simplified theme plugin entry file containing `@source "../dist"` and `@import "./global.scss"` directives for clean Tailwind v4 integration
879
+
880
+ ### Changed
881
+
882
+ - **`package.json` files array** — Added `src/theme-plugin.css`, `src/global.scss`, and `src/styles` to the published files list so all theme source files are available to consumers
883
+ - **`sideEffects` declaration** — Added `./src/theme-plugin.css` to `sideEffects` to prevent tree-shaking from discarding the CSS file
884
+
885
+ ### Fixed
886
+
887
+ - **`@custom-variant dark` directive removed** from `theme-plugin.css` — The directive caused build errors in some consumer configurations; the simplified file is now broadly compatible
888
+
889
+ ## [1.0.0-beta.4] - 2026-02-19
890
+
891
+ ### Changed
892
+
893
+ - **Dependency management overhaul** — Moved `motion`, `@heroicons/react`, `clsx`, and `tailwind-merge` from `peerDependencies` to `dependencies` so they auto-install with `@flikk/ui`. Consumers no longer need to manually install these packages.
894
+ - **3D components isolated to sub-entry point** — `AIOrb`, `Particles`, and `SpotlightBorder` are no longer exported from `@flikk/ui` or `@flikk/ui/effects`. Import them from the new `@flikk/ui/effects/3d` subpath instead:
895
+ ```ts
896
+ // Before (pulls in three.js — breaks if not installed)
897
+ import { AIOrb } from "@flikk/ui";
898
+ // After (only loads when you explicitly opt in)
899
+ import { AIOrb } from "@flikk/ui/effects/3d";
900
+ ```
901
+
902
+ ### Fixed
903
+
904
+ - **"Module not found" errors on fresh install** — Installing `@flikk/ui` alone now works without extra dependency installs for all non-3D, non-AI components
905
+ - **Unwanted three.js dependency** — The main bundle no longer statically imports `three`, `@react-three/fiber`, or `@react-three/drei`
906
+
907
+ ## [1.0.0-beta.3] - 2026-02-19
908
+
909
+ ### Added
910
+
911
+ - **GanttChart component** - Interactive Gantt chart with Frappe Gantt-inspired features including drag-to-reschedule, dependency arrows that follow task bars during drag, task progress indicators, and full accessibility support
912
+ - **PageLayout compound component** - Full application layout with `PageLayout.Sidebar`, `PageLayout.Header`, and `PageLayout.Content` slots; includes stagger fade-up animation for content blocks
913
+ - **FormLayout compound component** - Structured form sections with `FormLayout.Header`, `FormLayout.Body`, `FormLayout.Section`, and `FormLayout.Footer` sub-components
914
+ - **15 new effect and core components**:
915
+ - `Aurora` - Animated aurora borealis background effect
916
+ - `DotPattern` - Configurable dot grid background pattern
917
+ - `GridPattern` - Configurable grid line background pattern
918
+ - `MagneticElement` - Cursor-attracted magnetic hover effect
919
+ - `MorphingText` - Smooth text morphing animation between strings
920
+ - `NoiseOverlay` - Film grain / noise texture overlay effect
921
+ - `ParallaxSection` - Scroll-driven parallax depth sections
922
+ - `Particles` - Three.js / R3F particle system effect
923
+ - `ScrollReveal` - Scroll-triggered reveal animation wrapper
924
+ - `Spotlight` - Cursor-following spotlight highlight effect
925
+ - `StickyScroll` - Sticky scroll content reveal (text + media panels)
926
+ - `CountdownTimer` - Animated countdown with days/hours/minutes/seconds display
927
+ - `Message` and `MessageList` - Chat message bubble components with threading support
928
+ - `SelectableCard` and `SelectableCardGroup` - Card-style radio/checkbox selector
929
+ - `TransferList` - Dual-list multi-select transfer control
930
+ - **New form components**:
931
+ - `CronInput` - Human-friendly cron expression builder with utility helpers
932
+ - `Mention` - @mention input with autocomplete dropdown
933
+ - **New data-display folder** - Reorganised data-display components into a dedicated folder
934
+ - **ProgressiveBlur component** - Gradient blur effect that progressively increases across an element
935
+ - **`dateUtils`** - Shared date formatting and manipulation utilities in `/src/utils/dateUtils.ts`
936
+ - **12 new Storybook block stories** - Full-page layout demos including AIAssistantLayout, CalendarLayout, ChangelogLayout, CommandPaletteLayout, EmptyStatesLayout, FileManagerLayout, InboxLayout, IntegrationsLayout, MailComposerLayout, MediaGalleryLayout, WaitlistLayout, and ActivityTimelineLayout
937
+
938
+ ### Changed
939
+
940
+ - **Message component UI improvements** - Updated message bubble styling and layout
941
+ - **ProgressiveBlur fix** - Corrected rendering artefacts in progressive blur implementation
942
+ - **Block stories refactored** - Removed embedded sidebars from 6+ block stories for cleaner standalone demos; all stories updated to use `w-full max-w-[X]` pattern for responsive mobile viewports
943
+ - **Story padding reduced** - Default story padding reduced; `PageHeading` made responsive
944
+ - **Import paths updated** - All story documentation updated from `"flikkui"` to `"@flikk/ui"`
945
+ - **Card component** - Added `CardSubtitle` sub-component; updated theme and types
946
+ - **Modal component** - Added `ModalDescription` and `ModalSubtitle` sub-components; updated theme and types
947
+ - **Drawer component** - Refactored with `DrawerHeader`, `DrawerTitle`, `DrawerSubtitle` sub-components; improved theme structure
948
+ - **Badge component** - Theme refinements for better visual consistency
949
+ - **Button component** - Theme updates aligned with design system
950
+ - **Accordion component** - Theme improvements
951
+ - **Checkbox and Radio components** - Theme refactors for consistency
952
+ - **CommandPalette** - Added `CommandItem` sub-component; updated theme
953
+ - **ContextMenu** - Added `ContextMenuItem` sub-component; updated types
954
+ - **Dropdown** - Added `DropdownItem` sub-component; updated types
955
+ - **Empty component** - New `Empty` state component added with theme
956
+ - **MenuItem component** - New standalone menu item with theme
957
+ - **Alert and AlertDialog** - Refactored types and component implementations
958
+ - **AI components** - Added `ApprovalCard` and enhanced `PromptInput` with updated theme
959
+ - **Layout index** - `src/components/layout/index.ts` added for clean layout exports
960
+ - **Forms index** - `src/components/forms/index.ts` updated with all new form components
961
+ - **Core index** - `src/components/core/index.ts` updated with all new core components
962
+ - **`src/index.ts`** - Main package index updated to export all new components
963
+ - **`global.scss`** - CSS variable and base style updates
964
+ - **`theme.css` / `tailwind-config.css`** - Theme variable refinements
965
+
966
+ ### Fixed
967
+
968
+ - **GanttChart dependency arrows** - Arrows now correctly track task bars during drag operations
969
+ - **GanttChart polish** - Bug fixes, performance improvements, and accessibility enhancements
970
+ - **Lint errors** - Fixed ESLint violations across multiple files; lockfile regenerated
971
+ - **All components made responsive** - Storybook stories updated for mobile viewport compatibility
972
+ - **DescriptionList and FormLayout responsiveness** - Improved layout on small screens
973
+ - **Chart and effect stories** - Responsive patterns applied consistently (`w-full max-w-[X]`)
974
+ - **AuthLayout** - Restored non-standard CSS classes after incorrect cleanup revert
975
+
976
+ ## [1.0.0-beta.1] - 2026-02-11
977
+
978
+ ### Changed
979
+
980
+ - **Package renamed** from `flikkui` to `@flikk/ui` (scoped private package)
981
+ - **Version bumped** to `1.0.0-beta.1` — fresh start under new scope
982
+ - **Drawer improvements** — Better transition animations and `useScaleBackground` hook fixes
983
+ - **Smooth scroll fixes** — Resolved 6 bugs in smooth scroll utility and ScrollArea integration
984
+
985
+ ### Fixed
986
+
987
+ - Drawer component transition animation refinements
988
+ - `useScaleBackground` hook reliability improvements
989
+
990
+ ## [0.2.0-beta.12] - 2026-02-09
991
+
992
+ ### Added
993
+
994
+ - **Animated effect component** - New compound animation component with pre-built animation presets:
995
+ - `Animated` container component with 10+ animation presets (fade, slide, scale, flip, bounce, rotate)
996
+ - `Animated.Item` for animating individual child elements with stagger support
997
+ - Configurable stagger delays, duration, and easing curves
998
+ - Reduced motion support via `prefers-reduced-motion`
999
+ - Built on Framer Motion with smooth, performant animations
1000
+
1001
+ ### Changed
1002
+
1003
+ - **Alert component major enhancement** - Merged Notification functionality into Alert:
1004
+ - Added `dismissible` prop for showing close button
1005
+ - Added `onClose` callback for handling dismissal
1006
+ - Enhanced alert actions support with flexible button placement
1007
+ - Improved theme structure with separate closeButton and action styles
1008
+ - Better icon positioning and spacing
1009
+ - Maintains all previous Alert functionality while adding notification-like behavior
1010
+ - **Toast component improvements**:
1011
+ - Enhanced animation performance and smoothness
1012
+ - Improved provider integration and state management
1013
+ - Better positioning and stacking behavior
1014
+ - Added `pauseOnHover` support to prevent auto-dismiss on hover
1015
+ - **Tag component theme refinements**:
1016
+ - Updated color variants for better visual consistency
1017
+ - Improved contrast ratios for accessibility
1018
+ - Better alignment with design system color palette
1019
+ - **Badge component theme improvements**:
1020
+ - Enhanced visual hierarchy across variants
1021
+ - Better text contrast on colored backgrounds
1022
+ - **Package configuration**:
1023
+ - Removed README.md from NPM package (no documentation shown on NPM page)
1024
+ - Cleaner NPM package with only essential distribution files
1025
+
1026
+ ### Removed
1027
+
1028
+ - **ArtifactContainer component** - Removed experimental AI artifact container component
1029
+ - **ChatInterface component** - Removed experimental chat interface component
1030
+ - **Notification component** - Functionality merged into enhanced Alert component
1031
+ - **StepperForm component** - Removed experimental stepper form component
1032
+ - **Development documentation files** - CODE_REVIEW.md and GEMINI.md removed from repository
1033
+
1034
+ ### Fixed
1035
+
1036
+ - **Toast rendering issues** - Fixed edge cases in toast display and dismissal
1037
+ - **Component usage issues** - Various bug fixes for improved stability and reliability
1038
+ - **Theme consistency** - Resolved color and spacing inconsistencies across components
1039
+
1040
+ ## [0.2.0-beta.11] - 2026-02-09
1041
+
1042
+ ### Fixed
1043
+
1044
+ - **Minor patches and stability improvements**
1045
+
1046
+ ## [0.2.0-beta.10] - 2026-02-09
1047
+
1048
+ ### Added
1049
+
1050
+ - **AIOrb effect component** with two stunning variants:
1051
+ - `AIOrb.DotSphere` - React Three Fiber implementation with animated particle sphere, wave distortion, and custom shader effects
1052
+ - `AIOrb.Liquid` - Vanilla Three.js metallic liquid sphere with simplex noise displacement, PBR reflections, and radial-gradient masking
1053
+ - **ArtifactContainer.CanvasTab** - New tab system for Canvas pane supporting multiple canvas views with smooth tab switching animations
1054
+ - **ArtifactContainer animations** - Comprehensive motion system including:
1055
+ - Collapsible pane animations with smooth width transitions
1056
+ - Handle pill hover/press interactions
1057
+ - Border glow effects for active states
1058
+ - Tab content fade-in/slide animations
1059
+ - Tab underline indicator with smooth tracking
1060
+ - **AspectRatio component** - Maintains consistent width/height ratio for responsive media and content (16:9, 4:3, 1:1, etc.)
1061
+ - **ScrollArea component** - Custom scrollable container with styled scrollbars, supporting vertical/horizontal/both orientations and auto/always/scroll/hover visibility modes
1062
+ - **KPI component** - Lightweight metric display with value, label, trend indicator (auto-colored positive/negative), mini bar chart visualization, and description text
1063
+ - **Rating component** - Interactive star rating with half-star support, hover preview, keyboard navigation (arrow keys), read-only/disabled modes, custom icons, and 4 color variants
1064
+ - **Timeline component** - Compound component (Timeline > Item + Marker + Content) with vertical/horizontal layouts, left/right/alternate alignment, scroll-triggered entry animations, and completed/active/pending status states
1065
+ - **RadarChart component** - SVG-based radar/spider chart with multiple overlapping data series, concentric grid rings, axis spokes, legend, and tooltip support on hover
1066
+ - **ModalStack component** - Stacked modal system displaying two modals simultaneously (back + front) with scale/brightness animations for the back modal and smooth transitions
1067
+ - **StreamingResponse animations** - Enhanced AI streaming with:
1068
+ - Token-by-token fade-in with blur-to-sharp effect for plain text
1069
+ - Block-level slide-in animations for markdown elements (paragraphs, code blocks, headings, lists)
1070
+ - Animated blinking cursor (▍) shown during streaming
1071
+ - `AnimatedText` component for performant per-token animation
1072
+ - `StreamingCursor` component with configurable cursor character
1073
+ - `animated` and `showCursor` props with reduced motion support
1074
+
1075
+ ### Changed
1076
+
1077
+ - **ArtifactContainer major refactor**:
1078
+ - Complete rewrite with compound component architecture (Container > Chat + Canvas)
1079
+ - Added collapsible pane support with smooth animations
1080
+ - Implemented tab system for multiple canvas views
1081
+ - Enhanced theming with separate styles for each sub-component
1082
+ - Improved resize handle with visual feedback and constraints
1083
+ - Better accessibility with ARIA attributes and keyboard navigation
1084
+ - **Metric component icon handling** - Now properly preserves custom icon className while ensuring minimum `size-6` for consistency
1085
+ - **Separator component** - Renamed from Divider (breaking change in beta.9, backward compatibility removed)
1086
+ - **Chart infrastructure improvements**:
1087
+ - RadarChart integrated with shared ChartTooltip system
1088
+ - Enhanced tooltip positioning for radar/polar coordinates
1089
+ - Improved hover hit areas for better UX
1090
+ - **Dependency updates** (all latest stable versions as of Feb 2026):
1091
+ - @emotion/is-prop-valid: 1.3.1 → 1.4.0
1092
+ - @rollup/plugin-commonjs: 28.0.2 → 29.0.0 (major)
1093
+ - @tailwindcss/cli: 4.0.9 → 4.1.18
1094
+ - @types/react: 19.0.10 → 19.2.13
1095
+ - @types/three: 0.170.0 → 0.182.0
1096
+ - motion: 12.24.0 → 12.33.0
1097
+ - rollup: 4.34.8 → 4.57.1
1098
+ - three: 0.170.0 → 0.182.0
1099
+ - typescript: 5.7.3 → 5.9.3
1100
+ - Plus 10+ other devDependencies to latest versions
1101
+
1102
+ ### Fixed
1103
+
1104
+ - **Production build quality** - Comprehensive code review addressing 60+ issues:
1105
+ - Fixed grayscale2 typo in global.scss (Firefox font smoothing)
1106
+ - Set noEmitOnError: true in Rollup config (prevents shipping broken TypeScript)
1107
+ - Converted jsx: "react" to "react-jsx" for automatic JSX transform
1108
+ - Added forwardRef to 25+ components (Checkbox, Radio, Switch, FormLabel, FileUpload, Calendar, DragDrop, Masonry, Skeleton, Spinner, and more)
1109
+ - Eliminated ~60 `any` types across charts, tables, and core components
1110
+ - Added proper TypeScript types for callbacks, data items, filter values
1111
+ - Removed !important usage from component styles
1112
+ - **TypeScript compilation errors** - Fixed pre-existing errors that were silently ignored:
1113
+ - Fixed react-syntax-highlighter import path (removed /index.js suffix)
1114
+ - Widened MultiSeriesData.category to accept string | number
1115
+ - Fixed Sortable filter type narrowing and ref casting
1116
+ - Fixed TableFilter Input value prop casting
1117
+ - **AIOrb liquid variant rendering** - Fixed CSS margin collapsing issue where canvas container margin-top affected parent positioning (added overflow: hidden to create BFC)
1118
+ - **React peer dependency** - Updated to >=18.0.0 (motion library requirement)
1119
+ - **useClickOutside hook organization** - Moved from utils/ to hooks/ (kept re-export for backward compatibility)
1120
+
1121
+ ### Removed
1122
+
1123
+ - **Divider backward compatibility exports** - Use Separator instead (renamed in beta.9)
1124
+ - **Dead code cleanup**:
1125
+ - Unused coreGlowFragment export from Liquid.shaders.ts
1126
+ - .DS_Store files (now properly gitignored)
1127
+ - Generated src/index.css from version control (Tailwind build output)
1128
+
1129
+ ## [0.2.0-beta.9] - 2026-02-05
1130
+
1131
+ ### BREAKING CHANGES
1132
+
1133
+ - **AI components removed from main export** — `import { ChatInterface, Message, ... } from 'flikkui'` **no longer works**. AI components now require a subpath import:
1134
+
1135
+ ```ts
1136
+ // Before (broken)
1137
+ import { ChatInterface } from "flikkui";
1138
+ // After (correct)
1139
+ import { ChatInterface } from "flikkui/ai";
1140
+ ```
1141
+
1142
+ This was done to avoid pulling in heavy optional peer dependencies (`react-markdown`, `react-syntax-highlighter`, `remark-gfm`) for users who don't use AI components.
1143
+
1144
+ - **CLI module removed entirely** — The `flikkui` CLI (`npx flikkui init`) is gone. The library now focuses purely on components. Remove any CLI-related scripts or dependencies.
1145
+
1146
+ - **Input theme interface changed** — `InputTheme` now requires two new properties: `inputGroupFocusStyle` and `inputGroupFocusInvalidStyle`. If you provide a custom `InputTheme` override, you must add these fields. Focus styling is now JS-driven (not CSS `focus-within`) for better compatibility with `contentStart`/`contentEnd` slots.
1147
+
1148
+ - **Input `states.invalid` changed** — No longer includes `focus-within` pseudo-class styles. Focus ring for invalid state is now controlled separately via `inputGroupFocusInvalidStyle`.
1149
+
1150
+ ### Added
1151
+
1152
+ - `useIsClient` hook for safe client-side rendering and hydration detection
1153
+ - Chart path utilities (`path-utils.ts`) — shared SVG curve generation (monotone, linear, step, etc.) extracted from individual chart components
1154
+ - Comprehensive stories for Input, AreaChart, BarChart, LineChart, ComboChart
1155
+ - InputAddress: new type props and enhanced address field capabilities
1156
+
1157
+ ### Changed
1158
+
1159
+ - Refactored chart components with simplified, shared architecture:
1160
+ - AreaChart, BarChart, LineChart, ComboChart, StackedBarChart all use shared path/rendering utilities
1161
+ - BarRenderer: more robust rendering with improved edge-case handling
1162
+ - YAxis: uses `generateNiceTicks` for cleaner axis labels
1163
+ - ChartContainer, ChartTooltip, LineRenderer: simplified internals
1164
+ - Chart validation utilities expanded with stricter data checks
1165
+ - Input component: new focus-management system using JS state instead of CSS `focus-within` for full compatibility with embedded interactive elements (`contentStart`/`contentEnd`)
1166
+ - Input `contentStartStyle` / `contentEndStyle` now reset nested interactive element styles (outline, ring, border, background) for seamless embedding
1167
+ - Simplified `index.css` — removed redundant style rules
1168
+ - Updated `theme.css` variable structure
1169
+ - Optimized `rollup.config.js` build pipeline
1170
+ - Removed CLI-related dependencies from `package.json`
1171
+
1172
+ ### Fixed
1173
+
1174
+ - **Portal hydration mismatch (SSR/CSR)** — Fixed in 10+ components by gating portal rendering behind `useIsClient`. Affected components: ContextMenu, Dropdown, Popover, ColorPicker, Combobox, DatePicker, TimePicker, Toast, Tooltip, Overlay
1175
+ - Chart rendering edge cases and data validation errors
1176
+ - Input theme inheritance when using custom theme overrides
1177
+ - ProgressiveBlur component rendering improvements
1178
+
1179
+ ### Removed
1180
+
1181
+ - `src/cli/` module and all associated files (init command, project detection, CSS injection, dependency installer, Tailwind setup, logger)
1182
+ - CLI dependencies removed from `package.json`
1183
+ - Unused chart hook dependencies from `useChartScales`
1184
+
1185
+ ## [0.2.0-beta.8] - 2026-01-XX
1186
+
1187
+ ### Added
1188
+
1189
+ - Initial chart component implementations
1190
+ - Core component suite
1191
+
1192
+ ### Changed
1193
+
1194
+ - Various component improvements and refinements
1195
+
1196
+ ## [0.2.0-beta.7] - 2026-01-XX
1197
+
1198
+ ### Changed
1199
+
1200
+ - Component updates and bug fixes
1201
+
1202
+ ## [0.2.0-beta.6] - 2026-01-XX
1203
+
1204
+ ### Added
1205
+
1206
+ - MenuItem component with standardized design
1207
+ - Component radii standardization using CSS variables
1208
+
1209
+ ### Changed
1210
+
1211
+ - Comprehensive dark mode styling for Storybook documentation
1212
+ - Refactored global CSS variables for better theme consistency
1213
+
1214
+ ### Fixed
1215
+
1216
+ - Toast component rendering and positioning issues
1217
+
1218
+ ## [0.2.0-beta.5] - 2025-12-XX
1219
+
1220
+ ### Added
1221
+
1222
+ - Separate `theme.css` for better style organization
1223
+
1224
+ ### Changed
1225
+
1226
+ - Complete Table component refactor with improved architecture
1227
+ - Enhanced table theming and customization options
1228
+
1229
+ ## [0.2.0-beta.4] - 2025-12-XX
1230
+
1231
+ ### Added
1232
+
1233
+ - Progress component for loading states
1234
+
1235
+ ### Changed
1236
+
1237
+ - Tag Input component refactor with improved API
1238
+ - Combobox component updates for better usability
1239
+
1240
+ ### Fixed
1241
+
1242
+ - Time Picker component issues
1243
+
1244
+ ## [0.2.0-beta.3] - 2025-12-XX
1245
+
1246
+ ### Added
1247
+
1248
+ - Initial beta release features
1249
+
1250
+ ## [0.2.0-beta.2] - 2025-12-XX
1251
+
1252
+ ### Changed
1253
+
1254
+ - Early beta improvements
1255
+
1256
+ ## [0.2.0-beta.1] - 2025-12-XX
1257
+
1258
+ ### Added
1259
+
1260
+ - First beta release of Flikkui
1261
+ - Core component library foundation
1262
+ - TypeScript support
1263
+ - Tailwind CSS v4 integration
1264
+ - Framer Motion animations
1265
+ - Storybook documentation
1266
+
1267
+ ---
1268
+
1269
+ ## Release Notes
1270
+
1271
+ ### Beta Release Status
1272
+
1273
+ Flikkui is currently in beta. APIs may change between releases. Production use is not recommended until v1.0.0 stable release.
1274
+
1275
+ ### Migration Guide
1276
+
1277
+ For migration guidance between versions, please refer to the [documentation](https://github.com/yourusername/flikkui).
1278
+
1279
+ ### Reporting Issues
1280
+
1281
+ Found a bug? Please [open an issue](https://github.com/yourusername/flikkui/issues) on GitHub.