@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,80 +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 { flutedGlassFragmentShader } from './FlutedGlass.shaders.js';
11
- import { FLUTED_GLASS_SHAPES, FLUTED_GLASS_DISTORTION_SHAPES } from './FlutedGlass.types.js';
12
-
13
- const DEFAULT_COLOR_BACK = "var(--color-surface-sunken)";
14
- const DEFAULT_COLOR_SHADOW = "var(--color-text-primary)";
15
- const DEFAULT_COLOR_HIGHLIGHT = "var(--color-background)";
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
- * Fluted-glass image filter — refracts a source image through a directional
30
- * ribbed-glass grid with per-ridge highlights/shadows and a real Gaussian
31
- * blur. WebGL2-powered; falls back to the plain source image (via
32
- * `object-fit: cover`) when WebGL2 is unavailable.
33
- */
34
- const FlutedGlass = ({ image, colorBack = DEFAULT_COLOR_BACK, colorShadow = DEFAULT_COLOR_SHADOW, colorHighlight = DEFAULT_COLOR_HIGHLIGHT, shape = "lines", distortionShape = "lens", size = 0.5, angle = 0, distortion = 0.5, shift = 0, blur = 0.2, edges = 0.3, shadows = 0.4, highlights = 0.5, stretch = 0, margin = 0, marginLeft, marginRight, marginTop, marginBottom, grainMixer = 0, grainOverlay = 0, className, style, ...props }) => {
35
- const isClient = useIsClient();
36
- const isDark = useDarkMode();
37
- const webglSupported = useWebgl2Supported();
38
- const [imageAspectRatio, setImageAspectRatio] = useState(16 / 9);
39
- const resolvedBack = useMemo(() => resolveShaderColor(colorBack),
40
- // eslint-disable-next-line react-hooks/exhaustive-deps
41
- [colorBack, isDark]);
42
- const resolvedShadow = useMemo(() => resolveShaderColor(colorShadow),
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- [colorShadow, 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_colorBack = resolvedBack;
56
- uniformsRef.current.u_colorShadow = resolvedShadow;
57
- uniformsRef.current.u_colorHighlight = resolvedHighlight;
58
- uniformsRef.current.u_imageAspectRatio = imageAspectRatio;
59
- uniformsRef.current.u_shape = FLUTED_GLASS_SHAPES[shape];
60
- uniformsRef.current.u_distortionShape = FLUTED_GLASS_DISTORTION_SHAPES[distortionShape];
61
- uniformsRef.current.u_size = size;
62
- uniformsRef.current.u_angle = angle;
63
- uniformsRef.current.u_distortion = distortion;
64
- uniformsRef.current.u_shift = shift;
65
- uniformsRef.current.u_blur = blur;
66
- uniformsRef.current.u_edges = edges;
67
- uniformsRef.current.u_shadows = shadows;
68
- uniformsRef.current.u_highlights = highlights;
69
- uniformsRef.current.u_stretch = stretch;
70
- uniformsRef.current.u_marginLeft = marginLeft !== null && marginLeft !== void 0 ? marginLeft : margin;
71
- uniformsRef.current.u_marginRight = marginRight !== null && marginRight !== void 0 ? marginRight : margin;
72
- uniformsRef.current.u_marginTop = marginTop !== null && marginTop !== void 0 ? marginTop : margin;
73
- uniformsRef.current.u_marginBottom = marginBottom !== null && marginBottom !== void 0 ? marginBottom : margin;
74
- uniformsRef.current.u_grainMixer = grainMixer;
75
- uniformsRef.current.u_grainOverlay = grainOverlay;
76
- const imageSrc = typeof image === "string" ? image : image.src;
77
- 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: flutedGlassFragmentShader, uniformsRef: uniformsRef, texturesRef: texturesRef, onTextureLoad: handleTextureLoad })) : (jsx("img", { src: imageSrc, alt: "", className: "absolute inset-0 w-full h-full object-cover" })) }));
78
- };
79
-
80
- export { FlutedGlass };
@@ -1,12 +0,0 @@
1
- /**
2
- * FlutedGlass fragment shader — adapted from paper-design/shaders'
3
- * `fluted-glass.ts` (https://github.com/paper-design/shaders, Apache
4
- * License 2.0). An image filter: refracts a source image through a
5
- * directional fluted/ribbed glass grid, with a real per-pixel Gaussian blur.
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; pure-hash GLSL instead of
10
- * pre-generated noise-texture sampling.
11
- */
12
- export declare const flutedGlassFragmentShader = "#version 300 es\nprecision mediump float;\n\nuniform vec2 iResolution;\n\nuniform vec4 u_colorBack;\nuniform vec4 u_colorShadow;\nuniform vec4 u_colorHighlight;\n\nuniform sampler2D u_image;\nuniform float u_imageAspectRatio;\n\nuniform float u_size;\nuniform float u_shadows;\nuniform float u_angle;\nuniform float u_stretch;\nuniform float u_shape;\nuniform float u_distortion;\nuniform float u_highlights;\nuniform float u_distortionShape;\nuniform float u_shift;\nuniform float u_blur;\nuniform float u_edges;\nuniform float u_marginLeft;\nuniform float u_marginRight;\nuniform float u_marginTop;\nuniform float u_marginBottom;\nuniform float u_grainMixer;\nuniform float u_grainOverlay;\n\nout vec4 fragColor;\n\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\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\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 getUvFrame(vec2 uv, float softness) {\n float aax = 2. * fwidth(uv.x);\n float aay = 2. * fwidth(uv.y);\n float left = smoothstep(0., aax + softness, uv.x);\n float right = 1. - smoothstep(1. - softness - aax, 1., uv.x);\n float bottom = smoothstep(0., aay + softness, uv.y);\n float top = 1. - smoothstep(1. - softness - aay, 1., uv.y);\n return left * right * bottom * top;\n}\n\nconst int MAX_RADIUS = 50;\nvec4 samplePremultiplied(sampler2D tex, vec2 uv) {\n vec4 c = texture(tex, uv);\n c.rgb *= c.a;\n return c;\n}\n\nvec4 getBlur(sampler2D tex, vec2 uv, vec2 texelSize, vec2 dir, float sigma) {\n if (sigma <= .5) return texture(tex, uv);\n int radius = int(min(float(MAX_RADIUS), ceil(3.0 * sigma)));\n\n float twoSigma2 = 2.0 * sigma * sigma;\n float gaussianNorm = 1.0 / sqrt(TWO_PI * sigma * sigma);\n\n vec4 sum = samplePremultiplied(tex, uv) * gaussianNorm;\n float weightSum = gaussianNorm;\n\n for (int i = 1; i <= MAX_RADIUS; i++) {\n if (i > radius) break;\n\n float x = float(i);\n float w = exp(-(x * x) / twoSigma2) * gaussianNorm;\n\n vec2 offset = dir * texelSize * x;\n vec4 s1 = samplePremultiplied(tex, uv + offset);\n vec4 s2 = samplePremultiplied(tex, uv - offset);\n\n sum += (s1 + s2) * w;\n weightSum += 2.0 * w;\n }\n\n vec4 result = sum / weightSum;\n if (result.a > 0.) {\n result.rgb /= result.a;\n }\n\n return result;\n}\n\nvec2 rotateAspect(vec2 p, float a, float aspect) {\n p.x *= aspect;\n p = rotate(p, a);\n p.x /= aspect;\n return p;\n}\n\nfloat smoothFract(float x) {\n float f = fract(x);\n float w = fwidth(x);\n float edge = abs(f - 0.5) - 0.5;\n float band = smoothstep(-w, w, edge);\n return mix(f, 1.0 - f, band);\n}\n\nvoid main() {\n float patternRotation = -u_angle * PI / 180.;\n float patternSize = mix(200., 5., u_size);\n\n vec2 fragUV = gl_FragCoord.xy / iResolution.xy;\n vec2 imageUV0 = getImageCoverUV(fragUV, iResolution, u_imageAspectRatio);\n vec2 uv = imageUV0;\n\n vec2 uvMask = fragUV;\n vec2 sw = vec2(.005);\n vec4 margins = vec4(u_marginLeft, u_marginTop, u_marginRight, u_marginBottom);\n float mask =\n smoothstep(margins[0], margins[0] + sw.x, uvMask.x + sw.x) *\n smoothstep(margins[2], margins[2] + sw.x, 1.0 - uvMask.x + sw.x) *\n smoothstep(margins[1], margins[1] + sw.y, uvMask.y + sw.y) *\n smoothstep(margins[3], margins[3] + sw.y, 1.0 - uvMask.y + sw.y);\n float maskOuter =\n smoothstep(margins[0] - sw.x, margins[0], uvMask.x + sw.x) *\n smoothstep(margins[2] - sw.x, margins[2], 1.0 - uvMask.x + sw.x) *\n smoothstep(margins[1] - sw.y, margins[1], uvMask.y + sw.y) *\n smoothstep(margins[3] - sw.y, margins[3], 1.0 - uvMask.y + sw.y);\n float maskStroke = maskOuter - mask;\n float maskInner =\n smoothstep(margins[0] - 2. * sw.x, margins[0], uvMask.x) *\n smoothstep(margins[2] - 2. * sw.x, margins[2], 1.0 - uvMask.x) *\n smoothstep(margins[1] - 2. * sw.y, margins[1], uvMask.y) *\n smoothstep(margins[3] - 2. * sw.y, margins[3], 1.0 - uvMask.y);\n float maskStrokeInner = maskInner - mask;\n\n uv -= .5;\n uv *= patternSize;\n uv = rotateAspect(uv, patternRotation, u_imageAspectRatio);\n\n float curve = 0.;\n float patternY = uv.y / u_imageAspectRatio;\n if (u_shape > 4.5) {\n curve = .5 + .5 * sin(.5 * PI * uv.x) * cos(.5 * PI * patternY);\n } else if (u_shape > 3.5) {\n curve = 10. * abs(fract(.1 * patternY) - .5);\n } else if (u_shape > 2.5) {\n curve = 4. * sin(.23 * patternY);\n } else if (u_shape > 1.5) {\n curve = .5 + .5 * sin(.5 * uv.x) * sin(1.7 * uv.x);\n }\n\n vec2 UvToFract = uv + curve;\n vec2 fractOrigUV = fract(uv);\n vec2 floorOrigUV = floor(uv);\n\n float x = smoothFract(UvToFract.x);\n float xNonSmooth = fract(UvToFract.x) + .0001;\n\n float highlightsWidth = 2. * max(.001, fwidth(UvToFract.x));\n highlightsWidth += 2. * maskStrokeInner;\n float highlights = smoothstep(0., highlightsWidth, xNonSmooth);\n highlights *= smoothstep(1., 1. - highlightsWidth, xNonSmooth);\n highlights = 1. - highlights;\n highlights *= u_highlights;\n highlights = clamp(highlights, 0., 1.);\n highlights *= mask;\n\n float shadows = pow(x, 1.3);\n float distortion = 0.;\n float fadeX = 1.;\n float frameFade = 0.;\n\n float aa = fwidth(xNonSmooth);\n aa = max(aa, fwidth(uv.x));\n aa = max(aa, fwidth(UvToFract.x));\n aa = max(aa, .0001);\n\n if (u_distortionShape == 1.) {\n distortion = -pow(1.5 * x, 3.);\n distortion += (.5 - u_shift);\n frameFade = pow(1.5 * x, 3.);\n aa = max(.2, aa);\n aa += mix(.2, 0., u_size);\n fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n distortion = mix(.5, distortion, fadeX);\n } else if (u_distortionShape == 2.) {\n distortion = 2. * pow(x, 2.);\n distortion -= (.5 + u_shift);\n frameFade = pow(abs(x - .5), 4.);\n aa = max(.2, aa);\n aa += mix(.2, 0., u_size);\n fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n distortion = mix(.5, distortion, fadeX);\n frameFade = mix(1., frameFade, .5 * fadeX);\n } else if (u_distortionShape == 3.) {\n distortion = pow(2. * (xNonSmooth - .5), 6.);\n distortion -= .25;\n distortion -= u_shift;\n frameFade = 1. - 2. * pow(abs(x - .4), 2.);\n aa = .15;\n aa += mix(.1, 0., u_size);\n fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n frameFade = mix(1., frameFade, fadeX);\n } else if (u_distortionShape == 4.) {\n x = xNonSmooth;\n distortion = sin((x + .25) * TWO_PI);\n shadows = .5 + .5 * asin(distortion) / (.5 * PI);\n distortion *= .5;\n distortion -= u_shift;\n frameFade = .5 + .5 * sin(x * TWO_PI);\n } else if (u_distortionShape == 5.) {\n distortion -= pow(abs(x), .2) * x;\n distortion += .33;\n distortion -= 3. * u_shift;\n distortion *= .33;\n frameFade = .3 * (smoothstep(.0, 1., x));\n shadows = pow(x, 2.5);\n aa = max(.1, aa);\n aa += mix(.1, 0., u_size);\n fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);\n distortion *= fadeX;\n }\n\n vec2 dudx = dFdx(imageUV0);\n vec2 dudy = dFdy(imageUV0);\n vec2 grainUV = imageUV0 - .5;\n grainUV *= (.8 / vec2(length(dudx), length(dudy)));\n grainUV += .5;\n float grain = valueNoise(grainUV);\n grain = smoothstep(.4, .7, grain);\n grain *= u_grainMixer;\n distortion = mix(distortion, 0., grain);\n\n shadows = min(shadows, 1.);\n shadows += maskStrokeInner;\n shadows *= mask;\n shadows = min(shadows, 1.);\n shadows *= pow(u_shadows, 2.);\n shadows = clamp(shadows, 0., 1.);\n\n distortion *= 3. * u_distortion;\n frameFade *= u_distortion;\n\n fractOrigUV.x += distortion;\n floorOrigUV = rotateAspect(floorOrigUV, -patternRotation, u_imageAspectRatio);\n fractOrigUV = rotateAspect(fractOrigUV, -patternRotation, u_imageAspectRatio);\n\n uv = (floorOrigUV + fractOrigUV) / patternSize;\n uv += pow(maskStroke, 4.);\n uv += vec2(.5);\n\n uv = mix(imageUV0, uv, smoothstep(0., .7, mask));\n float blur = mix(0., 50., u_blur);\n blur = mix(0., blur, smoothstep(.5, 1., mask));\n\n float edgeDistortion = mix(.0, .04, u_edges);\n edgeDistortion += .06 * frameFade * u_edges;\n edgeDistortion *= mask;\n float frame = getUvFrame(uv, edgeDistortion);\n\n float stretch = 1. - smoothstep(0., .5, xNonSmooth) * smoothstep(1., 1. - .5, xNonSmooth);\n stretch = pow(stretch, 2.);\n stretch *= mask;\n stretch *= getUvFrame(uv, .1 + .05 * mask * frameFade);\n uv.y = mix(uv.y, .5, u_stretch * stretch);\n\n vec4 image = getBlur(u_image, uv, 1. / iResolution, vec2(0., 1.), blur);\n image.rgb *= image.a;\n vec4 backColor = u_colorBack;\n backColor.rgb *= backColor.a;\n vec4 highlightColor = u_colorHighlight;\n highlightColor.rgb *= highlightColor.a;\n vec4 shadowColor = u_colorShadow;\n\n vec3 color = highlightColor.rgb * highlights;\n float opacity = highlightColor.a * highlights;\n\n shadows = mix(shadows * shadowColor.a, 0., highlights);\n color = mix(color, shadowColor.rgb * shadowColor.a, .5 * shadows);\n color += .5 * pow(shadows, .5) * shadowColor.rgb;\n opacity += shadows;\n color = clamp(color, vec3(0.), vec3(1.));\n opacity = clamp(opacity, 0., 1.);\n\n color += image.rgb * (1. - opacity) * frame;\n opacity += image.a * (1. - opacity) * frame;\n\n color += backColor.rgb * (1. - opacity);\n opacity += backColor.a * (1. - opacity);\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 grainOverlayStrength *= mask;\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";
@@ -1,335 +0,0 @@
1
- import 'react/jsx-runtime';
2
- import 'react';
3
- import { glslDeclarePI, glslRotate2, glslHashFloat } from '../shared/shaderNoise.glsl.js';
4
- import { glslImageCoverUV } from '../shared/imageUV.glsl.js';
5
-
6
- /**
7
- * FlutedGlass fragment shader — adapted from paper-design/shaders'
8
- * `fluted-glass.ts` (https://github.com/paper-design/shaders, Apache
9
- * License 2.0). An image filter: refracts a source image through a
10
- * directional fluted/ribbed glass grid, with a real per-pixel Gaussian blur.
11
- *
12
- * Simplified from the original: image UV computed via the shared
13
- * `getImageCoverUV` cover-fit helper (see shared/imageUV.glsl.ts) instead of
14
- * paper-design's ShaderSizingParams fit engine; pure-hash GLSL instead of
15
- * pre-generated noise-texture sampling.
16
- */
17
- const flutedGlassFragmentShader = `#version 300 es
18
- precision mediump float;
19
-
20
- uniform vec2 iResolution;
21
-
22
- uniform vec4 u_colorBack;
23
- uniform vec4 u_colorShadow;
24
- uniform vec4 u_colorHighlight;
25
-
26
- uniform sampler2D u_image;
27
- uniform float u_imageAspectRatio;
28
-
29
- uniform float u_size;
30
- uniform float u_shadows;
31
- uniform float u_angle;
32
- uniform float u_stretch;
33
- uniform float u_shape;
34
- uniform float u_distortion;
35
- uniform float u_highlights;
36
- uniform float u_distortionShape;
37
- uniform float u_shift;
38
- uniform float u_blur;
39
- uniform float u_edges;
40
- uniform float u_marginLeft;
41
- uniform float u_marginRight;
42
- uniform float u_marginTop;
43
- uniform float u_marginBottom;
44
- uniform float u_grainMixer;
45
- uniform float u_grainOverlay;
46
-
47
- out vec4 fragColor;
48
-
49
- ${glslDeclarePI}
50
- ${glslRotate2}
51
- ${glslHashFloat}
52
- ${glslImageCoverUV}
53
-
54
- float hash21(vec2 p) {
55
- return randomR(p);
56
- }
57
-
58
- float valueNoise(vec2 st) {
59
- vec2 i = floor(st);
60
- vec2 f = fract(st);
61
- float a = hash21(i);
62
- float b = hash21(i + vec2(1.0, 0.0));
63
- float c = hash21(i + vec2(0.0, 1.0));
64
- float d = hash21(i + vec2(1.0, 1.0));
65
- vec2 u = f * f * (3.0 - 2.0 * f);
66
- float x1 = mix(a, b, u.x);
67
- float x2 = mix(c, d, u.x);
68
- return mix(x1, x2, u.y);
69
- }
70
-
71
- float getUvFrame(vec2 uv, float softness) {
72
- float aax = 2. * fwidth(uv.x);
73
- float aay = 2. * fwidth(uv.y);
74
- float left = smoothstep(0., aax + softness, uv.x);
75
- float right = 1. - smoothstep(1. - softness - aax, 1., uv.x);
76
- float bottom = smoothstep(0., aay + softness, uv.y);
77
- float top = 1. - smoothstep(1. - softness - aay, 1., uv.y);
78
- return left * right * bottom * top;
79
- }
80
-
81
- const int MAX_RADIUS = 50;
82
- vec4 samplePremultiplied(sampler2D tex, vec2 uv) {
83
- vec4 c = texture(tex, uv);
84
- c.rgb *= c.a;
85
- return c;
86
- }
87
-
88
- vec4 getBlur(sampler2D tex, vec2 uv, vec2 texelSize, vec2 dir, float sigma) {
89
- if (sigma <= .5) return texture(tex, uv);
90
- int radius = int(min(float(MAX_RADIUS), ceil(3.0 * sigma)));
91
-
92
- float twoSigma2 = 2.0 * sigma * sigma;
93
- float gaussianNorm = 1.0 / sqrt(TWO_PI * sigma * sigma);
94
-
95
- vec4 sum = samplePremultiplied(tex, uv) * gaussianNorm;
96
- float weightSum = gaussianNorm;
97
-
98
- for (int i = 1; i <= MAX_RADIUS; i++) {
99
- if (i > radius) break;
100
-
101
- float x = float(i);
102
- float w = exp(-(x * x) / twoSigma2) * gaussianNorm;
103
-
104
- vec2 offset = dir * texelSize * x;
105
- vec4 s1 = samplePremultiplied(tex, uv + offset);
106
- vec4 s2 = samplePremultiplied(tex, uv - offset);
107
-
108
- sum += (s1 + s2) * w;
109
- weightSum += 2.0 * w;
110
- }
111
-
112
- vec4 result = sum / weightSum;
113
- if (result.a > 0.) {
114
- result.rgb /= result.a;
115
- }
116
-
117
- return result;
118
- }
119
-
120
- vec2 rotateAspect(vec2 p, float a, float aspect) {
121
- p.x *= aspect;
122
- p = rotate(p, a);
123
- p.x /= aspect;
124
- return p;
125
- }
126
-
127
- float smoothFract(float x) {
128
- float f = fract(x);
129
- float w = fwidth(x);
130
- float edge = abs(f - 0.5) - 0.5;
131
- float band = smoothstep(-w, w, edge);
132
- return mix(f, 1.0 - f, band);
133
- }
134
-
135
- void main() {
136
- float patternRotation = -u_angle * PI / 180.;
137
- float patternSize = mix(200., 5., u_size);
138
-
139
- vec2 fragUV = gl_FragCoord.xy / iResolution.xy;
140
- vec2 imageUV0 = getImageCoverUV(fragUV, iResolution, u_imageAspectRatio);
141
- vec2 uv = imageUV0;
142
-
143
- vec2 uvMask = fragUV;
144
- vec2 sw = vec2(.005);
145
- vec4 margins = vec4(u_marginLeft, u_marginTop, u_marginRight, u_marginBottom);
146
- float mask =
147
- smoothstep(margins[0], margins[0] + sw.x, uvMask.x + sw.x) *
148
- smoothstep(margins[2], margins[2] + sw.x, 1.0 - uvMask.x + sw.x) *
149
- smoothstep(margins[1], margins[1] + sw.y, uvMask.y + sw.y) *
150
- smoothstep(margins[3], margins[3] + sw.y, 1.0 - uvMask.y + sw.y);
151
- float maskOuter =
152
- smoothstep(margins[0] - sw.x, margins[0], uvMask.x + sw.x) *
153
- smoothstep(margins[2] - sw.x, margins[2], 1.0 - uvMask.x + sw.x) *
154
- smoothstep(margins[1] - sw.y, margins[1], uvMask.y + sw.y) *
155
- smoothstep(margins[3] - sw.y, margins[3], 1.0 - uvMask.y + sw.y);
156
- float maskStroke = maskOuter - mask;
157
- float maskInner =
158
- smoothstep(margins[0] - 2. * sw.x, margins[0], uvMask.x) *
159
- smoothstep(margins[2] - 2. * sw.x, margins[2], 1.0 - uvMask.x) *
160
- smoothstep(margins[1] - 2. * sw.y, margins[1], uvMask.y) *
161
- smoothstep(margins[3] - 2. * sw.y, margins[3], 1.0 - uvMask.y);
162
- float maskStrokeInner = maskInner - mask;
163
-
164
- uv -= .5;
165
- uv *= patternSize;
166
- uv = rotateAspect(uv, patternRotation, u_imageAspectRatio);
167
-
168
- float curve = 0.;
169
- float patternY = uv.y / u_imageAspectRatio;
170
- if (u_shape > 4.5) {
171
- curve = .5 + .5 * sin(.5 * PI * uv.x) * cos(.5 * PI * patternY);
172
- } else if (u_shape > 3.5) {
173
- curve = 10. * abs(fract(.1 * patternY) - .5);
174
- } else if (u_shape > 2.5) {
175
- curve = 4. * sin(.23 * patternY);
176
- } else if (u_shape > 1.5) {
177
- curve = .5 + .5 * sin(.5 * uv.x) * sin(1.7 * uv.x);
178
- }
179
-
180
- vec2 UvToFract = uv + curve;
181
- vec2 fractOrigUV = fract(uv);
182
- vec2 floorOrigUV = floor(uv);
183
-
184
- float x = smoothFract(UvToFract.x);
185
- float xNonSmooth = fract(UvToFract.x) + .0001;
186
-
187
- float highlightsWidth = 2. * max(.001, fwidth(UvToFract.x));
188
- highlightsWidth += 2. * maskStrokeInner;
189
- float highlights = smoothstep(0., highlightsWidth, xNonSmooth);
190
- highlights *= smoothstep(1., 1. - highlightsWidth, xNonSmooth);
191
- highlights = 1. - highlights;
192
- highlights *= u_highlights;
193
- highlights = clamp(highlights, 0., 1.);
194
- highlights *= mask;
195
-
196
- float shadows = pow(x, 1.3);
197
- float distortion = 0.;
198
- float fadeX = 1.;
199
- float frameFade = 0.;
200
-
201
- float aa = fwidth(xNonSmooth);
202
- aa = max(aa, fwidth(uv.x));
203
- aa = max(aa, fwidth(UvToFract.x));
204
- aa = max(aa, .0001);
205
-
206
- if (u_distortionShape == 1.) {
207
- distortion = -pow(1.5 * x, 3.);
208
- distortion += (.5 - u_shift);
209
- frameFade = pow(1.5 * x, 3.);
210
- aa = max(.2, aa);
211
- aa += mix(.2, 0., u_size);
212
- fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);
213
- distortion = mix(.5, distortion, fadeX);
214
- } else if (u_distortionShape == 2.) {
215
- distortion = 2. * pow(x, 2.);
216
- distortion -= (.5 + u_shift);
217
- frameFade = pow(abs(x - .5), 4.);
218
- aa = max(.2, aa);
219
- aa += mix(.2, 0., u_size);
220
- fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);
221
- distortion = mix(.5, distortion, fadeX);
222
- frameFade = mix(1., frameFade, .5 * fadeX);
223
- } else if (u_distortionShape == 3.) {
224
- distortion = pow(2. * (xNonSmooth - .5), 6.);
225
- distortion -= .25;
226
- distortion -= u_shift;
227
- frameFade = 1. - 2. * pow(abs(x - .4), 2.);
228
- aa = .15;
229
- aa += mix(.1, 0., u_size);
230
- fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);
231
- frameFade = mix(1., frameFade, fadeX);
232
- } else if (u_distortionShape == 4.) {
233
- x = xNonSmooth;
234
- distortion = sin((x + .25) * TWO_PI);
235
- shadows = .5 + .5 * asin(distortion) / (.5 * PI);
236
- distortion *= .5;
237
- distortion -= u_shift;
238
- frameFade = .5 + .5 * sin(x * TWO_PI);
239
- } else if (u_distortionShape == 5.) {
240
- distortion -= pow(abs(x), .2) * x;
241
- distortion += .33;
242
- distortion -= 3. * u_shift;
243
- distortion *= .33;
244
- frameFade = .3 * (smoothstep(.0, 1., x));
245
- shadows = pow(x, 2.5);
246
- aa = max(.1, aa);
247
- aa += mix(.1, 0., u_size);
248
- fadeX = smoothstep(0., aa, xNonSmooth) * smoothstep(1., 1. - aa, xNonSmooth);
249
- distortion *= fadeX;
250
- }
251
-
252
- vec2 dudx = dFdx(imageUV0);
253
- vec2 dudy = dFdy(imageUV0);
254
- vec2 grainUV = imageUV0 - .5;
255
- grainUV *= (.8 / vec2(length(dudx), length(dudy)));
256
- grainUV += .5;
257
- float grain = valueNoise(grainUV);
258
- grain = smoothstep(.4, .7, grain);
259
- grain *= u_grainMixer;
260
- distortion = mix(distortion, 0., grain);
261
-
262
- shadows = min(shadows, 1.);
263
- shadows += maskStrokeInner;
264
- shadows *= mask;
265
- shadows = min(shadows, 1.);
266
- shadows *= pow(u_shadows, 2.);
267
- shadows = clamp(shadows, 0., 1.);
268
-
269
- distortion *= 3. * u_distortion;
270
- frameFade *= u_distortion;
271
-
272
- fractOrigUV.x += distortion;
273
- floorOrigUV = rotateAspect(floorOrigUV, -patternRotation, u_imageAspectRatio);
274
- fractOrigUV = rotateAspect(fractOrigUV, -patternRotation, u_imageAspectRatio);
275
-
276
- uv = (floorOrigUV + fractOrigUV) / patternSize;
277
- uv += pow(maskStroke, 4.);
278
- uv += vec2(.5);
279
-
280
- uv = mix(imageUV0, uv, smoothstep(0., .7, mask));
281
- float blur = mix(0., 50., u_blur);
282
- blur = mix(0., blur, smoothstep(.5, 1., mask));
283
-
284
- float edgeDistortion = mix(.0, .04, u_edges);
285
- edgeDistortion += .06 * frameFade * u_edges;
286
- edgeDistortion *= mask;
287
- float frame = getUvFrame(uv, edgeDistortion);
288
-
289
- float stretch = 1. - smoothstep(0., .5, xNonSmooth) * smoothstep(1., 1. - .5, xNonSmooth);
290
- stretch = pow(stretch, 2.);
291
- stretch *= mask;
292
- stretch *= getUvFrame(uv, .1 + .05 * mask * frameFade);
293
- uv.y = mix(uv.y, .5, u_stretch * stretch);
294
-
295
- vec4 image = getBlur(u_image, uv, 1. / iResolution, vec2(0., 1.), blur);
296
- image.rgb *= image.a;
297
- vec4 backColor = u_colorBack;
298
- backColor.rgb *= backColor.a;
299
- vec4 highlightColor = u_colorHighlight;
300
- highlightColor.rgb *= highlightColor.a;
301
- vec4 shadowColor = u_colorShadow;
302
-
303
- vec3 color = highlightColor.rgb * highlights;
304
- float opacity = highlightColor.a * highlights;
305
-
306
- shadows = mix(shadows * shadowColor.a, 0., highlights);
307
- color = mix(color, shadowColor.rgb * shadowColor.a, .5 * shadows);
308
- color += .5 * pow(shadows, .5) * shadowColor.rgb;
309
- opacity += shadows;
310
- color = clamp(color, vec3(0.), vec3(1.));
311
- opacity = clamp(opacity, 0., 1.);
312
-
313
- color += image.rgb * (1. - opacity) * frame;
314
- opacity += image.a * (1. - opacity) * frame;
315
-
316
- color += backColor.rgb * (1. - opacity);
317
- opacity += backColor.a * (1. - opacity);
318
-
319
- float grainOverlay = valueNoise(rotate(grainUV, 1.) + vec2(3.));
320
- grainOverlay = mix(grainOverlay, valueNoise(rotate(grainUV, 2.) + vec2(-1.)), .5);
321
- grainOverlay = pow(grainOverlay, 1.3);
322
- float grainOverlayV = grainOverlay * 2. - 1.;
323
- vec3 grainOverlayColor = vec3(step(0., grainOverlayV));
324
- float grainOverlayStrength = u_grainOverlay * abs(grainOverlayV);
325
- grainOverlayStrength = pow(grainOverlayStrength, .8);
326
- grainOverlayStrength *= mask;
327
- color = mix(color, grainOverlayColor, .35 * grainOverlayStrength);
328
- opacity += .5 * grainOverlayStrength;
329
- opacity = clamp(opacity, 0., 1.);
330
-
331
- fragColor = vec4(color, opacity);
332
- }
333
- `;
334
-
335
- export { flutedGlassFragmentShader };
@@ -1,61 +0,0 @@
1
- import type React from "react";
2
- import type { ShaderTextureSource } from "../shared";
3
- export declare const FLUTED_GLASS_SHAPES: {
4
- readonly lines: 1;
5
- readonly linesIrregular: 2;
6
- readonly wave: 3;
7
- readonly zigzag: 4;
8
- readonly pattern: 5;
9
- };
10
- export type FlutedGlassShape = keyof typeof FLUTED_GLASS_SHAPES;
11
- export declare const FLUTED_GLASS_DISTORTION_SHAPES: {
12
- readonly prism: 1;
13
- readonly lens: 2;
14
- readonly contour: 3;
15
- readonly cascade: 4;
16
- readonly flat: 5;
17
- };
18
- export type FlutedGlassDistortionShape = keyof typeof FLUTED_GLASS_DISTORTION_SHAPES;
19
- export interface FlutedGlassProps extends React.HTMLAttributes<HTMLDivElement> {
20
- /** Source image (URL or an existing HTMLImageElement). Required. */
21
- image: ShaderTextureSource;
22
- /** Background CSS color shown outside the margin. Default: 'var(--color-surface-sunken)'. */
23
- colorBack?: string;
24
- /** Ridge shadow color. Default: 'var(--color-text-primary)'. */
25
- colorShadow?: string;
26
- /** Ridge highlight color. Default: 'var(--color-background)'. */
27
- colorHighlight?: string;
28
- /** Directional grid pattern. Default: 'lines'. */
29
- shape?: FlutedGlassShape;
30
- /** Per-ridge refraction profile. Default: 'lens'. */
31
- distortionShape?: FlutedGlassDistortionShape;
32
- /** Ridge frequency/size. Default: 0.5. */
33
- size?: number;
34
- /** Grid rotation, degrees. Default: 0. */
35
- angle?: number;
36
- /** Refraction strength, 0-1. Default: 0.5. */
37
- distortion?: number;
38
- /** Refraction phase shift. Default: 0. */
39
- shift?: number;
40
- /** Blur applied through the glass, 0-1. Default: 0.2. */
41
- blur?: number;
42
- /** Edge highlight strength, 0-1. Default: 0.3. */
43
- edges?: number;
44
- /** Shadow strength, 0-1. Default: 0.4. */
45
- shadows?: number;
46
- /** Ridge highlight strength, 0-1. Default: 0.5. */
47
- highlights?: number;
48
- /** Vertical stretch at ridge centers, 0-1. Default: 0. */
49
- stretch?: number;
50
- /** Inset margin on all sides, 0-1 (overridable per-side). Default: 0. */
51
- margin?: number;
52
- marginLeft?: number;
53
- marginRight?: number;
54
- marginTop?: number;
55
- marginBottom?: number;
56
- /** Grain influence on the distortion, 0-1. Default: 0. */
57
- grainMixer?: number;
58
- /** Post-composite grain overlay strength, 0-1. Default: 0. */
59
- grainOverlay?: number;
60
- className?: string;
61
- }
@@ -1,16 +0,0 @@
1
- const FLUTED_GLASS_SHAPES = {
2
- lines: 1,
3
- linesIrregular: 2,
4
- wave: 3,
5
- zigzag: 4,
6
- pattern: 5,
7
- };
8
- const FLUTED_GLASS_DISTORTION_SHAPES = {
9
- prism: 1,
10
- lens: 2,
11
- contour: 3,
12
- cascade: 4,
13
- flat: 5,
14
- };
15
-
16
- export { FLUTED_GLASS_DISTORTION_SHAPES, FLUTED_GLASS_SHAPES };
@@ -1,3 +0,0 @@
1
- export { FlutedGlass } from "./FlutedGlass";
2
- export type { FlutedGlassProps, FlutedGlassShape, FlutedGlassDistortionShape, } from "./FlutedGlass.types";
3
- export { FLUTED_GLASS_SHAPES, FLUTED_GLASS_DISTORTION_SHAPES } from "./FlutedGlass.types";
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { GlassEffectProps } from './GlassEffect.types';
3
- /**
4
- * GlassEffect component creates a layered glass morphism effect
5
- * Uses hardcoded gradients for consistent visibility on light backgrounds
6
- *
7
- * @example
8
- * ```tsx
9
- * <div className="relative overflow-hidden bg-blue-500 rounded-lg">
10
- * <GlassEffect rounded="var(--button-radius)" />
11
- * <span className="relative z-10">Content</span>
12
- * </div>
13
- * ```
14
- */
15
- export declare const GlassEffect: React.FC<GlassEffectProps>;
@@ -1,38 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { cn } from '../../../utils/cn.js';
3
- import 'react';
4
-
5
- /**
6
- * GlassEffect component creates a layered glass morphism effect
7
- * Uses hardcoded gradients for consistent visibility on light backgrounds
8
- *
9
- * @example
10
- * ```tsx
11
- * <div className="relative overflow-hidden bg-blue-500 rounded-lg">
12
- * <GlassEffect rounded="var(--button-radius)" />
13
- * <span className="relative z-10">Content</span>
14
- * </div>
15
- * ```
16
- */
17
- const GlassEffect = ({ rounded = 'inherit', blendModeOuter = 'normal', blendModeInner = 'normal', gradientOuter, gradientInner, classNameOuter, classNameInner, zIndex = 0, }) => {
18
- // Calculate inner border radius (slightly smaller than outer)
19
- const innerRoundedCalc = rounded === 'inherit'
20
- ? 'inherit'
21
- : `calc(${rounded} - 1.5px)`;
22
- // Default gradients with visible contrast on light backgrounds
23
- const defaultGradientOuter = 'linear-gradient(to bottom, #ffffff 0%, #e5e7eb 40%, #ffffff 100%)';
24
- const defaultGradientInner = 'linear-gradient(to bottom, #edeff0 0%, #ffffff 100%)';
25
- return (jsx("div", { "aria-hidden": "true", className: cn("absolute inset-0 p-[1.5px] border-[1px] border-[var(--color-border)]", "pointer-events-none", // Don't block clicks
26
- classNameOuter), style: {
27
- borderRadius: rounded,
28
- zIndex,
29
- mixBlendMode: blendModeOuter,
30
- background: gradientOuter || defaultGradientOuter,
31
- }, children: jsx("div", { className: cn("w-full h-full", classNameInner), style: {
32
- borderRadius: innerRoundedCalc,
33
- mixBlendMode: blendModeInner,
34
- background: gradientInner || defaultGradientInner,
35
- } }) }));
36
- };
37
-
38
- export { GlassEffect };
@@ -1,19 +0,0 @@
1
- export type BlendMode = 'multiply' | 'overlay' | 'soft-light' | 'hard-light' | 'screen' | 'normal';
2
- export interface GlassEffectProps {
3
- /** Border radius for the glass layers (e.g., "var(--button-radius)", "9999px", "0.5rem") */
4
- rounded?: string;
5
- /** Blend mode for outer layer (default: "normal") */
6
- blendModeOuter?: BlendMode;
7
- /** Blend mode for inner layer (default: "normal") */
8
- blendModeInner?: BlendMode;
9
- /** Custom gradient for outer layer (overrides default) */
10
- gradientOuter?: string;
11
- /** Custom gradient for inner layer (overrides default) */
12
- gradientInner?: string;
13
- /** Custom className for outer layer */
14
- classNameOuter?: string;
15
- /** Custom className for inner layer */
16
- classNameInner?: string;
17
- /** Z-index for the glass layers (default: 0) */
18
- zIndex?: number;
19
- }
@@ -1,2 +0,0 @@
1
- export { GlassEffect } from './GlassEffect';
2
- export type { GlassEffectProps, BlendMode } from './GlassEffect.types';
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import { GlassSurfaceProps } from "./GlassSurface.types";
3
- /**
4
- * GlassSurface Component
5
- * Creates a realistic chromatic aberration glass effect using SVG filters.
6
- * Works as a wrapper for any content.
7
- */
8
- export declare const GlassSurface: React.ForwardRefExoticComponent<GlassSurfaceProps & React.RefAttributes<HTMLDivElement>>;