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

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 (762) hide show
  1. package/CHANGELOG.md +1184 -0
  2. package/dist/components/ai/CodeBlock/CodeBlock.js +21 -4
  3. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +0 -1
  4. package/dist/components/ai/CodeBlock/CodeBlock.types.d.ts +0 -2
  5. package/dist/components/ai/CodeBlock/LanguageIcon.js +1 -0
  6. package/dist/components/ai/PromptInput/PromptInput.js +13 -9
  7. package/dist/components/ai/PromptInput/PromptInput.theme.js +19 -2
  8. package/dist/components/ai/PromptInput/VoiceRecorder.d.ts +1 -0
  9. package/dist/components/ai/PromptInput/VoiceRecorder.js +154 -7
  10. package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.js +1 -0
  11. package/dist/components/ai/StreamingResponse/AnimatedText.js +1 -0
  12. package/dist/components/ai/StreamingResponse/ErrorDisplay.js +1 -0
  13. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +1 -0
  14. package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +2 -2
  15. package/dist/components/ai/StreamingResponse/StreamingCursor.js +14 -3
  16. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +2 -2
  17. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +17 -11
  18. package/dist/components/ai/StreamingResponse/StreamingResponse.js +3 -3
  19. package/dist/components/ai/StreamingResponse/WordAnimationContext.js +3 -1
  20. package/dist/components/ai/TokenCounter/TokenCounter.js +1 -0
  21. package/dist/components/ai/index.d.ts +2 -2
  22. package/dist/components/ai/index.js +4 -5
  23. package/dist/components/canvas/Background.js +3 -2
  24. package/dist/components/canvas/CanvasToolbar.js +3 -2
  25. package/dist/components/canvas/Edge.d.ts +2 -5
  26. package/dist/components/canvas/Edge.js +18 -2
  27. package/dist/components/canvas/EdgeLayer.d.ts +2 -1
  28. package/dist/components/canvas/EdgeLayer.js +20 -10
  29. package/dist/components/canvas/Handle.js +3 -2
  30. package/dist/components/canvas/MiniMap.js +1 -0
  31. package/dist/components/canvas/NodeCanvas.js +19 -15
  32. package/dist/components/canvas/NodeCanvas.types.d.ts +5 -1
  33. package/dist/components/canvas/NodeControls.js +3 -2
  34. package/dist/components/canvas/NodeRenderer.d.ts +4 -1
  35. package/dist/components/canvas/NodeRenderer.js +18 -9
  36. package/dist/components/canvas/changes.test.d.ts +1 -0
  37. package/dist/components/canvas/context/CanvasContext.d.ts +10 -1
  38. package/dist/components/canvas/context/CanvasContext.js +27 -7
  39. package/dist/components/canvas/context/ConnectionContext.js +1 -0
  40. package/dist/components/canvas/context/HandleRegistry.js +1 -0
  41. package/dist/components/canvas/context/InteractionContext.js +1 -0
  42. package/dist/components/canvas/context/NodeIdContext.js +1 -0
  43. package/dist/components/canvas/hooks/useConnection.js +1 -0
  44. package/dist/components/canvas/hooks/useMarquee.js +1 -0
  45. package/dist/components/canvas/hooks/useNodeDrag.js +3 -2
  46. package/dist/components/canvas/hooks/usePanZoom.js +7 -1
  47. package/dist/components/canvas/hooks/useViewport.js +1 -0
  48. package/dist/components/canvas/layout.test.d.ts +1 -0
  49. package/dist/components/canvas/utils.test.d.ts +1 -0
  50. package/dist/components/charts/ActivityRings/ActivityRings.js +28 -17
  51. package/dist/components/charts/ActivityRings/ActivityRings.types.d.ts +2 -3
  52. package/dist/components/charts/ActivityRings/ActivityRings.types.js +2 -1
  53. package/dist/components/charts/AreaChart/AreaChart.js +170 -157
  54. package/dist/components/charts/BarChart/BarChart.js +114 -124
  55. package/dist/components/charts/ChartContainer.d.ts +7 -0
  56. package/dist/components/charts/ChartContainer.js +10 -7
  57. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.d.ts +3 -1
  58. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.js +137 -102
  59. package/dist/components/charts/{shared/BarRenderer → ComboChart}/BarRenderer.types.d.ts +17 -5
  60. package/dist/components/charts/ComboChart/ComboChart.js +26 -9
  61. package/dist/components/charts/ComboChart/ComboChart.types.d.ts +2 -2
  62. package/dist/components/charts/ComboChart/ComboChart.types.js +4 -0
  63. package/dist/components/charts/ComboChart/ComboChartCanvas.d.ts +98 -0
  64. package/dist/components/charts/{shared/ChartContainer/ChartContainer.js → ComboChart/ComboChartCanvas.js} +41 -44
  65. package/dist/components/charts/{shared/ChartContainer/ChartContainer.types.d.ts → ComboChart/ComboChartCanvas.types.d.ts} +23 -3
  66. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.d.ts +3 -1
  67. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.js +27 -14
  68. package/dist/components/charts/{shared/LineRenderer → ComboChart}/LineRenderer.types.d.ts +11 -5
  69. package/dist/components/charts/DonutChart/DonutChart.js +2 -1
  70. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +8 -22
  71. package/dist/components/charts/DonutChart/donut-utils.js +1 -0
  72. package/dist/components/charts/FunnelChart/FunnelChart.animations.js +1 -48
  73. package/dist/components/charts/FunnelChart/FunnelChart.d.ts +3 -4
  74. package/dist/components/charts/FunnelChart/FunnelChart.js +306 -358
  75. package/dist/components/charts/Heatmap/Heatmap.js +29 -36
  76. package/dist/components/charts/Heatmap/HeatmapCell.js +1 -0
  77. package/dist/components/charts/LineChart/LineChart.js +163 -132
  78. package/dist/components/charts/LineChart/LineChart.types.d.ts +1 -1
  79. package/dist/components/charts/RadarChart/RadarChart.js +10 -2
  80. package/dist/components/charts/RadarChart/RadarChart.theme.js +0 -8
  81. package/dist/components/charts/RadarChart/RadarChart.types.d.ts +0 -8
  82. package/dist/components/charts/ScatterPlot/ScatterPlot.js +12 -3
  83. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -4
  84. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +0 -5
  85. package/dist/components/charts/StackedBarChart/StackedBarChart.js +79 -42
  86. package/dist/components/charts/StackedBarChart/StackedBarChart.types.d.ts +2 -2
  87. package/dist/components/charts/StackedBarChart/StackedBarChart.types.js +3 -0
  88. package/dist/components/charts/hooks/index.d.ts +1 -1
  89. package/dist/components/charts/hooks/useChartAccessibility.js +1 -0
  90. package/dist/components/charts/hooks/useChartDimensions.js +1 -0
  91. package/dist/components/charts/hooks/useChartScales.js +1 -1
  92. package/dist/components/charts/hooks/useChartTheme.js +1 -0
  93. package/dist/components/charts/hooks/useChartValidation.d.ts +0 -8
  94. package/dist/components/charts/hooks/useChartValidation.js +1 -0
  95. package/dist/components/charts/hooks/useTooltipPosition.js +1 -0
  96. package/dist/components/charts/index.d.ts +3 -3
  97. package/dist/components/charts/index.js +1 -3
  98. package/dist/components/charts/shared/ChartCrosshair/ChartCrosshair.js +5 -12
  99. package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -0
  100. package/dist/components/charts/shared/ChartLegend/ChartLegend.d.ts +5 -2
  101. package/dist/components/charts/shared/ChartLegend/ChartLegend.js +15 -22
  102. package/dist/components/charts/shared/ChartLegend/ChartLegend.types.d.ts +6 -23
  103. package/dist/components/charts/shared/ChartLegend/index.d.ts +2 -3
  104. package/dist/components/charts/shared/ChartMarker/ChartMarker.js +1 -0
  105. package/dist/components/charts/shared/ChartText/ChartText.js +1 -0
  106. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.js +4 -13
  107. package/dist/components/charts/shared/index.d.ts +0 -7
  108. package/dist/components/charts/theme/chart.theme.js +6 -0
  109. package/dist/components/charts/types/chart.types.d.ts +15 -0
  110. package/dist/components/charts/utils/animation-utils.d.ts +95 -0
  111. package/dist/components/charts/utils/animation-utils.js +150 -2
  112. package/dist/components/charts/utils/bar-emphasis.d.ts +80 -0
  113. package/dist/components/charts/utils/bar-emphasis.js +69 -0
  114. package/dist/components/charts/utils/chart-validation.js +7 -0
  115. package/dist/components/core/Accordion/Accordion.d.ts +3 -3
  116. package/dist/components/core/Accordion/Accordion.js +21 -17
  117. package/dist/components/core/Accordion/Accordion.types.d.ts +35 -1
  118. package/dist/components/core/Accordion/AccordionBody.js +2 -1
  119. package/dist/components/core/Accordion/AccordionContext.d.ts +3 -0
  120. package/dist/components/core/Accordion/AccordionContext.js +15 -0
  121. package/dist/components/core/Accordion/AccordionItem.js +12 -8
  122. package/dist/components/core/Accordion/AccordionTrigger.js +7 -4
  123. package/dist/components/core/Accordion/index.d.ts +2 -2
  124. package/dist/components/core/Alert/Alert.animations.js +1 -0
  125. package/dist/components/core/Alert/Alert.js +4 -4
  126. package/dist/components/core/Alert/Alert.theme.js +0 -5
  127. package/dist/components/core/Alert/Alert.types.d.ts +0 -8
  128. package/dist/components/core/Alert/index.d.ts +1 -1
  129. package/dist/components/core/AlertDialog/AlertDialog.js +15 -1
  130. package/dist/components/core/Avatar/Avatar.js +58 -14
  131. package/dist/components/core/Avatar/Avatar.types.d.ts +26 -1
  132. package/dist/components/core/AvatarGroup/AvatarGroup.animations.js +1 -0
  133. package/dist/components/core/AvatarGroup/AvatarGroup.js +1 -0
  134. package/dist/components/core/Badge/Badge.animations.js +1 -0
  135. package/dist/components/core/Badge/Badge.js +6 -6
  136. package/dist/components/core/Badge/Badge.theme.js +32 -28
  137. package/dist/components/core/Badge/Badge.types.d.ts +12 -1
  138. package/dist/components/core/Breadcrumbs/Breadcrumbs.js +8 -2
  139. package/dist/components/core/Button/Button.js +23 -17
  140. package/dist/components/core/Button/Button.ripple.js +1 -4
  141. package/dist/components/core/Button/Button.theme.d.ts +0 -2
  142. package/dist/components/core/Button/Button.theme.js +16 -92
  143. package/dist/components/core/Button/Button.types.d.ts +5 -6
  144. package/dist/components/core/Calendar/Calendar.animations.js +1 -0
  145. package/dist/components/core/Calendar/Calendar.js +87 -4
  146. package/dist/components/core/Calendar/CalendarMini/CalendarMini.animations.js +1 -0
  147. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +3 -1
  148. package/dist/components/core/Card/Card.js +9 -2
  149. package/dist/components/core/Card/Card.theme.js +3 -1
  150. package/dist/components/core/Card/Card.types.d.ts +8 -0
  151. package/dist/components/core/CardStack/CardStack.js +1 -0
  152. package/dist/components/core/Carousel/Carousel.js +1 -0
  153. package/dist/components/core/Carousel/CarouselBody.js +5 -2
  154. package/dist/components/core/Carousel/CarouselContext.js +1 -0
  155. package/dist/components/core/Carousel/CarouselNext.js +1 -0
  156. package/dist/components/core/Carousel/CarouselPrevious.js +1 -0
  157. package/dist/components/core/CommandPalette/CommandItem.js +1 -0
  158. package/dist/components/core/CommandPalette/CommandPalette.animations.js +1 -0
  159. package/dist/components/core/CommandPalette/CommandPalette.js +55 -11
  160. package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -1
  161. package/dist/components/core/CommandPalette/CommandPalette.types.d.ts +8 -0
  162. package/dist/components/core/ContextMenu/ContextMenu.js +27 -5
  163. package/dist/components/core/ContextMenu/ContextMenu.theme.js +8 -7
  164. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +17 -0
  165. package/dist/components/core/ContextMenu/ContextMenuBody.js +11 -5
  166. package/dist/components/core/ContextMenu/ContextMenuContext.js +1 -0
  167. package/dist/components/core/ContextMenu/ContextMenuItem.js +17 -7
  168. package/dist/components/core/ContextMenu/ContextMenuLabel.js +1 -0
  169. package/dist/components/core/ContextMenu/ContextMenuSeparator.js +1 -0
  170. package/dist/components/core/ContextMenu/ContextMenuSub.js +4 -3
  171. package/dist/components/core/ContextMenu/ContextMenuSubBody.js +7 -3
  172. package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +3 -2
  173. package/dist/components/core/ContextMenu/ContextMenuTrigger.js +8 -0
  174. package/dist/components/core/DotSeparator/DotSeparator.js +1 -0
  175. package/dist/components/core/DragDrop/DragDrop.js +50 -31
  176. package/dist/components/core/Drawer/Drawer.animations.js +9 -8
  177. package/dist/components/core/Drawer/Drawer.d.ts +3 -3
  178. package/dist/components/core/Drawer/Drawer.js +14 -15
  179. package/dist/components/core/Drawer/Drawer.theme.js +8 -6
  180. package/dist/components/core/Drawer/Drawer.types.d.ts +8 -0
  181. package/dist/components/core/Drawer/DrawerBody.js +2 -1
  182. package/dist/components/core/Drawer/DrawerContext.d.ts +3 -0
  183. package/dist/components/core/Drawer/DrawerContext.js +15 -0
  184. package/dist/components/core/Drawer/DrawerFooter.js +2 -1
  185. package/dist/components/core/Drawer/DrawerHeader.js +3 -2
  186. package/dist/components/core/Drawer/DrawerSubtitle.js +2 -1
  187. package/dist/components/core/Drawer/DrawerTitle.js +2 -1
  188. package/dist/components/core/Dropdown/Dropdown.js +23 -9
  189. package/dist/components/core/Dropdown/Dropdown.theme.js +4 -3
  190. package/dist/components/core/Dropdown/Dropdown.types.d.ts +8 -0
  191. package/dist/components/core/Dropdown/DropdownContext.js +1 -0
  192. package/dist/components/core/Dropdown/DropdownItem.js +1 -0
  193. package/dist/components/core/Dropdown/DropdownMenu.js +22 -22
  194. package/dist/components/core/Dropdown/DropdownSection.js +1 -0
  195. package/dist/components/core/Dropdown/DropdownSeparator.js +1 -0
  196. package/dist/components/core/Dropdown/DropdownTrigger.js +21 -1
  197. package/dist/components/core/HeroCard/HeroCard.js +1 -0
  198. package/dist/components/core/HeroCard/HeroCard.theme.js +1 -1
  199. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.js +11 -2
  200. package/dist/components/core/ImagePlaceholder/ImagePlaceholder.theme.js +2 -2
  201. package/dist/components/core/Link/Link.d.ts +1 -1
  202. package/dist/components/core/Link/Link.js +58 -29
  203. package/dist/components/core/Link/Link.types.d.ts +25 -8
  204. package/dist/components/core/Masonry/Masonry.js +87 -75
  205. package/dist/components/core/Masonry/Masonry.theme.js +10 -4
  206. package/dist/components/core/MenuItem/MenuItem.js +17 -1
  207. package/dist/components/core/MenuItem/MenuItem.theme.js +6 -2
  208. package/dist/components/core/Message/Message.js +2 -1
  209. package/dist/components/core/Message/MessageActions.js +1 -0
  210. package/dist/components/core/Message/MessageAudio.js +2 -1
  211. package/dist/components/core/Message/MessageAvatar.js +1 -0
  212. package/dist/components/core/Message/MessageBody.js +1 -0
  213. package/dist/components/core/Message/MessageContext.js +1 -0
  214. package/dist/components/core/Message/MessageFile.js +1 -0
  215. package/dist/components/core/Message/MessageImage.js +1 -0
  216. package/dist/components/core/Message/MessageList.js +1 -0
  217. package/dist/components/core/Message/MessageReactions.js +1 -0
  218. package/dist/components/core/Message/MessageStatusIndicator.js +3 -2
  219. package/dist/components/core/Message/MessageTimestamp.js +1 -0
  220. package/dist/components/core/Message/TypeWriter.d.ts +1 -1
  221. package/dist/components/core/Message/TypeWriter.js +74 -9
  222. package/dist/components/core/Modal/Modal.animations.d.ts +1 -1
  223. package/dist/components/core/Modal/Modal.animations.js +10 -25
  224. package/dist/components/core/Modal/Modal.d.ts +3 -5
  225. package/dist/components/core/Modal/Modal.js +15 -15
  226. package/dist/components/core/Modal/Modal.theme.js +7 -5
  227. package/dist/components/core/Modal/Modal.types.d.ts +8 -0
  228. package/dist/components/core/Modal/ModalBody.js +2 -1
  229. package/dist/components/core/Modal/ModalContext.d.ts +3 -0
  230. package/dist/components/core/Modal/ModalContext.js +16 -0
  231. package/dist/components/core/Modal/ModalFooter.js +3 -2
  232. package/dist/components/core/Modal/ModalHeader.js +3 -2
  233. package/dist/components/core/Modal/ModalSubtitle.js +2 -1
  234. package/dist/components/core/Modal/ModalTitle.js +2 -1
  235. package/dist/components/core/ModalStack/ModalStack.animations.js +1 -0
  236. package/dist/components/core/ModalStack/ModalStack.js +2 -1
  237. package/dist/components/core/ModalStack/ModalStackModal.js +18 -10
  238. package/dist/components/core/NavItem/NavItem.js +15 -3
  239. package/dist/components/core/OfflineIndicator/OfflineIndicator.js +1 -0
  240. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +1 -1
  241. package/dist/components/core/PageHeading/PageHeading.js +8 -3
  242. package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
  243. package/dist/components/core/PageHeading/PageHeading.types.d.ts +12 -1
  244. package/dist/components/core/PageHeading/PageHeadingBackButton.js +3 -2
  245. package/dist/components/core/Pagination/Pagination.js +8 -2
  246. package/dist/components/core/Pagination/Pagination.theme.d.ts +2 -10
  247. package/dist/components/core/Pagination/Pagination.types.d.ts +11 -1
  248. package/dist/components/core/Pill/Pill.animations.js +2 -11
  249. package/dist/components/core/Pill/Pill.js +14 -5
  250. package/dist/components/core/Pill/Pill.theme.js +8 -8
  251. package/dist/components/core/Popover/Popover.js +6 -5
  252. package/dist/components/core/Popover/Popover.theme.js +4 -2
  253. package/dist/components/core/Popover/Popover.types.d.ts +8 -0
  254. package/dist/components/core/Popover/PopoverBody.js +19 -21
  255. package/dist/components/core/Popover/PopoverContext.js +1 -0
  256. package/dist/components/core/Popover/PopoverTrigger.js +1 -0
  257. package/dist/components/core/Progress/Progress.js +1 -0
  258. package/dist/components/core/Rating/Rating.js +13 -5
  259. package/dist/components/core/ScrollArea/ScrollArea.js +1 -0
  260. package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.d.ts +1 -0
  261. package/dist/components/core/ScrollArea/smooth/SmoothScrollEngine.js +14 -3
  262. package/dist/components/core/ScrollArea/smooth/SnapPointDetector.js +1 -0
  263. package/dist/components/core/ScrollArea/smooth/useSmoothScroll.js +1 -0
  264. package/dist/components/core/Segmented/Segmented.js +3 -2
  265. package/dist/components/core/Segmented/SegmentedItem.js +2 -1
  266. package/dist/components/core/Separator/Separator.js +1 -0
  267. package/dist/components/core/Sidebar/Sidebar.js +1 -0
  268. package/dist/components/core/Sidebar/SidebarCard.js +1 -0
  269. package/dist/components/core/Sidebar/SidebarContent.js +1 -0
  270. package/dist/components/core/Sidebar/SidebarContext.js +1 -0
  271. package/dist/components/core/Sidebar/SidebarFooter.js +1 -0
  272. package/dist/components/core/Sidebar/SidebarHeader.js +1 -0
  273. package/dist/components/core/Sidebar/SidebarLogo.js +1 -0
  274. package/dist/components/core/Sidebar/SidebarMobileTrigger.js +1 -0
  275. package/dist/components/core/Sidebar/SidebarNav.js +3 -1
  276. package/dist/components/core/Sidebar/SidebarNavGroup.js +1 -0
  277. package/dist/components/core/Sidebar/SidebarSearch.js +1 -0
  278. package/dist/components/core/Sidebar/SidebarToggle.js +1 -0
  279. package/dist/components/core/Sidebar/SidebarUserProfile.js +1 -0
  280. package/dist/components/core/SlidingNumber/SlidingNumber.js +3 -1
  281. package/dist/components/core/Sortable/Sortable.animations.js +1 -0
  282. package/dist/components/core/Sortable/Sortable.js +1 -0
  283. package/dist/components/core/Spinner/Spinner.js +1 -0
  284. package/dist/components/core/Tabs/Tabs.animations.js +1 -0
  285. package/dist/components/core/Tabs/Tabs.js +1 -0
  286. package/dist/components/core/Tabs/Tabs.theme.js +3 -3
  287. package/dist/components/core/Tabs/TabsBody.js +1 -0
  288. package/dist/components/core/Tabs/TabsContext.js +1 -0
  289. package/dist/components/core/Tabs/TabsList.js +1 -0
  290. package/dist/components/core/Tabs/TabsTrigger.js +34 -10
  291. package/dist/components/core/Tag/Tag.js +2 -1
  292. package/dist/components/core/Tag/Tag.theme.js +2 -2
  293. package/dist/components/core/Toast/Toast.animations.d.ts +3 -2
  294. package/dist/components/core/Toast/Toast.animations.js +20 -17
  295. package/dist/components/core/Toast/Toast.js +42 -20
  296. package/dist/components/core/Toast/Toast.theme.js +5 -8
  297. package/dist/components/core/Toast/Toast.types.d.ts +30 -20
  298. package/dist/components/core/Toast/ToastProvider.js +5 -1
  299. package/dist/components/core/Toast/index.d.ts +1 -1
  300. package/dist/components/core/Toast/useToast.js +5 -6
  301. package/dist/components/core/Tooltip/Tooltip.animations.js +19 -53
  302. package/dist/components/core/Tooltip/Tooltip.d.ts +1 -1
  303. package/dist/components/core/Tooltip/Tooltip.js +39 -18
  304. package/dist/components/core/Tooltip/Tooltip.theme.js +4 -2
  305. package/dist/components/core/Tooltip/Tooltip.types.d.ts +8 -0
  306. package/dist/components/core/Tree/Tree.animations.d.ts +1 -2
  307. package/dist/components/core/Tree/Tree.animations.js +20 -58
  308. package/dist/components/core/Tree/Tree.js +7 -5
  309. package/dist/components/data-display/DescriptionList/DescriptionList.js +1 -0
  310. package/dist/components/data-display/Feed/Feed.js +1 -0
  311. package/dist/components/data-display/GanttChart/GanttChart.d.ts +2 -3
  312. package/dist/components/data-display/GanttChart/GanttChart.js +5 -21
  313. package/dist/components/data-display/GanttChart/GanttChartContext.d.ts +5 -0
  314. package/dist/components/data-display/GanttChart/GanttChartContext.js +26 -0
  315. package/dist/components/data-display/GanttChart/GanttChartPanel.js +2 -1
  316. package/dist/components/data-display/GanttChart/GanttDependencyArrows.js +2 -1
  317. package/dist/components/data-display/GanttChart/GanttGroupBar.js +2 -1
  318. package/dist/components/data-display/GanttChart/GanttMilestone.js +2 -1
  319. package/dist/components/data-display/GanttChart/GanttSplitter.js +2 -1
  320. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +2 -1
  321. package/dist/components/data-display/GanttChart/GanttTableHeader.js +2 -1
  322. package/dist/components/data-display/GanttChart/GanttTablePanel.js +2 -1
  323. package/dist/components/data-display/GanttChart/GanttTableTaskRow.js +2 -1
  324. package/dist/components/data-display/GanttChart/GanttTaskBar.js +2 -1
  325. package/dist/components/data-display/GanttChart/GanttTaskContextMenu.js +2 -1
  326. package/dist/components/data-display/GanttChart/GanttTimelineGrid.js +2 -1
  327. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +2 -1
  328. package/dist/components/data-display/GanttChart/GanttToolbar.js +2 -1
  329. package/dist/components/data-display/GanttChart/hooks/useGanttDates.js +1 -0
  330. package/dist/components/data-display/GanttChart/hooks/useGanttDrag.js +1 -0
  331. package/dist/components/data-display/GanttChart/hooks/useGanttLayout.js +1 -0
  332. package/dist/components/data-display/GanttChart/hooks/useGanttScrollSync.js +1 -0
  333. package/dist/components/data-display/KPI/KPI.js +1 -0
  334. package/dist/components/data-display/Metric/Metric.js +2 -2
  335. package/dist/components/data-display/Metric/Metric.theme.js +2 -14
  336. package/dist/components/data-display/Metric/Metric.types.d.ts +1 -3
  337. package/dist/components/data-display/Table/Table.animations.js +1 -0
  338. package/dist/components/data-display/Table/Table.d.ts +2 -7
  339. package/dist/components/data-display/Table/Table.js +14 -14
  340. package/dist/components/data-display/Table/Table.types.d.ts +2 -0
  341. package/dist/components/data-display/Table/TableActions.js +3 -2
  342. package/dist/components/data-display/Table/TableActionsMenu.js +1 -0
  343. package/dist/components/data-display/Table/TableBody.js +1 -0
  344. package/dist/components/data-display/Table/TableCell.d.ts +1 -1
  345. package/dist/components/data-display/Table/TableCell.js +8 -3
  346. package/dist/components/data-display/Table/TableColumnManager.js +1 -0
  347. package/dist/components/data-display/Table/TableContext.d.ts +11 -0
  348. package/dist/components/data-display/Table/TableContext.js +21 -0
  349. package/dist/components/data-display/Table/TableDeclarative.js +3 -2
  350. package/dist/components/data-display/Table/TableFilter.js +9 -5
  351. package/dist/components/data-display/Table/TableHeader.js +2 -1
  352. package/dist/components/data-display/Table/TablePagination.js +1 -0
  353. package/dist/components/data-display/Table/TableRow.js +1 -0
  354. package/dist/components/data-display/Table/TableSelectionHeader.js +4 -2
  355. package/dist/components/data-display/Table/hooks/useTableColumns.js +1 -0
  356. package/dist/components/data-display/Table/hooks/useTableExpansion.js +1 -0
  357. package/dist/components/data-display/Table/hooks/useTableFilter.js +1 -0
  358. package/dist/components/data-display/Table/hooks/useTablePagination.js +1 -0
  359. package/dist/components/data-display/Table/hooks/useTableSelection.js +1 -0
  360. package/dist/components/data-display/Table/index.js +1 -2
  361. package/dist/components/data-display/Timeline/Timeline.animations.js +1 -0
  362. package/dist/components/data-display/Timeline/Timeline.d.ts +2 -2
  363. package/dist/components/data-display/Timeline/Timeline.js +5 -10
  364. package/dist/components/data-display/Timeline/Timeline.theme.d.ts +2 -24
  365. package/dist/components/data-display/Timeline/Timeline.types.d.ts +25 -1
  366. package/dist/components/data-display/Timeline/TimelineContent.js +2 -1
  367. package/dist/components/data-display/Timeline/TimelineContext.d.ts +3 -0
  368. package/dist/components/data-display/Timeline/TimelineContext.js +16 -0
  369. package/dist/components/data-display/Timeline/TimelineItem.js +5 -4
  370. package/dist/components/data-display/Timeline/TimelineMarker.js +2 -1
  371. package/dist/components/effects/AIOrb/hooks/useOrbState.js +1 -0
  372. package/dist/components/effects/AIOrb/variants/Aura/Aura.js +13 -4
  373. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.d.ts +7 -0
  374. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.d.ts +3 -0
  375. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.impl.js +176 -0
  376. package/dist/components/effects/AIOrb/variants/DotSphere/DotSphere.js +29 -161
  377. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.d.ts +8 -0
  378. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.d.ts +3 -0
  379. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.impl.js +140 -0
  380. package/dist/components/effects/AIOrb/variants/Liquid/Liquid.js +29 -127
  381. package/dist/components/effects/Animated/Animated.d.ts +2 -2
  382. package/dist/components/effects/Animated/Animated.js +5 -6
  383. package/dist/components/effects/Animated/AnimatedContext.d.ts +3 -0
  384. package/dist/components/effects/Animated/AnimatedContext.js +12 -0
  385. package/dist/components/effects/Animated/AnimatedItem.js +2 -1
  386. package/dist/components/effects/Aurora/Aurora.js +27 -5
  387. package/dist/components/effects/ColorPanels/ColorPanels.d.ts +8 -0
  388. package/dist/components/effects/ColorPanels/ColorPanels.js +66 -0
  389. package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +12 -0
  390. package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +218 -0
  391. package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +29 -0
  392. package/dist/components/effects/ColorPanels/ColorPanels.types.js +3 -0
  393. package/dist/components/effects/ColorPanels/index.d.ts +2 -0
  394. package/dist/components/effects/CustomCursor/CustomCursor.js +1 -0
  395. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +0 -2
  396. package/dist/components/effects/Dithering/Dithering.d.ts +10 -0
  397. package/dist/components/effects/Dithering/Dithering.js +62 -0
  398. package/dist/components/effects/Dithering/Dithering.shaders.d.ts +11 -0
  399. package/dist/components/effects/Dithering/Dithering.shaders.js +166 -0
  400. package/dist/components/effects/Dithering/Dithering.types.d.ts +31 -0
  401. package/dist/components/effects/Dithering/Dithering.types.js +17 -0
  402. package/dist/components/effects/Dithering/index.d.ts +3 -0
  403. package/dist/components/effects/DotPattern/DotPattern.js +1 -0
  404. package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +9 -0
  405. package/dist/components/effects/FlutedGlass/FlutedGlass.js +80 -0
  406. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +12 -0
  407. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +335 -0
  408. package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +61 -0
  409. package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +16 -0
  410. package/dist/components/effects/FlutedGlass/index.d.ts +3 -0
  411. package/dist/components/effects/GemSmoke/GemSmoke.d.ts +8 -0
  412. package/dist/components/effects/GemSmoke/GemSmoke.js +70 -0
  413. package/dist/components/effects/GemSmoke/GemSmoke.shaders.d.ts +18 -0
  414. package/dist/components/effects/GemSmoke/GemSmoke.shaders.js +181 -0
  415. package/dist/components/effects/GemSmoke/GemSmoke.types.d.ts +37 -0
  416. package/dist/components/effects/GemSmoke/GemSmoke.types.js +10 -0
  417. package/dist/components/effects/GemSmoke/index.d.ts +3 -0
  418. package/dist/components/effects/GlassEffect/GlassEffect.js +1 -1
  419. package/dist/components/effects/GlassSurface/GlassSurface.js +2 -16
  420. package/dist/components/effects/GodRays/GodRays.d.ts +8 -0
  421. package/dist/components/effects/GodRays/GodRays.js +68 -0
  422. package/dist/components/effects/GodRays/GodRays.shaders.d.ts +10 -0
  423. package/dist/components/effects/GodRays/GodRays.shaders.js +128 -0
  424. package/dist/components/effects/GodRays/GodRays.types.d.ts +25 -0
  425. package/dist/components/effects/GodRays/GodRays.types.js +3 -0
  426. package/dist/components/effects/GodRays/index.d.ts +2 -0
  427. package/dist/components/effects/GradientMesh/GradientMesh.d.ts +9 -0
  428. package/dist/components/effects/GradientMesh/GradientMesh.js +56 -0
  429. package/dist/components/effects/GradientMesh/GradientMesh.shaders.d.ts +15 -0
  430. package/dist/components/effects/GradientMesh/GradientMesh.shaders.js +127 -0
  431. package/dist/components/effects/GradientMesh/GradientMesh.types.d.ts +17 -0
  432. package/dist/components/effects/GradientMesh/GradientMesh.types.js +3 -0
  433. package/dist/components/effects/GradientMesh/index.d.ts +2 -0
  434. package/dist/components/effects/GrainGradient/GrainGradient.d.ts +9 -0
  435. package/dist/components/effects/GrainGradient/GrainGradient.js +62 -0
  436. package/dist/components/effects/GrainGradient/GrainGradient.shaders.d.ts +17 -0
  437. package/dist/components/effects/GrainGradient/GrainGradient.shaders.js +168 -0
  438. package/dist/components/effects/GrainGradient/GrainGradient.types.d.ts +26 -0
  439. package/dist/components/effects/GrainGradient/GrainGradient.types.js +9 -0
  440. package/dist/components/effects/GrainGradient/index.d.ts +3 -0
  441. package/dist/components/effects/GridPattern/GridPattern.js +1 -0
  442. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +10 -0
  443. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +78 -0
  444. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +22 -0
  445. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +239 -0
  446. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +52 -0
  447. package/dist/components/effects/HalftoneCmyk/index.d.ts +2 -0
  448. package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +9 -0
  449. package/dist/components/effects/HalftoneDots/HalftoneDots.js +68 -0
  450. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +13 -0
  451. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +296 -0
  452. package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +43 -0
  453. package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +12 -0
  454. package/dist/components/effects/HalftoneDots/index.d.ts +3 -0
  455. package/dist/components/effects/ImageDithering/ImageDithering.d.ts +9 -0
  456. package/dist/components/effects/ImageDithering/ImageDithering.js +68 -0
  457. package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +12 -0
  458. package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +117 -0
  459. package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +30 -0
  460. package/dist/components/effects/ImageDithering/ImageDithering.types.js +8 -0
  461. package/dist/components/effects/ImageDithering/index.d.ts +3 -0
  462. package/dist/components/effects/InteractiveCharacters/InteractiveCharacters.js +1 -0
  463. package/dist/components/effects/InteractiveCharacters/characters/BlobCharacter.js +1 -0
  464. package/dist/components/effects/InteractiveCharacters/characters/SmallCharacter.js +1 -0
  465. package/dist/components/effects/InteractiveCharacters/characters/TallCharacter.js +1 -0
  466. package/dist/components/effects/InteractiveCharacters/hooks/useBlink.js +1 -0
  467. package/dist/components/effects/InteractiveCharacters/hooks/useIdleAnimation.js +1 -0
  468. package/dist/components/effects/InteractiveCharacters/hooks/useMouseTracking.js +1 -0
  469. package/dist/components/effects/LiquidMetal/LiquidMetal.d.ts +9 -0
  470. package/dist/components/effects/LiquidMetal/LiquidMetal.js +61 -0
  471. package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.d.ts +19 -0
  472. package/dist/components/effects/LiquidMetal/LiquidMetal.shaders.js +202 -0
  473. package/dist/components/effects/LiquidMetal/LiquidMetal.types.d.ts +34 -0
  474. package/dist/components/effects/LiquidMetal/LiquidMetal.types.js +9 -0
  475. package/dist/components/effects/LiquidMetal/index.d.ts +3 -0
  476. package/dist/components/effects/MagneticElement/MagneticElement.js +1 -0
  477. package/dist/components/effects/MeshGradient/MeshGradient.d.ts +25 -0
  478. package/dist/components/effects/MeshGradient/MeshGradient.js +47 -0
  479. package/dist/components/effects/MeshGradient/MeshGradient.types.d.ts +40 -0
  480. package/dist/components/effects/MeshGradient/MeshGradient.utils.d.ts +83 -0
  481. package/dist/components/effects/MeshGradient/MeshGradient.utils.js +112 -0
  482. package/dist/components/effects/MeshGradient/index.d.ts +4 -0
  483. package/dist/components/effects/Metaballs/Metaballs.d.ts +8 -0
  484. package/dist/components/effects/Metaballs/Metaballs.js +59 -0
  485. package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +10 -0
  486. package/dist/components/effects/Metaballs/Metaballs.shaders.js +102 -0
  487. package/dist/components/effects/Metaballs/Metaballs.types.d.ts +16 -0
  488. package/dist/components/effects/Metaballs/Metaballs.types.js +3 -0
  489. package/dist/components/effects/Metaballs/index.d.ts +2 -0
  490. package/dist/components/effects/Neumorphic/InsetCircleButton.js +1 -0
  491. package/dist/components/effects/Neumorphic/InsetPill.js +1 -0
  492. package/dist/components/effects/NoiseOverlay/NoiseOverlay.js +1 -0
  493. package/dist/components/effects/Overlay/Overlay.js +1 -0
  494. package/dist/components/effects/PaperTexture/PaperTexture.d.ts +9 -0
  495. package/dist/components/effects/PaperTexture/PaperTexture.js +61 -0
  496. package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +22 -0
  497. package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +145 -0
  498. package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +19 -0
  499. package/dist/components/effects/PaperTexture/index.d.ts +2 -0
  500. package/dist/components/effects/Particles/Particles.js +1 -0
  501. package/dist/components/effects/Particles/Particles.scene.js +1 -0
  502. package/dist/components/effects/Preloader/Preloader.js +1 -0
  503. package/dist/components/effects/ProgressiveBlur/ProgressiveBlur.js +1 -0
  504. package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +27 -0
  505. package/dist/components/effects/PulsingBorder/PulsingBorder.js +174 -0
  506. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +14 -0
  507. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +258 -0
  508. package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +75 -0
  509. package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +3 -0
  510. package/dist/components/effects/PulsingBorder/index.d.ts +2 -0
  511. package/dist/components/effects/ScrollReveal/ScrollReveal.js +1 -0
  512. package/dist/components/effects/Shimmer/Shimmer.d.ts +21 -0
  513. package/dist/components/effects/Shimmer/Shimmer.js +44 -0
  514. package/dist/components/effects/Shimmer/Shimmer.types.d.ts +49 -0
  515. package/dist/components/effects/Shimmer/index.d.ts +2 -0
  516. package/dist/components/effects/SmokeRing/SmokeRing.d.ts +8 -0
  517. package/dist/components/effects/SmokeRing/SmokeRing.js +62 -0
  518. package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +14 -0
  519. package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +130 -0
  520. package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +22 -0
  521. package/dist/components/effects/SmokeRing/SmokeRing.types.js +3 -0
  522. package/dist/components/effects/SmokeRing/index.d.ts +2 -0
  523. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +9 -0
  524. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +59 -0
  525. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +14 -0
  526. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +129 -0
  527. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +23 -0
  528. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +3 -0
  529. package/dist/components/effects/StaticGradientMesh/index.d.ts +2 -0
  530. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.d.ts +9 -0
  531. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.js +66 -0
  532. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.d.ts +13 -0
  533. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.shaders.js +169 -0
  534. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.d.ts +29 -0
  535. package/dist/components/effects/StaticRadialGradient/StaticRadialGradient.types.js +3 -0
  536. package/dist/components/effects/StaticRadialGradient/index.d.ts +2 -0
  537. package/dist/components/effects/StripePattern/StripePattern.js +1 -0
  538. package/dist/components/effects/TiltCard/TiltCard.glow.js +1 -0
  539. package/dist/components/effects/TiltCard/TiltCard.js +1 -0
  540. package/dist/components/effects/Water/Water.d.ts +9 -0
  541. package/dist/components/effects/Water/Water.js +65 -0
  542. package/dist/components/effects/Water/Water.shaders.d.ts +11 -0
  543. package/dist/components/effects/Water/Water.shaders.js +123 -0
  544. package/dist/components/effects/Water/Water.types.d.ts +25 -0
  545. package/dist/components/effects/Water/index.d.ts +2 -0
  546. package/dist/components/effects/index.d.ts +40 -0
  547. package/dist/components/effects/index.js +21 -0
  548. package/dist/components/effects/{AIOrb/variants/Aura → shared/ShaderCanvas}/ShaderCanvas.d.ts +4 -8
  549. package/dist/components/effects/{AIOrb/variants/Aura → shared/ShaderCanvas}/ShaderCanvas.js +109 -3
  550. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +18 -0
  551. package/dist/components/effects/shared/ShaderCanvas/index.d.ts +2 -0
  552. package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +10 -0
  553. package/dist/components/effects/shared/bayerMatrices.glsl.js +44 -0
  554. package/dist/components/effects/shared/imageUV.glsl.d.ts +12 -0
  555. package/dist/components/effects/shared/imageUV.glsl.js +26 -0
  556. package/dist/components/effects/shared/index.d.ts +7 -0
  557. package/dist/components/effects/shared/resolveShaderColor.d.ts +13 -0
  558. package/dist/components/effects/shared/resolveShaderColor.js +62 -0
  559. package/dist/components/effects/shared/resolveShaderColor.test.d.ts +1 -0
  560. package/dist/components/effects/shared/shaderNoise.glsl.d.ts +34 -0
  561. package/dist/components/effects/shared/shaderNoise.glsl.js +84 -0
  562. package/dist/components/forms/Checkbox/Checkbox.animations.js +1 -0
  563. package/dist/components/forms/Checkbox/Checkbox.js +8 -8
  564. package/dist/components/forms/Checkbox/Checkbox.theme.js +5 -4
  565. package/dist/components/forms/Checkbox/CheckboxContext.js +1 -0
  566. package/dist/components/forms/Checkbox/CheckboxGroup.js +4 -1
  567. package/dist/components/forms/ColorPicker/ColorPicker.js +21 -5
  568. package/dist/components/forms/ColorPicker/ColorPicker.types.d.ts +8 -0
  569. package/dist/components/forms/ColorPicker/ColorPicker2DCanvas.js +1 -0
  570. package/dist/components/forms/ColorPicker/ColorPickerBody.js +3 -2
  571. package/dist/components/forms/ColorPicker/ColorPickerContext.js +1 -0
  572. package/dist/components/forms/ColorPicker/ColorPickerEyeDropper.js +1 -0
  573. package/dist/components/forms/ColorPicker/ColorPickerFormatSelector.js +1 -0
  574. package/dist/components/forms/ColorPicker/ColorPickerGradient.js +1 -0
  575. package/dist/components/forms/ColorPicker/ColorPickerHeader.js +1 -0
  576. package/dist/components/forms/ColorPicker/ColorPickerImage.js +1 -0
  577. package/dist/components/forms/ColorPicker/ColorPickerInput.js +1 -0
  578. package/dist/components/forms/ColorPicker/ColorPickerPresets.js +1 -0
  579. package/dist/components/forms/ColorPicker/ColorPickerSavedColors.js +1 -0
  580. package/dist/components/forms/ColorPicker/ColorPickerSliders.js +1 -0
  581. package/dist/components/forms/ColorPicker/ColorPickerSwatch.js +1 -0
  582. package/dist/components/forms/ColorPicker/ColorPickerTrigger.js +17 -2
  583. package/dist/components/forms/Combobox/Combobox.js +81 -37
  584. package/dist/components/forms/Combobox/Combobox.types.d.ts +8 -0
  585. package/dist/components/forms/DatePicker/DatePicker.animations.js +1 -0
  586. package/dist/components/forms/DatePicker/DatePicker.d.ts +3 -27
  587. package/dist/components/forms/DatePicker/DatePicker.js +5 -4
  588. package/dist/components/forms/DatePicker/DatePicker.theme.js +5 -5
  589. package/dist/components/forms/DatePicker/DatePicker.types.d.ts +15 -0
  590. package/dist/components/forms/DatePicker/DatePickerBody.js +26 -21
  591. package/dist/components/forms/DatePicker/DatePickerContext.d.ts +29 -0
  592. package/dist/components/forms/DatePicker/DatePickerContext.js +6 -0
  593. package/dist/components/forms/DatePicker/DatePickerPresets.js +2 -1
  594. package/dist/components/forms/DatePicker/DatePickerTrigger.js +2 -1
  595. package/dist/components/forms/DateRangePicker/DateRangePicker.d.ts +3 -23
  596. package/dist/components/forms/DateRangePicker/DateRangePicker.js +18 -7
  597. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +2 -2
  598. package/dist/components/forms/DateRangePicker/DateRangePicker.types.d.ts +21 -0
  599. package/dist/components/forms/DateRangePicker/DateRangePickerBody.js +18 -13
  600. package/dist/components/forms/DateRangePicker/DateRangePickerContext.d.ts +24 -0
  601. package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +5 -0
  602. package/dist/components/forms/DateRangePicker/DateRangePickerPresets.js +2 -1
  603. package/dist/components/forms/DateRangePicker/DateRangePickerTrigger.js +2 -1
  604. package/dist/components/forms/FileUpload/FileUpload.js +2 -1
  605. package/dist/components/forms/FileUpload/FileUploadProgress.js +4 -3
  606. package/dist/components/forms/Input/Input.js +7 -3
  607. package/dist/components/forms/Input/Input.theme.js +11 -5
  608. package/dist/components/forms/Input/Input.types.d.ts +6 -0
  609. package/dist/components/forms/Input/index.d.ts +1 -0
  610. package/dist/components/forms/Input/inputMasks.d.ts +24 -0
  611. package/dist/components/forms/Input/inputMasks.js +61 -5
  612. package/dist/components/forms/InputAddress/InputAddress.d.ts +5 -0
  613. package/dist/components/forms/InputAddress/InputAddress.js +95 -13
  614. package/dist/components/forms/InputAddress/InputAddress.theme.js +4 -4
  615. package/dist/components/forms/InputAddress/InputAddress.types.d.ts +8 -2
  616. package/dist/components/forms/InputAddress/index.d.ts +1 -1
  617. package/dist/components/forms/InputCounter/InputCounter.js +63 -44
  618. package/dist/components/forms/InputCounter/InputCounter.types.d.ts +6 -0
  619. package/dist/components/forms/InputCreditCard/InputCreditCard.js +9 -3
  620. package/dist/components/forms/InputCreditCard/InputCreditCard.theme.js +4 -4
  621. package/dist/components/forms/InputCreditCard/InputCreditCard.types.d.ts +5 -1
  622. package/dist/components/forms/InputCreditCard/index.d.ts +1 -0
  623. package/dist/components/forms/InputDate/InputDate.js +1 -0
  624. package/dist/components/forms/InputOTP/InputOTP.js +21 -9
  625. package/dist/components/forms/InputOTP/InputOTP.types.d.ts +7 -1
  626. package/dist/components/forms/InputTag/InputTag.js +65 -21
  627. package/dist/components/forms/InputTag/InputTag.theme.js +2 -1
  628. package/dist/components/forms/InputTag/InputTag.types.d.ts +8 -0
  629. package/dist/components/forms/Mention/Mention.js +12 -5
  630. package/dist/components/forms/Mention/Mention.theme.js +2 -1
  631. package/dist/components/forms/Mention/Mention.types.d.ts +8 -0
  632. package/dist/components/forms/Mention/Mention.utils.js +1 -0
  633. package/dist/components/forms/Radio/Radio.animations.js +1 -0
  634. package/dist/components/forms/Radio/Radio.js +5 -1
  635. package/dist/components/forms/Radio/Radio.theme.js +9 -7
  636. package/dist/components/forms/Radio/RadioContext.js +1 -0
  637. package/dist/components/forms/Radio/RadioGroup.js +4 -1
  638. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +1 -0
  639. package/dist/components/forms/RichTextEditor/RichTextEditor.js +70 -60
  640. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +3 -2
  641. package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +14 -0
  642. package/dist/components/forms/Select/Select.animations.js +17 -25
  643. package/dist/components/forms/Select/Select.d.ts +3 -1
  644. package/dist/components/forms/Select/Select.js +55 -21
  645. package/dist/components/forms/Select/Select.theme.js +2 -2
  646. package/dist/components/forms/Select/Select.types.d.ts +28 -1
  647. package/dist/components/forms/Select/useSelectState.js +7 -0
  648. package/dist/components/forms/SelectableCard/SelectableCard.js +1 -0
  649. package/dist/components/forms/SelectableCard/SelectableCardContext.js +1 -0
  650. package/dist/components/forms/SelectableCard/SelectableCardGroup.js +1 -0
  651. package/dist/components/forms/Signature/Signature.js +13 -3
  652. package/dist/components/forms/Signature/Signature.types.d.ts +6 -0
  653. package/dist/components/forms/Slider/Slider.js +2 -1
  654. package/dist/components/forms/Switch/Switch.js +9 -2
  655. package/dist/components/forms/Switch/Switch.theme.js +5 -3
  656. package/dist/components/forms/Textarea/Textarea.js +7 -3
  657. package/dist/components/forms/Textarea/Textarea.types.d.ts +6 -0
  658. package/dist/components/forms/TimePicker/TimePicker.d.ts +2 -12
  659. package/dist/components/forms/TimePicker/TimePicker.js +8 -5
  660. package/dist/components/forms/TimePicker/TimePicker.theme.js +4 -5
  661. package/dist/components/forms/TimePicker/TimePicker.types.d.ts +15 -0
  662. package/dist/components/forms/TimePicker/TimePickerContent.js +12 -7
  663. package/dist/components/forms/TimePicker/TimePickerContext.d.ts +15 -0
  664. package/dist/components/forms/TimePicker/TimePickerContext.js +6 -0
  665. package/dist/components/forms/TimePicker/TimePickerTrigger.js +18 -4
  666. package/dist/components/forms/TimePicker/WheelColumn.js +1 -0
  667. package/dist/components/forms/TimePicker/useWheelPicker.js +1 -0
  668. package/dist/components/forms/forms.theme.d.ts +1 -0
  669. package/dist/components/forms/forms.theme.js +55 -18
  670. package/dist/components/forms/index.d.ts +1 -0
  671. package/dist/components/forms/index.js +6 -2
  672. package/dist/components/generative/GenerativeView.js +1 -0
  673. package/dist/components/generative/actions.test.d.ts +1 -0
  674. package/dist/components/generative/registry.js +24 -6
  675. package/dist/components/generative/schema.generated.js +450 -35
  676. package/dist/components/generative/streaming.test.d.ts +1 -0
  677. package/dist/components/generative/tools.test.d.ts +1 -0
  678. package/dist/components/generative/useGenerativeStream.js +1 -0
  679. package/dist/components/generative/validate.d.ts +1 -1
  680. package/dist/components/generative/validate.js +121 -29
  681. package/dist/components/generative/validate.test.d.ts +1 -0
  682. package/dist/components/layout/AppShell/AppShell.js +1 -0
  683. package/dist/components/layout/AppShell/AppShellContext.js +1 -0
  684. package/dist/components/layout/AppShell/AppShellMain.js +1 -0
  685. package/dist/components/layout/AppShell/AppShellRightPanel.js +1 -0
  686. package/dist/components/layout/AppShell/AppShellSidebar.js +1 -0
  687. package/dist/components/layout/FormLayout/FormLayout.js +1 -1
  688. package/dist/components/layout/FormLayout/FormLayoutSection.js +1 -0
  689. package/dist/components/layout/Grid/Grid.d.ts +1 -1
  690. package/dist/components/layout/Grid/Grid.js +11 -3
  691. package/dist/components/layout/Grid/Grid.types.d.ts +15 -1
  692. package/dist/components/layout/Grid/index.d.ts +1 -1
  693. package/dist/components/layout/Section/Section.js +1 -0
  694. package/dist/components/layout/Stack/Stack.d.ts +1 -1
  695. package/dist/components/layout/Stack/Stack.js +11 -3
  696. package/dist/components/layout/Stack/Stack.types.d.ts +9 -2
  697. package/dist/components/layout/index.d.ts +0 -1
  698. package/dist/components/layout/index.js +0 -2
  699. package/dist/generative.schema.json +450 -35
  700. package/dist/hooks/useClickOutside.js +1 -0
  701. package/dist/hooks/useDarkMode.js +1 -0
  702. package/dist/hooks/useFocusTrap.js +1 -0
  703. package/dist/hooks/useIsClient.js +1 -0
  704. package/dist/hooks/useMediaQuery.js +1 -0
  705. package/dist/hooks/useNetworkStatus.d.ts +0 -4
  706. package/dist/hooks/useNetworkStatus.js +2 -5
  707. package/dist/hooks/useOverlay.js +1 -0
  708. package/dist/hooks/useScaleBackground.js +1 -0
  709. package/dist/hooks/useSelectPortal.js +1 -0
  710. package/dist/hooks/useSlidingNumber.js +1 -0
  711. package/dist/hooks/useStreamingSSE.d.ts +0 -5
  712. package/dist/hooks/useStreamingSSE.js +1 -5
  713. package/dist/hooks/useTypewriter.js +1 -0
  714. package/dist/index.d.ts +1 -0
  715. package/dist/index.js +189 -180
  716. package/dist/registry.json +1945 -681
  717. package/dist/styles.css +1 -1
  718. package/dist/test/render.d.ts +11 -0
  719. package/dist/test/setup.d.ts +1 -0
  720. package/dist/theme/SurfaceContext.d.ts +98 -0
  721. package/dist/theme/SurfaceContext.js +114 -0
  722. package/dist/theme/ThemeContext.js +19 -0
  723. package/dist/theme/animations.d.ts +75 -0
  724. package/dist/theme/animations.js +132 -0
  725. package/dist/theme/index.d.ts +5 -0
  726. package/dist/tools.json +458 -35
  727. package/dist/utils/actionQueue.d.ts +0 -4
  728. package/dist/utils/actionQueue.js +1 -4
  729. package/dist/utils/cn.js +21 -1
  730. package/dist/utils/colorUtils.d.ts +31 -1
  731. package/dist/utils/colorUtils.js +49 -4
  732. package/dist/utils/dateUtils.js +21 -16
  733. package/dist/utils/index.d.ts +1 -1
  734. package/dist/utils/performanceMonitor.js +1 -0
  735. package/dist/utils/smoothScrollUtils.js +1 -0
  736. package/package.json +23 -5
  737. package/src/global.scss +87 -0
  738. package/src/styles/theme.css +263 -156
  739. package/dist/components/charts/shared/BarRenderer/index.d.ts +0 -3
  740. package/dist/components/charts/shared/ChartContainer/ChartContainer.d.ts +0 -85
  741. package/dist/components/charts/shared/ChartContainer/index.d.ts +0 -3
  742. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.d.ts +0 -7
  743. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +0 -18
  744. package/dist/components/charts/shared/LineRenderer/index.d.ts +0 -2
  745. package/dist/components/core/Popover/Popover.animations.js +0 -13
  746. package/dist/components/layout/PageLayout/PageLayout.d.ts +0 -7
  747. package/dist/components/layout/PageLayout/PageLayout.js +0 -51
  748. package/dist/components/layout/PageLayout/PageLayout.theme.d.ts +0 -3
  749. package/dist/components/layout/PageLayout/PageLayout.theme.js +0 -39
  750. package/dist/components/layout/PageLayout/PageLayout.types.d.ts +0 -84
  751. package/dist/components/layout/PageLayout/PageLayoutContent.d.ts +0 -3
  752. package/dist/components/layout/PageLayout/PageLayoutContent.js +0 -14
  753. package/dist/components/layout/PageLayout/PageLayoutHeader.d.ts +0 -3
  754. package/dist/components/layout/PageLayout/PageLayoutHeader.js +0 -12
  755. package/dist/components/layout/PageLayout/PageLayoutSidebar.d.ts +0 -3
  756. package/dist/components/layout/PageLayout/PageLayoutSidebar.js +0 -14
  757. package/dist/components/layout/PageLayout/index.d.ts +0 -3
  758. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.d.ts +0 -0
  759. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.d.ts +0 -0
  760. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.theme.js +0 -0
  761. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/PromptSuggestion.types.d.ts +0 -0
  762. /package/dist/components/ai/{PromptSuggestions → PromptSuggestion}/index.d.ts +0 -0
