@studio-helga/once-ui-core 1.7.8

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 (817) hide show
  1. package/README.md +54 -0
  2. package/dist/README.md +54 -0
  3. package/dist/components/Accordion.d.ts +25 -0
  4. package/dist/components/Accordion.d.ts.map +1 -0
  5. package/dist/components/Accordion.js +75 -0
  6. package/dist/components/Accordion.js.map +1 -0
  7. package/dist/components/Accordion.module.scss +5 -0
  8. package/dist/components/AccordionGroup.d.ts +16 -0
  9. package/dist/components/AccordionGroup.d.ts.map +1 -0
  10. package/dist/components/AccordionGroup.js +27 -0
  11. package/dist/components/AccordionGroup.js.map +1 -0
  12. package/dist/components/Animation.d.ts +34 -0
  13. package/dist/components/Animation.d.ts.map +1 -0
  14. package/dist/components/Animation.js +230 -0
  15. package/dist/components/Animation.js.map +1 -0
  16. package/dist/components/Arrow.d.ts +11 -0
  17. package/dist/components/Arrow.d.ts.map +1 -0
  18. package/dist/components/Arrow.js +33 -0
  19. package/dist/components/Arrow.js.map +1 -0
  20. package/dist/components/Arrow.module.scss +39 -0
  21. package/dist/components/ArrowNavigationContext.d.ts +33 -0
  22. package/dist/components/ArrowNavigationContext.d.ts.map +1 -0
  23. package/dist/components/ArrowNavigationContext.js +60 -0
  24. package/dist/components/ArrowNavigationContext.js.map +1 -0
  25. package/dist/components/AutoScroll.d.ts +14 -0
  26. package/dist/components/AutoScroll.d.ts.map +1 -0
  27. package/dist/components/AutoScroll.js +178 -0
  28. package/dist/components/AutoScroll.js.map +1 -0
  29. package/dist/components/AutoScroll.module.scss +9 -0
  30. package/dist/components/Avatar.d.ts +21 -0
  31. package/dist/components/Avatar.d.ts.map +1 -0
  32. package/dist/components/Avatar.js +54 -0
  33. package/dist/components/Avatar.js.map +1 -0
  34. package/dist/components/Avatar.module.scss +56 -0
  35. package/dist/components/AvatarGroup.d.ts +14 -0
  36. package/dist/components/AvatarGroup.d.ts.map +1 -0
  37. package/dist/components/AvatarGroup.js +20 -0
  38. package/dist/components/AvatarGroup.js.map +1 -0
  39. package/dist/components/AvatarGroup.module.scss +11 -0
  40. package/dist/components/Background.d.ts +49 -0
  41. package/dist/components/Background.d.ts.map +1 -0
  42. package/dist/components/Background.js +72 -0
  43. package/dist/components/Background.js.map +1 -0
  44. package/dist/components/Background.module.scss +23 -0
  45. package/dist/components/Badge.d.ts +17 -0
  46. package/dist/components/Badge.d.ts.map +1 -0
  47. package/dist/components/Badge.js +21 -0
  48. package/dist/components/Badge.js.map +1 -0
  49. package/dist/components/Badge.module.scss +67 -0
  50. package/dist/components/Banner.d.ts +6 -0
  51. package/dist/components/Banner.d.ts.map +1 -0
  52. package/dist/components/Banner.js +7 -0
  53. package/dist/components/Banner.js.map +1 -0
  54. package/dist/components/BlobFx.d.ts +8 -0
  55. package/dist/components/BlobFx.d.ts.map +1 -0
  56. package/dist/components/BlobFx.js +82 -0
  57. package/dist/components/BlobFx.js.map +1 -0
  58. package/dist/components/BlockQuote.d.ts +21 -0
  59. package/dist/components/BlockQuote.d.ts.map +1 -0
  60. package/dist/components/BlockQuote.js +10 -0
  61. package/dist/components/BlockQuote.js.map +1 -0
  62. package/dist/components/Button.d.ts +27 -0
  63. package/dist/components/Button.d.ts.map +1 -0
  64. package/dist/components/Button.js +25 -0
  65. package/dist/components/Button.js.map +1 -0
  66. package/dist/components/Button.module.scss +154 -0
  67. package/dist/components/Card.d.ts +13 -0
  68. package/dist/components/Card.d.ts.map +1 -0
  69. package/dist/components/Card.js +13 -0
  70. package/dist/components/Card.js.map +1 -0
  71. package/dist/components/Card.module.scss +7 -0
  72. package/dist/components/Carousel.d.ts +32 -0
  73. package/dist/components/Carousel.d.ts.map +1 -0
  74. package/dist/components/Carousel.js +156 -0
  75. package/dist/components/Carousel.js.map +1 -0
  76. package/dist/components/Carousel.module.scss +48 -0
  77. package/dist/components/CelebrationFx.d.ts +17 -0
  78. package/dist/components/CelebrationFx.d.ts.map +1 -0
  79. package/dist/components/CelebrationFx.js +314 -0
  80. package/dist/components/CelebrationFx.js.map +1 -0
  81. package/dist/components/Checkbox.d.ts +11 -0
  82. package/dist/components/Checkbox.d.ts.map +1 -0
  83. package/dist/components/Checkbox.js +56 -0
  84. package/dist/components/Checkbox.js.map +1 -0
  85. package/dist/components/Chip.d.ts +17 -0
  86. package/dist/components/Chip.d.ts.map +1 -0
  87. package/dist/components/Chip.js +43 -0
  88. package/dist/components/Chip.js.map +1 -0
  89. package/dist/components/Chip.module.scss +39 -0
  90. package/dist/components/ClientFlex.d.ts +13 -0
  91. package/dist/components/ClientFlex.d.ts.map +1 -0
  92. package/dist/components/ClientFlex.js +110 -0
  93. package/dist/components/ClientFlex.js.map +1 -0
  94. package/dist/components/ClientGrid.d.ts +13 -0
  95. package/dist/components/ClientGrid.d.ts.map +1 -0
  96. package/dist/components/ClientGrid.js +110 -0
  97. package/dist/components/ClientGrid.js.map +1 -0
  98. package/dist/components/ColorInput.d.ts +11 -0
  99. package/dist/components/ColorInput.d.ts.map +1 -0
  100. package/dist/components/ColorInput.js +78 -0
  101. package/dist/components/ColorInput.js.map +1 -0
  102. package/dist/components/Column.d.ts +7 -0
  103. package/dist/components/Column.d.ts.map +1 -0
  104. package/dist/components/Column.js +10 -0
  105. package/dist/components/Column.js.map +1 -0
  106. package/dist/components/CompareImage.d.ts +16 -0
  107. package/dist/components/CompareImage.d.ts.map +1 -0
  108. package/dist/components/CompareImage.js +58 -0
  109. package/dist/components/CompareImage.js.map +1 -0
  110. package/dist/components/CompareImage.module.scss +14 -0
  111. package/dist/components/ContextMenu.d.ts +22 -0
  112. package/dist/components/ContextMenu.d.ts.map +1 -0
  113. package/dist/components/ContextMenu.js +224 -0
  114. package/dist/components/ContextMenu.js.map +1 -0
  115. package/dist/components/ContextMenu.module.scss +15 -0
  116. package/dist/components/CountFx.d.ts +15 -0
  117. package/dist/components/CountFx.d.ts.map +1 -0
  118. package/dist/components/CountFx.js +203 -0
  119. package/dist/components/CountFx.js.map +1 -0
  120. package/dist/components/CountdownFx.d.ts +11 -0
  121. package/dist/components/CountdownFx.d.ts.map +1 -0
  122. package/dist/components/CountdownFx.js +49 -0
  123. package/dist/components/CountdownFx.js.map +1 -0
  124. package/dist/components/Cursor.d.ts +8 -0
  125. package/dist/components/Cursor.d.ts.map +1 -0
  126. package/dist/components/Cursor.js +79 -0
  127. package/dist/components/Cursor.js.map +1 -0
  128. package/dist/components/CursorCard.d.ts +13 -0
  129. package/dist/components/CursorCard.d.ts.map +1 -0
  130. package/dist/components/CursorCard.js +63 -0
  131. package/dist/components/CursorCard.js.map +1 -0
  132. package/dist/components/CursorCard.module.scss +12 -0
  133. package/dist/components/DateInput.d.ts +18 -0
  134. package/dist/components/DateInput.d.ts.map +1 -0
  135. package/dist/components/DateInput.js +43 -0
  136. package/dist/components/DateInput.js.map +1 -0
  137. package/dist/components/DatePicker.d.ts +33 -0
  138. package/dist/components/DatePicker.d.ts.map +1 -0
  139. package/dist/components/DatePicker.js +487 -0
  140. package/dist/components/DatePicker.js.map +1 -0
  141. package/dist/components/DatePicker.module.scss +194 -0
  142. package/dist/components/DateRangeInput.d.ts +15 -0
  143. package/dist/components/DateRangeInput.d.ts.map +1 -0
  144. package/dist/components/DateRangeInput.js +45 -0
  145. package/dist/components/DateRangeInput.js.map +1 -0
  146. package/dist/components/DateRangePicker.d.ts +17 -0
  147. package/dist/components/DateRangePicker.d.ts.map +1 -0
  148. package/dist/components/DateRangePicker.js +78 -0
  149. package/dist/components/DateRangePicker.js.map +1 -0
  150. package/dist/components/Dialog.d.ts +21 -0
  151. package/dist/components/Dialog.d.ts.map +1 -0
  152. package/dist/components/Dialog.js +230 -0
  153. package/dist/components/Dialog.js.map +1 -0
  154. package/dist/components/Dialog.module.scss +33 -0
  155. package/dist/components/Dropdown.d.ts +13 -0
  156. package/dist/components/Dropdown.d.ts.map +1 -0
  157. package/dist/components/Dropdown.js +21 -0
  158. package/dist/components/Dropdown.js.map +1 -0
  159. package/dist/components/DropdownWrapper.d.ts +29 -0
  160. package/dist/components/DropdownWrapper.d.ts.map +1 -0
  161. package/dist/components/DropdownWrapper.js +505 -0
  162. package/dist/components/DropdownWrapper.js.map +1 -0
  163. package/dist/components/DropdownWrapper.module.scss +15 -0
  164. package/dist/components/ElementType.d.ts +14 -0
  165. package/dist/components/ElementType.d.ts.map +1 -0
  166. package/dist/components/ElementType.js +21 -0
  167. package/dist/components/ElementType.js.map +1 -0
  168. package/dist/components/EmojiPicker.d.ts +16 -0
  169. package/dist/components/EmojiPicker.d.ts.map +1 -0
  170. package/dist/components/EmojiPicker.js +178 -0
  171. package/dist/components/EmojiPicker.js.map +1 -0
  172. package/dist/components/EmojiPicker.module.scss +14 -0
  173. package/dist/components/EmojiPickerDropdown.d.ts +11 -0
  174. package/dist/components/EmojiPickerDropdown.d.ts.map +1 -0
  175. package/dist/components/EmojiPickerDropdown.js +14 -0
  176. package/dist/components/EmojiPickerDropdown.js.map +1 -0
  177. package/dist/components/Fade.d.ts +19 -0
  178. package/dist/components/Fade.d.ts.map +1 -0
  179. package/dist/components/Fade.js +43 -0
  180. package/dist/components/Fade.js.map +1 -0
  181. package/dist/components/Fade.module.scss +6 -0
  182. package/dist/components/FadingLettersFx.d.ts +15 -0
  183. package/dist/components/FadingLettersFx.d.ts.map +1 -0
  184. package/dist/components/FadingLettersFx.js +27 -0
  185. package/dist/components/FadingLettersFx.js.map +1 -0
  186. package/dist/components/FadingLettersFx.module.scss +71 -0
  187. package/dist/components/Feedback.d.ts +16 -0
  188. package/dist/components/Feedback.d.ts.map +1 -0
  189. package/dist/components/Feedback.js +16 -0
  190. package/dist/components/Feedback.js.map +1 -0
  191. package/dist/components/Flex.d.ts +11 -0
  192. package/dist/components/Flex.d.ts.map +1 -0
  193. package/dist/components/Flex.js +31 -0
  194. package/dist/components/Flex.js.map +1 -0
  195. package/dist/components/FlipFx.d.ts +17 -0
  196. package/dist/components/FlipFx.d.ts.map +1 -0
  197. package/dist/components/FlipFx.js +76 -0
  198. package/dist/components/FlipFx.js.map +1 -0
  199. package/dist/components/FocusTrap.d.ts +16 -0
  200. package/dist/components/FocusTrap.d.ts.map +1 -0
  201. package/dist/components/FocusTrap.js +87 -0
  202. package/dist/components/FocusTrap.js.map +1 -0
  203. package/dist/components/GlitchFx.d.ts +12 -0
  204. package/dist/components/GlitchFx.d.ts.map +1 -0
  205. package/dist/components/GlitchFx.js +41 -0
  206. package/dist/components/GlitchFx.js.map +1 -0
  207. package/dist/components/GlitchFx.module.scss +92 -0
  208. package/dist/components/Grid.d.ts +11 -0
  209. package/dist/components/Grid.d.ts.map +1 -0
  210. package/dist/components/Grid.js +32 -0
  211. package/dist/components/Grid.js.map +1 -0
  212. package/dist/components/Heading.d.ts +9 -0
  213. package/dist/components/Heading.d.ts.map +1 -0
  214. package/dist/components/Heading.js +50 -0
  215. package/dist/components/Heading.js.map +1 -0
  216. package/dist/components/HoloFx.d.ts +32 -0
  217. package/dist/components/HoloFx.d.ts.map +1 -0
  218. package/dist/components/HoloFx.js +90 -0
  219. package/dist/components/HoloFx.js.map +1 -0
  220. package/dist/components/HoloFx.module.scss +32 -0
  221. package/dist/components/Hover.d.ts +14 -0
  222. package/dist/components/Hover.d.ts.map +1 -0
  223. package/dist/components/Hover.js +99 -0
  224. package/dist/components/Hover.js.map +1 -0
  225. package/dist/components/Hover.module.scss +12 -0
  226. package/dist/components/HoverCard.d.ts +5 -0
  227. package/dist/components/HoverCard.d.ts.map +1 -0
  228. package/dist/components/HoverCard.js +10 -0
  229. package/dist/components/HoverCard.js.map +1 -0
  230. package/dist/components/HoverCard.module.scss +12 -0
  231. package/dist/components/Icon.d.ts +18 -0
  232. package/dist/components/Icon.d.ts.map +1 -0
  233. package/dist/components/Icon.js +35 -0
  234. package/dist/components/Icon.js.map +1 -0
  235. package/dist/components/Icon.module.scss +19 -0
  236. package/dist/components/IconButton.d.ts +23 -0
  237. package/dist/components/IconButton.d.ts.map +1 -0
  238. package/dist/components/IconButton.js +23 -0
  239. package/dist/components/IconButton.js.map +1 -0
  240. package/dist/components/IconButton.module.scss +34 -0
  241. package/dist/components/InfiniteScroll.d.ts +16 -0
  242. package/dist/components/InfiniteScroll.d.ts.map +1 -0
  243. package/dist/components/InfiniteScroll.js +52 -0
  244. package/dist/components/InfiniteScroll.js.map +1 -0
  245. package/dist/components/InlineCode.d.ts +10 -0
  246. package/dist/components/InlineCode.d.ts.map +1 -0
  247. package/dist/components/InlineCode.js +12 -0
  248. package/dist/components/InlineCode.js.map +1 -0
  249. package/dist/components/InlineCode.module.scss +5 -0
  250. package/dist/components/Input.d.ts +24 -0
  251. package/dist/components/Input.d.ts.map +1 -0
  252. package/dist/components/Input.js +82 -0
  253. package/dist/components/Input.js.map +1 -0
  254. package/dist/components/Input.module.scss +196 -0
  255. package/dist/components/InteractiveDetails.d.ts +15 -0
  256. package/dist/components/InteractiveDetails.d.ts.map +1 -0
  257. package/dist/components/InteractiveDetails.js +10 -0
  258. package/dist/components/InteractiveDetails.js.map +1 -0
  259. package/dist/components/Kbd.d.ts +12 -0
  260. package/dist/components/Kbd.d.ts.map +1 -0
  261. package/dist/components/Kbd.js +7 -0
  262. package/dist/components/Kbd.js.map +1 -0
  263. package/dist/components/LetterFx.d.ts +13 -0
  264. package/dist/components/LetterFx.d.ts.map +1 -0
  265. package/dist/components/LetterFx.js +80 -0
  266. package/dist/components/LetterFx.js.map +1 -0
  267. package/dist/components/Line.d.ts +9 -0
  268. package/dist/components/Line.d.ts.map +1 -0
  269. package/dist/components/Line.js +10 -0
  270. package/dist/components/Line.js.map +1 -0
  271. package/dist/components/List.d.ts +11 -0
  272. package/dist/components/List.d.ts.map +1 -0
  273. package/dist/components/List.js +13 -0
  274. package/dist/components/List.js.map +1 -0
  275. package/dist/components/List.module.scss +5 -0
  276. package/dist/components/ListItem.d.ts +10 -0
  277. package/dist/components/ListItem.d.ts.map +1 -0
  278. package/dist/components/ListItem.js +13 -0
  279. package/dist/components/ListItem.js.map +1 -0
  280. package/dist/components/Logo.d.ts +18 -0
  281. package/dist/components/Logo.d.ts.map +1 -0
  282. package/dist/components/Logo.js +99 -0
  283. package/dist/components/Logo.js.map +1 -0
  284. package/dist/components/LogoCloud.d.ts +14 -0
  285. package/dist/components/LogoCloud.d.ts.map +1 -0
  286. package/dist/components/LogoCloud.js +38 -0
  287. package/dist/components/LogoCloud.js.map +1 -0
  288. package/dist/components/LogoCloud.module.scss +42 -0
  289. package/dist/components/Mask.d.ts +15 -0
  290. package/dist/components/Mask.d.ts.map +1 -0
  291. package/dist/components/Mask.js +107 -0
  292. package/dist/components/Mask.js.map +1 -0
  293. package/dist/components/Mask.module.scss +8 -0
  294. package/dist/components/MasonryGrid.d.ts +22 -0
  295. package/dist/components/MasonryGrid.d.ts.map +1 -0
  296. package/dist/components/MasonryGrid.js +53 -0
  297. package/dist/components/MasonryGrid.js.map +1 -0
  298. package/dist/components/MasonryGrid.module.scss +199 -0
  299. package/dist/components/MatrixFx.d.ts +27 -0
  300. package/dist/components/MatrixFx.d.ts.map +1 -0
  301. package/dist/components/MatrixFx.js +799 -0
  302. package/dist/components/MatrixFx.js.map +1 -0
  303. package/dist/components/Media.d.ts +26 -0
  304. package/dist/components/Media.d.ts.map +1 -0
  305. package/dist/components/Media.js +112 -0
  306. package/dist/components/Media.js.map +1 -0
  307. package/dist/components/Modal.d.ts +11 -0
  308. package/dist/components/Modal.d.ts.map +1 -0
  309. package/dist/components/Modal.js +72 -0
  310. package/dist/components/Modal.js.map +1 -0
  311. package/dist/components/NavIcon.d.ts +11 -0
  312. package/dist/components/NavIcon.d.ts.map +1 -0
  313. package/dist/components/NavIcon.js +11 -0
  314. package/dist/components/NavIcon.js.map +1 -0
  315. package/dist/components/NavIcon.module.scss +25 -0
  316. package/dist/components/NumberInput.d.ts +13 -0
  317. package/dist/components/NumberInput.d.ts.map +1 -0
  318. package/dist/components/NumberInput.js +44 -0
  319. package/dist/components/NumberInput.js.map +1 -0
  320. package/dist/components/NumberInput.module.scss +18 -0
  321. package/dist/components/OTPInput.d.ts +13 -0
  322. package/dist/components/OTPInput.d.ts.map +1 -0
  323. package/dist/components/OTPInput.js +71 -0
  324. package/dist/components/OTPInput.js.map +1 -0
  325. package/dist/components/OTPInput.module.scss +26 -0
  326. package/dist/components/OgCard.d.ts +34 -0
  327. package/dist/components/OgCard.d.ts.map +1 -0
  328. package/dist/components/OgCard.js +102 -0
  329. package/dist/components/OgCard.js.map +1 -0
  330. package/dist/components/Option.d.ts +21 -0
  331. package/dist/components/Option.d.ts.map +1 -0
  332. package/dist/components/Option.js +93 -0
  333. package/dist/components/Option.js.map +1 -0
  334. package/dist/components/Option.module.scss +47 -0
  335. package/dist/components/Particle.d.ts +21 -0
  336. package/dist/components/Particle.d.ts.map +1 -0
  337. package/dist/components/Particle.js +140 -0
  338. package/dist/components/Particle.js.map +1 -0
  339. package/dist/components/PasswordInput.d.ts +4 -0
  340. package/dist/components/PasswordInput.d.ts.map +1 -0
  341. package/dist/components/PasswordInput.js +12 -0
  342. package/dist/components/PasswordInput.js.map +1 -0
  343. package/dist/components/ProgressBar.d.ts +15 -0
  344. package/dist/components/ProgressBar.d.ts.map +1 -0
  345. package/dist/components/ProgressBar.js +12 -0
  346. package/dist/components/ProgressBar.js.map +1 -0
  347. package/dist/components/Pulse.d.ts +13 -0
  348. package/dist/components/Pulse.d.ts.map +1 -0
  349. package/dist/components/Pulse.js +11 -0
  350. package/dist/components/Pulse.js.map +1 -0
  351. package/dist/components/Pulse.module.scss +22 -0
  352. package/dist/components/RadioButton.d.ts +15 -0
  353. package/dist/components/RadioButton.d.ts.map +1 -0
  354. package/dist/components/RadioButton.js +45 -0
  355. package/dist/components/RadioButton.js.map +1 -0
  356. package/dist/components/RevealFx.d.ts +16 -0
  357. package/dist/components/RevealFx.d.ts.map +1 -0
  358. package/dist/components/RevealFx.js +83 -0
  359. package/dist/components/RevealFx.js.map +1 -0
  360. package/dist/components/RevealFx.module.scss +27 -0
  361. package/dist/components/Row.d.ts +7 -0
  362. package/dist/components/Row.d.ts.map +1 -0
  363. package/dist/components/Row.js +10 -0
  364. package/dist/components/Row.js.map +1 -0
  365. package/dist/components/ScrollContainer.d.ts +9 -0
  366. package/dist/components/ScrollContainer.d.ts.map +1 -0
  367. package/dist/components/ScrollContainer.js +67 -0
  368. package/dist/components/ScrollContainer.js.map +1 -0
  369. package/dist/components/ScrollLock.d.ts +8 -0
  370. package/dist/components/ScrollLock.d.ts.map +1 -0
  371. package/dist/components/ScrollLock.js +112 -0
  372. package/dist/components/ScrollLock.js.map +1 -0
  373. package/dist/components/ScrollToTop.d.ts +7 -0
  374. package/dist/components/ScrollToTop.d.ts.map +1 -0
  375. package/dist/components/ScrollToTop.js +24 -0
  376. package/dist/components/ScrollToTop.js.map +1 -0
  377. package/dist/components/ScrollToTop.module.scss +11 -0
  378. package/dist/components/Scroller.d.ts +14 -0
  379. package/dist/components/Scroller.d.ts.map +1 -0
  380. package/dist/components/Scroller.js +100 -0
  381. package/dist/components/Scroller.js.map +1 -0
  382. package/dist/components/Scroller.module.scss +20 -0
  383. package/dist/components/SegmentedControl.d.ts +18 -0
  384. package/dist/components/SegmentedControl.d.ts.map +1 -0
  385. package/dist/components/SegmentedControl.js +70 -0
  386. package/dist/components/SegmentedControl.js.map +1 -0
  387. package/dist/components/Select.d.ts +19 -0
  388. package/dist/components/Select.d.ts.map +1 -0
  389. package/dist/components/Select.js +170 -0
  390. package/dist/components/Select.js.map +1 -0
  391. package/dist/components/ServerFlex.d.ts +12 -0
  392. package/dist/components/ServerFlex.d.ts.map +1 -0
  393. package/dist/components/ServerFlex.js +282 -0
  394. package/dist/components/ServerFlex.js.map +1 -0
  395. package/dist/components/ServerGrid.d.ts +13 -0
  396. package/dist/components/ServerGrid.d.ts.map +1 -0
  397. package/dist/components/ServerGrid.js +207 -0
  398. package/dist/components/ServerGrid.js.map +1 -0
  399. package/dist/components/SharedInteractiveStyles.module.scss +91 -0
  400. package/dist/components/ShineFx.d.ts +13 -0
  401. package/dist/components/ShineFx.d.ts.map +1 -0
  402. package/dist/components/ShineFx.js +19 -0
  403. package/dist/components/ShineFx.js.map +1 -0
  404. package/dist/components/ShineFx.module.scss +50 -0
  405. package/dist/components/Skeleton.d.ts +13 -0
  406. package/dist/components/Skeleton.d.ts.map +1 -0
  407. package/dist/components/Skeleton.js +12 -0
  408. package/dist/components/Skeleton.js.map +1 -0
  409. package/dist/components/Skeleton.module.scss +120 -0
  410. package/dist/components/Slider.d.ts +17 -0
  411. package/dist/components/Slider.d.ts.map +1 -0
  412. package/dist/components/Slider.js +29 -0
  413. package/dist/components/Slider.js.map +1 -0
  414. package/dist/components/Slider.module.scss +75 -0
  415. package/dist/components/SmartLink.d.ts +18 -0
  416. package/dist/components/SmartLink.d.ts.map +1 -0
  417. package/dist/components/SmartLink.js +36 -0
  418. package/dist/components/SmartLink.js.map +1 -0
  419. package/dist/components/Spinner.d.ts +11 -0
  420. package/dist/components/Spinner.d.ts.map +1 -0
  421. package/dist/components/Spinner.js +11 -0
  422. package/dist/components/Spinner.js.map +1 -0
  423. package/dist/components/Spinner.module.scss +71 -0
  424. package/dist/components/SplitView.d.ts +16 -0
  425. package/dist/components/SplitView.d.ts.map +1 -0
  426. package/dist/components/SplitView.js +80 -0
  427. package/dist/components/SplitView.js.map +1 -0
  428. package/dist/components/SplitView.module.scss +18 -0
  429. package/dist/components/StatusIndicator.d.ts +12 -0
  430. package/dist/components/StatusIndicator.d.ts.map +1 -0
  431. package/dist/components/StatusIndicator.js +11 -0
  432. package/dist/components/StatusIndicator.js.map +1 -0
  433. package/dist/components/StatusIndicator.module.scss +72 -0
  434. package/dist/components/StyleOverlay.d.ts +10 -0
  435. package/dist/components/StyleOverlay.d.ts.map +1 -0
  436. package/dist/components/StyleOverlay.js +17 -0
  437. package/dist/components/StyleOverlay.js.map +1 -0
  438. package/dist/components/StyleOverlay.module.scss +18 -0
  439. package/dist/components/StylePanel.d.ts +8 -0
  440. package/dist/components/StylePanel.d.ts.map +1 -0
  441. package/dist/components/StylePanel.js +193 -0
  442. package/dist/components/StylePanel.js.map +1 -0
  443. package/dist/components/StylePanel.module.scss +127 -0
  444. package/dist/components/Swiper.d.ts +17 -0
  445. package/dist/components/Swiper.d.ts.map +1 -0
  446. package/dist/components/Swiper.js +170 -0
  447. package/dist/components/Swiper.js.map +1 -0
  448. package/dist/components/Swiper.module.scss +31 -0
  449. package/dist/components/Switch.d.ts +17 -0
  450. package/dist/components/Switch.d.ts.map +1 -0
  451. package/dist/components/Switch.js +33 -0
  452. package/dist/components/Switch.js.map +1 -0
  453. package/dist/components/Switch.module.scss +102 -0
  454. package/dist/components/Table.d.ts +16 -0
  455. package/dist/components/Table.d.ts.map +1 -0
  456. package/dist/components/Table.js +44 -0
  457. package/dist/components/Table.js.map +1 -0
  458. package/dist/components/Table.module.scss +5 -0
  459. package/dist/components/Tag.d.ts +16 -0
  460. package/dist/components/Tag.d.ts.map +1 -0
  461. package/dist/components/Tag.js +14 -0
  462. package/dist/components/Tag.js.map +1 -0
  463. package/dist/components/Tag.module.scss +10 -0
  464. package/dist/components/TagInput.d.ts +9 -0
  465. package/dist/components/TagInput.d.ts.map +1 -0
  466. package/dist/components/TagInput.js +36 -0
  467. package/dist/components/TagInput.js.map +1 -0
  468. package/dist/components/Text.d.ts +9 -0
  469. package/dist/components/Text.d.ts.map +1 -0
  470. package/dist/components/Text.js +50 -0
  471. package/dist/components/Text.js.map +1 -0
  472. package/dist/components/Textarea.d.ts +24 -0
  473. package/dist/components/Textarea.d.ts.map +1 -0
  474. package/dist/components/Textarea.js +109 -0
  475. package/dist/components/Textarea.js.map +1 -0
  476. package/dist/components/ThemeInit.d.ts +20 -0
  477. package/dist/components/ThemeInit.d.ts.map +1 -0
  478. package/dist/components/ThemeInit.js +46 -0
  479. package/dist/components/ThemeInit.js.map +1 -0
  480. package/dist/components/ThemeSwitcher.d.ts +4 -0
  481. package/dist/components/ThemeSwitcher.d.ts.map +1 -0
  482. package/dist/components/ThemeSwitcher.js +21 -0
  483. package/dist/components/ThemeSwitcher.js.map +1 -0
  484. package/dist/components/TiltFx.d.ts +10 -0
  485. package/dist/components/TiltFx.d.ts.map +1 -0
  486. package/dist/components/TiltFx.js +67 -0
  487. package/dist/components/TiltFx.js.map +1 -0
  488. package/dist/components/TiltFx.module.scss +11 -0
  489. package/dist/components/Timeline.d.ts +18 -0
  490. package/dist/components/Timeline.d.ts.map +1 -0
  491. package/dist/components/Timeline.js +72 -0
  492. package/dist/components/Timeline.js.map +1 -0
  493. package/dist/components/Toast.d.ts +12 -0
  494. package/dist/components/Toast.d.ts.map +1 -0
  495. package/dist/components/Toast.js +29 -0
  496. package/dist/components/Toast.js.map +1 -0
  497. package/dist/components/Toast.module.scss +11 -0
  498. package/dist/components/Toaster.d.ts +19 -0
  499. package/dist/components/Toaster.d.ts.map +1 -0
  500. package/dist/components/Toaster.js +47 -0
  501. package/dist/components/Toaster.js.map +1 -0
  502. package/dist/components/Toaster.module.scss +58 -0
  503. package/dist/components/ToggleButton.d.ts +25 -0
  504. package/dist/components/ToggleButton.d.ts.map +1 -0
  505. package/dist/components/ToggleButton.js +20 -0
  506. package/dist/components/ToggleButton.js.map +1 -0
  507. package/dist/components/ToggleButton.module.scss +73 -0
  508. package/dist/components/Tooltip.d.ts +13 -0
  509. package/dist/components/Tooltip.d.ts.map +1 -0
  510. package/dist/components/Tooltip.js +15 -0
  511. package/dist/components/Tooltip.js.map +1 -0
  512. package/dist/components/Tooltip.module.scss +14 -0
  513. package/dist/components/TypeFx.d.ts +15 -0
  514. package/dist/components/TypeFx.d.ts.map +1 -0
  515. package/dist/components/TypeFx.js +84 -0
  516. package/dist/components/TypeFx.js.map +1 -0
  517. package/dist/components/User.d.ts +16 -0
  518. package/dist/components/User.d.ts.map +1 -0
  519. package/dist/components/User.js +13 -0
  520. package/dist/components/User.js.map +1 -0
  521. package/dist/components/UserMenu.d.ts +13 -0
  522. package/dist/components/UserMenu.d.ts.map +1 -0
  523. package/dist/components/UserMenu.js +13 -0
  524. package/dist/components/UserMenu.js.map +1 -0
  525. package/dist/components/UserMenu.module.scss +14 -0
  526. package/dist/components/WeatherFx.d.ts +18 -0
  527. package/dist/components/WeatherFx.d.ts.map +1 -0
  528. package/dist/components/WeatherFx.js +864 -0
  529. package/dist/components/WeatherFx.js.map +1 -0
  530. package/dist/components/index.d.ts +121 -0
  531. package/dist/components/index.d.ts.map +1 -0
  532. package/dist/components/index.js +121 -0
  533. package/dist/components/index.js.map +1 -0
  534. package/dist/contexts/DataThemeProvider.d.ts +26 -0
  535. package/dist/contexts/DataThemeProvider.d.ts.map +1 -0
  536. package/dist/contexts/DataThemeProvider.js +103 -0
  537. package/dist/contexts/DataThemeProvider.js.map +1 -0
  538. package/dist/contexts/IconProvider.d.ts +12 -0
  539. package/dist/contexts/IconProvider.d.ts.map +1 -0
  540. package/dist/contexts/IconProvider.js +20 -0
  541. package/dist/contexts/IconProvider.js.map +1 -0
  542. package/dist/contexts/LayoutProvider.d.ts +27 -0
  543. package/dist/contexts/LayoutProvider.d.ts.map +1 -0
  544. package/dist/contexts/LayoutProvider.js +96 -0
  545. package/dist/contexts/LayoutProvider.js.map +1 -0
  546. package/dist/contexts/ThemeProvider.d.ts +49 -0
  547. package/dist/contexts/ThemeProvider.d.ts.map +1 -0
  548. package/dist/contexts/ThemeProvider.js +285 -0
  549. package/dist/contexts/ThemeProvider.js.map +1 -0
  550. package/dist/contexts/ToastProvider.d.ts +24 -0
  551. package/dist/contexts/ToastProvider.d.ts.map +1 -0
  552. package/dist/contexts/ToastProvider.js +34 -0
  553. package/dist/contexts/ToastProvider.js.map +1 -0
  554. package/dist/contexts/index.d.ts +6 -0
  555. package/dist/contexts/index.d.ts.map +1 -0
  556. package/dist/contexts/index.js +6 -0
  557. package/dist/contexts/index.js.map +1 -0
  558. package/dist/css/styles.css +1 -0
  559. package/dist/css/styles.css.map +1 -0
  560. package/dist/css/tokens.css +1 -0
  561. package/dist/css/tokens.css.map +1 -0
  562. package/dist/data/emoji-data.json +16062 -0
  563. package/dist/hooks/index.d.ts +8 -0
  564. package/dist/hooks/index.d.ts.map +1 -0
  565. package/dist/hooks/index.js +8 -0
  566. package/dist/hooks/index.js.map +1 -0
  567. package/dist/hooks/useArrowNavigation.d.ts +23 -0
  568. package/dist/hooks/useArrowNavigation.d.ts.map +1 -0
  569. package/dist/hooks/useArrowNavigation.js +205 -0
  570. package/dist/hooks/useArrowNavigation.js.map +1 -0
  571. package/dist/hooks/useDebounce.d.ts +2 -0
  572. package/dist/hooks/useDebounce.d.ts.map +1 -0
  573. package/dist/hooks/useDebounce.js +15 -0
  574. package/dist/hooks/useDebounce.js.map +1 -0
  575. package/dist/hooks/useFetchOg.d.ts +17 -0
  576. package/dist/hooks/useFetchOg.d.ts.map +1 -0
  577. package/dist/hooks/useFetchOg.js +63 -0
  578. package/dist/hooks/useFetchOg.js.map +1 -0
  579. package/dist/hooks/useHeadingLinks.d.ts +6 -0
  580. package/dist/hooks/useHeadingLinks.d.ts.map +1 -0
  581. package/dist/hooks/useHeadingLinks.js +17 -0
  582. package/dist/hooks/useHeadingLinks.js.map +1 -0
  583. package/dist/hooks/useInViewport.d.ts +3 -0
  584. package/dist/hooks/useInViewport.d.ts.map +1 -0
  585. package/dist/hooks/useInViewport.js +19 -0
  586. package/dist/hooks/useInViewport.js.map +1 -0
  587. package/dist/hooks/useReducedMotion.d.ts +8 -0
  588. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  589. package/dist/hooks/useReducedMotion.js +44 -0
  590. package/dist/hooks/useReducedMotion.js.map +1 -0
  591. package/dist/hooks/useResponsiveClasses.d.ts +9 -0
  592. package/dist/hooks/useResponsiveClasses.d.ts.map +1 -0
  593. package/dist/hooks/useResponsiveClasses.js +250 -0
  594. package/dist/hooks/useResponsiveClasses.js.map +1 -0
  595. package/dist/hooks/useStreamingData.d.ts +24 -0
  596. package/dist/hooks/useStreamingData.d.ts.map +1 -0
  597. package/dist/hooks/useStreamingData.js +89 -0
  598. package/dist/hooks/useStreamingData.js.map +1 -0
  599. package/dist/hooks/useStreamingViewport.d.ts +25 -0
  600. package/dist/hooks/useStreamingViewport.d.ts.map +1 -0
  601. package/dist/hooks/useStreamingViewport.js +120 -0
  602. package/dist/hooks/useStreamingViewport.js.map +1 -0
  603. package/dist/icons.d.ts +5 -0
  604. package/dist/icons.d.ts.map +1 -0
  605. package/dist/icons.js +56 -0
  606. package/dist/icons.js.map +1 -0
  607. package/dist/index.d.ts +12 -0
  608. package/dist/index.d.ts.map +1 -0
  609. package/dist/index.js +11 -0
  610. package/dist/index.js.map +1 -0
  611. package/dist/interfaces.d.ts +177 -0
  612. package/dist/interfaces.d.ts.map +1 -0
  613. package/dist/interfaces.js +2 -0
  614. package/dist/interfaces.js.map +1 -0
  615. package/dist/modules/code/CodeBlock.d.ts +6 -0
  616. package/dist/modules/code/CodeBlock.d.ts.map +1 -0
  617. package/dist/modules/code/CodeBlock.impl.d.ts +34 -0
  618. package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -0
  619. package/dist/modules/code/CodeBlock.impl.js +497 -0
  620. package/dist/modules/code/CodeBlock.impl.js.map +1 -0
  621. package/dist/modules/code/CodeBlock.js +14 -0
  622. package/dist/modules/code/CodeBlock.js.map +1 -0
  623. package/dist/modules/code/CodeBlock.module.scss +43 -0
  624. package/dist/modules/code/CodeDiff.css +175 -0
  625. package/dist/modules/code/CodeHighlight.css +116 -0
  626. package/dist/modules/code/LineNumber.css +34 -0
  627. package/dist/modules/data/BarChart.d.ts +6 -0
  628. package/dist/modules/data/BarChart.d.ts.map +1 -0
  629. package/dist/modules/data/BarChart.impl.d.ts +12 -0
  630. package/dist/modules/data/BarChart.impl.d.ts.map +1 -0
  631. package/dist/modules/data/BarChart.impl.js +129 -0
  632. package/dist/modules/data/BarChart.impl.js.map +1 -0
  633. package/dist/modules/data/BarChart.js +14 -0
  634. package/dist/modules/data/BarChart.js.map +1 -0
  635. package/dist/modules/data/ChartHeader.d.ts +14 -0
  636. package/dist/modules/data/ChartHeader.d.ts.map +1 -0
  637. package/dist/modules/data/ChartHeader.js +116 -0
  638. package/dist/modules/data/ChartHeader.js.map +1 -0
  639. package/dist/modules/data/ChartStatus.d.ts +10 -0
  640. package/dist/modules/data/ChartStatus.d.ts.map +1 -0
  641. package/dist/modules/data/ChartStatus.js +10 -0
  642. package/dist/modules/data/ChartStatus.js.map +1 -0
  643. package/dist/modules/data/DataTooltip.d.ts +16 -0
  644. package/dist/modules/data/DataTooltip.d.ts.map +1 -0
  645. package/dist/modules/data/DataTooltip.js +16 -0
  646. package/dist/modules/data/DataTooltip.js.map +1 -0
  647. package/dist/modules/data/Gauge.module.css +27 -0
  648. package/dist/modules/data/Gradient.d.ts +32 -0
  649. package/dist/modules/data/Gradient.d.ts.map +1 -0
  650. package/dist/modules/data/Gradient.js +56 -0
  651. package/dist/modules/data/Gradient.js.map +1 -0
  652. package/dist/modules/data/Legend.d.ts +15 -0
  653. package/dist/modules/data/Legend.d.ts.map +1 -0
  654. package/dist/modules/data/Legend.js +69 -0
  655. package/dist/modules/data/Legend.js.map +1 -0
  656. package/dist/modules/data/LineBarChart.d.ts +6 -0
  657. package/dist/modules/data/LineBarChart.d.ts.map +1 -0
  658. package/dist/modules/data/LineBarChart.impl.d.ts +12 -0
  659. package/dist/modules/data/LineBarChart.impl.d.ts.map +1 -0
  660. package/dist/modules/data/LineBarChart.impl.js +124 -0
  661. package/dist/modules/data/LineBarChart.impl.js.map +1 -0
  662. package/dist/modules/data/LineBarChart.js +14 -0
  663. package/dist/modules/data/LineBarChart.js.map +1 -0
  664. package/dist/modules/data/LineChart.d.ts +6 -0
  665. package/dist/modules/data/LineChart.d.ts.map +1 -0
  666. package/dist/modules/data/LineChart.impl.d.ts +17 -0
  667. package/dist/modules/data/LineChart.impl.d.ts.map +1 -0
  668. package/dist/modules/data/LineChart.impl.js +137 -0
  669. package/dist/modules/data/LineChart.impl.js.map +1 -0
  670. package/dist/modules/data/LineChart.js +14 -0
  671. package/dist/modules/data/LineChart.js.map +1 -0
  672. package/dist/modules/data/LinearGauge.d.ts +18 -0
  673. package/dist/modules/data/LinearGauge.d.ts.map +1 -0
  674. package/dist/modules/data/LinearGauge.js +78 -0
  675. package/dist/modules/data/LinearGauge.js.map +1 -0
  676. package/dist/modules/data/PieChart.d.ts +6 -0
  677. package/dist/modules/data/PieChart.d.ts.map +1 -0
  678. package/dist/modules/data/PieChart.impl.d.ts +18 -0
  679. package/dist/modules/data/PieChart.impl.d.ts.map +1 -0
  680. package/dist/modules/data/PieChart.impl.js +100 -0
  681. package/dist/modules/data/PieChart.impl.js.map +1 -0
  682. package/dist/modules/data/PieChart.js +14 -0
  683. package/dist/modules/data/PieChart.js.map +1 -0
  684. package/dist/modules/data/RadialGauge.d.ts +25 -0
  685. package/dist/modules/data/RadialGauge.d.ts.map +1 -0
  686. package/dist/modules/data/RadialGauge.js +94 -0
  687. package/dist/modules/data/RadialGauge.js.map +1 -0
  688. package/dist/modules/data/Swatch.d.ts +9 -0
  689. package/dist/modules/data/Swatch.d.ts.map +1 -0
  690. package/dist/modules/data/Swatch.js +44 -0
  691. package/dist/modules/data/Swatch.js.map +1 -0
  692. package/dist/modules/data/index.d.ts +14 -0
  693. package/dist/modules/data/index.d.ts.map +1 -0
  694. package/dist/modules/data/index.js +14 -0
  695. package/dist/modules/data/index.js.map +1 -0
  696. package/dist/modules/data/interfaces.d.ts +53 -0
  697. package/dist/modules/data/interfaces.d.ts.map +1 -0
  698. package/dist/modules/data/interfaces.js +2 -0
  699. package/dist/modules/data/interfaces.js.map +1 -0
  700. package/dist/modules/data/rechartsLoader.d.ts +2 -0
  701. package/dist/modules/data/rechartsLoader.d.ts.map +1 -0
  702. package/dist/modules/data/rechartsLoader.js +15 -0
  703. package/dist/modules/data/rechartsLoader.js.map +1 -0
  704. package/dist/modules/data/utils/colorDistribution.d.ts +10 -0
  705. package/dist/modules/data/utils/colorDistribution.d.ts.map +1 -0
  706. package/dist/modules/data/utils/colorDistribution.js +46 -0
  707. package/dist/modules/data/utils/colorDistribution.js.map +1 -0
  708. package/dist/modules/data/utils/formatDate.d.ts +12 -0
  709. package/dist/modules/data/utils/formatDate.d.ts.map +1 -0
  710. package/dist/modules/data/utils/formatDate.js +30 -0
  711. package/dist/modules/data/utils/formatDate.js.map +1 -0
  712. package/dist/modules/index.d.ts +6 -0
  713. package/dist/modules/index.d.ts.map +1 -0
  714. package/dist/modules/index.js +7 -0
  715. package/dist/modules/index.js.map +1 -0
  716. package/dist/modules/media/MediaUpload.d.ts +6 -0
  717. package/dist/modules/media/MediaUpload.d.ts.map +1 -0
  718. package/dist/modules/media/MediaUpload.impl.d.ts +24 -0
  719. package/dist/modules/media/MediaUpload.impl.d.ts.map +1 -0
  720. package/dist/modules/media/MediaUpload.impl.js +106 -0
  721. package/dist/modules/media/MediaUpload.impl.js.map +1 -0
  722. package/dist/modules/media/MediaUpload.js +14 -0
  723. package/dist/modules/media/MediaUpload.js.map +1 -0
  724. package/dist/modules/media/MediaUpload.module.scss +24 -0
  725. package/dist/modules/navigation/HeadingLink.d.ts +11 -0
  726. package/dist/modules/navigation/HeadingLink.d.ts.map +1 -0
  727. package/dist/modules/navigation/HeadingLink.js +39 -0
  728. package/dist/modules/navigation/HeadingLink.js.map +1 -0
  729. package/dist/modules/navigation/HeadingLink.module.scss +15 -0
  730. package/dist/modules/navigation/HeadingNav.d.ts +8 -0
  731. package/dist/modules/navigation/HeadingNav.d.ts.map +1 -0
  732. package/dist/modules/navigation/HeadingNav.js +168 -0
  733. package/dist/modules/navigation/HeadingNav.js.map +1 -0
  734. package/dist/modules/navigation/Kbar.d.ts +34 -0
  735. package/dist/modules/navigation/Kbar.d.ts.map +1 -0
  736. package/dist/modules/navigation/Kbar.js +192 -0
  737. package/dist/modules/navigation/Kbar.js.map +1 -0
  738. package/dist/modules/navigation/Kbar.module.scss +60 -0
  739. package/dist/modules/navigation/MegaMenu.d.ts +28 -0
  740. package/dist/modules/navigation/MegaMenu.d.ts.map +1 -0
  741. package/dist/modules/navigation/MegaMenu.js +182 -0
  742. package/dist/modules/navigation/MegaMenu.js.map +1 -0
  743. package/dist/modules/navigation/MegaMenu.module.scss +14 -0
  744. package/dist/modules/navigation/MobileMegaMenu.d.ts +28 -0
  745. package/dist/modules/navigation/MobileMegaMenu.d.ts.map +1 -0
  746. package/dist/modules/navigation/MobileMegaMenu.js +22 -0
  747. package/dist/modules/navigation/MobileMegaMenu.js.map +1 -0
  748. package/dist/modules/navigation/index.d.ts +6 -0
  749. package/dist/modules/navigation/index.d.ts.map +1 -0
  750. package/dist/modules/navigation/index.js +6 -0
  751. package/dist/modules/navigation/index.js.map +1 -0
  752. package/dist/modules/seo/Meta.d.ts +29 -0
  753. package/dist/modules/seo/Meta.d.ts.map +1 -0
  754. package/dist/modules/seo/Meta.js +53 -0
  755. package/dist/modules/seo/Meta.js.map +1 -0
  756. package/dist/modules/seo/Schema.d.ts +19 -0
  757. package/dist/modules/seo/Schema.d.ts.map +1 -0
  758. package/dist/modules/seo/Schema.js +65 -0
  759. package/dist/modules/seo/Schema.js.map +1 -0
  760. package/dist/package.json +130 -0
  761. package/dist/server/index.d.ts +2 -0
  762. package/dist/server/index.d.ts.map +1 -0
  763. package/dist/server/index.js +2 -0
  764. package/dist/server/index.js.map +1 -0
  765. package/dist/server/og-utils.d.ts +20 -0
  766. package/dist/server/og-utils.d.ts.map +1 -0
  767. package/dist/server/og-utils.js +125 -0
  768. package/dist/server/og-utils.js.map +1 -0
  769. package/dist/styles/background.scss +423 -0
  770. package/dist/styles/border.scss +546 -0
  771. package/dist/styles/breakpoints.scss +28 -0
  772. package/dist/styles/color.scss +183 -0
  773. package/dist/styles/display.scss +391 -0
  774. package/dist/styles/flex.scss +518 -0
  775. package/dist/styles/global.scss +36 -0
  776. package/dist/styles/grid.scss +293 -0
  777. package/dist/styles/index.scss +14 -0
  778. package/dist/styles/position.scss +1549 -0
  779. package/dist/styles/shadow.scss +19 -0
  780. package/dist/styles/size.scss +53 -0
  781. package/dist/styles/spacing.scss +1505 -0
  782. package/dist/styles/typography.scss +215 -0
  783. package/dist/styles/utilities.scss +23 -0
  784. package/dist/test/dialogTestUtils.d.ts +2 -0
  785. package/dist/test/dialogTestUtils.d.ts.map +1 -0
  786. package/dist/test/dialogTestUtils.js +12 -0
  787. package/dist/test/dialogTestUtils.js.map +1 -0
  788. package/dist/test/setup.d.ts +2 -0
  789. package/dist/test/setup.d.ts.map +1 -0
  790. package/dist/test/setup.js +59 -0
  791. package/dist/test/setup.js.map +1 -0
  792. package/dist/tokens/border.scss +95 -0
  793. package/dist/tokens/data.scss +107 -0
  794. package/dist/tokens/function.scss +742 -0
  795. package/dist/tokens/index.scss +8 -0
  796. package/dist/tokens/layout.scss +275 -0
  797. package/dist/tokens/scheme.scss +352 -0
  798. package/dist/tokens/shadow.scss +7 -0
  799. package/dist/tokens/theme.scss +639 -0
  800. package/dist/tokens/typography.scss +116 -0
  801. package/dist/types.d.ts +25 -0
  802. package/dist/types.d.ts.map +1 -0
  803. package/dist/types.js +16 -0
  804. package/dist/types.js.map +1 -0
  805. package/dist/utils/MissingDependency.d.ts +7 -0
  806. package/dist/utils/MissingDependency.d.ts.map +1 -0
  807. package/dist/utils/MissingDependency.js +6 -0
  808. package/dist/utils/MissingDependency.js.map +1 -0
  809. package/dist/utils/devLogger.d.ts +13 -0
  810. package/dist/utils/devLogger.d.ts.map +1 -0
  811. package/dist/utils/devLogger.js +34 -0
  812. package/dist/utils/devLogger.js.map +1 -0
  813. package/dist/utils/index.d.ts +3 -0
  814. package/dist/utils/index.d.ts.map +1 -0
  815. package/dist/utils/index.js +3 -0
  816. package/dist/utils/index.js.map +1 -0
  817. package/package.json +155 -0
