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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/CHANGELOG.md +295 -22
  2. package/dist/components/ai/AgentRequest/AgentRequest.animations.d.ts +25 -0
  3. package/dist/components/ai/AgentRequest/AgentRequest.animations.js +81 -0
  4. package/dist/components/ai/AgentRequest/AgentRequest.d.ts +3 -0
  5. package/dist/components/ai/AgentRequest/AgentRequest.js +435 -0
  6. package/dist/components/ai/AgentRequest/AgentRequest.theme.d.ts +2 -0
  7. package/dist/components/ai/AgentRequest/AgentRequest.theme.js +106 -0
  8. package/dist/components/ai/AgentRequest/AgentRequest.types.d.ts +241 -0
  9. package/dist/components/ai/AgentRequest/index.d.ts +3 -0
  10. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +1 -1
  11. package/dist/components/ai/PromptInput/PromptInput.js +2 -2
  12. package/dist/components/ai/PromptInput/PromptInput.theme.js +2 -2
  13. package/dist/components/ai/PromptSuggestion/PromptSuggestion.theme.js +2 -2
  14. package/dist/components/ai/Reasoning/Reasoning.js +27 -3
  15. package/dist/components/ai/Reasoning/Reasoning.theme.d.ts +6 -0
  16. package/dist/components/ai/Reasoning/Reasoning.theme.js +36 -0
  17. package/dist/components/ai/Reasoning/Reasoning.types.d.ts +58 -5
  18. package/dist/components/ai/Reasoning/ReasoningTrace.d.ts +11 -0
  19. package/dist/components/ai/Reasoning/ReasoningTrace.js +84 -0
  20. package/dist/components/ai/Reasoning/index.d.ts +2 -1
  21. package/dist/components/ai/StreamingResponse/AnimatedText.d.ts +7 -0
  22. package/dist/components/ai/StreamingResponse/AnimatedText.js +8 -7
  23. package/dist/components/ai/StreamingResponse/MarkdownRenderer.d.ts +5 -0
  24. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +4 -4
  25. package/dist/components/ai/StreamingResponse/StreamingCursor.d.ts +2 -2
  26. package/dist/components/ai/StreamingResponse/StreamingCursor.js +10 -7
  27. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.d.ts +10 -0
  28. package/dist/components/ai/StreamingResponse/StreamingResponse.animations.js +59 -33
  29. package/dist/components/ai/StreamingResponse/StreamingResponse.js +13 -7
  30. package/dist/components/ai/StreamingResponse/StreamingResponse.types.d.ts +33 -2
  31. package/dist/components/ai/StreamingResponse/StreamingSurface.d.ts +13 -0
  32. package/dist/components/ai/StreamingResponse/StreamingSurface.js +38 -0
  33. package/dist/components/ai/StreamingResponse/WordAnimationContext.d.ts +5 -0
  34. package/dist/components/ai/StreamingResponse/WordAnimationContext.js +5 -4
  35. package/dist/components/ai/StreamingResponse/index.d.ts +4 -2
  36. package/dist/components/ai/TokenCounter/TokenCounter.theme.js +1 -1
  37. package/dist/components/ai/index.d.ts +3 -2
  38. package/dist/components/ai/index.js +4 -0
  39. package/dist/components/canvas/BaseNode.js +1 -1
  40. package/dist/components/canvas/CanvasToolbar.js +0 -1
  41. package/dist/components/canvas/Edge.js +2 -2
  42. package/dist/components/canvas/NodeControls.js +0 -1
  43. package/dist/components/canvas/NodeRenderer.js +2 -2
  44. package/dist/components/charts/ActivityRings/ActivityRings.js +2 -2
  45. package/dist/components/charts/ActivityRings/ActivityRings.theme.js +1 -1
  46. package/dist/components/charts/AreaChart/AreaChart.js +3 -3
  47. package/dist/components/charts/AreaChart/AreaChart.theme.js +3 -3
  48. package/dist/components/charts/BarChart/BarChart.js +4 -4
  49. package/dist/components/charts/ComboChart/BarRenderer.js +2 -2
  50. package/dist/components/charts/ComboChart/BarRenderer.types.d.ts +1 -1
  51. package/dist/components/charts/ComboChart/ComboChartCanvas.js +1 -1
  52. package/dist/components/charts/ComboChart/LineRenderer.js +1 -1
  53. package/dist/components/charts/ComboChart/LineRenderer.types.d.ts +1 -1
  54. package/dist/components/charts/DonutChart/DonutChart.theme.js +4 -4
  55. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
  56. package/dist/components/charts/Heatmap/Heatmap.js +49 -42
  57. package/dist/components/charts/Heatmap/Heatmap.theme.d.ts +6 -2
  58. package/dist/components/charts/Heatmap/Heatmap.theme.js +20 -8
  59. package/dist/components/charts/Heatmap/Heatmap.types.d.ts +49 -82
  60. package/dist/components/charts/Heatmap/HeatmapCell.js +30 -81
  61. package/dist/components/charts/Heatmap/HeatmapLegend.d.ts +7 -6
  62. package/dist/components/charts/Heatmap/HeatmapLegend.js +6 -6
  63. package/dist/components/charts/Heatmap/index.d.ts +1 -1
  64. package/dist/components/charts/Heatmap/utils/heatmapUtils.d.ts +7 -12
  65. package/dist/components/charts/Heatmap/utils/heatmapUtils.js +16 -61
  66. package/dist/components/charts/Heatmap/utils/heatmapUtils.test.d.ts +1 -0
  67. package/dist/components/charts/HorizontalBarChart/HorizontalBarChart.js +1 -1
  68. package/dist/components/charts/LineChart/LineChart.js +2 -2
  69. package/dist/components/charts/LollipopChart/LollipopChart.js +1 -1
  70. package/dist/components/charts/RadarChart/RadarChart.js +1 -1
  71. package/dist/components/charts/StackedBarChart/StackedBarChart.js +3 -3
  72. package/dist/components/charts/hooks/useChartAccessibility.js +9 -6
  73. package/dist/components/charts/index.d.ts +4 -8
  74. package/dist/components/charts/index.js +2 -4
  75. package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
  76. package/dist/components/charts/shared/index.d.ts +1 -1
  77. package/dist/components/charts/theme/chart.theme.js +3 -3
  78. package/dist/components/charts/utils/animation-utils.d.ts +12 -7
  79. package/dist/components/charts/utils/animation-utils.js +19 -19
  80. package/dist/components/core/Accordion/Accordion.theme.js +1 -1
  81. package/dist/components/core/Alert/Alert.animations.d.ts +11 -4
  82. package/dist/components/core/Alert/Alert.animations.js +11 -4
  83. package/dist/components/core/Alert/Alert.js +16 -2
  84. package/dist/components/core/Alert/Alert.theme.js +1 -1
  85. package/dist/components/core/Alert/Alert.types.d.ts +4 -2
  86. package/dist/components/core/AlertDialog/AlertDialog.js +2 -2
  87. package/dist/components/core/Avatar/Avatar.theme.js +1 -1
  88. package/dist/components/core/Badge/Badge.animations.d.ts +0 -5
  89. package/dist/components/core/Badge/Badge.animations.js +5 -84
  90. package/dist/components/core/Badge/Badge.d.ts +7 -4
  91. package/dist/components/core/Badge/Badge.js +27 -64
  92. package/dist/components/core/Badge/Badge.theme.js +8 -12
  93. package/dist/components/core/Badge/Badge.types.d.ts +18 -34
  94. package/dist/components/core/Breadcrumbs/Breadcrumbs.theme.js +4 -4
  95. package/dist/components/core/Button/Button.js +7 -43
  96. package/dist/components/core/Button/Button.theme.js +2 -2
  97. package/dist/components/core/Button/Button.types.d.ts +8 -12
  98. package/dist/components/core/Button/index.d.ts +0 -2
  99. package/dist/components/core/Calendar/Calendar.theme.js +1 -1
  100. package/dist/components/core/Calendar/CalendarMini/CalendarMini.theme.js +2 -2
  101. package/dist/components/core/Card/Card.js +7 -2
  102. package/dist/components/core/Card/Card.theme.js +29 -1
  103. package/dist/components/core/Card/Card.types.d.ts +20 -0
  104. package/dist/components/core/Card/CardBody.js +9 -1
  105. package/dist/components/core/Card/CardContext.d.ts +13 -0
  106. package/dist/components/core/Card/CardContext.js +14 -0
  107. package/dist/components/core/Card/CardHeader.js +4 -1
  108. package/dist/components/core/ContextMenu/ContextMenu.theme.js +4 -3
  109. package/dist/components/core/ContextMenu/ContextMenu.types.d.ts +8 -1
  110. package/dist/components/core/ContextMenu/ContextMenuSub.d.ts +11 -1
  111. package/dist/components/core/ContextMenu/ContextMenuSub.js +35 -22
  112. package/dist/components/core/ContextMenu/ContextMenuSubBody.js +14 -3
  113. package/dist/components/core/ContextMenu/ContextMenuSubTrigger.js +21 -8
  114. package/dist/components/core/DragDrop/DragDrop.theme.js +2 -2
  115. package/dist/components/core/Drawer/Drawer.theme.js +1 -1
  116. package/dist/components/core/Drawer/DrawerHeader.js +0 -1
  117. package/dist/components/core/Dropdown/DropdownMenu.js +22 -7
  118. package/dist/components/core/Link/Link.js +1 -1
  119. package/dist/components/core/Masonry/Masonry.theme.js +1 -1
  120. package/dist/components/core/MenuItem/MenuItem.js +2 -1
  121. package/dist/components/core/MenuItem/MenuItem.theme.js +13 -1
  122. package/dist/components/core/Message/Message.js +2 -0
  123. package/dist/components/core/Message/Message.theme.js +3 -3
  124. package/dist/components/core/Modal/Modal.animations.d.ts +1 -1
  125. package/dist/components/core/Modal/Modal.animations.js +50 -11
  126. package/dist/components/core/Modal/Modal.js +5 -1
  127. package/dist/components/core/Modal/Modal.theme.js +1 -1
  128. package/dist/components/core/Modal/ModalHeader.js +0 -1
  129. package/dist/components/core/ModalStack/ModalStackModal.js +3 -1
  130. package/dist/components/core/NavItem/NavItem.js +3 -2
  131. package/dist/components/core/NavItem/NavItem.theme.js +1 -1
  132. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +4 -2
  133. package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
  134. package/dist/components/core/Pagination/Pagination.theme.js +2 -2
  135. package/dist/components/core/Pill/Pill.js +2 -1
  136. package/dist/components/core/Pill/Pill.theme.js +4 -2
  137. package/dist/components/core/Popover/PopoverBody.js +16 -5
  138. package/dist/components/core/Progress/Progress.d.ts +0 -25
  139. package/dist/components/core/Progress/Progress.js +79 -11
  140. package/dist/components/core/Progress/Progress.theme.js +17 -0
  141. package/dist/components/core/Progress/Progress.types.d.ts +47 -1
  142. package/dist/components/core/Rating/Rating.theme.js +1 -1
  143. package/dist/components/core/Rating/Rating.types.d.ts +3 -2
  144. package/dist/components/core/ScrollArea/ScrollArea.js +1 -1
  145. package/dist/components/core/ScrollArea/ScrollArea.theme.js +1 -1
  146. package/dist/components/core/Segmented/Segmented.theme.js +3 -3
  147. package/dist/components/core/Segmented/SegmentedContext.js +1 -0
  148. package/dist/components/core/Sidebar/Sidebar.js +5 -2
  149. package/dist/components/core/Sidebar/Sidebar.theme.js +2 -2
  150. package/dist/components/core/Sidebar/SidebarContent.js +1 -1
  151. package/dist/components/core/Sidebar/SidebarHeader.js +1 -1
  152. package/dist/components/core/Sidebar/SidebarSearch.js +2 -2
  153. package/dist/components/core/Sidebar/SidebarToggle.js +1 -1
  154. package/dist/components/core/Sidebar/SidebarUserProfile.js +1 -1
  155. package/dist/components/core/Sortable/Sortable.theme.js +1 -1
  156. package/dist/components/core/Tabs/Tabs.theme.js +1 -1
  157. package/dist/components/core/Tag/Tag.theme.js +1 -1
  158. package/dist/components/core/Toast/ToastProvider.js +1 -1
  159. package/dist/components/core/Tree/Tree.theme.js +1 -1
  160. package/dist/components/core/index.d.ts +0 -2
  161. package/dist/components/core/index.js +0 -4
  162. package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.d.ts +4 -0
  163. package/dist/components/core/shared/ChartTooltip/ChartTooltip.animations.js +20 -0
  164. package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.js +1 -1
  165. package/dist/components/core/shared/Ripple.d.ts +16 -0
  166. package/dist/components/core/shared/Ripple.js +141 -0
  167. package/dist/components/data-display/GanttChart/GanttChart.theme.js +6 -6
  168. package/dist/components/data-display/GanttChart/GanttTaskBar.js +1 -1
  169. package/dist/components/data-display/GanttChart/GanttTimelineHeader.js +1 -1
  170. package/dist/components/data-display/GanttChart/GanttToolbar.js +0 -1
  171. package/dist/components/data-display/KPI/KPI.js +11 -20
  172. package/dist/components/data-display/KPI/KPI.theme.js +8 -4
  173. package/dist/components/data-display/Metric/Metric.theme.js +4 -4
  174. package/dist/components/data-display/Table/Table.theme.js +2 -2
  175. package/dist/components/data-display/Table/TableColumnManager.js +1 -2
  176. package/dist/components/data-display/Table/TableContext.js +1 -0
  177. package/dist/components/data-display/Table/TableFilter.js +9 -2
  178. package/dist/components/data-display/Table/TableSelectionHeader.js +1 -1
  179. package/dist/components/data-display/Timeline/Timeline.theme.js +1 -1
  180. package/dist/components/effects/CustomCursor/CustomCursor.d.ts +1 -1
  181. package/dist/components/effects/CustomCursor/CustomCursor.js +1 -1
  182. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +4 -4
  183. package/dist/components/effects/Neumorphic/InsetCircleButton.js +1 -1
  184. package/dist/components/effects/Overlay/Overlay.js +7 -3
  185. package/dist/components/effects/index.d.ts +0 -32
  186. package/dist/components/effects/index.js +0 -16
  187. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.d.ts +0 -2
  188. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.js +1 -93
  189. package/dist/components/effects/shared/ShaderCanvas/ShaderCanvas.types.d.ts +0 -10
  190. package/dist/components/effects/shared/ShaderCanvas/index.d.ts +1 -1
  191. package/dist/components/effects/shared/index.d.ts +1 -3
  192. package/dist/components/effects/shared/shaderNoise.glsl.d.ts +1 -1
  193. package/dist/components/effects/shared/shaderNoise.glsl.js +2 -11
  194. package/dist/components/forms/Checkbox/Checkbox.theme.js +1 -1
  195. package/dist/components/forms/ColorPicker/ColorPickerHeader.js +1 -1
  196. package/dist/components/forms/ColorPicker/ColorPickerImage.js +1 -1
  197. package/dist/components/forms/Combobox/Combobox.js +2 -0
  198. package/dist/components/forms/DateRangePicker/DateRangePicker.theme.js +1 -1
  199. package/dist/components/forms/DateRangePicker/DateRangePickerContext.js +1 -0
  200. package/dist/components/forms/FileUpload/FileUpload.theme.js +2 -2
  201. package/dist/components/forms/FileUpload/FileUploadProgress.theme.js +1 -1
  202. package/dist/components/forms/InputAddress/InputAddress.types.d.ts +2 -2
  203. package/dist/components/forms/Radio/Radio.theme.js +1 -1
  204. package/dist/components/forms/RichTextEditor/RichTextEditor.d.ts +12 -16
  205. package/dist/components/forms/RichTextEditor/RichTextEditor.js +165 -1680
  206. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.d.ts +12 -56
  207. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +60 -118
  208. package/dist/components/forms/RichTextEditor/RichTextEditor.types.d.ts +62 -126
  209. package/dist/components/forms/RichTextEditor/RichTextLinkField.d.ts +18 -0
  210. package/dist/components/forms/RichTextEditor/RichTextLinkField.js +46 -0
  211. package/dist/components/forms/RichTextEditor/RichTextToolbar.d.ts +15 -0
  212. package/dist/components/forms/RichTextEditor/RichTextToolbar.js +93 -0
  213. package/dist/components/forms/RichTextEditor/editorCommands.d.ts +50 -0
  214. package/dist/components/forms/RichTextEditor/editorCommands.js +58 -0
  215. package/dist/components/forms/RichTextEditor/editorState.d.ts +19 -0
  216. package/dist/components/forms/RichTextEditor/editorState.js +103 -0
  217. package/dist/components/forms/RichTextEditor/index.d.ts +5 -3
  218. package/dist/components/forms/RichTextEditor/sanitizeHtml.d.ts +38 -0
  219. package/dist/components/forms/RichTextEditor/sanitizeHtml.js +179 -0
  220. package/dist/components/forms/RichTextEditor/sanitizeHtml.test.d.ts +1 -0
  221. package/dist/components/forms/Select/Select.js +4 -4
  222. package/dist/components/forms/Select/Select.types.d.ts +70 -7
  223. package/dist/components/forms/Select/useSelectState.d.ts +9 -3
  224. package/dist/components/forms/Select/useSelectState.js +4 -1
  225. package/dist/components/forms/SelectableCard/SelectableCard.js +2 -1
  226. package/dist/components/forms/SelectableCard/SelectableCard.theme.js +1 -1
  227. package/dist/components/forms/Switch/Switch.theme.js +2 -2
  228. package/dist/components/forms/TimePicker/TimePicker.theme.js +1 -1
  229. package/dist/components/forms/TimePicker/TimePickerTrigger.js +1 -1
  230. package/dist/components/forms/forms.theme.js +19 -5
  231. package/dist/components/forms/index.js +1 -0
  232. package/dist/components/generative/FormShell.d.ts +22 -0
  233. package/dist/components/generative/FormShell.js +102 -0
  234. package/dist/components/generative/GenerativeView.d.ts +52 -1
  235. package/dist/components/generative/GenerativeView.js +203 -11
  236. package/dist/components/generative/actions.d.ts +5 -0
  237. package/dist/components/generative/ai-sdk/index.d.ts +1 -0
  238. package/dist/components/generative/ai-sdk/index.js +1 -0
  239. package/dist/components/generative/ai-sdk/useGenerativeChat.d.ts +52 -0
  240. package/dist/components/generative/ai-sdk/useGenerativeChat.js +73 -0
  241. package/dist/components/generative/ai-sdk/useGenerativeChat.test.d.ts +1 -0
  242. package/dist/components/generative/fieldBinding.d.ts +31 -0
  243. package/dist/components/generative/fieldBinding.js +33 -0
  244. package/dist/components/generative/fieldBinding.test.d.ts +1 -0
  245. package/dist/components/generative/formScope.d.ts +71 -0
  246. package/dist/components/generative/formScope.js +135 -0
  247. package/dist/components/generative/index.d.ts +4 -0
  248. package/dist/components/generative/index.js +4 -0
  249. package/dist/components/generative/registry.d.ts +2 -0
  250. package/dist/components/generative/registry.js +10 -10
  251. package/dist/components/generative/schema.generated.js +178 -292
  252. package/dist/components/generative/toToolResult.d.ts +21 -0
  253. package/dist/components/generative/toToolResult.js +15 -0
  254. package/dist/components/generative/toToolResult.test.d.ts +1 -0
  255. package/dist/components/generative/validate.d.ts +10 -1
  256. package/dist/components/generative/validate.js +126 -11
  257. package/dist/components/layout/Grid/Grid.js +1 -0
  258. package/dist/components/layout/Section/Section.theme.js +1 -1
  259. package/dist/components/layout/Stack/Stack.js +1 -0
  260. package/dist/generative.schema.json +178 -292
  261. package/dist/index.js +1 -4
  262. package/dist/registry.json +2599 -2375
  263. package/dist/shadcn-compat.css +5 -5
  264. package/dist/styles/theme.test.d.ts +1 -0
  265. package/dist/styles.css +1 -1
  266. package/dist/test/render.d.ts +17 -0
  267. package/dist/themes/precision.css +232 -0
  268. package/dist/tools.json +179 -294
  269. package/dist/utils/index.d.ts +0 -1
  270. package/package.json +31 -1
  271. package/src/global.scss +21 -28
  272. package/src/styles/theme.css +124 -41
  273. package/src/styles/theme.test.ts +119 -0
  274. package/tailwind.preset.cjs +30 -20
  275. package/dist/components/charts/FunnelChart/FunnelChart.animations.d.ts +0 -35
  276. package/dist/components/charts/FunnelChart/FunnelChart.animations.js +0 -59
  277. package/dist/components/charts/FunnelChart/FunnelChart.d.ts +0 -8
  278. package/dist/components/charts/FunnelChart/FunnelChart.js +0 -410
  279. package/dist/components/charts/FunnelChart/FunnelChart.theme.d.ts +0 -2
  280. package/dist/components/charts/FunnelChart/FunnelChart.theme.js +0 -12
  281. package/dist/components/charts/FunnelChart/FunnelChart.types.d.ts +0 -105
  282. package/dist/components/charts/FunnelChart/index.d.ts +0 -4
  283. package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +0 -9
  284. package/dist/components/charts/ScatterPlot/ScatterPlot.js +0 -208
  285. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.d.ts +0 -18
  286. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +0 -42
  287. package/dist/components/charts/ScatterPlot/ScatterPlot.types.d.ts +0 -60
  288. package/dist/components/charts/ScatterPlot/ScatterPlot.types.js +0 -19
  289. package/dist/components/charts/ScatterPlot/index.d.ts +0 -3
  290. package/dist/components/core/Button/Button.ripple.d.ts +0 -71
  291. package/dist/components/core/Button/Button.ripple.js +0 -236
  292. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.d.ts +0 -4
  293. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.theme.d.ts +0 -12
  294. package/dist/components/core/Calendar/CalendarEvent/CalendarEvent.types.d.ts +0 -23
  295. package/dist/components/core/Calendar/CalendarEvent/index.d.ts +0 -2
  296. package/dist/components/core/CardStack/CardStack.animations.d.ts +0 -47
  297. package/dist/components/core/CardStack/CardStack.d.ts +0 -3
  298. package/dist/components/core/CardStack/CardStack.js +0 -187
  299. package/dist/components/core/CardStack/CardStack.theme.d.ts +0 -6
  300. package/dist/components/core/CardStack/CardStack.theme.js +0 -33
  301. package/dist/components/core/CardStack/CardStack.types.d.ts +0 -139
  302. package/dist/components/core/CardStack/index.d.ts +0 -7
  303. package/dist/components/core/Carousel/Carousel.d.ts +0 -3
  304. package/dist/components/core/Carousel/Carousel.js +0 -83
  305. package/dist/components/core/Carousel/Carousel.theme.d.ts +0 -10
  306. package/dist/components/core/Carousel/Carousel.theme.js +0 -20
  307. package/dist/components/core/Carousel/Carousel.types.d.ts +0 -113
  308. package/dist/components/core/Carousel/CarouselBody.d.ts +0 -4
  309. package/dist/components/core/Carousel/CarouselBody.js +0 -59
  310. package/dist/components/core/Carousel/CarouselContext.d.ts +0 -3
  311. package/dist/components/core/Carousel/CarouselContext.js +0 -13
  312. package/dist/components/core/Carousel/CarouselItem.d.ts +0 -4
  313. package/dist/components/core/Carousel/CarouselItem.js +0 -11
  314. package/dist/components/core/Carousel/CarouselNext.d.ts +0 -4
  315. package/dist/components/core/Carousel/CarouselNext.js +0 -16
  316. package/dist/components/core/Carousel/CarouselPrevious.d.ts +0 -4
  317. package/dist/components/core/Carousel/CarouselPrevious.js +0 -16
  318. package/dist/components/core/Carousel/index.d.ts +0 -3
  319. package/dist/components/effects/ColorPanels/ColorPanels.d.ts +0 -8
  320. package/dist/components/effects/ColorPanels/ColorPanels.js +0 -66
  321. package/dist/components/effects/ColorPanels/ColorPanels.shaders.d.ts +0 -12
  322. package/dist/components/effects/ColorPanels/ColorPanels.shaders.js +0 -218
  323. package/dist/components/effects/ColorPanels/ColorPanels.types.d.ts +0 -29
  324. package/dist/components/effects/ColorPanels/ColorPanels.types.js +0 -3
  325. package/dist/components/effects/ColorPanels/index.d.ts +0 -2
  326. package/dist/components/effects/FlutedGlass/FlutedGlass.d.ts +0 -9
  327. package/dist/components/effects/FlutedGlass/FlutedGlass.js +0 -80
  328. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.d.ts +0 -12
  329. package/dist/components/effects/FlutedGlass/FlutedGlass.shaders.js +0 -335
  330. package/dist/components/effects/FlutedGlass/FlutedGlass.types.d.ts +0 -61
  331. package/dist/components/effects/FlutedGlass/FlutedGlass.types.js +0 -16
  332. package/dist/components/effects/FlutedGlass/index.d.ts +0 -3
  333. package/dist/components/effects/GlassEffect/GlassEffect.d.ts +0 -15
  334. package/dist/components/effects/GlassEffect/GlassEffect.js +0 -38
  335. package/dist/components/effects/GlassEffect/GlassEffect.types.d.ts +0 -19
  336. package/dist/components/effects/GlassEffect/index.d.ts +0 -2
  337. package/dist/components/effects/GlassSurface/GlassSurface.d.ts +0 -8
  338. package/dist/components/effects/GlassSurface/GlassSurface.js +0 -250
  339. package/dist/components/effects/GlassSurface/GlassSurface.types.d.ts +0 -66
  340. package/dist/components/effects/GlassSurface/index.d.ts +0 -2
  341. package/dist/components/effects/GodRays/GodRays.d.ts +0 -8
  342. package/dist/components/effects/GodRays/GodRays.js +0 -68
  343. package/dist/components/effects/GodRays/GodRays.shaders.d.ts +0 -10
  344. package/dist/components/effects/GodRays/GodRays.shaders.js +0 -128
  345. package/dist/components/effects/GodRays/GodRays.types.d.ts +0 -25
  346. package/dist/components/effects/GodRays/GodRays.types.js +0 -3
  347. package/dist/components/effects/GodRays/index.d.ts +0 -2
  348. package/dist/components/effects/GridPattern/GridPattern.d.ts +0 -18
  349. package/dist/components/effects/GridPattern/GridPattern.js +0 -65
  350. package/dist/components/effects/GridPattern/GridPattern.types.d.ts +0 -47
  351. package/dist/components/effects/GridPattern/index.d.ts +0 -2
  352. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.d.ts +0 -10
  353. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.js +0 -78
  354. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.d.ts +0 -22
  355. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.shaders.js +0 -239
  356. package/dist/components/effects/HalftoneCmyk/HalftoneCmyk.types.d.ts +0 -52
  357. package/dist/components/effects/HalftoneCmyk/index.d.ts +0 -2
  358. package/dist/components/effects/HalftoneDots/HalftoneDots.d.ts +0 -9
  359. package/dist/components/effects/HalftoneDots/HalftoneDots.js +0 -68
  360. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.d.ts +0 -13
  361. package/dist/components/effects/HalftoneDots/HalftoneDots.shaders.js +0 -296
  362. package/dist/components/effects/HalftoneDots/HalftoneDots.types.d.ts +0 -43
  363. package/dist/components/effects/HalftoneDots/HalftoneDots.types.js +0 -12
  364. package/dist/components/effects/HalftoneDots/index.d.ts +0 -3
  365. package/dist/components/effects/ImageDithering/ImageDithering.d.ts +0 -9
  366. package/dist/components/effects/ImageDithering/ImageDithering.js +0 -68
  367. package/dist/components/effects/ImageDithering/ImageDithering.shaders.d.ts +0 -12
  368. package/dist/components/effects/ImageDithering/ImageDithering.shaders.js +0 -117
  369. package/dist/components/effects/ImageDithering/ImageDithering.types.d.ts +0 -30
  370. package/dist/components/effects/ImageDithering/ImageDithering.types.js +0 -8
  371. package/dist/components/effects/ImageDithering/index.d.ts +0 -3
  372. package/dist/components/effects/MagneticElement/MagneticElement.d.ts +0 -30
  373. package/dist/components/effects/MagneticElement/MagneticElement.js +0 -111
  374. package/dist/components/effects/MagneticElement/MagneticElement.types.d.ts +0 -44
  375. package/dist/components/effects/MagneticElement/index.d.ts +0 -2
  376. package/dist/components/effects/Metaballs/Metaballs.d.ts +0 -8
  377. package/dist/components/effects/Metaballs/Metaballs.js +0 -59
  378. package/dist/components/effects/Metaballs/Metaballs.shaders.d.ts +0 -10
  379. package/dist/components/effects/Metaballs/Metaballs.shaders.js +0 -102
  380. package/dist/components/effects/Metaballs/Metaballs.types.d.ts +0 -16
  381. package/dist/components/effects/Metaballs/Metaballs.types.js +0 -3
  382. package/dist/components/effects/Metaballs/index.d.ts +0 -2
  383. package/dist/components/effects/PaperTexture/PaperTexture.d.ts +0 -9
  384. package/dist/components/effects/PaperTexture/PaperTexture.js +0 -61
  385. package/dist/components/effects/PaperTexture/PaperTexture.shaders.d.ts +0 -22
  386. package/dist/components/effects/PaperTexture/PaperTexture.shaders.js +0 -145
  387. package/dist/components/effects/PaperTexture/PaperTexture.types.d.ts +0 -19
  388. package/dist/components/effects/PaperTexture/index.d.ts +0 -2
  389. package/dist/components/effects/PulsingBorder/PulsingBorder.d.ts +0 -27
  390. package/dist/components/effects/PulsingBorder/PulsingBorder.js +0 -174
  391. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.d.ts +0 -14
  392. package/dist/components/effects/PulsingBorder/PulsingBorder.shaders.js +0 -258
  393. package/dist/components/effects/PulsingBorder/PulsingBorder.types.d.ts +0 -75
  394. package/dist/components/effects/PulsingBorder/PulsingBorder.types.js +0 -3
  395. package/dist/components/effects/PulsingBorder/index.d.ts +0 -2
  396. package/dist/components/effects/SmokeRing/SmokeRing.d.ts +0 -8
  397. package/dist/components/effects/SmokeRing/SmokeRing.js +0 -62
  398. package/dist/components/effects/SmokeRing/SmokeRing.shaders.d.ts +0 -14
  399. package/dist/components/effects/SmokeRing/SmokeRing.shaders.js +0 -130
  400. package/dist/components/effects/SmokeRing/SmokeRing.types.d.ts +0 -22
  401. package/dist/components/effects/SmokeRing/SmokeRing.types.js +0 -3
  402. package/dist/components/effects/SmokeRing/index.d.ts +0 -2
  403. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.d.ts +0 -9
  404. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.js +0 -59
  405. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.d.ts +0 -14
  406. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.shaders.js +0 -129
  407. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.d.ts +0 -23
  408. package/dist/components/effects/StaticGradientMesh/StaticGradientMesh.types.js +0 -3
  409. package/dist/components/effects/StaticGradientMesh/index.d.ts +0 -2
  410. package/dist/components/effects/Water/Water.d.ts +0 -9
  411. package/dist/components/effects/Water/Water.js +0 -65
  412. package/dist/components/effects/Water/Water.shaders.d.ts +0 -11
  413. package/dist/components/effects/Water/Water.shaders.js +0 -123
  414. package/dist/components/effects/Water/Water.types.d.ts +0 -25
  415. package/dist/components/effects/Water/index.d.ts +0 -2
  416. package/dist/components/effects/shared/bayerMatrices.glsl.d.ts +0 -10
  417. package/dist/components/effects/shared/bayerMatrices.glsl.js +0 -44
  418. package/dist/components/effects/shared/imageUV.glsl.d.ts +0 -12
  419. package/dist/components/effects/shared/imageUV.glsl.js +0 -26
  420. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.d.ts +0 -7
  421. package/dist/components/forms/RichTextEditor/RichTextEditor.animations.js +0 -32
  422. package/dist/utils/calendarUtils.d.ts +0 -60
  423. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.d.ts +0 -0
  424. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.d.ts +0 -0
  425. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.theme.js +0 -0
  426. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltip.types.d.ts +0 -0
  427. /package/dist/components/{charts → core}/shared/ChartTooltip/ChartTooltipContent.d.ts +0 -0
  428. /package/dist/components/{charts → core}/shared/ChartTooltip/index.d.ts +0 -0