@@ -0,0 +1,49 @@
1
+ import React from "react";
2
+ /** Visual style of the shimmer. */
3
+ export type ShimmerVariant = "text" | "surface";
4
+ export interface ShimmerProps extends React.HTMLAttributes<HTMLElement> {
5
+ /**
6
+ * Element or component to render as. Lets Shimmer *be* the element instead of
7
+ * wrapping it (e.g. `as="h1"`).
8
+ * @default "span" for `variant="text"`, "div" for `variant="surface"`
9
+ */
10
+ as?: React.ElementType;
11
+ /**
12
+ * - `text` — muted glyphs with a brighter highlight band sweeping across
13
+ * (the "AI thinking" look). Shimmers the text itself.
14
+ * - `surface` — a highlight band sweeps across the box; supply the placeholder
15
+ * background via `className`.
16
+ * @default "text"
17
+ */
18
+ variant?: ShimmerVariant;
19
+ /**
20
+ * When `false`, renders the static base color with no sweep — useful to
21
+ * start/stop a "thinking" state without unmounting.
22
+ * @default true
23
+ */
24
+ active?: boolean;
25
+ /**
26
+ * Animation duration in seconds.
27
+ * @default 2
28
+ */
29
+ duration?: number;
30
+ /**
31
+ * Width of the highlight band, `0`–`100`. Lower = tighter, brighter streak.
32
+ * Only affects `variant="text"`.
33
+ * @default 20
34
+ */
35
+ spread?: number;
36
+ /**
37
+ * Base / dim color. Any CSS color or variable. Maps to `--shimmer-color`.
38
+ * @default var(--color-text-muted)
39
+ */
40
+ color?: string;
41
+ /**
42
+ * Sweep highlight color. Maps to `--shimmer-highlight` (text) or
43
+ * `--shimmer-surface-highlight` (surface).
44
+ */
45
+ highlightColor?: string;
46
+ /** Additional className for style overrides (shadcn pattern, wins). */
47
+ className?: string;
48
+ children?: React.ReactNode;
49
+ }
@@ -0,0 +1,2 @@
1
+ export { Shimmer } from "./Shimmer";
2
+ export type { ShimmerProps, ShimmerVariant } from "./Shimmer.types";
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import type { SmokeRingProps } from "./SmokeRing.types";
3
+ /**
4
+ * Animated turbulent smoke ring — a noise-distorted ring gradient. WebGL2-
5
+ * powered; falls back to a static CSS ring approximation when WebGL2 is
6
+ * unavailable or the user prefers reduced motion.
7
+ */
8
+ export declare const SmokeRing: React.FC<SmokeRingProps>;
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useMemo, useRef } from 'react';
4
+ import { useReducedMotion } from 'motion/react';
5
+ import { useIsClient } from '../../../hooks/useIsClient.js';
6
+ import { useDarkMode } from '../../../hooks/useDarkMode.js';
7
+ import { cn } from '../../../utils/cn.js';
8
+ import { ShaderCanvas } from '../shared/ShaderCanvas/ShaderCanvas.js';
9
+ import { resolveShaderColors, resolveShaderColor } from '../shared/resolveShaderColor.js';
10
+ import { smokeRingFragmentShader } from './SmokeRing.shaders.js';
11
+ import { SMOKE_RING_MAX_COLORS } from './SmokeRing.types.js';
12
+
13
+ const DEFAULT_COLORS = ["var(--color-primary-300)", "var(--color-primary)", "var(--color-primary-700)"];
14
+ const DEFAULT_COLOR_BACK = "var(--color-background)";
15
+ function useWebgl2Supported(disabled) {
16
+ return useMemo(() => {
17
+ if (disabled || typeof document === "undefined")
18
+ return false;
19
+ try {
20
+ return !!document.createElement("canvas").getContext("webgl2");
21
+ }
22
+ catch (_a) {
23
+ return false;
24
+ }
25
+ }, [disabled]);
26
+ }
27
+ /**
28
+ * Animated turbulent smoke ring — a noise-distorted ring gradient. WebGL2-
29
+ * powered; falls back to a static CSS ring approximation when WebGL2 is
30
+ * unavailable or the user prefers reduced motion.
31
+ */
32
+ const SmokeRing = ({ colorBack = DEFAULT_COLOR_BACK, colors = DEFAULT_COLORS, noiseScale = 1, thickness = 0.3, radius = 0.35, innerShape = 0.5, noiseIterations = 4, speed = 1, className, style, ...props }) => {
33
+ var _a, _b, _c;
34
+ const isClient = useIsClient();
35
+ const shouldReduceMotion = useReducedMotion();
36
+ const isDark = useDarkMode();
37
+ const webglSupported = useWebgl2Supported(!!shouldReduceMotion);
38
+ const safeColors = colors.length > 0 ? colors.slice(0, SMOKE_RING_MAX_COLORS) : DEFAULT_COLORS;
39
+ const resolvedColors = useMemo(() => resolveShaderColors(safeColors),
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ [safeColors.join("|"), isDark]);
42
+ const resolvedBack = useMemo(() => resolveShaderColor(colorBack),
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ [colorBack, isDark]);
45
+ const uniformsRef = useRef({});
46
+ for (let i = 0; i < SMOKE_RING_MAX_COLORS; i++) {
47
+ uniformsRef.current[`u_colors[${i}]`] =
48
+ (_b = (_a = resolvedColors[i]) !== null && _a !== void 0 ? _a : resolvedColors[resolvedColors.length - 1]) !== null && _b !== void 0 ? _b : [0, 0, 0, 0];
49
+ }
50
+ uniformsRef.current.u_colorsCount = resolvedColors.length;
51
+ uniformsRef.current.u_colorBack = resolvedBack;
52
+ uniformsRef.current.u_noiseScale = noiseScale;
53
+ uniformsRef.current.u_thickness = thickness;
54
+ uniformsRef.current.u_radius = radius;
55
+ uniformsRef.current.u_innerShape = innerShape;
56
+ uniformsRef.current.u_noiseIterations = noiseIterations;
57
+ uniformsRef.current.u_speed = speed;
58
+ const fallbackGradient = `radial-gradient(circle, transparent 30%, ${(_c = safeColors[Math.floor(safeColors.length / 2)]) !== null && _c !== void 0 ? _c : "var(--color-primary)"} 45%, transparent 60%), ${colorBack}`;
59
+ return (jsx("div", { className: cn("absolute inset-0 overflow-hidden pointer-events-none select-none", className), style: style, "aria-hidden": "true", ...props, children: isClient && webglSupported ? (jsx(ShaderCanvas, { fragmentShader: smokeRingFragmentShader, uniformsRef: uniformsRef })) : (jsx("div", { className: "absolute inset-0", style: { background: fallbackGradient } })) }));
60
+ };
61
+
62
+ export { SmokeRing };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SmokeRing fragment shader — adapted from paper-design/shaders'
3
+ * `smoke-ring.ts` (https://github.com/paper-design/shaders, Apache License
4
+ * 2.0).
5
+ *
6
+ * Simplified from the original: plain centered/aspect-corrected UV
7
+ * (gl_FragCoord/iResolution) instead of paper-design's ShaderSizingParams
8
+ * fit/scale/rotation engine; pure-hash GLSL (see shared/shaderNoise.glsl.ts)
9
+ * instead of pre-generated noise-texture sampling. The color-ramp loop also
10
+ * adds an explicit `i > idxLast` bounds check so fewer than the maximum 10
11
+ * colors renders correctly (the unset trailing `u_colors[]` slots are never
12
+ * blended in).
13
+ */
14
+ export declare const smokeRingFragmentShader = "#version 300 es\nprecision mediump float;\n\nuniform float iTime;\nuniform vec2 iResolution;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colors[10];\nuniform float u_colorsCount;\n\nuniform float u_thickness;\nuniform float u_radius;\nuniform float u_innerShape;\nuniform float u_noiseScale;\nuniform float u_noiseIterations;\nuniform float u_speed;\n\nout vec4 fragColor;\n\n\nconst float PI = 3.14159265359;\nconst float TWO_PI = 6.28318530718;\n\n\nfloat randomR(vec2 st) {\n return fract(sin(dot(st, vec2(12.9898, 78.233))) * 43758.5453123);\n}\n\n\nfloat valueNoise(vec2 st) {\n vec2 i = floor(st);\n vec2 f = fract(st);\n float a = randomR(i);\n float b = randomR(i + vec2(1.0, 0.0));\n float c = randomR(i + vec2(0.0, 1.0));\n float d = randomR(i + vec2(1.0, 1.0));\n vec2 u = f * f * (3.0 - 2.0 * f);\n float x1 = mix(a, b, u.x);\n float x2 = mix(c, d, u.x);\n return mix(x1, x2, u.y);\n}\n\nvec2 fbm(vec2 n0, vec2 n1) {\n vec2 total = vec2(0.0);\n float amplitude = .4;\n for (int i = 0; i < 8; i++) {\n if (i >= int(u_noiseIterations)) break;\n total.x += valueNoise(n0) * amplitude;\n total.y += valueNoise(n1) * amplitude;\n n0 *= 1.99;\n n1 *= 1.99;\n amplitude *= 0.65;\n }\n return total;\n}\n\nfloat getNoise(vec2 uv, vec2 pUv, float t) {\n vec2 pUvLeft = pUv + .03 * t;\n float period = max(abs(u_noiseScale * TWO_PI), 1e-6);\n vec2 pUvRight = vec2(fract(pUv.x / period) * period, pUv.y) + .03 * t;\n vec2 noiseVal = fbm(pUvLeft, pUvRight);\n return mix(noiseVal.y, noiseVal.x, smoothstep(-.25, .25, uv.x));\n}\n\nfloat getRingShape(vec2 uv) {\n float radius = u_radius;\n float thickness = u_thickness;\n float distance = length(uv);\n float ringValue = 1. - smoothstep(radius, radius + thickness, distance);\n ringValue *= smoothstep(radius - pow(u_innerShape, 3.) * thickness, radius, distance);\n return ringValue;\n}\n\nvoid main() {\n vec2 shape_uv = (gl_FragCoord.xy - 0.5 * iResolution.xy) / min(iResolution.x, iResolution.y);\n\n float t = u_speed * iTime;\n float cycleDuration = 3.;\n float period2 = 2.0 * cycleDuration;\n float localTime1 = fract((0.1 * t + cycleDuration) / period2) * period2;\n float localTime2 = fract((0.1 * t) / period2) * period2;\n float timeBlend = .5 + .5 * sin(.1 * t * PI / cycleDuration - .5 * PI);\n\n float atg = atan(shape_uv.y, shape_uv.x) + .001;\n float l = length(shape_uv);\n float radialOffset = .5 * l - inversesqrt(max(1e-4, l));\n vec2 polar_uv1 = vec2(atg, localTime1 - radialOffset) * u_noiseScale;\n vec2 polar_uv2 = vec2(atg, localTime2 - radialOffset) * u_noiseScale;\n\n float noise1 = getNoise(shape_uv, polar_uv1, t);\n float noise2 = getNoise(shape_uv, polar_uv2, t);\n float noiseVal = mix(noise1, noise2, timeBlend);\n\n shape_uv *= (.8 + 1.2 * noiseVal);\n\n float ringShape = getRingShape(shape_uv);\n\n float mixer = ringShape * ringShape * (u_colorsCount - 1.);\n int idxLast = int(u_colorsCount) - 1;\n vec4 gradient = u_colors[idxLast];\n gradient.rgb *= gradient.a;\n for (int i = 9; i >= 0; i--) {\n if (i > idxLast) continue;\n float localT = clamp(mixer - float(idxLast - i - 1), 0., 1.);\n vec4 c = u_colors[i];\n c.rgb *= c.a;\n gradient = mix(gradient, c, localT);\n }\n\n vec3 color = gradient.rgb * ringShape;\n float opacity = gradient.a * ringShape;\n vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n color = color + bgColor * (1. - opacity);\n opacity = opacity + u_colorBack.a * (1. - opacity);\n\n fragColor = vec4(color, opacity);\n}\n";
@@ -0,0 +1,130 @@
1
+ import 'react/jsx-runtime';
2
+ import 'react';
3
+ import { glslDeclarePI, glslHashFloat } from '../shared/shaderNoise.glsl.js';
4
+
5
+ /**
6
+ * SmokeRing fragment shader — adapted from paper-design/shaders'
7
+ * `smoke-ring.ts` (https://github.com/paper-design/shaders, Apache License
8
+ * 2.0).
9
+ *
10
+ * Simplified from the original: plain centered/aspect-corrected UV
11
+ * (gl_FragCoord/iResolution) instead of paper-design's ShaderSizingParams
12
+ * fit/scale/rotation engine; pure-hash GLSL (see shared/shaderNoise.glsl.ts)
13
+ * instead of pre-generated noise-texture sampling. The color-ramp loop also
14
+ * adds an explicit `i > idxLast` bounds check so fewer than the maximum 10
15
+ * colors renders correctly (the unset trailing `u_colors[]` slots are never
16
+ * blended in).
17
+ */
18
+ const smokeRingFragmentShader = `#version 300 es
19
+ precision mediump float;
20
+
21
+ uniform float iTime;
22
+ uniform vec2 iResolution;
23
+
24
+ uniform vec4 u_colorBack;
25
+ uniform vec4 u_colors[10];
26
+ uniform float u_colorsCount;
27
+
28
+ uniform float u_thickness;
29
+ uniform float u_radius;
30
+ uniform float u_innerShape;
31
+ uniform float u_noiseScale;
32
+ uniform float u_noiseIterations;
33
+ uniform float u_speed;
34
+
35
+ out vec4 fragColor;
36
+
37
+ ${glslDeclarePI}
38
+ ${glslHashFloat}
39
+
40
+ float valueNoise(vec2 st) {
41
+ vec2 i = floor(st);
42
+ vec2 f = fract(st);
43
+ float a = randomR(i);
44
+ float b = randomR(i + vec2(1.0, 0.0));
45
+ float c = randomR(i + vec2(0.0, 1.0));
46
+ float d = randomR(i + vec2(1.0, 1.0));
47
+ vec2 u = f * f * (3.0 - 2.0 * f);
48
+ float x1 = mix(a, b, u.x);
49
+ float x2 = mix(c, d, u.x);
50
+ return mix(x1, x2, u.y);
51
+ }
52
+
53
+ vec2 fbm(vec2 n0, vec2 n1) {
54
+ vec2 total = vec2(0.0);
55
+ float amplitude = .4;
56
+ for (int i = 0; i < 8; i++) {
57
+ if (i >= int(u_noiseIterations)) break;
58
+ total.x += valueNoise(n0) * amplitude;
59
+ total.y += valueNoise(n1) * amplitude;
60
+ n0 *= 1.99;
61
+ n1 *= 1.99;
62
+ amplitude *= 0.65;
63
+ }
64
+ return total;
65
+ }
66
+
67
+ float getNoise(vec2 uv, vec2 pUv, float t) {
68
+ vec2 pUvLeft = pUv + .03 * t;
69
+ float period = max(abs(u_noiseScale * TWO_PI), 1e-6);
70
+ vec2 pUvRight = vec2(fract(pUv.x / period) * period, pUv.y) + .03 * t;
71
+ vec2 noiseVal = fbm(pUvLeft, pUvRight);
72
+ return mix(noiseVal.y, noiseVal.x, smoothstep(-.25, .25, uv.x));
73
+ }
74
+
75
+ float getRingShape(vec2 uv) {
76
+ float radius = u_radius;
77
+ float thickness = u_thickness;
78
+ float distance = length(uv);
79
+ float ringValue = 1. - smoothstep(radius, radius + thickness, distance);
80
+ ringValue *= smoothstep(radius - pow(u_innerShape, 3.) * thickness, radius, distance);
81
+ return ringValue;
82
+ }
83
+
84
+ void main() {
85
+ vec2 shape_uv = (gl_FragCoord.xy - 0.5 * iResolution.xy) / min(iResolution.x, iResolution.y);
86
+
87
+ float t = u_speed * iTime;
88
+ float cycleDuration = 3.;
89
+ float period2 = 2.0 * cycleDuration;
90
+ float localTime1 = fract((0.1 * t + cycleDuration) / period2) * period2;
91
+ float localTime2 = fract((0.1 * t) / period2) * period2;
92
+ float timeBlend = .5 + .5 * sin(.1 * t * PI / cycleDuration - .5 * PI);
93
+
94
+ float atg = atan(shape_uv.y, shape_uv.x) + .001;
95
+ float l = length(shape_uv);
96
+ float radialOffset = .5 * l - inversesqrt(max(1e-4, l));
97
+ vec2 polar_uv1 = vec2(atg, localTime1 - radialOffset) * u_noiseScale;
98
+ vec2 polar_uv2 = vec2(atg, localTime2 - radialOffset) * u_noiseScale;
99
+
100
+ float noise1 = getNoise(shape_uv, polar_uv1, t);
101
+ float noise2 = getNoise(shape_uv, polar_uv2, t);
102
+ float noiseVal = mix(noise1, noise2, timeBlend);
103
+
104
+ shape_uv *= (.8 + 1.2 * noiseVal);
105
+
106
+ float ringShape = getRingShape(shape_uv);
107
+
108
+ float mixer = ringShape * ringShape * (u_colorsCount - 1.);
109
+ int idxLast = int(u_colorsCount) - 1;
110
+ vec4 gradient = u_colors[idxLast];
111
+ gradient.rgb *= gradient.a;
112
+ for (int i = 9; i >= 0; i--) {
113
+ if (i > idxLast) continue;
114
+ float localT = clamp(mixer - float(idxLast - i - 1), 0., 1.);
115
+ vec4 c = u_colors[i];
116
+ c.rgb *= c.a;
117
+ gradient = mix(gradient, c, localT);
118
+ }
119
+
120
+ vec3 color = gradient.rgb * ringShape;
121
+ float opacity = gradient.a * ringShape;
122
+ vec3 bgColor = u_colorBack.rgb * u_colorBack.a;
123
+ color = color + bgColor * (1. - opacity);
124
+ opacity = opacity + u_colorBack.a * (1. - opacity);
125
+
126
+ fragColor = vec4(color, opacity);
127
+ }
128
+ `;
129
+
130
+ export { smokeRingFragmentShader };
@@ -0,0 +1,22 @@
1
+ import type React from "react";
2
+ export declare const SMOKE_RING_MAX_COLORS = 10;
3
+ export declare const SMOKE_RING_MAX_NOISE_ITERATIONS = 8;
4
+ export interface SmokeRingProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ /** Background CSS color. Default: 'var(--color-background)'. */
6
+ colorBack?: string;
7
+ /** Ring color ramp, up to 10. Default: a 3-stop primary ramp. */
8
+ colors?: string[];
9
+ /** Turbulence scale of the ring's noise distortion. Default: 1. */
10
+ noiseScale?: number;
11
+ /** Ring thickness. Default: 0.3. */
12
+ thickness?: number;
13
+ /** Ring radius. Default: 0.35. */
14
+ radius?: number;
15
+ /** Inner-edge softness/shape, 0-1. Default: 0.5. */
16
+ innerShape?: number;
17
+ /** fbm octave count, 1-8 (higher = more detailed turbulence). Default: 4. */
18
+ noiseIterations?: number;
19
+ /** Animation speed multiplier. Default: 1. */
20
+ speed?: number;
21
+ className?: string;
22
+ }
@@ -0,0 +1,3 @@
1
+ const SMOKE_RING_MAX_COLORS = 10;
2
+
3
+ export { SMOKE_RING_MAX_COLORS };
@@ -0,0 +1,2 @@
1
+ export { SmokeRing } from "./SmokeRing";
2
+ export type { SmokeRingProps } from "./SmokeRing.types";
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { StaticGradientMeshProps } from "./StaticGradientMesh.types";
3
+ /**
4
+ * Non-animated blob mesh gradient — a static arrangement of weighted color
5
+ * blobs blended into a soft organic gradient, with subtle grain. WebGL2-
6
+ * powered; falls back to a static CSS gradient when WebGL2 is unavailable.
7
+ * Being static, it needs no `prefers-reduced-motion` handling.
8
+ */
9
+ export declare const StaticGradientMesh: React.FC<StaticGradientMeshProps>;
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useMemo, useRef } from 'react';
4
+ import { useIsClient } from '../../../hooks/useIsClient.js';
5
+ import 'motion/react';
6
+ import { useDarkMode } from '../../../hooks/useDarkMode.js';
7
+ import { cn } from '../../../utils/cn.js';
8
+ import { ShaderCanvas } from '../shared/ShaderCanvas/ShaderCanvas.js';
9
+ import { resolveShaderColors } from '../shared/resolveShaderColor.js';
10
+ import { staticGradientMeshFragmentShader } from './StaticGradientMesh.shaders.js';
11
+ import { STATIC_GRADIENT_MESH_MAX_COLORS } from './StaticGradientMesh.types.js';
12
+
13
+ const DEFAULT_COLORS = ["var(--color-primary-300)", "var(--color-primary)", "var(--color-primary-700)"];
14
+ function useWebgl2Supported() {
15
+ return useMemo(() => {
16
+ if (typeof document === "undefined")
17
+ return false;
18
+ try {
19
+ return !!document.createElement("canvas").getContext("webgl2");
20
+ }
21
+ catch (_a) {
22
+ return false;
23
+ }
24
+ }, []);
25
+ }
26
+ /**
27
+ * Non-animated blob mesh gradient — a static arrangement of weighted color
28
+ * blobs blended into a soft organic gradient, with subtle grain. WebGL2-
29
+ * powered; falls back to a static CSS gradient when WebGL2 is unavailable.
30
+ * Being static, it needs no `prefers-reduced-motion` handling.
31
+ */
32
+ const StaticGradientMesh = ({ colors = DEFAULT_COLORS, positions = 0, waveX = 0.3, waveXShift = 0, waveY = 0.3, waveYShift = 0, mixing = 0.5, grainMixer = 0.2, grainOverlay = 0.1, className, style, ...props }) => {
33
+ var _a, _b;
34
+ const isClient = useIsClient();
35
+ const isDark = useDarkMode();
36
+ const webglSupported = useWebgl2Supported();
37
+ const safeColors = colors.length > 0 ? colors.slice(0, STATIC_GRADIENT_MESH_MAX_COLORS) : DEFAULT_COLORS;
38
+ const resolvedColors = useMemo(() => resolveShaderColors(safeColors),
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ [safeColors.join("|"), isDark]);
41
+ const uniformsRef = useRef({});
42
+ for (let i = 0; i < STATIC_GRADIENT_MESH_MAX_COLORS; i++) {
43
+ uniformsRef.current[`u_colors[${i}]`] =
44
+ (_b = (_a = resolvedColors[i]) !== null && _a !== void 0 ? _a : resolvedColors[resolvedColors.length - 1]) !== null && _b !== void 0 ? _b : [0, 0, 0, 0];
45
+ }
46
+ uniformsRef.current.u_colorsCount = resolvedColors.length;
47
+ uniformsRef.current.u_positions = positions;
48
+ uniformsRef.current.u_waveX = waveX;
49
+ uniformsRef.current.u_waveXShift = waveXShift;
50
+ uniformsRef.current.u_waveY = waveY;
51
+ uniformsRef.current.u_waveYShift = waveYShift;
52
+ uniformsRef.current.u_mixing = mixing;
53
+ uniformsRef.current.u_grainMixer = grainMixer;
54
+ uniformsRef.current.u_grainOverlay = grainOverlay;
55
+ const fallbackGradient = `linear-gradient(135deg, ${safeColors.join(", ")})`;
56
+ return (jsx("div", { className: cn("absolute inset-0 overflow-hidden pointer-events-none select-none", className), style: style, "aria-hidden": "true", ...props, children: isClient && webglSupported ? (jsx(ShaderCanvas, { fragmentShader: staticGradientMeshFragmentShader, uniformsRef: uniformsRef })) : (jsx("div", { className: "absolute inset-0", style: { background: fallbackGradient } })) }));
57
+ };
58
+
59
+ export { StaticGradientMesh };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * StaticGradientMesh fragment shader — adapted from paper-design/shaders'
3
+ * `static-mesh-gradient.ts` (https://github.com/paper-design/shaders, Apache
4
+ * License 2.0). Renamed from paper-design's "Static Mesh Gradient" to avoid
5
+ * a naming collision with this library's existing `MeshGradient` (an
6
+ * unrelated SVG-based deterministic seed→blob avatar generator).
7
+ *
8
+ * Simplified from the original: plain centered/aspect-corrected UV
9
+ * (gl_FragCoord/iResolution) instead of paper-design's ShaderSizingParams
10
+ * fit/scale/rotation engine; pure-hash GLSL (see shared/shaderNoise.glsl.ts)
11
+ * instead of pre-generated noise-texture sampling. Non-animated — a fixed
12
+ * `positions` seed substitutes for time, matching the original's design.
13
+ */
14
+ export declare const staticGradientMeshFragmentShader = "#version 300 es\nprecision mediump float;\n\nuniform vec2 iResolution;\n\nuniform vec4 u_colors[10];\nuniform float u_colorsCount;\nuniform float u_positions;\nuniform float u_waveX;\nuniform float u_waveXShift;\nuniform float u_waveY;\nuniform float u_waveYShift;\nuniform float u_mixing;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nout vec4 fragColor;\n\nconst float PI = 3.14159265359;\nconst float TWO_PI = 6.28318530718;\n\n\nvec2 rotate(vec2 v, float angle) {\n float s = sin(angle);\n float c = cos(angle);\n return mat2(c, -s, s, c) * v;\n}\n\n\nfloat randomR(vec2 st) {\n return fract(sin(dot(st, vec2(12.9898, 78.233))) * 43758.5453123);\n}\n\n\nfloat hash21(vec2 p) {\n return randomR(p);\n}\n\nfloat valueNoise(vec2 st) {\n vec2 i = floor(st);\n vec2 f = fract(st);\n float a = hash21(i);\n float b = hash21(i + vec2(1.0, 0.0));\n float c = hash21(i + vec2(0.0, 1.0));\n float d = hash21(i + vec2(1.0, 1.0));\n vec2 u = f * f * (3.0 - 2.0 * f);\n float x1 = mix(a, b, u.x);\n float x2 = mix(c, d, u.x);\n return mix(x1, x2, u.y);\n}\n\nfloat noise(vec2 n, vec2 seedOffset) {\n return valueNoise(n + seedOffset);\n}\n\nvec2 getPosition(int i, float t) {\n float a = float(i) * .37;\n float b = .6 + mod(float(i), 3.) * .3;\n float c = .8 + mod(float(i + 1), 4.) * 0.25;\n float x = sin(t * b + a);\n float y = cos(t * c + a * 1.5);\n return .5 + .5 * vec2(x, y);\n}\n\nvoid main() {\n vec2 uv = (gl_FragCoord.xy - 0.5 * iResolution.xy) / min(iResolution.x, iResolution.y);\n uv += .5;\n vec2 grainUV = uv * 1000.;\n\n float grain = noise(grainUV, vec2(0.));\n float mixerGrain = .4 * u_grainMixer * (grain - .5);\n\n float radius = smoothstep(0., 1., length(uv - .5));\n float center = 1. - radius;\n for (float i = 1.; i <= 2.; i++) {\n uv.x += u_waveX * center / i * cos(TWO_PI * u_waveXShift + i * 2. * smoothstep(.0, 1., uv.y));\n uv.y += u_waveY * center / i * cos(TWO_PI * u_waveYShift + i * 2. * smoothstep(.0, 1., uv.x));\n }\n\n vec3 color = vec3(0.);\n float opacity = 0.;\n float totalWeight = 0.;\n float positionSeed = 25. + .33 * u_positions;\n\n for (int i = 0; i < 10; i++) {\n if (i >= int(u_colorsCount)) break;\n vec2 pos = getPosition(i, positionSeed) + mixerGrain;\n float dist = length(uv - pos);\n vec3 colorFraction = u_colors[i].rgb * u_colors[i].a;\n float opacityFraction = u_colors[i].a;\n\n float mixing = pow(u_mixing, .7);\n float power = mix(2., 1., mixing);\n dist = pow(dist, power);\n\n float w = 1. / (dist + 1e-3);\n float baseSharpness = mix(.0, 8., clamp(w, 0., 1.));\n float sharpness = mix(baseSharpness, 1., mixing);\n w = pow(w, sharpness);\n color += colorFraction * w;\n opacity += opacityFraction * w;\n totalWeight += w;\n }\n color /= max(1e-4, totalWeight);\n opacity /= max(1e-4, totalWeight);\n\n float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));\n grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);\n grainOverlay = pow(grainOverlay, 1.3);\n float grainOverlayV = grainOverlay * 2. - 1.;\n vec3 grainOverlayColor = vec3(step(0., grainOverlayV));\n float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);\n grainOverlayStrength = pow(grainOverlayStrength, .8);\n color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);\n opacity += .5 * grainOverlayStrength;\n opacity = clamp(opacity, 0., 1.);\n\n fragColor = vec4(color, opacity);\n}\n";
@@ -0,0 +1,129 @@
1
+ import 'react/jsx-runtime';
2
+ import 'react';
3
+ import { glslRotate2, glslHashFloat } from '../shared/shaderNoise.glsl.js';
4
+
5
+ /**
6
+ * StaticGradientMesh fragment shader — adapted from paper-design/shaders'
7
+ * `static-mesh-gradient.ts` (https://github.com/paper-design/shaders, Apache
8
+ * License 2.0). Renamed from paper-design's "Static Mesh Gradient" to avoid
9
+ * a naming collision with this library's existing `MeshGradient` (an
10
+ * unrelated SVG-based deterministic seed→blob avatar generator).
11
+ *
12
+ * Simplified from the original: plain centered/aspect-corrected UV
13
+ * (gl_FragCoord/iResolution) instead of paper-design's ShaderSizingParams
14
+ * fit/scale/rotation engine; pure-hash GLSL (see shared/shaderNoise.glsl.ts)
15
+ * instead of pre-generated noise-texture sampling. Non-animated — a fixed
16
+ * `positions` seed substitutes for time, matching the original's design.
17
+ */
18
+ const staticGradientMeshFragmentShader = `#version 300 es
19
+ precision mediump float;
20
+
21
+ uniform vec2 iResolution;
22
+
23
+ uniform vec4 u_colors[10];
24
+ uniform float u_colorsCount;
25
+ uniform float u_positions;
26
+ uniform float u_waveX;
27
+ uniform float u_waveXShift;
28
+ uniform float u_waveY;
29
+ uniform float u_waveYShift;
30
+ uniform float u_mixing;
31
+ uniform float u_grainMixer;
32
+ uniform float u_grainOverlay;
33
+
34
+ out vec4 fragColor;
35
+
36
+ const float PI = 3.14159265359;
37
+ const float TWO_PI = 6.28318530718;
38
+
39
+ ${glslRotate2}
40
+ ${glslHashFloat}
41
+
42
+ float hash21(vec2 p) {
43
+ return randomR(p);
44
+ }
45
+
46
+ float valueNoise(vec2 st) {
47
+ vec2 i = floor(st);
48
+ vec2 f = fract(st);
49
+ float a = hash21(i);
50
+ float b = hash21(i + vec2(1.0, 0.0));
51
+ float c = hash21(i + vec2(0.0, 1.0));
52
+ float d = hash21(i + vec2(1.0, 1.0));
53
+ vec2 u = f * f * (3.0 - 2.0 * f);
54
+ float x1 = mix(a, b, u.x);
55
+ float x2 = mix(c, d, u.x);
56
+ return mix(x1, x2, u.y);
57
+ }
58
+
59
+ float noise(vec2 n, vec2 seedOffset) {
60
+ return valueNoise(n + seedOffset);
61
+ }
62
+
63
+ vec2 getPosition(int i, float t) {
64
+ float a = float(i) * .37;
65
+ float b = .6 + mod(float(i), 3.) * .3;
66
+ float c = .8 + mod(float(i + 1), 4.) * 0.25;
67
+ float x = sin(t * b + a);
68
+ float y = cos(t * c + a * 1.5);
69
+ return .5 + .5 * vec2(x, y);
70
+ }
71
+
72
+ void main() {
73
+ vec2 uv = (gl_FragCoord.xy - 0.5 * iResolution.xy) / min(iResolution.x, iResolution.y);
74
+ uv += .5;
75
+ vec2 grainUV = uv * 1000.;
76
+
77
+ float grain = noise(grainUV, vec2(0.));
78
+ float mixerGrain = .4 * u_grainMixer * (grain - .5);
79
+
80
+ float radius = smoothstep(0., 1., length(uv - .5));
81
+ float center = 1. - radius;
82
+ for (float i = 1.; i <= 2.; i++) {
83
+ uv.x += u_waveX * center / i * cos(TWO_PI * u_waveXShift + i * 2. * smoothstep(.0, 1., uv.y));
84
+ uv.y += u_waveY * center / i * cos(TWO_PI * u_waveYShift + i * 2. * smoothstep(.0, 1., uv.x));
85
+ }
86
+
87
+ vec3 color = vec3(0.);
88
+ float opacity = 0.;
89
+ float totalWeight = 0.;
90
+ float positionSeed = 25. + .33 * u_positions;
91
+
92
+ for (int i = 0; i < 10; i++) {
93
+ if (i >= int(u_colorsCount)) break;
94
+ vec2 pos = getPosition(i, positionSeed) + mixerGrain;
95
+ float dist = length(uv - pos);
96
+ vec3 colorFraction = u_colors[i].rgb * u_colors[i].a;
97
+ float opacityFraction = u_colors[i].a;
98
+
99
+ float mixing = pow(u_mixing, .7);
100
+ float power = mix(2., 1., mixing);
101
+ dist = pow(dist, power);
102
+
103
+ float w = 1. / (dist + 1e-3);
104
+ float baseSharpness = mix(.0, 8., clamp(w, 0., 1.));
105
+ float sharpness = mix(baseSharpness, 1., mixing);
106
+ w = pow(w, sharpness);
107
+ color += colorFraction * w;
108
+ opacity += opacityFraction * w;
109
+ totalWeight += w;
110
+ }
111
+ color /= max(1e-4, totalWeight);
112
+ opacity /= max(1e-4, totalWeight);
113
+
114
+ float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));
115
+ grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);
116
+ grainOverlay = pow(grainOverlay, 1.3);
117
+ float grainOverlayV = grainOverlay * 2. - 1.;
118
+ vec3 grainOverlayColor = vec3(step(0., grainOverlayV));
119
+ float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);
120
+ grainOverlayStrength = pow(grainOverlayStrength, .8);
121
+ color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);
122
+ opacity += .5 * grainOverlayStrength;
123
+ opacity = clamp(opacity, 0., 1.);
124
+
125
+ fragColor = vec4(color, opacity);
126
+ }
127
+ `;
128
+
129
+ export { staticGradientMeshFragmentShader };
@@ -0,0 +1,23 @@
1
+ import type React from "react";
2
+ export declare const STATIC_GRADIENT_MESH_MAX_COLORS = 10;
3
+ export interface StaticGradientMeshProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /** Blob colors (hex, rgb(), named, or var(--...)), up to 10. Default: a 3-stop primary ramp. */
5
+ colors?: string[];
6
+ /** Seeds the (fixed) blob layout — change to get a different arrangement. Default: 0. */
7
+ positions?: number;
8
+ /** Horizontal wave warp strength. Default: 0.3. */
9
+ waveX?: number;
10
+ /** Horizontal wave phase shift, 0-1. Default: 0. */
11
+ waveXShift?: number;
12
+ /** Vertical wave warp strength. Default: 0.3. */
13
+ waveY?: number;
14
+ /** Vertical wave phase shift, 0-1. Default: 0. */
15
+ waveYShift?: number;
16
+ /** Blend sharpness between blobs, 0-1 (0 = sharp, 1 = soft). Default: 0.5. */
17
+ mixing?: number;
18
+ /** Grain influence on blob positions, 0-1. Default: 0.2. */
19
+ grainMixer?: number;
20
+ /** Post-composite grain overlay strength, 0-1. Default: 0.1. */
21
+ grainOverlay?: number;
22
+ className?: string;
23
+ }
@@ -0,0 +1,3 @@
1
+ const STATIC_GRADIENT_MESH_MAX_COLORS = 10;
2
+
3
+ export { STATIC_GRADIENT_MESH_MAX_COLORS };
@@ -0,0 +1,2 @@
1
+ export { StaticGradientMesh } from "./StaticGradientMesh";
2
+ export type { StaticGradientMeshProps } from "./StaticGradientMesh.types";
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { StaticRadialGradientProps } from "./StaticRadialGradient.types";
3
+ /**
4
+ * Non-animated radial (conic-influenced) gradient — a soft radial color ramp
5
+ * with an optional angular light-source distortion and grain. WebGL2-
6
+ * powered; falls back to a static CSS radial-gradient when WebGL2 is
7
+ * unavailable. Being static, it needs no `prefers-reduced-motion` handling.
8
+ */
9
+ export declare const StaticRadialGradient: React.FC<StaticRadialGradientProps>;
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useMemo, useRef } from 'react';
4
+ import { useIsClient } from '../../../hooks/useIsClient.js';
5
+ import 'motion/react';
6
+ import { useDarkMode } from '../../../hooks/useDarkMode.js';
7
+ import { cn } from '../../../utils/cn.js';
8
+ import { ShaderCanvas } from '../shared/ShaderCanvas/ShaderCanvas.js';
9
+ import { resolveShaderColors, resolveShaderColor } from '../shared/resolveShaderColor.js';
10
+ import { staticRadialGradientFragmentShader } from './StaticRadialGradient.shaders.js';
11
+ import { STATIC_RADIAL_GRADIENT_MAX_COLORS } from './StaticRadialGradient.types.js';
12
+
13
+ const DEFAULT_COLORS = ["var(--color-primary-300)", "var(--color-primary)", "var(--color-primary-700)"];
14
+ const DEFAULT_COLOR_BACK = "var(--color-background)";
15
+ function useWebgl2Supported() {
16
+ return useMemo(() => {
17
+ if (typeof document === "undefined")
18
+ return false;
19
+ try {
20
+ return !!document.createElement("canvas").getContext("webgl2");
21
+ }
22
+ catch (_a) {
23
+ return false;
24
+ }
25
+ }, []);
26
+ }
27
+ /**
28
+ * Non-animated radial (conic-influenced) gradient — a soft radial color ramp
29
+ * with an optional angular light-source distortion and grain. WebGL2-
30
+ * powered; falls back to a static CSS radial-gradient when WebGL2 is
31
+ * unavailable. Being static, it needs no `prefers-reduced-motion` handling.
32
+ */
33
+ const StaticRadialGradient = ({ colorBack = DEFAULT_COLOR_BACK, colors = DEFAULT_COLORS, radius = 0.8, focalDistance = 1, focalAngle = 0, falloff = 0, mixing = 0.3, distortion = 0, distortionShift = 0, distortionFreq = 0, grainMixer = 0.1, grainOverlay = 0.05, className, style, ...props }) => {
34
+ var _a, _b;
35
+ const isClient = useIsClient();
36
+ const isDark = useDarkMode();
37
+ const webglSupported = useWebgl2Supported();
38
+ const safeColors = colors.length > 0 ? colors.slice(0, STATIC_RADIAL_GRADIENT_MAX_COLORS) : DEFAULT_COLORS;
39
+ const resolvedColors = useMemo(() => resolveShaderColors(safeColors),
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ [safeColors.join("|"), isDark]);
42
+ const resolvedBack = useMemo(() => resolveShaderColor(colorBack),
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ [colorBack, isDark]);
45
+ const uniformsRef = useRef({});
46
+ for (let i = 0; i < STATIC_RADIAL_GRADIENT_MAX_COLORS; i++) {
47
+ uniformsRef.current[`u_colors[${i}]`] =
48
+ (_b = (_a = resolvedColors[i]) !== null && _a !== void 0 ? _a : resolvedColors[resolvedColors.length - 1]) !== null && _b !== void 0 ? _b : [0, 0, 0, 0];
49
+ }
50
+ uniformsRef.current.u_colorsCount = resolvedColors.length;
51
+ uniformsRef.current.u_colorBack = resolvedBack;
52
+ uniformsRef.current.u_radius = radius;
53
+ uniformsRef.current.u_focalDistance = focalDistance;
54
+ uniformsRef.current.u_focalAngle = focalAngle;
55
+ uniformsRef.current.u_falloff = falloff;
56
+ uniformsRef.current.u_mixing = mixing;
57
+ uniformsRef.current.u_distortion = distortion;
58
+ uniformsRef.current.u_distortionShift = distortionShift;
59
+ uniformsRef.current.u_distortionFreq = distortionFreq;
60
+ uniformsRef.current.u_grainMixer = grainMixer;
61
+ uniformsRef.current.u_grainOverlay = grainOverlay;
62
+ const fallbackGradient = `radial-gradient(circle, ${safeColors.join(", ")}, ${colorBack})`;
63
+ return (jsx("div", { className: cn("absolute inset-0 overflow-hidden pointer-events-none select-none", className), style: style, "aria-hidden": "true", ...props, children: isClient && webglSupported ? (jsx(ShaderCanvas, { fragmentShader: staticRadialGradientFragmentShader, uniformsRef: uniformsRef })) : (jsx("div", { className: "absolute inset-0", style: { background: fallbackGradient } })) }));
64
+ };
65
+
66
+ export { StaticRadialGradient };