@@ -0,0 +1,864 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { useEffect, useRef } from "react";
4
+ import { Flex } from ".";
5
+ import { useReducedMotion } from "../hooks/useReducedMotion";
6
+ const WeatherFx = React.forwardRef(({ type = "rain", speed = 1, colors = ["brand-solid-medium"], intensity = 50, angle = 0, duration, trigger = "mount", active = false, reducedMotion = "auto", children, ...rest }, forwardedRef) => {
7
+ const { shouldAnimate } = useReducedMotion(reducedMotion);
8
+ const containerRef = useRef(null);
9
+ const canvasRef = useRef(null);
10
+ const animationRef = useRef(undefined);
11
+ const particlesRef = useRef([]);
12
+ const timeRef = useRef(0);
13
+ const isEmittingRef = useRef(trigger === "mount" || (trigger === "manual" && active));
14
+ const emitStartTimeRef = useRef(Date.now());
15
+ const isHoveredRef = useRef(false);
16
+ const lastLightningTimeRef = useRef(0);
17
+ const lastBoltCountRef = useRef(0);
18
+ useEffect(() => {
19
+ if (forwardedRef) {
20
+ if ("current" in forwardedRef) {
21
+ forwardedRef.current = containerRef.current;
22
+ }
23
+ else if (typeof forwardedRef === "function") {
24
+ forwardedRef(containerRef.current);
25
+ }
26
+ }
27
+ }, [forwardedRef]);
28
+ useEffect(() => {
29
+ const canvas = canvasRef.current;
30
+ const container = containerRef.current;
31
+ if (!canvas || !container)
32
+ return;
33
+ const ctx = canvas.getContext("2d");
34
+ if (!ctx)
35
+ return;
36
+ // Set canvas size
37
+ let canvasWidth = 0;
38
+ let canvasHeight = 0;
39
+ const updateSize = () => {
40
+ const rect = container.getBoundingClientRect();
41
+ canvasWidth = rect.width;
42
+ canvasHeight = rect.height;
43
+ canvas.width = rect.width * 2; // 2x for retina
44
+ canvas.height = rect.height * 2;
45
+ canvas.style.width = `${rect.width}px`;
46
+ canvas.style.height = `${rect.height}px`;
47
+ ctx.scale(2, 2); // Scale for retina
48
+ };
49
+ updateSize();
50
+ window.addEventListener("resize", updateSize);
51
+ // Parse colors - convert token names to CSS variables
52
+ const parsedColors = colors.map((color) => {
53
+ const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
54
+ return computedColor || color;
55
+ });
56
+ // Initialize particles based on type
57
+ const initializeRain = () => {
58
+ const particles = [];
59
+ // Calculate spawn area based on angle
60
+ const angleRad = (angle * Math.PI) / 180;
61
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
62
+ // Create initial rain drops
63
+ for (let i = 0; i < intensity; i++) {
64
+ // Expand spawn width to account for angle
65
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
66
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
67
+ particles.push({
68
+ x: spawnX,
69
+ y: Math.random() * canvasHeight - canvasHeight, // Start above canvas
70
+ length: 10 + Math.random() * 20, // Varying lengths
71
+ speed: (2 + Math.random() * 3) * speed, // Varying speeds
72
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
73
+ opacity: 0.3 + Math.random() * 0.5,
74
+ thickness: 1 + Math.random() * 1.5,
75
+ });
76
+ }
77
+ return particles;
78
+ };
79
+ // Initialize snow particles
80
+ const initializeSnow = () => {
81
+ const particles = [];
82
+ // Calculate spawn area based on angle
83
+ const angleRad = (angle * Math.PI) / 180;
84
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
85
+ for (let i = 0; i < intensity; i++) {
86
+ const depth = Math.random(); // 0 = far, 1 = near
87
+ const size = 2 + depth * 4; // 2-6px, bigger = closer
88
+ // Expand spawn width to account for angle
89
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
90
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
91
+ particles.push({
92
+ x: spawnX,
93
+ y: Math.random() * canvasHeight - canvasHeight,
94
+ size,
95
+ speed: (0.3 + depth * 0.7) * speed, // 0.3-1.0x speed, closer = faster
96
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
97
+ opacity: 0.4 + depth * 0.5, // 0.4-0.9, closer = more opaque
98
+ swayAmplitude: 20 + Math.random() * 30, // 20-50px horizontal sway
99
+ swaySpeed: 0.5 + Math.random() * 1, // Varying sway speeds
100
+ swayOffset: Math.random() * Math.PI * 2, // Random starting phase
101
+ depth,
102
+ });
103
+ }
104
+ return particles;
105
+ };
106
+ // Initialize leaves particles
107
+ const initializeLeaves = () => {
108
+ const particles = [];
109
+ // Calculate spawn area based on angle
110
+ const angleRad = (angle * Math.PI) / 180;
111
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
112
+ for (let i = 0; i < intensity; i++) {
113
+ const depth = Math.random(); // 0 = far, 1 = near
114
+ const width = 8 + depth * 12; // 8-20px, bigger = closer
115
+ const height = width * (0.6 + Math.random() * 0.4); // Leaf aspect ratio
116
+ // Expand spawn width to account for angle
117
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
118
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
119
+ // Pick two colors for gradient (either from same color or adjacent colors)
120
+ const colorIndex = Math.floor(Math.random() * parsedColors.length);
121
+ const color1 = parsedColors[colorIndex];
122
+ const color2 = parsedColors[Math.min(colorIndex + 1, parsedColors.length - 1)];
123
+ particles.push({
124
+ x: spawnX,
125
+ y: Math.random() * canvasHeight - canvasHeight,
126
+ width,
127
+ height,
128
+ speed: (0.4 + depth * 0.8) * speed, // 0.4-1.2x speed
129
+ color1,
130
+ color2,
131
+ opacity: 0.6 + depth * 0.3, // 0.6-0.9
132
+ swayAmplitude: 30 + Math.random() * 50, // 30-80px stronger sway
133
+ swaySpeed: 0.3 + Math.random() * 0.7, // Slower sway for leaves
134
+ swayOffset: Math.random() * Math.PI * 2,
135
+ rotation: Math.random() * Math.PI * 2, // Random starting rotation
136
+ rotationSpeed: (Math.random() - 0.5) * 0.08, // -0.04 to 0.04 rad/frame
137
+ rotation3D: Math.random() * Math.PI * 2, // Random 3D flip angle
138
+ rotation3DSpeed: (Math.random() - 0.5) * 0.06, // 3D tumbling speed
139
+ depth,
140
+ });
141
+ }
142
+ return particles;
143
+ };
144
+ // Recursive function to generate chaotic, organic branches
145
+ const generateBranch = (startX, startY, baseSegmentLength, branchLevel, maxLevel, angle, parentThickness) => {
146
+ const segments = [];
147
+ const children = [];
148
+ // Longer branches that decrease more gradually with depth
149
+ const lengthMultiplier = Math.pow(0.7, branchLevel);
150
+ const branchLength = 3 + Math.floor(Math.random() * 4); // 3-6 segments
151
+ let currentX = startX;
152
+ let currentY = startY;
153
+ let currentAngle = angle;
154
+ for (let i = 0; i < branchLength; i++) {
155
+ // Larger segments for longer branches
156
+ const segmentLength = baseSegmentLength * lengthMultiplier * (0.6 + Math.random() * 0.6);
157
+ // Add angular variation for organic chaos
158
+ currentAngle += (Math.random() - 0.5) * 0.8;
159
+ // Move in the current angle direction
160
+ currentX += Math.cos(currentAngle) * segmentLength;
161
+ currentY += Math.sin(currentAngle) * segmentLength;
162
+ segments.push({ x: currentX, y: currentY });
163
+ // Moderate probability of branching
164
+ if (branchLevel < maxLevel && i > 0) {
165
+ // Only primary branches get multiple attempts
166
+ const branchAttempts = branchLevel === 1 ? 1 : 1;
167
+ for (let attempt = 0; attempt < branchAttempts; attempt++) {
168
+ // Lower probability: 35% at level 1, 25% at level 2, etc.
169
+ const branchProbability = 0.35 - branchLevel * 0.1;
170
+ if (Math.random() < branchProbability) {
171
+ // Random angle deviation from current direction (-90 to +90 degrees)
172
+ const angleDeviation = (Math.random() - 0.5) * Math.PI;
173
+ const childAngle = currentAngle + angleDeviation;
174
+ const childBranch = generateBranch(currentX, currentY, baseSegmentLength, branchLevel + 1, maxLevel, childAngle, parentThickness);
175
+ if (childBranch.segments.length > 0) {
176
+ children.push({
177
+ startIndex: i,
178
+ segments: childBranch.segments,
179
+ thickness: parentThickness * Math.pow(0.6, branchLevel + 1),
180
+ children: childBranch.children,
181
+ });
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ return { segments, children };
188
+ };
189
+ // Generate lightning bolt with chaotic branches
190
+ const generateLightningBolt = (startX, startY, endY) => {
191
+ const segments = [];
192
+ const branches = [];
193
+ let currentX = startX;
194
+ let currentY = startY;
195
+ const baseSegmentLength = 12 + Math.random() * 15; // Smaller segments for detail
196
+ const mainThickness = 2.5 + Math.random() * 1.5;
197
+ segments.push({ x: currentX, y: currentY });
198
+ // Main bolt with more erratic path
199
+ let currentAngle = Math.PI / 2; // Start going down (90 degrees)
200
+ while (currentY < endY) {
201
+ // Vary segment length significantly
202
+ const segmentLength = baseSegmentLength * (0.5 + Math.random() * 0.8);
203
+ // Add significant angular variation for jagged appearance
204
+ currentAngle += (Math.random() - 0.5) * 0.6;
205
+ // Ensure we're generally moving downward
206
+ if (currentAngle < Math.PI / 4)
207
+ currentAngle = Math.PI / 4; // Min 45 degrees
208
+ if (currentAngle > (3 * Math.PI) / 4)
209
+ currentAngle = (3 * Math.PI) / 4; // Max 135 degrees
210
+ currentX += Math.cos(currentAngle) * segmentLength;
211
+ currentY += Math.sin(currentAngle) * segmentLength;
212
+ segments.push({ x: currentX, y: currentY });
213
+ // Moderate chance of branching (35%) for balanced appearance
214
+ if (Math.random() < 0.35 && segments.length > 2) {
215
+ // Random angle deviation (-120 to +120 degrees from current)
216
+ const angleDeviation = (Math.random() - 0.5) * (2 * Math.PI / 3);
217
+ const branchAngle = currentAngle + angleDeviation;
218
+ const primaryBranch = generateBranch(currentX, currentY, baseSegmentLength, 1, 3, // Max 3 levels to reduce chaos
219
+ branchAngle, mainThickness);
220
+ if (primaryBranch.segments.length > 0) {
221
+ branches.push({
222
+ startIndex: segments.length - 1,
223
+ segments: primaryBranch.segments,
224
+ thickness: mainThickness * 0.6,
225
+ children: primaryBranch.children,
226
+ });
227
+ }
228
+ }
229
+ }
230
+ return {
231
+ x: startX,
232
+ y: startY,
233
+ segments,
234
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
235
+ opacity: 0.8 + Math.random() * 0.2,
236
+ thickness: mainThickness,
237
+ lifetime: 0.4 + Math.random() * 0.2,
238
+ age: 0,
239
+ branches,
240
+ revealDuration: 0.08 + Math.random() * 0.04,
241
+ };
242
+ };
243
+ // Initialize lightning (empty array, lightning spawns dynamically)
244
+ const initializeLightning = () => {
245
+ return [];
246
+ };
247
+ // Initialize particles only for mount trigger (manual/click handled by their respective handlers)
248
+ // Only initialize if particles don't already exist to preserve active particles across re-renders
249
+ if (particlesRef.current.length === 0) {
250
+ const shouldInitialize = trigger === "mount";
251
+ particlesRef.current = shouldInitialize
252
+ ? (type === "rain" ? initializeRain() :
253
+ type === "snow" ? initializeSnow() :
254
+ type === "leaves" ? initializeLeaves() :
255
+ type === "lightning" ? initializeLightning() :
256
+ [])
257
+ : [];
258
+ }
259
+ // Animation loop
260
+ const angleRad = (angle * Math.PI) / 180; // Convert angle to radians
261
+ const dx = Math.sin(angleRad); // Horizontal component
262
+ const dy = Math.cos(angleRad); // Vertical component
263
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
264
+ const animate = () => {
265
+ timeRef.current += 0.016; // Approximate frame time
266
+ ctx.clearRect(0, 0, canvasWidth, canvasHeight);
267
+ // Check if we should still be emitting new particles
268
+ const shouldEmit = trigger === "hover" ? isHoveredRef.current : isEmittingRef.current;
269
+ // Check duration limit
270
+ if (duration && isEmittingRef.current) {
271
+ const elapsed = (Date.now() - emitStartTimeRef.current) / 1000;
272
+ if (elapsed > duration) {
273
+ isEmittingRef.current = false;
274
+ }
275
+ }
276
+ if (type === "rain") {
277
+ // Update and draw rain drops
278
+ particlesRef.current.forEach((drop) => {
279
+ // Update position with angle
280
+ drop.y += drop.speed * dy;
281
+ drop.x += drop.speed * dx;
282
+ // Reset if it goes below canvas or off the sides (with expanded bounds)
283
+ const leftBound = -horizontalOffset - 50;
284
+ const rightBound = canvasWidth + horizontalOffset + 50;
285
+ if (drop.y > canvasHeight || drop.x < leftBound || drop.x > rightBound) {
286
+ if (shouldEmit) {
287
+ // Respawn at top
288
+ drop.y = -drop.length;
289
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
290
+ drop.x = Math.random() * spawnWidth - horizontalOffset;
291
+ }
292
+ else {
293
+ // Mark for removal by moving far off screen
294
+ drop.y = canvasHeight + 1000;
295
+ }
296
+ }
297
+ // Draw rain drop as an angled line with gradient
298
+ const x1 = drop.x;
299
+ const y1 = drop.y;
300
+ const x2 = drop.x + dx * drop.length;
301
+ const y2 = drop.y + dy * drop.length;
302
+ // Create gradient from solid to transparent
303
+ const gradient = ctx.createLinearGradient(x1, y1, x2, y2);
304
+ gradient.addColorStop(0, 'transparent');
305
+ gradient.addColorStop(1, drop.color);
306
+ ctx.beginPath();
307
+ ctx.strokeStyle = gradient;
308
+ ctx.globalAlpha = drop.opacity;
309
+ ctx.lineWidth = drop.thickness;
310
+ ctx.lineCap = "round";
311
+ ctx.moveTo(x1, y1);
312
+ ctx.lineTo(x2, y2);
313
+ ctx.stroke();
314
+ });
315
+ }
316
+ else if (type === "snow") {
317
+ // Update and draw snowflakes
318
+ particlesRef.current.forEach((flake) => {
319
+ // Calculate sway motion (sine wave)
320
+ const swayX = Math.sin(timeRef.current * flake.swaySpeed + flake.swayOffset) * flake.swayAmplitude;
321
+ // Update position with angle and sway
322
+ flake.y += flake.speed * dy;
323
+ flake.x += flake.speed * dx;
324
+ // Reset if it goes below canvas or off the sides
325
+ const leftBound = -horizontalOffset - 100;
326
+ const rightBound = canvasWidth + horizontalOffset + 100;
327
+ if (flake.y > canvasHeight || flake.x < leftBound || flake.x > rightBound) {
328
+ if (shouldEmit) {
329
+ flake.y = -flake.size;
330
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
331
+ flake.x = Math.random() * spawnWidth - horizontalOffset;
332
+ }
333
+ else {
334
+ flake.y = canvasHeight + 1000;
335
+ }
336
+ }
337
+ // Draw snowflake (no blur filter for performance)
338
+ ctx.globalAlpha = flake.opacity;
339
+ ctx.fillStyle = flake.color;
340
+ // Draw as circle with sway applied
341
+ ctx.beginPath();
342
+ ctx.arc(flake.x + swayX, flake.y, flake.size / 2, 0, Math.PI * 2);
343
+ ctx.fill();
344
+ });
345
+ }
346
+ else if (type === "leaves") {
347
+ // Update and draw leaves
348
+ particlesRef.current.forEach((leaf) => {
349
+ // Calculate sway motion
350
+ const swayX = Math.sin(timeRef.current * leaf.swaySpeed + leaf.swayOffset) * leaf.swayAmplitude;
351
+ // Update rotation (2D spin)
352
+ leaf.rotation += leaf.rotationSpeed;
353
+ // Update 3D rotation (flip/tumble)
354
+ leaf.rotation3D += leaf.rotation3DSpeed;
355
+ // Update position with angle and sway
356
+ leaf.y += leaf.speed * dy;
357
+ leaf.x += leaf.speed * dx;
358
+ // Reset if it goes below canvas or off the sides
359
+ const leftBound = -horizontalOffset - 100;
360
+ const rightBound = canvasWidth + horizontalOffset + 100;
361
+ if (leaf.y > canvasHeight || leaf.x < leftBound || leaf.x > rightBound) {
362
+ if (shouldEmit) {
363
+ leaf.y = -leaf.height;
364
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
365
+ leaf.x = Math.random() * spawnWidth - horizontalOffset;
366
+ leaf.rotation = Math.random() * Math.PI * 2;
367
+ }
368
+ else {
369
+ leaf.y = canvasHeight + 1000;
370
+ }
371
+ }
372
+ // Calculate 3D scale effect (flipping around vertical axis)
373
+ const scaleXRaw = Math.cos(leaf.rotation3D);
374
+ // Clamp scale to minimum 0.15 so leaves stay visible when edge-on
375
+ const scaleX = scaleXRaw > 0
376
+ ? Math.max(0.15, scaleXRaw)
377
+ : Math.min(-0.15, scaleXRaw);
378
+ // Draw leaf with rotation and gradient
379
+ ctx.save();
380
+ ctx.translate(leaf.x + swayX, leaf.y);
381
+ ctx.rotate(leaf.rotation);
382
+ ctx.scale(scaleX, 1); // Apply 3D flip effect with minimum width
383
+ // Fade when edge-on but maintain minimum 50% opacity
384
+ const opacityMultiplier = Math.max(0.5, Math.abs(scaleXRaw * 0.3 + 0.7));
385
+ ctx.globalAlpha = leaf.opacity * opacityMultiplier;
386
+ // Create gradient from color1 to color2
387
+ const gradient = ctx.createLinearGradient(-leaf.width / 2, 0, leaf.width / 2, 0);
388
+ gradient.addColorStop(0, leaf.color1);
389
+ gradient.addColorStop(0.5, leaf.color2);
390
+ gradient.addColorStop(1, leaf.color1);
391
+ // Draw leaf shape (pointed oval using bezier curves)
392
+ ctx.fillStyle = gradient;
393
+ ctx.beginPath();
394
+ const w = leaf.width / 2;
395
+ const h = leaf.height / 2;
396
+ // Start at top tip
397
+ ctx.moveTo(0, -h);
398
+ // Curve to right side (widest point)
399
+ ctx.bezierCurveTo(w * 0.7, -h * 0.5, w * 0.7, h * 0.5, 0, h);
400
+ // Curve to left side and back to top
401
+ ctx.bezierCurveTo(-w * 0.7, h * 0.5, -w * 0.7, -h * 0.5, 0, -h);
402
+ ctx.fill();
403
+ ctx.restore();
404
+ });
405
+ }
406
+ else if (type === "lightning") {
407
+ // Lightning spawning logic
408
+ const currentTime = Date.now();
409
+ const timeSinceLastLightning = (currentTime - lastLightningTimeRef.current) / 1000;
410
+ // Reduced frequency: intensity 1 = ~15s, intensity 10 = ~3s, intensity 50 = ~0.6s, intensity 100 = ~0.3s
411
+ const spawnInterval = Math.max(0.3, 15 / intensity);
412
+ if (shouldEmit && timeSinceLastLightning > spawnInterval) {
413
+ // Calculate number of simultaneous bolts based on intensity
414
+ // After a multi-bolt strike, force a single bolt for variation
415
+ let boltCount = 1;
416
+ if (lastBoltCountRef.current > 1) {
417
+ // Previous strike was multi-bolt, do single bolt this time
418
+ boltCount = 1;
419
+ }
420
+ else {
421
+ // Previous was single, can do multi-bolt based on intensity
422
+ if (intensity > 60) {
423
+ // 60% chance of multi-bolt at high intensity
424
+ boltCount = Math.random() < 0.6 ? (2 + Math.floor(Math.random() * 3)) : 1; // 2-4 bolts or 1
425
+ }
426
+ else if (intensity > 30) {
427
+ // 50% chance of multi-bolt at medium intensity
428
+ boltCount = Math.random() < 0.5 ? (2 + Math.floor(Math.random() * 2)) : 1; // 2-3 bolts or 1
429
+ }
430
+ else if (intensity > 15) {
431
+ // 30% chance of double bolt at low-medium intensity
432
+ boltCount = Math.random() < 0.3 ? 2 : 1;
433
+ }
434
+ // intensity <= 15: always single bolt
435
+ }
436
+ // Store bolt count for next iteration
437
+ lastBoltCountRef.current = boltCount;
438
+ // Spawn multiple bolts with slight time offset for realism
439
+ for (let i = 0; i < boltCount; i++) {
440
+ const startX = Math.random() * canvasWidth;
441
+ const bolt = generateLightningBolt(startX, 0, canvasHeight);
442
+ // Add slight age offset for staggered appearance
443
+ bolt.age = -i * 0.025; // 25ms offset between bolts
444
+ particlesRef.current.push(bolt);
445
+ }
446
+ lastLightningTimeRef.current = currentTime;
447
+ }
448
+ // Update and draw lightning bolts
449
+ particlesRef.current.forEach((bolt, index) => {
450
+ bolt.age += 0.016; // Increment age
451
+ // Skip if not yet started (negative age for staggered bolts)
452
+ if (bolt.age < 0)
453
+ return;
454
+ // Remove expired bolts
455
+ if (bolt.age > bolt.lifetime) {
456
+ particlesRef.current.splice(index, 1);
457
+ return;
458
+ }
459
+ // Calculate reveal progress (how much of the bolt to draw)
460
+ const revealProgress = Math.min(1, bolt.age / bolt.revealDuration);
461
+ // Calculate opacity fade (flash effect)
462
+ const lifeProgress = bolt.age / bolt.lifetime;
463
+ let currentOpacity = bolt.opacity;
464
+ // During reveal: full brightness
465
+ // After reveal: hold briefly, then fade out
466
+ if (lifeProgress < bolt.revealDuration / bolt.lifetime) {
467
+ currentOpacity *= revealProgress; // Fade in during reveal
468
+ }
469
+ else if (lifeProgress < 0.3) {
470
+ currentOpacity *= 1; // Hold at full brightness
471
+ }
472
+ else {
473
+ // Fade out in the remaining time
474
+ const fadeProgress = (lifeProgress - 0.3) / 0.7;
475
+ currentOpacity *= (1 - fadeProgress);
476
+ }
477
+ // Calculate how many segments to draw based on reveal progress
478
+ const totalSegments = bolt.segments.length;
479
+ const segmentsToDraw = Math.ceil(totalSegments * revealProgress);
480
+ // Draw main bolt with reveal effect
481
+ ctx.globalAlpha = currentOpacity;
482
+ ctx.strokeStyle = bolt.color;
483
+ ctx.lineWidth = bolt.thickness;
484
+ ctx.lineCap = "round";
485
+ ctx.lineJoin = "round";
486
+ // Draw glow effect
487
+ ctx.shadowBlur = 15;
488
+ ctx.shadowColor = bolt.color;
489
+ ctx.beginPath();
490
+ for (let i = 0; i < segmentsToDraw; i++) {
491
+ const segment = bolt.segments[i];
492
+ if (i === 0) {
493
+ ctx.moveTo(segment.x, segment.y);
494
+ }
495
+ else {
496
+ ctx.lineTo(segment.x, segment.y);
497
+ }
498
+ }
499
+ ctx.stroke();
500
+ // Recursive function to draw hierarchical branches
501
+ const drawBranch = (branch, parentSegments, parentSegmentsToDraw) => {
502
+ // Only draw if parent bolt has reached this branch point
503
+ if (branch.startIndex < parentSegmentsToDraw) {
504
+ const startSegment = parentSegments[branch.startIndex];
505
+ // Calculate how much of this branch to reveal
506
+ const segmentsPastBranch = parentSegmentsToDraw - branch.startIndex;
507
+ const branchRevealProgress = Math.min(1, segmentsPastBranch / 3);
508
+ const branchSegmentsToDraw = Math.ceil(branch.segments.length * branchRevealProgress);
509
+ // Draw this branch
510
+ ctx.beginPath();
511
+ ctx.moveTo(startSegment.x, startSegment.y);
512
+ for (let i = 0; i < branchSegmentsToDraw; i++) {
513
+ const segment = branch.segments[i];
514
+ ctx.lineTo(segment.x, segment.y);
515
+ }
516
+ ctx.lineWidth = branch.thickness;
517
+ ctx.stroke();
518
+ // Recursively draw child branches
519
+ if (branch.children && branch.children.length > 0) {
520
+ branch.children.forEach((childBranch) => {
521
+ drawBranch(childBranch, branch.segments, branchSegmentsToDraw);
522
+ });
523
+ }
524
+ }
525
+ };
526
+ // Draw all primary branches and their hierarchies
527
+ bolt.branches.forEach((branch) => {
528
+ drawBranch(branch, bolt.segments, segmentsToDraw);
529
+ });
530
+ // Reset shadow
531
+ ctx.shadowBlur = 0;
532
+ });
533
+ }
534
+ ctx.globalAlpha = 1;
535
+ animationRef.current = requestAnimationFrame(animate);
536
+ };
537
+ if (!shouldAnimate) {
538
+ // When reduced motion is active, don't start the animation loop at all
539
+ return () => {
540
+ window.removeEventListener("resize", updateSize);
541
+ };
542
+ }
543
+ animate();
544
+ return () => {
545
+ window.removeEventListener("resize", updateSize);
546
+ if (animationRef.current) {
547
+ cancelAnimationFrame(animationRef.current);
548
+ }
549
+ };
550
+ }, [type, colors, speed, intensity, angle, duration, trigger, shouldAnimate]);
551
+ // Respond to external control in manual mode
552
+ useEffect(() => {
553
+ if (trigger !== "manual")
554
+ return;
555
+ if (active && !isEmittingRef.current) {
556
+ // Initialize particles if starting emission
557
+ if (particlesRef.current.length === 0) {
558
+ const canvas = canvasRef.current;
559
+ const container = containerRef.current;
560
+ if (canvas && container) {
561
+ const canvasWidth = canvas.width / 2;
562
+ const canvasHeight = canvas.height / 2;
563
+ const parsedColors = colors.map((color) => {
564
+ const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
565
+ return computedColor || color;
566
+ });
567
+ if (type === "rain") {
568
+ const particles = [];
569
+ const angleRad = (angle * Math.PI) / 180;
570
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
571
+ for (let i = 0; i < intensity; i++) {
572
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
573
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
574
+ particles.push({
575
+ x: spawnX,
576
+ y: Math.random() * canvasHeight - canvasHeight,
577
+ length: 10 + Math.random() * 20,
578
+ speed: (2 + Math.random() * 3) * speed,
579
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
580
+ opacity: 0.3 + Math.random() * 0.5,
581
+ thickness: 1 + Math.random() * 1.5,
582
+ });
583
+ }
584
+ particlesRef.current = particles;
585
+ }
586
+ else if (type === "snow") {
587
+ const particles = [];
588
+ const angleRad = (angle * Math.PI) / 180;
589
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
590
+ for (let i = 0; i < intensity; i++) {
591
+ const depth = Math.random();
592
+ const size = 2 + depth * 4;
593
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
594
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
595
+ particles.push({
596
+ x: spawnX,
597
+ y: Math.random() * canvasHeight - canvasHeight,
598
+ size,
599
+ speed: (0.3 + depth * 0.7) * speed,
600
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
601
+ opacity: 0.4 + depth * 0.5,
602
+ swayAmplitude: 20 + Math.random() * 30,
603
+ swaySpeed: 0.5 + Math.random() * 1,
604
+ swayOffset: Math.random() * Math.PI * 2,
605
+ depth,
606
+ });
607
+ }
608
+ particlesRef.current = particles;
609
+ }
610
+ else if (type === "leaves") {
611
+ const particles = [];
612
+ const angleRad = (angle * Math.PI) / 180;
613
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
614
+ for (let i = 0; i < intensity; i++) {
615
+ const depth = Math.random();
616
+ const width = 8 + depth * 12;
617
+ const height = width * (0.6 + Math.random() * 0.4);
618
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
619
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
620
+ const colorIndex = Math.floor(Math.random() * parsedColors.length);
621
+ const color1 = parsedColors[colorIndex];
622
+ const color2 = parsedColors[Math.min(colorIndex + 1, parsedColors.length - 1)];
623
+ particles.push({
624
+ x: spawnX,
625
+ y: Math.random() * canvasHeight - canvasHeight,
626
+ width,
627
+ height,
628
+ speed: (0.4 + depth * 0.8) * speed,
629
+ color1,
630
+ color2,
631
+ opacity: 0.6 + depth * 0.3,
632
+ swayAmplitude: 30 + Math.random() * 50,
633
+ swaySpeed: 0.3 + Math.random() * 0.7,
634
+ swayOffset: Math.random() * Math.PI * 2,
635
+ rotation: Math.random() * Math.PI * 2,
636
+ rotationSpeed: (Math.random() - 0.5) * 0.08,
637
+ rotation3D: Math.random() * Math.PI * 2,
638
+ rotation3DSpeed: (Math.random() - 0.5) * 0.06,
639
+ depth,
640
+ });
641
+ }
642
+ particlesRef.current = particles;
643
+ }
644
+ }
645
+ }
646
+ isEmittingRef.current = true;
647
+ emitStartTimeRef.current = Date.now();
648
+ }
649
+ else if (!active && isEmittingRef.current) {
650
+ isEmittingRef.current = false;
651
+ }
652
+ }, [active, trigger]);
653
+ const handleMouseEnter = () => {
654
+ if (trigger === "hover" && !isHoveredRef.current) {
655
+ isHoveredRef.current = true;
656
+ isEmittingRef.current = true;
657
+ emitStartTimeRef.current = Date.now();
658
+ // Initialize particles if none exist yet
659
+ if (particlesRef.current.length === 0) {
660
+ const canvas = canvasRef.current;
661
+ const container = containerRef.current;
662
+ if (canvas && container) {
663
+ const cw = canvas.width / 2;
664
+ const ch = canvas.height / 2;
665
+ const parsedColors = colors.map((color) => {
666
+ const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
667
+ return computedColor || color;
668
+ });
669
+ const angleRad = (angle * Math.PI) / 180;
670
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * ch);
671
+ if (type === "rain") {
672
+ const particles = [];
673
+ for (let i = 0; i < intensity; i++) {
674
+ const spawnWidth = cw + horizontalOffset * 2;
675
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
676
+ particles.push({
677
+ x: spawnX,
678
+ y: Math.random() * ch - ch,
679
+ length: 10 + Math.random() * 20,
680
+ speed: (2 + Math.random() * 3) * speed,
681
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
682
+ opacity: 0.3 + Math.random() * 0.5,
683
+ thickness: 1 + Math.random() * 1.5,
684
+ });
685
+ }
686
+ particlesRef.current = particles;
687
+ }
688
+ else if (type === "snow") {
689
+ const particles = [];
690
+ for (let i = 0; i < intensity; i++) {
691
+ const depth = Math.random();
692
+ const size = 2 + depth * 4;
693
+ const spawnWidth = cw + horizontalOffset * 2;
694
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
695
+ particles.push({
696
+ x: spawnX,
697
+ y: Math.random() * ch - ch,
698
+ size,
699
+ speed: (0.3 + depth * 0.7) * speed,
700
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
701
+ opacity: 0.4 + depth * 0.5,
702
+ swayAmplitude: 20 + Math.random() * 30,
703
+ swaySpeed: 0.5 + Math.random() * 1,
704
+ swayOffset: Math.random() * Math.PI * 2,
705
+ depth,
706
+ });
707
+ }
708
+ particlesRef.current = particles;
709
+ }
710
+ else if (type === "leaves") {
711
+ const particles = [];
712
+ for (let i = 0; i < intensity; i++) {
713
+ const depth = Math.random();
714
+ const width = 8 + depth * 12;
715
+ const height = width * (0.6 + Math.random() * 0.4);
716
+ const spawnWidth = cw + horizontalOffset * 2;
717
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
718
+ const colorIndex = Math.floor(Math.random() * parsedColors.length);
719
+ const color1 = parsedColors[colorIndex];
720
+ const color2 = parsedColors[Math.min(colorIndex + 1, parsedColors.length - 1)];
721
+ particles.push({
722
+ x: spawnX,
723
+ y: Math.random() * ch - ch,
724
+ width,
725
+ height,
726
+ speed: (0.4 + depth * 0.8) * speed,
727
+ color1,
728
+ color2,
729
+ opacity: 0.6 + depth * 0.3,
730
+ swayAmplitude: 30 + Math.random() * 50,
731
+ swaySpeed: 0.3 + Math.random() * 0.7,
732
+ swayOffset: Math.random() * Math.PI * 2,
733
+ rotation: Math.random() * Math.PI * 2,
734
+ rotationSpeed: (Math.random() - 0.5) * 0.08,
735
+ rotation3D: Math.random() * Math.PI * 2,
736
+ rotation3DSpeed: (Math.random() - 0.5) * 0.06,
737
+ depth,
738
+ });
739
+ }
740
+ particlesRef.current = particles;
741
+ }
742
+ // Lightning doesn't need pre-initialization (spawns dynamically)
743
+ }
744
+ }
745
+ }
746
+ };
747
+ const handleMouseLeave = () => {
748
+ if (trigger === "hover" && isHoveredRef.current) {
749
+ isHoveredRef.current = false;
750
+ }
751
+ };
752
+ const handleClick = () => {
753
+ if (trigger !== "click")
754
+ return;
755
+ if (!isEmittingRef.current) {
756
+ // Initialize particles if starting emission
757
+ if (particlesRef.current.length === 0) {
758
+ const canvas = canvasRef.current;
759
+ const container = containerRef.current;
760
+ if (canvas && container) {
761
+ const canvasWidth = canvas.width / 2;
762
+ const canvasHeight = canvas.height / 2;
763
+ const parsedColors = colors.map((color) => {
764
+ const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
765
+ return computedColor || color;
766
+ });
767
+ if (type === "rain") {
768
+ const particles = [];
769
+ const angleRad = (angle * Math.PI) / 180;
770
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
771
+ for (let i = 0; i < intensity; i++) {
772
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
773
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
774
+ particles.push({
775
+ x: spawnX,
776
+ y: Math.random() * canvasHeight - canvasHeight,
777
+ length: 10 + Math.random() * 20,
778
+ speed: (2 + Math.random() * 3) * speed,
779
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
780
+ opacity: 0.3 + Math.random() * 0.5,
781
+ thickness: 1 + Math.random() * 1.5,
782
+ });
783
+ }
784
+ particlesRef.current = particles;
785
+ }
786
+ else if (type === "snow") {
787
+ const particles = [];
788
+ const angleRad = (angle * Math.PI) / 180;
789
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
790
+ for (let i = 0; i < intensity; i++) {
791
+ const depth = Math.random();
792
+ const size = 2 + depth * 4;
793
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
794
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
795
+ particles.push({
796
+ x: spawnX,
797
+ y: Math.random() * canvasHeight - canvasHeight,
798
+ size,
799
+ speed: (0.3 + depth * 0.7) * speed,
800
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
801
+ opacity: 0.4 + depth * 0.5,
802
+ swayAmplitude: 20 + Math.random() * 30,
803
+ swaySpeed: 0.5 + Math.random() * 1,
804
+ swayOffset: Math.random() * Math.PI * 2,
805
+ depth,
806
+ });
807
+ }
808
+ particlesRef.current = particles;
809
+ }
810
+ else if (type === "leaves") {
811
+ const particles = [];
812
+ const angleRad = (angle * Math.PI) / 180;
813
+ const horizontalOffset = Math.abs(Math.tan(angleRad) * canvasHeight);
814
+ for (let i = 0; i < intensity; i++) {
815
+ const depth = Math.random();
816
+ const width = 8 + depth * 12;
817
+ const height = width * (0.6 + Math.random() * 0.4);
818
+ const spawnWidth = canvasWidth + horizontalOffset * 2;
819
+ const spawnX = Math.random() * spawnWidth - horizontalOffset;
820
+ const colorIndex = Math.floor(Math.random() * parsedColors.length);
821
+ const color1 = parsedColors[colorIndex];
822
+ const color2 = parsedColors[Math.min(colorIndex + 1, parsedColors.length - 1)];
823
+ particles.push({
824
+ x: spawnX,
825
+ y: Math.random() * canvasHeight - canvasHeight,
826
+ width,
827
+ height,
828
+ speed: (0.4 + depth * 0.8) * speed,
829
+ color1,
830
+ color2,
831
+ opacity: 0.6 + depth * 0.3,
832
+ swayAmplitude: 30 + Math.random() * 50,
833
+ swaySpeed: 0.3 + Math.random() * 0.7,
834
+ swayOffset: Math.random() * Math.PI * 2,
835
+ rotation: Math.random() * Math.PI * 2,
836
+ rotationSpeed: (Math.random() - 0.5) * 0.08,
837
+ rotation3D: Math.random() * Math.PI * 2,
838
+ rotation3DSpeed: (Math.random() - 0.5) * 0.06,
839
+ depth,
840
+ });
841
+ }
842
+ particlesRef.current = particles;
843
+ }
844
+ }
845
+ }
846
+ isEmittingRef.current = true;
847
+ emitStartTimeRef.current = Date.now();
848
+ }
849
+ else {
850
+ isEmittingRef.current = false;
851
+ }
852
+ };
853
+ return (_jsxs(Flex, { ref: containerRef, fill: true, overflow: "hidden", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...rest, children: [_jsx("canvas", { ref: canvasRef, style: {
854
+ position: "absolute",
855
+ top: 0,
856
+ left: 0,
857
+ width: "100%",
858
+ height: "100%",
859
+ pointerEvents: "none",
860
+ } }), children] }));
861
+ });
862
+ WeatherFx.displayName = "WeatherFx";
863
+ export { WeatherFx };
864
+ //# sourceMappingURL=WeatherFx.js.map