@@ -1,296 +0,0 @@
1
- import 'react/jsx-runtime';
2
- import 'react';
3
- import { glslDeclarePI, glslHashFloat } from '../shared/shaderNoise.glsl.js';
4
- import { glslImageCoverUV } from '../shared/imageUV.glsl.js';
5
-
6
- /**
7
- * HalftoneDots fragment shader — adapted from paper-design/shaders'
8
- * `halftone-dots.ts` (https://github.com/paper-design/shaders, Apache
9
- * License 2.0). An image filter: renders a source image as a luminance-
10
- * driven halftone dot grid (classic/gooey/holes/soft ball styles, square or
11
- * hex grid).
12
- *
13
- * Simplified from the original: image UV computed via the shared
14
- * `getImageCoverUV` cover-fit helper (see shared/imageUV.glsl.ts) instead of
15
- * paper-design's ShaderSizingParams fit engine; pure-hash GLSL instead of
16
- * pre-generated noise-texture sampling.
17
- */
18
- const halftoneDotsFragmentShader = `#version 300 es
19
- precision mediump float;
20
-
21
- uniform vec2 iResolution;
22
-
23
- uniform vec4 u_colorFront;
24
- uniform vec4 u_colorBack;
25
- uniform float u_radius;
26
- uniform float u_contrast;
27
-
28
- uniform sampler2D u_image;
29
- uniform float u_imageAspectRatio;
30
-
31
- uniform float u_size;
32
- uniform float u_grainMixer;
33
- uniform float u_grainOverlay;
34
- uniform float u_grainSize;
35
- uniform float u_grid;
36
- uniform float u_originalColors;
37
- uniform float u_inverted;
38
- uniform float u_type;
39
-
40
- out vec4 fragColor;
41
-
42
- ${glslDeclarePI}
43
- ${glslHashFloat}
44
- ${glslImageCoverUV}
45
-
46
- float hash21(vec2 n) {
47
- return randomR(n);
48
- }
49
-
50
- float valueNoise(vec2 st) {
51
- vec2 i = floor(st);
52
- vec2 f = fract(st);
53
- float a = hash21(i);
54
- float b = hash21(i + vec2(1.0, 0.0));
55
- float c = hash21(i + vec2(0.0, 1.0));
56
- float d = hash21(i + vec2(1.0, 1.0));
57
- vec2 u = f * f * (3.0 - 2.0 * f);
58
- float x1 = mix(a, b, u.x);
59
- float x2 = mix(c, d, u.x);
60
- return mix(x1, x2, u.y);
61
- }
62
-
63
- float lst(float edge0, float edge1, float x) {
64
- return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
65
- }
66
-
67
- float sst(float edge0, float edge1, float x) {
68
- return smoothstep(edge0, edge1, x);
69
- }
70
-
71
- float getCircle(vec2 uv, float r, float baseR) {
72
- r = mix(.25 * baseR, 0., r);
73
- float d = length(uv - .5);
74
- float aa = fwidth(d);
75
- return 1. - smoothstep(r - aa, r + aa, d);
76
- }
77
-
78
- float getCell(vec2 uv) {
79
- float insideX = step(0.0, uv.x) * (1.0 - step(1.0, uv.x));
80
- float insideY = step(0.0, uv.y) * (1.0 - step(1.0, uv.y));
81
- return insideX * insideY;
82
- }
83
-
84
- float getCircleWithHole(vec2 uv, float r, float baseR) {
85
- float cell = getCell(uv);
86
- r = mix(.75 * baseR, 0., r);
87
- float rMod = mod(r, .5);
88
- float d = length(uv - .5);
89
- float aa = fwidth(d);
90
- float circle = 1. - smoothstep(rMod - aa, rMod + aa, d);
91
- if (r < .5) {
92
- return circle;
93
- } else {
94
- return cell - circle;
95
- }
96
- }
97
-
98
- float getGooeyBall(vec2 uv, float r, float baseR) {
99
- float d = length(uv - .5);
100
- float sizeRadius = .3;
101
- if (u_grid == 1.) {
102
- sizeRadius = .42;
103
- }
104
- sizeRadius = mix(sizeRadius * baseR, 0., r);
105
- d = 1. - sst(0., sizeRadius, d);
106
- d = pow(d, 2. + baseR);
107
- return d;
108
- }
109
-
110
- float getSoftBall(vec2 uv, float r, float baseR) {
111
- float d = length(uv - .5);
112
- float sizeRadius = clamp(baseR, 0., 1.);
113
- sizeRadius = mix(.5 * sizeRadius, 0., r);
114
- d = 1. - lst(0., sizeRadius, d);
115
- float powRadius = 1. - lst(0., 2., baseR);
116
- d = pow(d, 4. + 3. * powRadius);
117
- return d;
118
- }
119
-
120
- float getUvFrame(vec2 uv, vec2 pad) {
121
- float aa = 0.0001;
122
- float left = smoothstep(-pad.x, -pad.x + aa, uv.x);
123
- float right = smoothstep(1.0 + pad.x, 1.0 + pad.x - aa, uv.x);
124
- float bottom = smoothstep(-pad.y, -pad.y + aa, uv.y);
125
- float top = smoothstep(1.0 + pad.y, 1.0 + pad.y - aa, uv.y);
126
- return left * right * bottom * top;
127
- }
128
-
129
- float sigmoid(float x, float k) {
130
- return 1.0 / (1.0 + exp(-k * (x - 0.5)));
131
- }
132
-
133
- float getLumAtPx(vec2 uv, float contrast) {
134
- vec4 tex = texture(u_image, uv);
135
- vec3 c = vec3(sigmoid(tex.r, contrast), sigmoid(tex.g, contrast), sigmoid(tex.b, contrast));
136
- float lum = dot(vec3(0.2126, 0.7152, 0.0722), c);
137
- lum = mix(1., lum, tex.a);
138
- lum = mix(lum, 1. - lum, u_inverted);
139
- return lum;
140
- }
141
-
142
- float getLumBall(vec2 p, vec2 pad, vec2 inCellOffset, float contrast, float baseR, float stepSize, out vec4 ballColor) {
143
- p += inCellOffset;
144
- vec2 uv_i = floor(p);
145
- vec2 uv_f = fract(p);
146
- vec2 samplingUV = (uv_i + .5 - inCellOffset) * pad + vec2(.5);
147
- float outOfFrame = getUvFrame(samplingUV, pad * stepSize);
148
-
149
- float lum = getLumAtPx(samplingUV, contrast);
150
- ballColor = texture(u_image, samplingUV);
151
- ballColor.rgb *= ballColor.a;
152
- ballColor *= outOfFrame;
153
-
154
- float ball = 0.;
155
- if (u_type == 0.) {
156
- ball = getCircle(uv_f, lum, baseR);
157
- } else if (u_type == 1.) {
158
- ball = getGooeyBall(uv_f, lum, baseR);
159
- } else if (u_type == 2.) {
160
- ball = getCircleWithHole(uv_f, lum, baseR);
161
- } else if (u_type == 3.) {
162
- ball = getSoftBall(uv_f, lum, baseR);
163
- }
164
-
165
- return ball * outOfFrame;
166
- }
167
-
168
- void main() {
169
- float stepMultiplier = 1.;
170
- if (u_type == 0.) {
171
- stepMultiplier = 2.;
172
- } else if (u_type == 1. || u_type == 3.) {
173
- stepMultiplier = 6.;
174
- }
175
-
176
- float cellsPerSide = mix(300., 7., pow(u_size, .7));
177
- cellsPerSide /= stepMultiplier;
178
- float cellSizeY = 1. / cellsPerSide;
179
- vec2 pad = cellSizeY * vec2(1. / u_imageAspectRatio, 1.);
180
- if (u_type == 1. && u_grid == 1.) {
181
- pad *= .7;
182
- }
183
-
184
- vec2 fragUV = gl_FragCoord.xy / iResolution.xy;
185
- vec2 uv = getImageCoverUV(fragUV, iResolution, u_imageAspectRatio);
186
- uv -= vec2(.5);
187
- uv /= pad;
188
-
189
- float contrast = mix(0., 15., pow(u_contrast, 1.5));
190
- float baseRadius = u_radius;
191
- if (u_originalColors > 0.5) {
192
- contrast = mix(.1, 4., pow(u_contrast, 2.));
193
- baseRadius = 2. * pow(.5 * u_radius, .3);
194
- }
195
-
196
- float totalShape = 0.;
197
- vec3 totalColor = vec3(0.);
198
- float totalOpacity = 0.;
199
-
200
- vec4 ballColor;
201
- float shape;
202
- float stepSize = 1. / stepMultiplier;
203
- for (float x = -0.5; x < 0.5; x += stepSize) {
204
- for (float y = -0.5; y < 0.5; y += stepSize) {
205
- vec2 offset = vec2(x, y);
206
-
207
- if (u_grid == 1.) {
208
- float rowIndex = floor((y + .5) / stepSize);
209
- float colIndex = floor((x + .5) / stepSize);
210
- if (stepSize == 1.) {
211
- rowIndex = floor(uv.y + y + 1.);
212
- if (u_type == 1.) {
213
- colIndex = floor(uv.x + x + 1.);
214
- }
215
- }
216
- if (u_type == 1.) {
217
- if (mod(rowIndex + colIndex, 2.) == 1.) {
218
- continue;
219
- }
220
- } else {
221
- if (mod(rowIndex, 2.) == 1.) {
222
- offset.x += .5 * stepSize;
223
- }
224
- }
225
- }
226
-
227
- shape = getLumBall(uv, pad, offset, contrast, baseRadius, stepSize, ballColor);
228
- totalColor += ballColor.rgb * shape;
229
- totalShape += shape;
230
- totalOpacity += shape;
231
- }
232
- }
233
-
234
- const float eps = 1e-4;
235
- totalColor /= max(totalShape, eps);
236
- totalOpacity /= max(totalShape, eps);
237
-
238
- float finalShape = 0.;
239
- if (u_type == 0.) {
240
- finalShape = min(1., totalShape);
241
- } else if (u_type == 1.) {
242
- float aa = fwidth(totalShape);
243
- float th = .5;
244
- finalShape = smoothstep(th - aa, th + aa, totalShape);
245
- } else if (u_type == 2.) {
246
- finalShape = min(1., totalShape);
247
- } else if (u_type == 3.) {
248
- finalShape = totalShape;
249
- }
250
-
251
- vec2 grainSize = mix(2000., 200., u_grainSize) * vec2(1., 1. / u_imageAspectRatio);
252
- vec2 grainUV = fragUV - .5;
253
- grainUV *= grainSize;
254
- grainUV += .5;
255
- float grain = valueNoise(grainUV);
256
- grain = smoothstep(.55, .7 + .2 * u_grainMixer, grain);
257
- grain *= u_grainMixer;
258
- finalShape = mix(finalShape, 0., grain);
259
-
260
- vec3 color = vec3(0.);
261
- float opacity = 0.;
262
-
263
- if (u_originalColors > 0.5) {
264
- color = totalColor * finalShape;
265
- opacity = totalOpacity * finalShape;
266
- vec3 bgColor = u_colorBack.rgb * u_colorBack.a;
267
- color = color + bgColor * (1. - opacity);
268
- opacity = opacity + u_colorBack.a * (1. - opacity);
269
- } else {
270
- vec3 fgColor = u_colorFront.rgb * u_colorFront.a;
271
- float fgOpacity = u_colorFront.a;
272
- vec3 bgColor = u_colorBack.rgb * u_colorBack.a;
273
- float bgOpacity = u_colorBack.a;
274
-
275
- color = fgColor * finalShape;
276
- opacity = fgOpacity * finalShape;
277
- color += bgColor * (1. - opacity);
278
- opacity += bgOpacity * (1. - opacity);
279
- }
280
-
281
- float grainOverlay = valueNoise(grainUV + vec2(3.));
282
- grainOverlay = mix(grainOverlay, valueNoise(grainUV * 1.4 + vec2(-1.)), .5);
283
- grainOverlay = pow(grainOverlay, 1.3);
284
- float grainOverlayV = grainOverlay * 2. - 1.;
285
- vec3 grainOverlayColor = vec3(step(0., grainOverlayV));
286
- float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);
287
- grainOverlayStrength = pow(grainOverlayStrength, .8);
288
- color = mix(color, grainOverlayColor, .5 * grainOverlayStrength);
289
- opacity += .5 * grainOverlayStrength;
290
- opacity = clamp(opacity, 0., 1.);
291
-
292
- fragColor = vec4(color, opacity);
293
- }
294
- `;
295
-
296
- export { halftoneDotsFragmentShader };
@@ -1,43 +0,0 @@
1
- import type React from "react";
2
- import type { ShaderTextureSource } from "../shared";
3
- export declare const HALFTONE_DOTS_TYPES: {
4
- readonly classic: 0;
5
- readonly gooey: 1;
6
- readonly holes: 2;
7
- readonly soft: 3;
8
- };
9
- export type HalftoneDotsType = keyof typeof HALFTONE_DOTS_TYPES;
10
- export declare const HALFTONE_DOTS_GRIDS: {
11
- readonly square: 0;
12
- readonly hex: 1;
13
- };
14
- export type HalftoneDotsGrid = keyof typeof HALFTONE_DOTS_GRIDS;
15
- export interface HalftoneDotsProps extends React.HTMLAttributes<HTMLDivElement> {
16
- /** Source image (URL or an existing HTMLImageElement). Required. */
17
- image: ShaderTextureSource;
18
- /** Dot color, used when `originalColors` is false. Default: 'var(--color-text-primary)'. */
19
- colorFront?: string;
20
- /** Background CSS color. Default: 'var(--color-background)'. */
21
- colorBack?: string;
22
- /** Ball rendering style. Default: 'classic'. */
23
- type?: HalftoneDotsType;
24
- /** Grid layout. Default: 'square'. */
25
- grid?: HalftoneDotsGrid;
26
- /** Dot grid density, 0-1 (higher = finer grid). Default: 0.6. */
27
- size?: number;
28
- /** Max dot radius, 0-1. Default: 0.8. */
29
- radius?: number;
30
- /** Luminance contrast, 0-1. Default: 0.5. */
31
- contrast?: number;
32
- /** Keep the image's own colors per-dot instead of a flat `colorFront`. Default: false. */
33
- originalColors?: boolean;
34
- /** Invert the luminance before halftoning. Default: false. */
35
- inverted?: boolean;
36
- /** Grain influence on the dot mask, 0-1. Default: 0. */
37
- grainMixer?: number;
38
- /** Post-composite grain overlay strength, 0-1. Default: 0. */
39
- grainOverlay?: number;
40
- /** Grain texture scale, 0-1. Default: 0.5. */
41
- grainSize?: number;
42
- className?: string;
43
- }
@@ -1,12 +0,0 @@
1
- const HALFTONE_DOTS_TYPES = {
2
- classic: 0,
3
- gooey: 1,
4
- holes: 2,
5
- soft: 3,
6
- };
7
- const HALFTONE_DOTS_GRIDS = {
8
- square: 0,
9
- hex: 1,
10
- };
11
-
12
- export { HALFTONE_DOTS_GRIDS, HALFTONE_DOTS_TYPES };
@@ -1,3 +0,0 @@
1
- export { HalftoneDots } from "./HalftoneDots";
2
- export type { HalftoneDotsProps, HalftoneDotsType, HalftoneDotsGrid } from "./HalftoneDots.types";
3
- export { HALFTONE_DOTS_TYPES, HALFTONE_DOTS_GRIDS } from "./HalftoneDots.types";
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- import type { ImageDitheringProps } from "./ImageDithering.types";
3
- /**
4
- * Ordered-dithering image filter — quantizes a source image's luminance
5
- * through a Bayer or random dither matrix into flat color steps. WebGL2-
6
- * powered; falls back to the plain source image (via `object-fit: cover`)
7
- * when WebGL2 is unavailable.
8
- */
9
- export declare const ImageDithering: React.FC<ImageDitheringProps>;
@@ -1,68 +0,0 @@
1
- "use client";
2
- import { jsx } from 'react/jsx-runtime';
3
- import { useState, useMemo, useRef, useCallback } 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 { resolveShaderColor } from '../shared/resolveShaderColor.js';
10
- import { imageDitheringFragmentShader } from './ImageDithering.shaders.js';
11
- import { IMAGE_DITHERING_TYPES } from './ImageDithering.types.js';
12
-
13
- const DEFAULT_COLOR_FRONT = "var(--color-text-primary)";
14
- const DEFAULT_COLOR_BACK = "var(--color-background)";
15
- const DEFAULT_COLOR_HIGHLIGHT = "var(--color-primary)";
16
- function useWebgl2Supported() {
17
- return useMemo(() => {
18
- if (typeof document === "undefined")
19
- return false;
20
- try {
21
- return !!document.createElement("canvas").getContext("webgl2");
22
- }
23
- catch (_a) {
24
- return false;
25
- }
26
- }, []);
27
- }
28
- /**
29
- * Ordered-dithering image filter — quantizes a source image's luminance
30
- * through a Bayer or random dither matrix into flat color steps. WebGL2-
31
- * powered; falls back to the plain source image (via `object-fit: cover`)
32
- * when WebGL2 is unavailable.
33
- */
34
- const ImageDithering = ({ image, colorFront = DEFAULT_COLOR_FRONT, colorBack = DEFAULT_COLOR_BACK, colorHighlight = DEFAULT_COLOR_HIGHLIGHT, type = "4x4", size = 4, colorSteps = 4, originalColors = false, inverted = false, className, style, ...props }) => {
35
- const isClient = useIsClient();
36
- const isDark = useDarkMode();
37
- const webglSupported = useWebgl2Supported();
38
- const [imageAspectRatio, setImageAspectRatio] = useState(16 / 9);
39
- const resolvedFront = useMemo(() => resolveShaderColor(colorFront),
40
- // eslint-disable-next-line react-hooks/exhaustive-deps
41
- [colorFront, isDark]);
42
- const resolvedBack = useMemo(() => resolveShaderColor(colorBack),
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- [colorBack, isDark]);
45
- const resolvedHighlight = useMemo(() => resolveShaderColor(colorHighlight),
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- [colorHighlight, isDark]);
48
- const texturesRef = useRef({ u_image: image });
49
- texturesRef.current.u_image = image;
50
- const handleTextureLoad = useCallback((name, aspectRatio) => {
51
- if (name === "u_image")
52
- setImageAspectRatio(aspectRatio);
53
- }, []);
54
- const uniformsRef = useRef({});
55
- uniformsRef.current.u_colorFront = resolvedFront;
56
- uniformsRef.current.u_colorBack = resolvedBack;
57
- uniformsRef.current.u_colorHighlight = resolvedHighlight;
58
- uniformsRef.current.u_imageAspectRatio = imageAspectRatio;
59
- uniformsRef.current.u_type = IMAGE_DITHERING_TYPES[type];
60
- uniformsRef.current.u_pxSize = size;
61
- uniformsRef.current.u_colorSteps = colorSteps;
62
- uniformsRef.current.u_originalColors = originalColors ? 1 : 0;
63
- uniformsRef.current.u_inverted = inverted ? 1 : 0;
64
- const imageSrc = typeof image === "string" ? image : image.src;
65
- 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: imageDitheringFragmentShader, uniformsRef: uniformsRef, texturesRef: texturesRef, onTextureLoad: handleTextureLoad })) : (jsx("img", { src: imageSrc, alt: "", className: "absolute inset-0 w-full h-full object-cover" })) }));
66
- };
67
-
68
- export { ImageDithering };
@@ -1,12 +0,0 @@
1
- /**
2
- * ImageDithering fragment shader — adapted from paper-design/shaders'
3
- * `image-dithering.ts` (https://github.com/paper-design/shaders, Apache
4
- * License 2.0). An image filter: ordered-dithers a source image's
5
- * luminance into flat color steps.
6
- *
7
- * Simplified from the original: image UV computed via the shared
8
- * `getImageCoverUV` cover-fit helper (see shared/imageUV.glsl.ts) instead of
9
- * paper-design's ShaderSizingParams fit engine; reuses the same
10
- * `shared/bayerMatrices.glsl.ts` module as `Dithering`.
11
- */
12
- export declare const imageDitheringFragmentShader = "#version 300 es\nprecision mediump float;\n\nuniform vec2 iResolution;\n\nuniform vec4 u_colorFront;\nuniform vec4 u_colorBack;\nuniform vec4 u_colorHighlight;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_type;\nuniform float u_pxSize;\nuniform float u_originalColors;\nuniform float u_inverted;\nuniform float u_colorSteps;\n\nout vec4 fragColor;\n\n\nfloat randomR(vec2 st) {\n return fract(sin(dot(st, vec2(12.9898, 78.233))) * 43758.5453123);\n}\n\n\nconst int bayer2x2[4] = int[4](0, 2, 3, 1);\nconst int bayer4x4[16] = int[16](\n 0, 8, 2, 10,\n 12, 4, 14, 6,\n 3, 11, 1, 9,\n 15, 7, 13, 5\n);\nconst int bayer8x8[64] = int[64](\n 0, 32, 8, 40, 2, 34, 10, 42,\n 48, 16, 56, 24, 50, 18, 58, 26,\n 12, 44, 4, 36, 14, 46, 6, 38,\n 60, 28, 52, 20, 62, 30, 54, 22,\n 3, 35, 11, 43, 1, 33, 9, 41,\n 51, 19, 59, 27, 49, 17, 57, 25,\n 15, 47, 7, 39, 13, 45, 5, 37,\n 63, 31, 55, 23, 61, 29, 53, 21\n);\n\nfloat getBayerValue(vec2 uv, int size) {\n ivec2 pos = ivec2(fract(uv / float(size)) * float(size));\n int index = pos.y * size + pos.x;\n\n if (size == 2) {\n return float(bayer2x2[index]) / 4.0;\n } else if (size == 4) {\n return float(bayer4x4[index]) / 16.0;\n } else if (size == 8) {\n return float(bayer8x8[index]) / 64.0;\n }\n return 0.0;\n}\n\n\nfloat getUvFrame(vec2 uv, vec2 pad) {\n float aa = 0.0001;\n float left = smoothstep(-pad.x, -pad.x + aa, uv.x);\n float right = smoothstep(1.0 + pad.x, 1.0 + pad.x - aa, uv.x);\n float bottom = smoothstep(-pad.y, -pad.y + aa, uv.y);\n float top = smoothstep(1.0 + pad.y, 1.0 + pad.y - aa, uv.y);\n return left * right * bottom * top;\n}\n\n\nvec2 getImageCoverUV(vec2 fragUV, vec2 resolution, float imageAspectRatio) {\n float containerAspect = resolution.x / resolution.y;\n // Container wider (relative to its height) than the image: sample a\n // narrower vertical slice of the image (crop top/bottom) so it fills the\n // container width with no letterboxing. Container narrower/taller than\n // the image: sample a narrower horizontal slice (crop left/right) instead.\n vec2 scale = containerAspect > imageAspectRatio\n ? vec2(1.0, imageAspectRatio / containerAspect)\n : vec2(containerAspect / imageAspectRatio, 1.0);\n return (fragUV - 0.5) * scale + 0.5;\n}\n\n\nvoid main() {\n float pxSize = max(u_pxSize, 1.0);\n vec2 pxSizeUV = gl_FragCoord.xy - .5 * iResolution;\n pxSizeUV /= pxSize;\n vec2 canvasPixelizedUV = (floor(pxSizeUV) + .5) * pxSize;\n vec2 normalizedUV = canvasPixelizedUV / iResolution;\n\n vec2 imageUV = getImageCoverUV(normalizedUV, iResolution, u_imageAspectRatio);\n vec2 ditheringNoiseUV = canvasPixelizedUV;\n vec4 image = texture(u_image, imageUV);\n float frame = getUvFrame(imageUV, pxSize / iResolution);\n\n int type = int(floor(u_type));\n float dithering = 0.0;\n\n float lum = dot(vec3(.2126, .7152, .0722), image.rgb);\n lum = mix(lum, 1. - lum, u_inverted);\n\n if (type == 1) {\n dithering = step(randomR(ditheringNoiseUV), lum);\n } else if (type == 2) {\n dithering = getBayerValue(pxSizeUV, 2);\n } else if (type == 3) {\n dithering = getBayerValue(pxSizeUV, 4);\n } else {\n dithering = getBayerValue(pxSizeUV, 8);\n }\n\n float colorSteps = max(floor(u_colorSteps), 1.);\n vec3 color = vec3(0.0);\n float opacity = 1.;\n\n dithering -= .5;\n float brightness = clamp(lum + dithering / colorSteps, 0.0, 1.0);\n brightness = mix(0.0, brightness, frame);\n brightness = mix(0.0, brightness, image.a);\n float quantLum = floor(brightness * colorSteps + 0.5) / colorSteps;\n quantLum = mix(0.0, quantLum, frame);\n\n if (u_originalColors > 0.5) {\n vec3 normColor = image.rgb / max(lum, 0.001);\n color = normColor * quantLum;\n float quantAlpha = floor(image.a * colorSteps + 0.5) / colorSteps;\n opacity = mix(quantLum, 1., quantAlpha);\n } else {\n vec3 fgColor = u_colorFront.rgb * u_colorFront.a;\n float fgOpacity = u_colorFront.a;\n vec3 bgColor = u_colorBack.rgb * u_colorBack.a;\n float bgOpacity = u_colorBack.a;\n vec3 hlColor = u_colorHighlight.rgb * u_colorHighlight.a;\n float hlOpacity = u_colorHighlight.a;\n\n fgColor = mix(fgColor, hlColor, step(1.02 - .02 * u_colorSteps, brightness));\n fgOpacity = mix(fgOpacity, hlOpacity, step(1.02 - .02 * u_colorSteps, brightness));\n\n color = fgColor * quantLum;\n opacity = fgOpacity * quantLum;\n color += bgColor * (1.0 - opacity);\n opacity += bgOpacity * (1.0 - opacity);\n }\n\n fragColor = vec4(color, opacity);\n}\n";
@@ -1,117 +0,0 @@
1
- import 'react/jsx-runtime';
2
- import 'react';
3
- import { glslHashFloat } from '../shared/shaderNoise.glsl.js';
4
- import { glslBayerMatrices } from '../shared/bayerMatrices.glsl.js';
5
- import { glslImageCoverUV } from '../shared/imageUV.glsl.js';
6
-
7
- /**
8
- * ImageDithering fragment shader — adapted from paper-design/shaders'
9
- * `image-dithering.ts` (https://github.com/paper-design/shaders, Apache
10
- * License 2.0). An image filter: ordered-dithers a source image's
11
- * luminance into flat color steps.
12
- *
13
- * Simplified from the original: image UV computed via the shared
14
- * `getImageCoverUV` cover-fit helper (see shared/imageUV.glsl.ts) instead of
15
- * paper-design's ShaderSizingParams fit engine; reuses the same
16
- * `shared/bayerMatrices.glsl.ts` module as `Dithering`.
17
- */
18
- const imageDitheringFragmentShader = `#version 300 es
19
- precision mediump float;
20
-
21
- uniform vec2 iResolution;
22
-
23
- uniform vec4 u_colorFront;
24
- uniform vec4 u_colorBack;
25
- uniform vec4 u_colorHighlight;
26
-
27
- uniform sampler2D u_image;
28
- uniform float u_imageAspectRatio;
29
-
30
- uniform float u_type;
31
- uniform float u_pxSize;
32
- uniform float u_originalColors;
33
- uniform float u_inverted;
34
- uniform float u_colorSteps;
35
-
36
- out vec4 fragColor;
37
-
38
- ${glslHashFloat}
39
- ${glslBayerMatrices}
40
-
41
- float getUvFrame(vec2 uv, vec2 pad) {
42
- float aa = 0.0001;
43
- float left = smoothstep(-pad.x, -pad.x + aa, uv.x);
44
- float right = smoothstep(1.0 + pad.x, 1.0 + pad.x - aa, uv.x);
45
- float bottom = smoothstep(-pad.y, -pad.y + aa, uv.y);
46
- float top = smoothstep(1.0 + pad.y, 1.0 + pad.y - aa, uv.y);
47
- return left * right * bottom * top;
48
- }
49
-
50
- ${glslImageCoverUV}
51
-
52
- void main() {
53
- float pxSize = max(u_pxSize, 1.0);
54
- vec2 pxSizeUV = gl_FragCoord.xy - .5 * iResolution;
55
- pxSizeUV /= pxSize;
56
- vec2 canvasPixelizedUV = (floor(pxSizeUV) + .5) * pxSize;
57
- vec2 normalizedUV = canvasPixelizedUV / iResolution;
58
-
59
- vec2 imageUV = getImageCoverUV(normalizedUV, iResolution, u_imageAspectRatio);
60
- vec2 ditheringNoiseUV = canvasPixelizedUV;
61
- vec4 image = texture(u_image, imageUV);
62
- float frame = getUvFrame(imageUV, pxSize / iResolution);
63
-
64
- int type = int(floor(u_type));
65
- float dithering = 0.0;
66
-
67
- float lum = dot(vec3(.2126, .7152, .0722), image.rgb);
68
- lum = mix(lum, 1. - lum, u_inverted);
69
-
70
- if (type == 1) {
71
- dithering = step(randomR(ditheringNoiseUV), lum);
72
- } else if (type == 2) {
73
- dithering = getBayerValue(pxSizeUV, 2);
74
- } else if (type == 3) {
75
- dithering = getBayerValue(pxSizeUV, 4);
76
- } else {
77
- dithering = getBayerValue(pxSizeUV, 8);
78
- }
79
-
80
- float colorSteps = max(floor(u_colorSteps), 1.);
81
- vec3 color = vec3(0.0);
82
- float opacity = 1.;
83
-
84
- dithering -= .5;
85
- float brightness = clamp(lum + dithering / colorSteps, 0.0, 1.0);
86
- brightness = mix(0.0, brightness, frame);
87
- brightness = mix(0.0, brightness, image.a);
88
- float quantLum = floor(brightness * colorSteps + 0.5) / colorSteps;
89
- quantLum = mix(0.0, quantLum, frame);
90
-
91
- if (u_originalColors > 0.5) {
92
- vec3 normColor = image.rgb / max(lum, 0.001);
93
- color = normColor * quantLum;
94
- float quantAlpha = floor(image.a * colorSteps + 0.5) / colorSteps;
95
- opacity = mix(quantLum, 1., quantAlpha);
96
- } else {
97
- vec3 fgColor = u_colorFront.rgb * u_colorFront.a;
98
- float fgOpacity = u_colorFront.a;
99
- vec3 bgColor = u_colorBack.rgb * u_colorBack.a;
100
- float bgOpacity = u_colorBack.a;
101
- vec3 hlColor = u_colorHighlight.rgb * u_colorHighlight.a;
102
- float hlOpacity = u_colorHighlight.a;
103
-
104
- fgColor = mix(fgColor, hlColor, step(1.02 - .02 * u_colorSteps, brightness));
105
- fgOpacity = mix(fgOpacity, hlOpacity, step(1.02 - .02 * u_colorSteps, brightness));
106
-
107
- color = fgColor * quantLum;
108
- opacity = fgOpacity * quantLum;
109
- color += bgColor * (1.0 - opacity);
110
- opacity += bgOpacity * (1.0 - opacity);
111
- }
112
-
113
- fragColor = vec4(color, opacity);
114
- }
115
- `;
116
-
117
- export { imageDitheringFragmentShader };
@@ -1,30 +0,0 @@
1
- import type React from "react";
2
- import type { ShaderTextureSource } from "../shared";
3
- export declare const IMAGE_DITHERING_TYPES: {
4
- readonly random: 1;
5
- readonly "2x2": 2;
6
- readonly "4x4": 3;
7
- readonly "8x8": 4;
8
- };
9
- export type ImageDitheringType = keyof typeof IMAGE_DITHERING_TYPES;
10
- export interface ImageDitheringProps extends React.HTMLAttributes<HTMLDivElement> {
11
- /** Source image (URL or an existing HTMLImageElement). Required. */
12
- image: ShaderTextureSource;
13
- /** Foreground (dark-step) CSS color, used when `originalColors` is false. Default: 'var(--color-text-primary)'. */
14
- colorFront?: string;
15
- /** Background (light-step) CSS color, used when `originalColors` is false. Default: 'var(--color-background)'. */
16
- colorBack?: string;
17
- /** Highlight color for the brightest step, used when `originalColors` is false. Default: 'var(--color-primary)'. */
18
- colorHighlight?: string;
19
- /** Ordered-dithering matrix, or 'random' for noise dithering. Default: '4x4'. */
20
- type?: ImageDitheringType;
21
- /** Dither cell size in device pixels. Default: 4. */
22
- size?: number;
23
- /** Number of brightness quantization steps. Default: 4. */
24
- colorSteps?: number;
25
- /** Keep the image's own colors (quantized) instead of the two/three-tone palette. Default: false. */
26
- originalColors?: boolean;
27
- /** Invert the luminance before dithering. Default: false. */
28
- inverted?: boolean;
29
- className?: string;
30
- }
@@ -1,8 +0,0 @@
1
- const IMAGE_DITHERING_TYPES = {
2
- random: 1,
3
- "2x2": 2,
4
- "4x4": 3,
5
- "8x8": 4,
6
- };
7
-
8
- export { IMAGE_DITHERING_TYPES };
@@ -1,3 +0,0 @@
1
- export { ImageDithering } from "./ImageDithering";
2
- export type { ImageDitheringProps, ImageDitheringType } from "./ImageDithering.types";
3
- export { IMAGE_DITHERING_TYPES } from "./ImageDithering.types";
@@ -1,30 +0,0 @@
1
- import React from "react";
2
- import type { MagneticElementProps } from "./MagneticElement.types";
3
- /**
4
- * MagneticElement
5
- *
6
- * A wrapper component that adds a magnetic pull effect to its children.
7
- * When the cursor moves over the element, it subtly translates toward
8
- * the cursor position, creating an engaging interactive effect.
9
- *
10
- * The component uses spring-based animations for smooth, natural movement
11
- * and respects the user's reduced motion preferences.
12
- *
13
- * @example
14
- * ```tsx
15
- * <MagneticElement strength={0.3}>
16
- * <Button>Hover me</Button>
17
- * </MagneticElement>
18
- * ```
19
- *
20
- * @example
21
- * ```tsx
22
- * // With parallax inner content
23
- * <MagneticElement strength={0.4} innerStrength={2}>
24
- * <div className="p-4">
25
- * <span>Pull me closer</span>
26
- * </div>
27
- * </MagneticElement>
28
- * ```
29
- */
30
- export declare const MagneticElement: React.ForwardRefExoticComponent<MagneticElementProps & React.RefAttributes<HTMLDivElement>>;