@onepercentio/one-ui 1.3.3 → 1.3.4

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 (310) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/img/svg/checkbox.svg +3 -0
  3. package/dist/assets/styles/index.scss +2 -0
  4. package/dist/assets/styles/mixins.scss +15 -0
  5. package/dist/assets/styles/variables.scss +49 -0
  6. package/dist/components/AdaptiveButton/AdaptiveButton.js +32 -0
  7. package/dist/components/AdaptiveButton/AdaptiveButton.module.scss +7 -0
  8. package/dist/components/AdaptiveButton/index.js +27 -0
  9. package/dist/components/AdaptiveContainer/AdaptiveContainer.js +152 -0
  10. package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +53 -0
  11. package/dist/components/AdaptiveContainer/index.js +27 -0
  12. package/dist/components/AdaptiveDialog/AdaptiveDialog.js +81 -0
  13. package/dist/components/AdaptiveDialog/AdaptiveDialog.module.scss +145 -0
  14. package/dist/components/AdaptiveDialog/index.js +27 -0
  15. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +77 -0
  16. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +49 -0
  17. package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
  18. package/dist/components/AdaptiveSidebar/index.js +27 -0
  19. package/dist/components/AnchoredTooltip/AnchoredTooltip.js +168 -0
  20. package/dist/components/AnchoredTooltip/AnchoredTooltip.module.scss +64 -0
  21. package/dist/components/AnchoredTooltip/index.js +27 -0
  22. package/dist/components/AnimatedEntrance/AnimatedEntrance.js +166 -0
  23. package/dist/components/AnimatedEntrance/AnimatedEntrance.module.scss +108 -0
  24. package/dist/components/AnimatedEntrance/index.js +27 -0
  25. package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js +95 -0
  26. package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.module.scss +22 -0
  27. package/dist/components/AsyncTriggerContainer/index.js +27 -0
  28. package/dist/components/AsyncWrapper/AsyncWrapper.js +42 -0
  29. package/dist/components/AsyncWrapper/index.js +27 -0
  30. package/dist/components/Avatar/Avatar.js +40 -0
  31. package/dist/components/Avatar/Avatar.module.scss +22 -0
  32. package/dist/components/Avatar/index.js +27 -0
  33. package/dist/components/BucketFill/BucketFill.js +56 -0
  34. package/dist/components/BucketFill/BucketFill.module.scss +36 -0
  35. package/dist/components/BucketFill/index.js +27 -0
  36. package/dist/components/Button/Button.js +39 -0
  37. package/dist/components/Button/Button.module.scss +45 -0
  38. package/dist/components/Button/index.js +27 -0
  39. package/dist/components/Card/Card.js +22 -0
  40. package/dist/components/Card/Card.module.scss +12 -0
  41. package/dist/components/Card/index.js +27 -0
  42. package/dist/components/Chart/Chart.js +27 -0
  43. package/dist/components/Chart/Chart.logic.js +14 -0
  44. package/dist/components/Chart/Chart.module.scss +58 -0
  45. package/dist/components/Chart/Chart.types.js +6 -0
  46. package/dist/components/Chart/Chart.view.js +184 -0
  47. package/dist/components/Chart/index.js +27 -0
  48. package/dist/components/CheckBox/CheckBox.js +52 -0
  49. package/dist/components/CheckBox/CheckBox.module.scss +36 -0
  50. package/dist/components/CheckBox/index.js +27 -0
  51. package/dist/components/CodeInput/CodeInput.js +84 -0
  52. package/dist/components/CodeInput/CodeInput.module.scss +5 -0
  53. package/dist/components/CodeInput/index.js +27 -0
  54. package/dist/components/Collapsable/Collapsable.js +186 -0
  55. package/dist/components/Collapsable/Collapsable.module.scss +42 -0
  56. package/dist/components/Collapsable/index.js +27 -0
  57. package/dist/components/Countdown/Countdown.js +83 -0
  58. package/dist/components/Countdown/index.js +27 -0
  59. package/dist/components/CurrencyInput/CurrencyInput.hook.js +28 -0
  60. package/dist/components/CurrencyInput/CurrencyInput.js +54 -0
  61. package/dist/components/CurrencyInput/index.js +27 -0
  62. package/dist/components/Divider/Divider.js +21 -0
  63. package/dist/components/Divider/Divider.module.scss +7 -0
  64. package/dist/components/Divider/index.js +27 -0
  65. package/dist/components/EmailInput/EmailInput.js +48 -0
  66. package/dist/components/EmailInput/EmailInput.module.scss +0 -0
  67. package/dist/components/EmailInput/index.js +27 -0
  68. package/dist/components/FadeIn/FadeIn.js +64 -0
  69. package/dist/components/FadeIn/FadeIn.module.scss +9 -0
  70. package/dist/components/FadeIn/index.js +27 -0
  71. package/dist/components/FileInput/FileInput.js +53 -0
  72. package/dist/components/FileInput/FileInput.module.scss +6 -0
  73. package/dist/components/FileInput/View/BigFactory/BigFactory.js +54 -0
  74. package/dist/components/FileInput/View/BigFactory/BigFactory.module.scss +20 -0
  75. package/dist/components/FileInput/View/BigFactory/index.js +27 -0
  76. package/dist/components/FileInput/View/Compact/Compact.js +120 -0
  77. package/dist/components/FileInput/View/Compact/Compact.module.scss +68 -0
  78. package/dist/components/FileInput/View/Compact/index.js +27 -0
  79. package/dist/components/FileInput/View/View.types.js +6 -0
  80. package/dist/components/FileInput/index.js +27 -0
  81. package/dist/components/FlowController/FlowController.js +66 -0
  82. package/dist/components/FlowController/FlowController.module.scss +47 -0
  83. package/dist/components/FlowController/index.js +27 -0
  84. package/dist/components/Form/Form.hook.js +234 -0
  85. package/dist/components/Form/Form.js +115 -0
  86. package/dist/components/Form/Form.module.scss +0 -0
  87. package/dist/components/Form/Form.types.js +40 -0
  88. package/dist/components/Form/FormField/Extensions/DateField/DateField.js +75 -0
  89. package/dist/components/Form/FormField/Extensions/DateField/DateField.module.scss +0 -0
  90. package/dist/components/Form/FormField/Extensions/DateField/index.js +27 -0
  91. package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +91 -0
  92. package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
  93. package/dist/components/Form/FormField/Extensions/PhoneField/index.js +27 -0
  94. package/dist/components/Form/FormField/FormField.js +296 -0
  95. package/dist/components/Form/FormField/FormField.types.js +12 -0
  96. package/dist/components/Form/FormField/index.js +27 -0
  97. package/dist/components/Form/index.js +27 -0
  98. package/dist/components/Freeze/Freeze.js +18 -0
  99. package/dist/components/Freeze/index.js +27 -0
  100. package/dist/components/HSForms/HSForms.js +55 -0
  101. package/dist/components/HSForms/index.js +27 -0
  102. package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +25 -0
  103. package/dist/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +44 -0
  104. package/dist/components/HeaderCloseBtn/index.js +27 -0
  105. package/dist/components/InfinityScroll/InfinityScroll.js +128 -0
  106. package/dist/components/InfinityScroll/InfinityScroll.module.scss +30 -0
  107. package/dist/components/InfinityScroll/index.js +27 -0
  108. package/dist/components/Input/Input.js +110 -0
  109. package/dist/components/Input/Input.module.scss +31 -0
  110. package/dist/components/Input/index.js +27 -0
  111. package/dist/components/InstantCounter/InstantCounter.js +55 -0
  112. package/dist/components/InstantCounter/index.js +27 -0
  113. package/dist/components/LavaLamp/LavaLamp.data.js +89 -0
  114. package/dist/components/LavaLamp/LavaLamp.js +125 -0
  115. package/dist/components/LavaLamp/LavaLamp.module.scss +26 -0
  116. package/dist/components/LavaLamp/index.js +27 -0
  117. package/dist/components/LavaLamp/v2/LavaLamp.js +154 -0
  118. package/dist/components/LavaLamp/v2/LavaLamp.module.scss +23 -0
  119. package/dist/components/LinkToId/LinkToId.js +45 -0
  120. package/dist/components/LinkToId/LinkToId.module.scss +4 -0
  121. package/dist/components/LinkToId/index.js +27 -0
  122. package/dist/components/Loader/Loader.js +27 -0
  123. package/dist/components/Loader/Loader.module.scss +40 -0
  124. package/dist/components/Loader/index.js +27 -0
  125. package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +36 -0
  126. package/dist/components/LoaderDotsIndicator/index.js +27 -0
  127. package/dist/components/LoopableVideo/LoopableVideo.js +41 -0
  128. package/dist/components/LoopableVideo/index.js +27 -0
  129. package/dist/components/MainGrid/MainGrid.js +55 -0
  130. package/dist/components/MainGrid/MainGrid.module.scss +28 -0
  131. package/dist/components/MainGrid/index.js +27 -0
  132. package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +32 -0
  133. package/dist/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +220 -0
  134. package/dist/components/MutableHamburgerButton/index.js +27 -0
  135. package/dist/components/Notification/Notification.js +24 -0
  136. package/dist/components/Notification/Notification.module.scss +25 -0
  137. package/dist/components/Notification/index.js +27 -0
  138. package/dist/components/NumberInput/NumberInput.js +50 -0
  139. package/dist/components/NumberInput/index.js +27 -0
  140. package/dist/components/OrderableList/OrderableList.js +439 -0
  141. package/dist/components/OrderableList/OrderableList.module.scss +98 -0
  142. package/dist/components/OrderableList/index.js +27 -0
  143. package/dist/components/PaginationIndicator/PaginationIndicator.js +261 -0
  144. package/dist/components/PaginationIndicator/index.js +27 -0
  145. package/dist/components/Parallax/Parallax.js +169 -0
  146. package/dist/components/Parallax/Parallax.module.scss +28 -0
  147. package/dist/components/Parallax/index.js +27 -0
  148. package/dist/components/Parallax/math/helpers.js +134 -0
  149. package/dist/components/PasswordInput/PasswordInput.js +97 -0
  150. package/dist/components/PasswordInput/PasswordInput.module.scss +17 -0
  151. package/dist/components/PasswordInput/index.js +27 -0
  152. package/dist/components/PingPongText/PingPongText.js +76 -0
  153. package/dist/components/PingPongText/PingPongText.module.scss +4 -0
  154. package/dist/components/PingPongText/index.js +27 -0
  155. package/dist/components/PixelatedScan/PixelatedScan.js +139 -0
  156. package/dist/components/PixelatedScan/PixelatedScan.module.scss +86 -0
  157. package/dist/components/PixelatedScan/index.js +27 -0
  158. package/dist/components/Portal/Portal.js +62 -0
  159. package/dist/components/Portal/Portal.module.scss +3 -0
  160. package/dist/components/Portal/index.js +27 -0
  161. package/dist/components/ProgressBar/ProgressBar.js +113 -0
  162. package/dist/components/ProgressBar/ProgressBar.module.scss +44 -0
  163. package/dist/components/ProgressBar/index.js +27 -0
  164. package/dist/components/ProgressTexts/ProgressTexts.js +52 -0
  165. package/dist/components/ProgressTexts/ProgressTexts.module.scss +37 -0
  166. package/dist/components/ProgressTexts/index.js +27 -0
  167. package/dist/components/Radio/Radio.js +53 -0
  168. package/dist/components/Radio/Radio.module.scss +20 -0
  169. package/dist/components/Radio/index.js +27 -0
  170. package/dist/components/Radio/variants/Checkmark/Checkmark.js +20 -0
  171. package/dist/components/Radio/variants/Checkmark/Checkmark.module.scss +24 -0
  172. package/dist/components/Radio/variants/Checkmark/index.js +27 -0
  173. package/dist/components/Radio/variants/Generic/Generic.js +22 -0
  174. package/dist/components/Radio/variants/Generic/Generic.module.scss +38 -0
  175. package/dist/components/Radio/variants/Generic/index.js +27 -0
  176. package/dist/components/SectionContainer/SectionContainer.js +49 -0
  177. package/dist/components/SectionContainer/SectionContainer.module.scss +30 -0
  178. package/dist/components/SectionContainer/index.js +27 -0
  179. package/dist/components/Select/Select.js +138 -0
  180. package/dist/components/Select/Select.module.scss +60 -0
  181. package/dist/components/Select/index.js +27 -0
  182. package/dist/components/Skeleton/Skeleton.js +30 -0
  183. package/dist/components/Skeleton/Skeleton.module.scss +21 -0
  184. package/dist/components/Skeleton/index.js +27 -0
  185. package/dist/components/Slider/Slider.js +70 -0
  186. package/dist/components/Slider/Slider.module.scss +7 -0
  187. package/dist/components/Slider/index.js +27 -0
  188. package/dist/components/Spacing/Spacing.js +34 -0
  189. package/dist/components/Spacing/Spacing.module.scss +13 -0
  190. package/dist/components/Spacing/index.js +27 -0
  191. package/dist/components/StaticScroller/StaticScroller.js +72 -0
  192. package/dist/components/StaticScroller/StaticScroller.module.scss +14 -0
  193. package/dist/components/StaticScroller/index.js +27 -0
  194. package/dist/components/Switch/Switch.js +47 -0
  195. package/dist/components/Switch/Switch.module.scss +46 -0
  196. package/dist/components/Switch/index.js +27 -0
  197. package/dist/components/Table/Table.js +115 -0
  198. package/dist/components/Table/Table.module.scss +74 -0
  199. package/dist/components/Table/index.js +27 -0
  200. package/dist/components/Tabs/Tabs.js +67 -0
  201. package/dist/components/Tabs/Tabs.module.scss +40 -0
  202. package/dist/components/Tabs/index.js +27 -0
  203. package/dist/components/Text/Text.js +44 -0
  204. package/dist/components/Text/Text.module.scss +13 -0
  205. package/dist/components/Text/index.js +27 -0
  206. package/dist/components/Transition/MasksFactory/DiagonalReveal.js +49 -0
  207. package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +78 -0
  208. package/dist/components/Transition/MasksFactory/PhysicsSquares.js +96 -0
  209. package/dist/components/Transition/MasksFactory/SquareToBalls.js +67 -0
  210. package/dist/components/Transition/MasksFactory/utils.js +30 -0
  211. package/dist/components/Transition/Transition.js +323 -0
  212. package/dist/components/Transition/Transition.module.scss +211 -0
  213. package/dist/components/Transition/index.js +27 -0
  214. package/dist/components/UncontrolledTransition/UncontrolledTransition.ai.md +9 -0
  215. package/dist/components/UncontrolledTransition/UncontrolledTransition.js +110 -0
  216. package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +32 -0
  217. package/dist/components/UncontrolledTransition/index.js +27 -0
  218. package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +115 -0
  219. package/dist/components/WalletConnectionWrapper/index.js +27 -0
  220. package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +59 -0
  221. package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +5 -0
  222. package/dist/components/utilitary/ScrollAndFocusLock/index.js +27 -0
  223. package/dist/context/AsyncProcess.js +74 -0
  224. package/dist/context/ContextAsyncControl.js +92 -0
  225. package/dist/context/CustomBrowserRouter.js +50 -0
  226. package/dist/context/OneUIProvider.js +129 -0
  227. package/dist/hooks/logs/useDependencyChangeDetection.js +20 -0
  228. package/dist/hooks/logs/useIsMounting.js +13 -0
  229. package/dist/hooks/persistence/useLocalStorage.js +48 -0
  230. package/dist/hooks/shims/ObjectWatchShim.js +54 -0
  231. package/dist/hooks/ui/useAdaptiveImage.js +36 -0
  232. package/dist/hooks/ui/useAlternating.js +24 -0
  233. package/dist/hooks/ui/useBreakpoint.js +26 -0
  234. package/dist/hooks/ui/useCustomScrollbar.js +28 -0
  235. package/dist/hooks/ui/useCustomScrollbar.module.scss +20 -0
  236. package/dist/hooks/ui/useEffectIf.js +14 -0
  237. package/dist/hooks/ui/useMouseHover.js +32 -0
  238. package/dist/hooks/ui/usePaginationControls.js +136 -0
  239. package/dist/hooks/ui/usePaginationControls.module.scss +16 -0
  240. package/dist/hooks/ui/useSnapToViewport.js +26 -0
  241. package/dist/hooks/ui/useSnapToViewport.module.scss +6 -0
  242. package/dist/hooks/ui/useTilt.js +161 -0
  243. package/dist/hooks/ui/useZoomable.js +135 -0
  244. package/dist/hooks/ui/useZoomable.module.scss +34 -0
  245. package/dist/hooks/useAsyncControl.ai.md +25 -0
  246. package/dist/hooks/useAsyncControl.js +79 -0
  247. package/dist/hooks/useContainedRepositioning.js +83 -0
  248. package/dist/hooks/useCustomHistory.js +24 -0
  249. package/dist/hooks/useElementFit.js +54 -0
  250. package/dist/hooks/useFirestoreWatch.js +45 -0
  251. package/dist/hooks/useFreeze.js +17 -0
  252. package/dist/hooks/useHero.js +273 -0
  253. package/dist/hooks/useHero.module.scss +41 -0
  254. package/dist/hooks/useIntersection.js +39 -0
  255. package/dist/hooks/useMergeRefs.js +36 -0
  256. package/dist/hooks/useObserve.js +25 -0
  257. package/dist/hooks/usePagination.js +163 -0
  258. package/dist/hooks/usePooledOperation.js +52 -0
  259. package/dist/hooks/usePooling.js +52 -0
  260. package/dist/hooks/useRebound.js +32 -0
  261. package/dist/hooks/useShortIntl.ai.md +5 -0
  262. package/dist/hooks/useShortIntl.js +82 -0
  263. package/dist/hooks/utility/useAsyncMemo.js +45 -0
  264. package/dist/hooks/utility/useDepChange.js +17 -0
  265. package/dist/hooks/utility/useEvents.js +33 -0
  266. package/dist/hooks/utility/useImmediate.js +14 -0
  267. package/dist/hooks/utility/useManualInit.js +25 -0
  268. package/dist/hooks/utility/useModule.js +18 -0
  269. package/dist/hooks/utility/useQuery.js +20 -0
  270. package/dist/hooks/utility/useUniqueEffect.js +20 -0
  271. package/dist/index.js +2149 -0
  272. package/dist/index.preprocess.js +42 -0
  273. package/dist/models/DebugLogger.js +16 -0
  274. package/dist/models/GenericContract.js +51 -0
  275. package/dist/models/Orbs.js +67 -0
  276. package/dist/reac-app-env.d.js +2 -0
  277. package/dist/storybook/assets/video/txt-reversed.mp4 +0 -0
  278. package/dist/storybookUtils/index.js +44 -0
  279. package/dist/type-utils.js +6 -0
  280. package/dist/types.js +6 -0
  281. package/dist/utility.d.js +2 -0
  282. package/dist/utils/blockchain.js +46 -0
  283. package/dist/utils/e2e.js +33 -0
  284. package/dist/utils/flatten.js +19 -0
  285. package/dist/utils/formatters.js +63 -0
  286. package/dist/utils/html.utils.js +15 -0
  287. package/dist/utils/ownEvent.js +16 -0
  288. package/dist/utils/test.js +19 -0
  289. package/dist-ts/components/AnchoredTooltip/AnchoredTooltip.module.scss +13 -10
  290. package/dist-ts/components/CheckBox/CheckBox.d.ts +3 -1
  291. package/dist-ts/components/CheckBox/CheckBox.js +7 -4
  292. package/dist-ts/components/CheckBox/CheckBox.js.map +1 -1
  293. package/dist-ts/components/CheckBox/CheckBox.module.scss +5 -0
  294. package/dist-ts/components/Input/Input.js +1 -1
  295. package/dist-ts/components/Input/Input.js.map +1 -1
  296. package/dist-ts/context/OneUIProvider.d.ts +3 -1
  297. package/dist-ts/context/OneUIProvider.js.map +1 -1
  298. package/dist-ts/hooks/ui/useAdaptiveImage.d.ts +1 -1
  299. package/dist-ts/hooks/ui/useAdaptiveImage.js +1 -1
  300. package/dist-ts/hooks/ui/useAdaptiveImage.js.map +1 -1
  301. package/dist-ts/hooks/ui/useMouseHover.d.ts +2 -3
  302. package/dist-ts/hooks/ui/useMouseHover.js +6 -8
  303. package/dist-ts/hooks/ui/useMouseHover.js.map +1 -1
  304. package/dist-ts/index.d.ts +1 -0
  305. package/dist-ts/index.js +1 -0
  306. package/dist-ts/index.js.map +1 -1
  307. package/dist-ts/models/ImageScales.d.ts +7 -0
  308. package/dist-ts/models/ImageScales.js +9 -0
  309. package/dist-ts/models/ImageScales.js.map +1 -0
  310. package/package.json +1 -1
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _InstantCounter.default;
11
+ }
12
+ });
13
+ var _InstantCounter = _interopRequireWildcard(require("./InstantCounter"));
14
+ Object.keys(_InstantCounter).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _InstantCounter[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _InstantCounter[key];
22
+ }
23
+ });
24
+ });
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5zdGFudENvdW50ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0luc3RhbnRDb3VudGVyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vSW5zdGFudENvdW50ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luc3RhbnRDb3VudGVyXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLGVBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixlQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLGVBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUFpQyxTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useLavaLampSetup;
7
+ exports.transitionPositionMs = void 0;
8
+ var _lodash = require("lodash");
9
+ var _react = require("react");
10
+ var _useTilt = require("../../hooks/ui/useTilt");
11
+ var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ const transitionMs = Number(_LavaLampModule.default.transitionMs);
14
+ const transitionPositionMs = exports.transitionPositionMs = Number(_LavaLampModule.default.transitionPositionMs);
15
+ function useLavaLampSetup(onUpdatePosition, onUpdateSize) {
16
+ const [d, setDim] = (0, _react.useState)();
17
+ const relativeTo = (0, _react.useRef)(null);
18
+ const prevTilt = (0, _react.useRef)(undefined);
19
+ (0, _react.useEffect)(() => {
20
+ const baseWidth = Math.min(relativeTo.current.clientWidth, 1440);
21
+ setDim({
22
+ width: baseWidth,
23
+ height: baseWidth * (relativeTo.current.clientHeight / relativeTo.current.clientWidth)
24
+ });
25
+ }, []);
26
+ const updateTiltCb = (0, _react.useMemo)(() => {
27
+ const throttlePosition = _lodash.throttle;
28
+ if (!d) return () => {};
29
+ const baseSize = Math.min(d.width, d.height) * 0.1;
30
+ let acceleration = (0, _lodash.throttle)(currTilt => {
31
+ if (!prevTilt.current) {
32
+ prevTilt.current = currTilt;
33
+ return;
34
+ }
35
+ const diff = {
36
+ x: Math.abs(prevTilt.current.x - currTilt.x),
37
+ y: Math.abs(prevTilt.current.y - currTilt.y)
38
+ };
39
+ const baseDiff = Math.max(diff.x, diff.y);
40
+ const percent = baseDiff * 100 / 90;
41
+ onUpdateSize(baseSize + baseSize * (percent / 100));
42
+ prevTilt.current = currTilt;
43
+ }, transitionMs, {
44
+ leading: false,
45
+ trailing: true
46
+ });
47
+ let movement = throttlePosition(currTilt => {
48
+ const [x, y] = [currTilt.x + 100, currTilt.y + 100];
49
+ const [cx, cy] = [d.width * x / 200, d.height * y / 200];
50
+ onUpdatePosition(cx, cy);
51
+ }, transitionPositionMs, {
52
+ leading: false,
53
+ trailing: true
54
+ });
55
+ return tilt => {
56
+ if (!d) return;
57
+ acceleration(tilt);
58
+ movement(tilt);
59
+ };
60
+ }, [d]);
61
+ (0, _useTilt.useTiltUpdates)(true, relativeTo, updateTiltCb, undefined, undefined, undefined, {
62
+ round: false,
63
+ gyroEnabled: false
64
+ });
65
+ const circlesConfig = (0, _react.useMemo)(() => {
66
+ if (!d) return [];
67
+ const baseSize = Math.min(d.width, d.height) * 0.15;
68
+ return new Array(10).fill(undefined).map((_, i) => {
69
+ const mod = i % 2;
70
+ const startX = Math.random() * d.width * 0.5 + (mod === 0 ? 0 : d.width * 0.5);
71
+ const translateX = startX - (startX + 50 + Math.random() * 200);
72
+ const startY = Math.random() * d.height * 0.75 + (mod === 0 ? 0 : d.height * 0.25);
73
+ const translateY = startY - (startY + 50 + Math.random() * 200);
74
+ return {
75
+ baseSize,
76
+ startX,
77
+ startY,
78
+ translateX,
79
+ translateY
80
+ };
81
+ });
82
+ }, [d]);
83
+ return {
84
+ relativeTo,
85
+ d,
86
+ circlesConfig
87
+ };
88
+ }
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VUaWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidHJhbnNpdGlvbk1zIiwiTnVtYmVyIiwiU3R5bGVzIiwidHJhbnNpdGlvblBvc2l0aW9uTXMiLCJleHBvcnRzIiwidXNlTGF2YUxhbXBTZXR1cCIsIm9uVXBkYXRlUG9zaXRpb24iLCJvblVwZGF0ZVNpemUiLCJkIiwic2V0RGltIiwidXNlU3RhdGUiLCJyZWxhdGl2ZVRvIiwidXNlUmVmIiwicHJldlRpbHQiLCJ1bmRlZmluZWQiLCJ1c2VFZmZlY3QiLCJiYXNlV2lkdGgiLCJNYXRoIiwibWluIiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwid2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1cGRhdGVUaWx0Q2IiLCJ1c2VNZW1vIiwidGhyb3R0bGVQb3NpdGlvbiIsInQiLCJiYXNlU2l6ZSIsImFjY2VsZXJhdGlvbiIsImN1cnJUaWx0IiwiZGlmZiIsIngiLCJhYnMiLCJ5IiwiYmFzZURpZmYiLCJtYXgiLCJwZXJjZW50IiwibGVhZGluZyIsInRyYWlsaW5nIiwibW92ZW1lbnQiLCJjeCIsImN5IiwidGlsdCIsInVzZVRpbHRVcGRhdGVzIiwicm91bmQiLCJneXJvRW5hYmxlZCIsImNpcmNsZXNDb25maWciLCJBcnJheSIsImZpbGwiLCJtYXAiLCJfIiwiaSIsIm1vZCIsInN0YXJ0WCIsInJhbmRvbSIsInRyYW5zbGF0ZVgiLCJzdGFydFkiLCJ0cmFuc2xhdGVZIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvTGF2YUxhbXAuZGF0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3R0bGUgYXMgdCB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVGlsdFVwZGF0ZXMgfSBmcm9tIFwiLi4vLi4vaG9va3MvdWkvdXNlVGlsdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCB0cmFuc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Ncyk7XG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBvc2l0aW9uTXMgPSBOdW1iZXIoU3R5bGVzLnRyYW5zaXRpb25Qb3NpdGlvbk1zKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTGF2YUxhbXBTZXR1cChcbiAgb25VcGRhdGVQb3NpdGlvbjogKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB2b2lkLFxuICBvblVwZGF0ZVNpemU6IChzaXplOiBudW1iZXIpID0+IHZvaWRcbikge1xuICBjb25zdCBbZCwgc2V0RGltXSA9IHVzZVN0YXRlPHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4oKTtcbiAgY29uc3QgcmVsYXRpdmVUbyA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgcHJldlRpbHQgPSB1c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih1bmRlZmluZWQpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYmFzZVdpZHRoID0gTWF0aC5taW4ocmVsYXRpdmVUby5jdXJyZW50IS5jbGllbnRXaWR0aCwgMTQ0MCk7XG4gICAgc2V0RGltKHtcbiAgICAgIHdpZHRoOiBiYXNlV2lkdGgsXG4gICAgICBoZWlnaHQ6XG4gICAgICAgIGJhc2VXaWR0aCAqXG4gICAgICAgIChyZWxhdGl2ZVRvLmN1cnJlbnQhLmNsaWVudEhlaWdodCAvIHJlbGF0aXZlVG8uY3VycmVudCEuY2xpZW50V2lkdGgpLFxuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXBkYXRlVGlsdENiID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdGhyb3R0bGVQb3NpdGlvbiA9IHQ7XG4gICAgaWYgKCFkKSByZXR1cm4gKCkgPT4ge307XG4gICAgY29uc3QgYmFzZVNpemUgPSBNYXRoLm1pbihkLndpZHRoLCBkLmhlaWdodCkgKiAwLjE7XG4gICAgbGV0IGFjY2VsZXJhdGlvbiA9IHQoXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAoIXByZXZUaWx0LmN1cnJlbnQpIHtcbiAgICAgICAgICBwcmV2VGlsdC5jdXJyZW50ID0gY3VyclRpbHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHtcbiAgICAgICAgICB4OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnggLSBjdXJyVGlsdC54KSxcbiAgICAgICAgICB5OiBNYXRoLmFicyhwcmV2VGlsdC5jdXJyZW50LnkgLSBjdXJyVGlsdC55KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBiYXNlRGlmZiA9IE1hdGgubWF4KGRpZmYueCwgZGlmZi55KTtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IChiYXNlRGlmZiAqIDEwMCkgLyA5MDtcblxuICAgICAgICBvblVwZGF0ZVNpemUoYmFzZVNpemUgKyBiYXNlU2l6ZSAqIChwZXJjZW50IC8gMTAwKSk7XG5cbiAgICAgICAgcHJldlRpbHQuY3VycmVudCA9IGN1cnJUaWx0ITtcbiAgICAgIH0sXG4gICAgICB0cmFuc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIGxldCBtb3ZlbWVudCA9IHRocm90dGxlUG9zaXRpb24oXG4gICAgICAoY3VyclRpbHQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBjb25zdCBbeCwgeV0gPSBbY3VyclRpbHQueCArIDEwMCwgY3VyclRpbHQueSArIDEwMF07XG4gICAgICAgIGNvbnN0IFtjeCwgY3ldID0gWyhkIS53aWR0aCAqIHgpIC8gMjAwLCAoZCEuaGVpZ2h0ICogeSkgLyAyMDBdO1xuICAgICAgICBvblVwZGF0ZVBvc2l0aW9uKGN4LCBjeSk7XG4gICAgICB9LFxuICAgICAgdHJhbnNpdGlvblBvc2l0aW9uTXMsXG4gICAgICB7XG4gICAgICAgIGxlYWRpbmc6IGZhbHNlLFxuICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiAodGlsdDogTm9uTnVsbGFibGU8dHlwZW9mIHByZXZUaWx0LmN1cnJlbnQ+KSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybjtcbiAgICAgIGFjY2VsZXJhdGlvbih0aWx0KTtcbiAgICAgIG1vdmVtZW50KHRpbHQpO1xuICAgIH07XG4gIH0sIFtkXSk7XG4gIHVzZVRpbHRVcGRhdGVzKFxuICAgIHRydWUsXG4gICAgcmVsYXRpdmVUbyxcbiAgICB1cGRhdGVUaWx0Q2IsXG4gICAgdW5kZWZpbmVkLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgcm91bmQ6IGZhbHNlLFxuICAgICAgZ3lyb0VuYWJsZWQ6IGZhbHNlLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgY2lyY2xlc0NvbmZpZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGJhc2VTaXplID0gTWF0aC5taW4oZC53aWR0aCwgZC5oZWlnaHQpICogMC4xNTtcbiAgICByZXR1cm4gbmV3IEFycmF5KDEwKS5maWxsKHVuZGVmaW5lZCkubWFwKChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBtb2QgPSBpICUgMjtcbiAgICAgIGNvbnN0IHN0YXJ0WCA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLndpZHRoICogMC41ICsgKG1vZCA9PT0gMCA/IDAgOiBkLndpZHRoICogMC41KTtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZVggPSBzdGFydFggLSAoc3RhcnRYICsgNTAgKyBNYXRoLnJhbmRvbSgpICogMjAwKTtcbiAgICAgIGNvbnN0IHN0YXJ0WSA9XG4gICAgICAgIE1hdGgucmFuZG9tKCkgKiBkLmhlaWdodCAqIDAuNzUgKyAobW9kID09PSAwID8gMCA6IGQuaGVpZ2h0ICogMC4yNSk7XG4gICAgICBjb25zdCB0cmFuc2xhdGVZID0gc3RhcnRZIC0gKHN0YXJ0WSArIDUwICsgTWF0aC5yYW5kb20oKSAqIDIwMCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhc2VTaXplLFxuICAgICAgICBzdGFydFgsXG4gICAgICAgIHN0YXJ0WSxcbiAgICAgICAgdHJhbnNsYXRlWCxcbiAgICAgICAgdHJhbnNsYXRlWSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0sIFtkXSk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWxhdGl2ZVRvLFxuICAgIGQsXG4gICAgY2lyY2xlc0NvbmZpZyxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUE0QyxTQUFBSSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUU1QyxNQUFNRyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0YsWUFBWSxDQUFDO0FBQ3pDLE1BQU1HLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUdGLE1BQU0sQ0FBQ0MsdUJBQU0sQ0FBQ0Msb0JBQW9CLENBQUM7QUFFeEQsU0FBU0UsZ0JBQWdCQSxDQUN0Q0MsZ0JBQWdELEVBQ2hEQyxZQUFvQyxFQUNwQztFQUNBLE1BQU0sQ0FBQ0MsQ0FBQyxFQUFFQyxNQUFN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
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = LavaLamp;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _LavaLamp = _interopRequireDefault(require("./LavaLamp.data"));
9
+ var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ /**
14
+ * This component creates a calming visual effect that looks like a lava lamp, with floating bubbles that move around smoothly.
15
+ */
16
+ function LavaLamp(_ref) {
17
+ let {
18
+ className,
19
+ children
20
+ } = _ref;
21
+ const circleRef = (0, _react.useRef)(null);
22
+ const {
23
+ relativeTo,
24
+ d,
25
+ circlesConfig
26
+ } = (0, _LavaLamp.default)((cx, cy) => {
27
+ const style = circleRef.current.style;
28
+ style.cx = cx;
29
+ style.cy = cy;
30
+ }, size => {
31
+ const style = circleRef.current.style;
32
+ style.r = size;
33
+ });
34
+ const randomCircles = (0, _react.useMemo)(() => {
35
+ return circlesConfig.map(_ref2 => {
36
+ let {
37
+ baseSize,
38
+ startX,
39
+ startY,
40
+ translateX,
41
+ translateY
42
+ } = _ref2;
43
+ return /*#__PURE__*/_react.default.createElement("circle", {
44
+ r: baseSize + Math.random() * (baseSize / 2),
45
+ fill: "#fff",
46
+ cx: startX,
47
+ cy: startY
48
+ }, /*#__PURE__*/_react.default.createElement("animateTransform", {
49
+ additive: "sum",
50
+ attributeName: "transform",
51
+ attributeType: "XML",
52
+ type: "translate",
53
+ values: "0 0; ".concat(translateX, " ").concat(translateY, "; 0 0;"),
54
+ dur: "".concat(5 + Math.random() * 5, "s"),
55
+ repeatCount: "indefinite"
56
+ }));
57
+ });
58
+ }, [circlesConfig]);
59
+ return /*#__PURE__*/_react.default.createElement("div", {
60
+ ref: relativeTo,
61
+ className: "".concat(_LavaLampModule.default.root, " ").concat(className)
62
+ }, d && /*#__PURE__*/_react.default.createElement("svg", {
63
+ className: _LavaLampModule.default.effect,
64
+ viewBox: "0 0 ".concat(d.width, " ").concat(d.height)
65
+ }, /*#__PURE__*/_react.default.createElement("filter", {
66
+ id: "goo-lava-lamp",
67
+ width: "10",
68
+ height: "10",
69
+ x: "0%",
70
+ y: "0%",
71
+ filterRes: "1"
72
+ }, /*#__PURE__*/_react.default.createElement("feGaussianBlur", {
73
+ in: "SourceGraphic",
74
+ result: "blur",
75
+ stdDeviation: "40"
76
+ }), /*#__PURE__*/_react.default.createElement("feColorMatrix", {
77
+ in: "blur",
78
+ mode: "matrix",
79
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -7",
80
+ result: "goo"
81
+ })), /*#__PURE__*/_react.default.createElement("mask", {
82
+ id: "mask-lava-lamp"
83
+ }, /*#__PURE__*/_react.default.createElement("g", {
84
+ filter: "url(#".concat("goo-lava-lamp", ")"),
85
+ fill: "#fff"
86
+ }, randomCircles, /*#__PURE__*/_react.default.createElement("circle", {
87
+ ref: circleRef,
88
+ fill: "#fff"
89
+ }))), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("radialGradient", {
90
+ id: "grad1",
91
+ cx: "50%",
92
+ cy: "50%",
93
+ r: "50%",
94
+ fx: "50%",
95
+ fy: "50%"
96
+ }, /*#__PURE__*/_react.default.createElement("stop", {
97
+ offset: "0%",
98
+ style: {
99
+ stopColor: "var(--lava-lamp-color-a)",
100
+ stopOpacity: 1
101
+ }
102
+ }), /*#__PURE__*/_react.default.createElement("stop", {
103
+ offset: "67.33%",
104
+ style: {
105
+ stopColor: "var(--lava-lamp-color-b)",
106
+ stopOpacity: 1
107
+ }
108
+ }), /*#__PURE__*/_react.default.createElement("stop", {
109
+ offset: "88.33%",
110
+ style: {
111
+ stopColor: "var(--lava-lamp-color-c)",
112
+ stopOpacity: 1
113
+ }
114
+ }))), /*#__PURE__*/_react.default.createElement("rect", {
115
+ x: "-50%",
116
+ y: "-50%",
117
+ mask: "url(#".concat("mask-lava-lamp", ")"),
118
+ width: "200%",
119
+ height: "200%",
120
+ style: {
121
+ fill: "url(#grad1)"
122
+ }
123
+ })), /*#__PURE__*/_react.default.createElement("div", null, children));
124
+ }
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfTGF2YUxhbXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0xhdmFMYW1wTW9kdWxlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkxhdmFMYW1wIiwiX3JlZiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiY2lyY2xlUmVmIiwidXNlUmVmIiwicmVsYXRpdmVUbyIsImQiLCJjaXJjbGVzQ29uZmlnIiwidXNlTGF2YUxhbXBTZXR1cCIsImN4IiwiY3kiLCJzdHlsZSIsImN1cnJlbnQiLCJzaXplIiwiciIsInJhbmRvbUNpcmNsZXMiLCJ1c2VNZW1vIiwibWFwIiwiX3JlZjIiLCJiYXNlU2l6ZSIsInN0YXJ0WCIsInN0YXJ0WSIsInRyYW5zbGF0ZVgiLCJ0cmFuc2xhdGVZIiwiY3JlYXRlRWxlbWVudCIsIk1hdGgiLCJyYW5kb20iLCJmaWxsIiwiYWRkaXRpdmUiLCJhdHRyaWJ1dGVOYW1lIiwiYXR0cmlidXRlVHlwZSIsInR5cGUiLCJ2YWx1ZXMiLCJjb25jYXQiLCJkdXIiLCJyZXBlYXRDb3VudCIsInJlZiIsIlN0eWxlcyIsInJvb3QiLCJlZmZlY3QiLCJ2aWV3Qm94Iiwid2lkdGgiLCJoZWlnaHQiLCJpZCIsIngiLCJ5IiwiZmlsdGVyUmVzIiwiaW4iLCJyZXN1bHQiLCJzdGREZXZpYXRpb24iLCJtb2RlIiwiZmlsdGVyIiwiZngiLCJmeSIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwibWFzayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xhdmFMYW1wL0xhdmFMYW1wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZUxhdmFMYW1wU2V0dXAgZnJvbSBcIi4vTGF2YUxhbXAuZGF0YVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuXG50eXBlIExhdmFMYW1wUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBmb3IgZGVmaW5pbmcgdGhlIGRpbWVuc2lvbnMgdGhlIGxhdmEgbGFtcCBzaG91bGQgaGF2ZVxuICAgKi9cbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNyZWF0ZXMgYSBjYWxtaW5nIHZpc3VhbCBlZmZlY3QgdGhhdCBsb29rcyBsaWtlIGEgbGF2YSBsYW1wLCB3aXRoIGZsb2F0aW5nIGJ1YmJsZXMgdGhhdCBtb3ZlIGFyb3VuZCBzbW9vdGhseS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGF2YUxhbXAoe1xuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48TGF2YUxhbXBQcm9wcz4pIHtcbiAgY29uc3QgY2lyY2xlUmVmID0gdXNlUmVmPFNWR0NpcmNsZUVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHsgcmVsYXRpdmVUbywgZCwgY2lyY2xlc0NvbmZpZyB9ID0gdXNlTGF2YUxhbXBTZXR1cChcbiAgICAoY3gsIGN5KSA9PiB7XG4gICAgICBjb25zdCBzdHlsZTogYW55ID0gY2lyY2xlUmVmLmN1cnJlbnQhLnN0eWxlO1xuICAgICAgc3R5bGUuY3ggPSBjeDtcbiAgICAgIHN0eWxlLmN5ID0gY3k7XG4gICAgfSxcbiAgICAoc2l6ZSkgPT4ge1xuICAgICAgY29uc3Qgc3R5bGU6IGFueSA9IGNpcmNsZVJlZi5jdXJyZW50IS5zdHlsZTtcbiAgICAgIHN0eWxlLnIgPSBzaXplO1xuICAgIH1cbiAgKTtcblxuICBjb25zdCByYW5kb21DaXJjbGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGNpcmNsZXNDb25maWcubWFwKFxuICAgICAgKHsgYmFzZVNpemUsIHN0YXJ0WCwgc3RhcnRZLCB0cmFuc2xhdGVYLCB0cmFuc2xhdGVZIH0pID0+IChcbiAgICAgICAgPGNpcmNsZVxuICAgICAgICAgIHI9e2Jhc2VTaXplICsgTWF0aC5yYW5kb20oKSAqIChiYXNlU2l6ZSAvIDIpfVxuICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICBjeD17c3RhcnRYfVxuICAgICAgICAgIGN5PXtzdGFydFl9XG4gICAgICAgID5cbiAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgICAgYWRkaXRpdmU9XCJzdW1cIlxuICAgICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgICBhdHRyaWJ1dGVUeXBlPVwiWE1MXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0cmFuc2xhdGVcIlxuICAgICAgICAgICAgdmFsdWVzPXtgMCAwOyAke3RyYW5zbGF0ZVh9ICR7dHJhbnNsYXRlWX07IDAgMDtgfVxuICAgICAgICAgICAgZHVyPXtgJHs1ICsgTWF0aC5yYW5kb20oKSAqIDV9c2B9XG4gICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvY2lyY2xlPlxuICAgICAgKVxuICAgICk7XG4gIH0sIFtjaXJjbGVzQ29uZmlnXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cmVsYXRpdmVUb30gY2xhc3NOYW1lPXtgJHtTdHlsZXMucm9vdH0gJHtjbGFzc05hbWV9YH0+XG4gICAgICB7ZCAmJiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPXtTdHlsZXMuZWZmZWN0fSB2aWV3Qm94PXtgMCAwICR7ZC53aWR0aH0gJHtkLmhlaWdodH1gfT5cbiAgICAgICAgICA8ZmlsdGVyXG4gICAgICAgICAgICBpZD17YGdvby1sYXZhLWxhbXBgfVxuICAgICAgICAgICAgd2lkdGg9XCIxMFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxMFwiXG4gICAgICAgICAgICB4PVwiMCVcIlxuICAgICAgICAgICAgeT1cIjAlXCJcbiAgICAgICAgICAgIGZpbHRlclJlcz1cIjFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1clxuICAgICAgICAgICAgICBpbj1cIlNvdXJjZUdyYXBoaWNcIlxuICAgICAgICAgICAgICByZXN1bHQ9XCJibHVyXCJcbiAgICAgICAgICAgICAgc3RkRGV2aWF0aW9uPVwiNDBcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4XG4gICAgICAgICAgICAgIGluPVwiYmx1clwiXG4gICAgICAgICAgICAgIG1vZGU9XCJtYXRyaXhcIlxuICAgICAgICAgICAgICB2YWx1ZXM9XCIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCA1MCAtN1wiXG4gICAgICAgICAgICAgIHJlc3VsdD1cImdvb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgIDxtYXNrIGlkPXtgbWFzay1sYXZhLWxhbXBgfT5cbiAgICAgICAgICAgIDxnIGZpbHRlcj17YHVybCgjJHtgZ29vLWxhdmEtbGFtcGB9KWB9IGZpbGw9XCIjZmZmXCI+XG4gICAgICAgICAgICAgIHtyYW5kb21DaXJjbGVzfVxuICAgICAgICAgICAgICA8Y2lyY2xlIHJlZj17Y2lyY2xlUmVmfSBmaWxsPVwiI2ZmZlwiIC8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgPC9tYXNrPlxuICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPHJhZGlhbEdyYWRpZW50XG4gICAgICAgICAgICAgIGlkPVwiZ3JhZDFcIlxuICAgICAgICAgICAgICBjeD1cIjUwJVwiXG4gICAgICAgICAgICAgIGN5PVwiNTAlXCJcbiAgICAgICAgICAgICAgcj1cIjUwJVwiXG4gICAgICAgICAgICAgIGZ4PVwiNTAlXCJcbiAgICAgICAgICAgICAgZnk9XCI1MCVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3RvcFxuICAgICAgICAgICAgICAgIG9mZnNldD1cIjAlXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgc3RvcENvbG9yOiBcInZhcigtLWxhdmEtbGFtcC1jb2xvci1hKVwiLFxuICAgICAgICAgICAgICAgICAgc3RvcE9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHN0b3BcbiAgICAgICAgICAgICAgICBvZmZzZXQ9XCI2Ny4zMyVcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBzdG9wQ29sb3I6IFwidmFyKC0tbGF2YS1sYW1wLWNvbG9yLWIpXCIsXG4gICAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3RvcFxuICAgICAgICAgICAgICAgIG9mZnNldD1cIjg4LjMzJVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHN0b3BDb2xvcjogXCJ2YXIoLS1sYXZhLWxhbXAtY29sb3ItYylcIixcbiAgICAgICAgICAgICAgICAgIHN0b3BPcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3JhZGlhbEdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAgeD1cIi01MCVcIlxuICAgICAgICAgICAgeT1cIi01MCVcIlxuICAgICAgICAgICAgbWFzaz17YHVybCgjJHtgbWFzay1sYXZhLWxhbXBgfSlgfVxuICAgICAgICAgICAgd2lkdGg9XCIyMDAlXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjIwMCVcIlxuICAgICAgICAgICAgc3R5bGU9e3sgZmlsbDogXCJ1cmwoI2dyYWQxKVwiIH19XG4gICAgICAgICAgPjwvcmVjdD5cbiAgICAgICAgPC9zdmc+XG4gICAgICApfVxuICAgICAgPGRpdj57Y2hpbGRyZW59PC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUE0QyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBSyxHQUFBLEVBQUFJLFdBQUEsU0FBQUEsV0FBQSxJQUFBSixHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBUSxLQUFBLEdBQUFMLHdCQUFBLENBQUFDLFdBQUEsT0FBQUksS0FBQSxJQUFBQSxLQUFB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
@@ -0,0 +1,26 @@
1
+ @use 'sass:math';
2
+
3
+ $transitionMs: math.div(1000, 5);
4
+ $transitionPositionMs: math.div($transitionMs, 2);
5
+ @value transitionMs #{$transitionMs};
6
+ @value transitionPositionMs #{$transitionPositionMs};
7
+
8
+ .root {
9
+ position: relative;
10
+ svg.effect {
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ bottom: 0;
15
+ right: 0;
16
+ circle {
17
+ will-change: r, cx, cy;
18
+ transition: r #{$transitionMs}ms linear,
19
+ cx #{$transitionPositionMs}ms linear,
20
+ cy #{$transitionPositionMs}ms linear;
21
+ }
22
+ }
23
+ > div {
24
+ z-index: 1;
25
+ }
26
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _LavaLamp.default;
11
+ }
12
+ });
13
+ var _LavaLamp = _interopRequireWildcard(require("./LavaLamp"));
14
+ Object.keys(_LavaLamp).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _LavaLamp[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _LavaLamp[key];
22
+ }
23
+ });
24
+ });
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTGF2YUxhbXAiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xhdmFMYW1wL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4vTGF2YUxhbXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0xhdmFMYW1wXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLFNBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixTQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLFNBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUEyQixTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = LavaLamp;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _useMergeRefs = _interopRequireDefault(require("../../../hooks/useMergeRefs"));
9
+ var _LavaLamp = _interopRequireWildcard(require("../LavaLamp.data"));
10
+ var _LavaLampModule = _interopRequireDefault(require("./LavaLamp.module.scss"));
11
+ var _Orbs = require("../../../models/Orbs");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ function LavaLamp(_ref) {
16
+ let {
17
+ className,
18
+ children
19
+ } = _ref;
20
+ const guideConfig = (0, _react.useRef)({
21
+ size: 0,
22
+ sizeTimestamp: Date.now(),
23
+ sizeIncrement: 0,
24
+ x: 0,
25
+ y: 0,
26
+ posTimestamp: Date.now(),
27
+ posIncrement: [0, 0]
28
+ });
29
+ const {
30
+ relativeTo,
31
+ circlesConfig,
32
+ d
33
+ } = (0, _LavaLamp.default)((x, y) => {
34
+ guideConfig.current.posIncrement = [x - guideConfig.current.x, y - guideConfig.current.y];
35
+ guideConfig.current.x = x;
36
+ guideConfig.current.y = y;
37
+ guideConfig.current.posTimestamp = Date.now();
38
+ }, _size => {
39
+ const size = _size * 1.2;
40
+ guideConfig.current.sizeIncrement = guideConfig.current.size === 0 ? 0 : size - guideConfig.current.size;
41
+ guideConfig.current.size = size;
42
+ guideConfig.current.sizeTimestamp = Date.now();
43
+ });
44
+ const _canvasRef = (0, _react.useRef)(null);
45
+ const canvasRef = (0, _useMergeRefs.default)(_canvasRef, relativeTo);
46
+ (0, _react.useEffect)(() => {
47
+ if (!d) return;
48
+ const fc = canvasRef.current;
49
+ const baseColor = getComputedStyle(relativeTo.current).getPropertyValue("--digital-blue") || "#000000";
50
+ var c = document.createElement("canvas"),
51
+ w = c.width = fc.width = d.width,
52
+ h = c.height = fc.height = d.height,
53
+ ctx = c.getContext("2d"),
54
+ fctx = fc.getContext("2d"),
55
+ // f means final
56
+ opts = {
57
+ orbCount: circlesConfig.length,
58
+ baseVel: Math.max(d.width * 0.001, 1),
59
+ addedVel: Math.max(d.width * 0.001, 1),
60
+ alphaThreshold: 200
61
+ },
62
+ orbs = [];
63
+ class CanvasOrbDrawer {
64
+ newGradient(color, radius) {
65
+ const gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, radius);
66
+ gradient.addColorStop(0, "".concat(color, "ff"));
67
+ gradient.addColorStop(0.8, "".concat(color, "cc"));
68
+ gradient.addColorStop(1, "".concat(color, "00"));
69
+ return gradient;
70
+ }
71
+ oldDrawCircle(x, y, radius) {
72
+ var _this$gradient;
73
+ ctx.fillStyle = (_this$gradient = this.gradient) !== null && _this$gradient !== void 0 ? _this$gradient : this.newGradient(baseColor, radius);
74
+ ctx.translate(x | 0, y | 0);
75
+ ctx.beginPath();
76
+ ctx.arc(0, 0, radius, 0, Math.PI * 2);
77
+ ctx.fill();
78
+ ctx.translate(-x | 0, -y | 0);
79
+ }
80
+ drawOrb(x, y, radius) {
81
+ this.oldDrawCircle(x, y, radius);
82
+ }
83
+ constructor(gradientRadius) {
84
+ if (gradientRadius) this.gradient = this.newGradient(baseColor, gradientRadius);
85
+ }
86
+ }
87
+ let animFrame;
88
+ function anim() {
89
+ animFrame = window.requestAnimationFrame(anim);
90
+ ctx.clearRect(0, 0, w, h);
91
+ fctx.fillStyle = "#0000";
92
+ fctx.fillRect(0, 0, w, h);
93
+ for (var i = 0; i < orbs.length; i++) {
94
+ const thisOrb = orbs[i];
95
+ if (thisOrb instanceof _Orbs.Orb) {
96
+ thisOrb.step();
97
+ } else {
98
+ thisOrb.step(guideConfig.current.size, guideConfig.current.sizeIncrement, guideConfig.current.sizeTimestamp, guideConfig.current.posTimestamp, guideConfig.current, {
99
+ x: guideConfig.current.posIncrement[0],
100
+ y: guideConfig.current.posIncrement[1]
101
+ });
102
+ }
103
+ }
104
+ var image = ctx.getImageData(0, 0, w, h),
105
+ data = new Uint8Array(image.data.buffer);
106
+ for (var i = 3; i < data.length; i += 4) data[i] /= data[i] < opts.alphaThreshold ? 6 : 1;
107
+ fctx.putImageData(image, 0, 0);
108
+ }
109
+ function randomVelocity() {
110
+ return opts.baseVel + opts.addedVel * Math.random() | 0;
111
+ }
112
+ const orbBounds = {
113
+ width: w,
114
+ height: h
115
+ };
116
+ for (let circleConfig of circlesConfig) {
117
+ const radius = circleConfig.baseSize * 1.5;
118
+ const randomRadius = radius + radius / 2 * Math.random() | 0;
119
+ const drawerInstance = new CanvasOrbDrawer(randomRadius);
120
+ orbs.push(new _Orbs.Orb(drawerInstance, randomVelocity(), orbBounds, randomRadius));
121
+ }
122
+ const guideOrbInstance = new _Orbs.GuideOrb(new CanvasOrbDrawer(), _LavaLamp.transitionPositionMs);
123
+ let guideOrbAutoInstance;
124
+ orbs.push(guideOrbInstance);
125
+ canvasRef.current.parentElement.onmouseleave = () => {
126
+ const indexOfGuide = orbs.indexOf(guideOrbInstance);
127
+ if (indexOfGuide !== -1) {
128
+ const drawerInstance = new CanvasOrbDrawer(guideOrbInstance.lastRadius);
129
+ guideOrbAutoInstance = new _Orbs.Orb(drawerInstance, randomVelocity(), orbBounds, guideOrbInstance.lastRadius);
130
+ guideOrbAutoInstance.radius = guideOrbInstance.lastRadius;
131
+ guideOrbAutoInstance.x = guideOrbInstance.lastX;
132
+ guideOrbAutoInstance.y = guideOrbInstance.lastY;
133
+ orbs.splice(indexOfGuide, 1);
134
+ orbs.push(guideOrbAutoInstance);
135
+ }
136
+ };
137
+ canvasRef.current.parentElement.onmouseenter = () => {
138
+ if (orbs.indexOf(guideOrbInstance) === -1) {
139
+ orbs.push(guideOrbInstance);
140
+ orbs.splice(orbs.indexOf(guideOrbAutoInstance), 1);
141
+ }
142
+ };
143
+ anim();
144
+ return () => {
145
+ window.cancelAnimationFrame(animFrame);
146
+ };
147
+ }, [circlesConfig]);
148
+ return /*#__PURE__*/_react.default.createElement("div", {
149
+ className: "".concat(className, " ").concat(_LavaLampModule.default.root)
150
+ }, /*#__PURE__*/_react.default.createElement("canvas", {
151
+ ref: canvasRef
152
+ }), /*#__PURE__*/_react.default.createElement("div", null, children));
153
+ }
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWVyZ2VSZWZzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9MYXZhTGFtcCIsIl9MYXZhTGFtcE1vZHVsZSIsIl9PcmJzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkxhdmFMYW1wIiwiX3JlZiIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiZ3VpZGVDb25maWciLCJ1c2VSZWYiLCJzaXplIiwic2l6ZVRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJzaXplSW5jcmVtZW50IiwieCIsInkiLCJwb3NUaW1lc3RhbXAiLCJwb3NJbmNyZW1lbnQiLCJyZWxhdGl2ZVRvIiwiY2lyY2xlc0NvbmZpZyIsImQiLCJ1c2VMYXZhTGFtcFNldHVwIiwiY3VycmVudCIsIl9zaXplIiwiX2NhbnZhc1JlZiIsImNhbnZhc1JlZiIsInVzZU1lcmdlUmVmcyIsInVzZUVmZmVjdCIsImZjIiwiYmFzZUNvbG9yIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldFByb3BlcnR5VmFsdWUiLCJjIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidyIsIndpZHRoIiwiaCIsImhlaWdodCIsImN0eCIsImdldENvbnRleHQiLCJmY3R4Iiwib3B0cyIsIm9yYkNvdW50IiwibGVuZ3RoIiwiYmFzZVZlbCIsIk1hdGgiLCJtYXgiLCJhZGRlZFZlbCIsImFscGhhVGhyZXNob2xkIiwib3JicyIsIkNhbnZhc09yYkRyYXdlciIsIm5ld0dyYWRpZW50IiwiY29sb3IiLCJyYWRpdXMiLCJncmFkaWVudCIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwiY29uY2F0Iiwib2xkRHJhd0NpcmNsZSIsIl90aGlzJGdyYWRpZW50IiwiZmlsbFN0eWxlIiwidHJhbnNsYXRlIiwiYmVnaW5QYXRoIiwiYXJjIiwiUEkiLCJmaWxsIiwiZHJhd09yYiIsImNvbnN0cnVjdG9yIiwiZ3JhZGllbnRSYWRpdXMiLCJhbmltRnJhbWUiLCJhbmltIiwid2luZG93IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2xlYXJSZWN0IiwiZmlsbFJlY3QiLCJpIiwidGhpc09yYiIsIk9yYiIsInN0ZXAiLCJpbWFnZSIsImdldEltYWdlRGF0YSIsImRhdGEiLCJVaW50OEFycmF5IiwiYnVmZmVyIiwicHV0SW1hZ2VEYXRhIiwicmFuZG9tVmVsb2NpdHkiLCJyYW5kb20iLCJvcmJCb3VuZHMiLCJjaXJjbGVDb25maWciLCJiYXNlU2l6ZSIsInJhbmRvbVJhZGl1cyIsImRyYXdlckluc3RhbmNlIiwicHVzaCIsImd1aWRlT3JiSW5zdGFuY2UiLCJHdWlkZU9yYiIsInRyYW5zaXRpb25Qb3NpdGlvbk1zIiwiZ3VpZGVPcmJBdXRvSW5zdGFuY2UiLCJwYXJlbnRFbGVtZW50Iiwib25tb3VzZWxlYXZlIiwiaW5kZXhPZkd1aWRlIiwiaW5kZXhPZiIsImxhc3RSYWRpdXMiLCJsYXN0WCIsImxhc3RZIiwic3BsaWNlIiwib25tb3VzZWVudGVyIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJTdHlsZXMiLCJyb290IiwicmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGF2YUxhbXAvdjIvTGF2YUxhbXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VNZXJnZVJlZnMgZnJvbSBcIi4uLy4uLy4uL2hvb2tzL3VzZU1lcmdlUmVmc1wiO1xuaW1wb3J0IHVzZUxhdmFMYW1wU2V0dXAsIHsgdHJhbnNpdGlvblBvc2l0aW9uTXMgfSBmcm9tIFwiLi4vTGF2YUxhbXAuZGF0YVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MYXZhTGFtcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgR3VpZGVPcmIsIE9yYiwgT3JiRHJhd2VyIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9PcmJzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExhdmFMYW1wKHtcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbn06IFByb3BzV2l0aENoaWxkcmVuPHsgY2xhc3NOYW1lOiBzdHJpbmcgfT4pIHtcbiAgY29uc3QgZ3VpZGVDb25maWcgPSB1c2VSZWY8e1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgcG9zVGltZXN0YW1wOiBudW1iZXI7XG4gICAgcG9zSW5jcmVtZW50OiBbeDogbnVtYmVyLCB5OiBudW1iZXJdO1xuXG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHNpemVUaW1lc3RhbXA6IG51bWJlcjtcbiAgICBzaXplSW5jcmVtZW50OiBudW1iZXI7XG4gIH0+KHtcbiAgICBzaXplOiAwLFxuICAgIHNpemVUaW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgc2l6ZUluY3JlbWVudDogMCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgcG9zVGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgIHBvc0luY3JlbWVudDogWzAsIDBdLFxuICB9KTtcbiAgY29uc3QgeyByZWxhdGl2ZVRvLCBjaXJjbGVzQ29uZmlnLCBkIH0gPSB1c2VMYXZhTGFtcFNldHVwKFxuICAgICh4LCB5KSA9PiB7XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnBvc0luY3JlbWVudCA9IFtcbiAgICAgICAgeCAtIGd1aWRlQ29uZmlnLmN1cnJlbnQueCxcbiAgICAgICAgeSAtIGd1aWRlQ29uZmlnLmN1cnJlbnQueSxcbiAgICAgIF07XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnggPSB4O1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC55ID0geTtcbiAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQucG9zVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9LFxuICAgIChfc2l6ZSkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IF9zaXplICogMS4yO1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplSW5jcmVtZW50ID1cbiAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplID09PSAwID8gMCA6IHNpemUgLSBndWlkZUNvbmZpZy5jdXJyZW50LnNpemU7XG4gICAgICBndWlkZUNvbmZpZy5jdXJyZW50LnNpemUgPSBzaXplO1xuICAgICAgZ3VpZGVDb25maWcuY3VycmVudC5zaXplVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IF9jYW52YXNSZWYgPSB1c2VSZWY8SFRNTENhbnZhc0VsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjYW52YXNSZWYgPSB1c2VNZXJnZVJlZnMoXG4gICAgX2NhbnZhc1JlZixcbiAgICByZWxhdGl2ZVRvIGFzIHVua25vd24gYXMgdHlwZW9mIF9jYW52YXNSZWZcbiAgKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWQpIHJldHVybjtcbiAgICBjb25zdCBmYyA9IGNhbnZhc1JlZi5jdXJyZW50ITtcblxuICAgIGNvbnN0IGJhc2VDb2xvciA9XG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHJlbGF0aXZlVG8uY3VycmVudCEpLmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAgIFwiLS1kaWdpdGFsLWJsdWVcIlxuICAgICAgKSB8fCBcIiMwMDAwMDBcIjtcblxuICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSxcbiAgICAgIHcgPSAoYy53aWR0aCA9IGZjLndpZHRoID0gZC53aWR0aCksXG4gICAgICBoID0gKGMuaGVpZ2h0ID0gZmMuaGVpZ2h0ID0gZC5oZWlnaHQpLFxuICAgICAgY3R4ID0gYy5nZXRDb250ZXh0KFwiMmRcIikhLFxuICAgICAgZmN0eCA9IGZjLmdldENvbnRleHQoXCIyZFwiKSEsIC8vIGYgbWVhbnMgZmluYWxcbiAgICAgIG9wdHMgPSB7XG4gICAgICAgIG9yYkNvdW50OiBjaXJjbGVzQ29uZmlnLmxlbmd0aCxcbiAgICAgICAgYmFzZVZlbDogTWF0aC5tYXgoZC53aWR0aCAqIDAuMDAxLCAxKSxcbiAgICAgICAgYWRkZWRWZWw6IE1hdGgubWF4KGQud2lkdGggKiAwLjAwMSwgMSksXG5cbiAgICAgICAgYWxwaGFUaHJlc2hvbGQ6IDIwMCxcbiAgICAgIH0sXG4gICAgICBvcmJzID0gW10gYXMgKE9yYiB8IEd1aWRlT3JiKVtdO1xuICAgIGNsYXNzIENhbnZhc09yYkRyYXdlciBpbXBsZW1lbnRzIE9yYkRyYXdlciB7XG4gICAgICBwcm90ZWN0ZWQgZ3JhZGllbnQ/OiBDYW52YXNHcmFkaWVudDtcblxuICAgICAgcHJpdmF0ZSBuZXdHcmFkaWVudChjb2xvcjogc3RyaW5nLCByYWRpdXM6IG51bWJlcikge1xuICAgICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVSYWRpYWxHcmFkaWVudCgwLCAwLCAwLCAwLCAwLCByYWRpdXMpO1xuICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwgYCR7Y29sb3J9ZmZgKTtcbiAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAuOCwgYCR7Y29sb3J9Y2NgKTtcbiAgICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsIGAke2NvbG9yfTAwYCk7XG5cbiAgICAgICAgcmV0dXJuIGdyYWRpZW50O1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIG9sZERyYXdDaXJjbGUoeDogbnVtYmVyLCB5OiBudW1iZXIsIHJhZGl1czogbnVtYmVyKSB7XG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSB0aGlzLmdyYWRpZW50ID8/IHRoaXMubmV3R3JhZGllbnQoYmFzZUNvbG9yLCByYWRpdXMpO1xuICAgICAgICBjdHgudHJhbnNsYXRlKHggfCAwLCB5IHwgMCk7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4LmFyYygwLCAwLCByYWRpdXMsIDAsIE1hdGguUEkgKiAyKTtcbiAgICAgICAgY3R4LmZpbGwoKTtcbiAgICAgICAgY3R4LnRyYW5zbGF0ZSgteCB8IDAsIC15IHwgMCk7XG4gICAgICB9XG4gICAgICBkcmF3T3JiKHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9sZERyYXdDaXJjbGUoeCwgeSwgcmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3RydWN0b3IoZ3JhZGllbnRSYWRpdXM/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGdyYWRpZW50UmFkaXVzKVxuICAgICAgICAgIHRoaXMuZ3JhZGllbnQgPSB0aGlzLm5ld0dyYWRpZW50KGJhc2VDb2xvciwgZ3JhZGllbnRSYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBhbmltRnJhbWU6IG51bWJlcjtcbiAgICBmdW5jdGlvbiBhbmltKCkge1xuICAgICAgYW5pbUZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltKTtcblxuICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3LCBoKTtcbiAgICAgIGZjdHguZmlsbFN0eWxlID0gXCIjMDAwMFwiO1xuICAgICAgZmN0eC5maWxsUmVjdCgwLCAwLCB3LCBoKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRoaXNPcmIgPSBvcmJzW2ldO1xuICAgICAgICBpZiAodGhpc09yYiBpbnN0YW5jZW9mIE9yYikge1xuICAgICAgICAgIHRoaXNPcmIuc3RlcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXNPcmIuc3RlcChcbiAgICAgICAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQhLnNpemUsXG4gICAgICAgICAgICBndWlkZUNvbmZpZy5jdXJyZW50IS5zaXplSW5jcmVtZW50LFxuICAgICAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudCEuc2l6ZVRpbWVzdGFtcCxcbiAgICAgICAgICAgIGd1aWRlQ29uZmlnLmN1cnJlbnQucG9zVGltZXN0YW1wLFxuICAgICAgICAgICAgZ3VpZGVDb25maWcuY3VycmVudCEsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHg6IGd1aWRlQ29uZmlnLmN1cnJlbnQhLnBvc0luY3JlbWVudFswXSxcbiAgICAgICAgICAgICAgeTogZ3VpZGVDb25maWcuY3VycmVudCEucG9zSW5jcmVtZW50WzFdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGltYWdlID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCB3LCBoKSxcbiAgICAgICAgZGF0YSA9IG5ldyBVaW50OEFycmF5KGltYWdlLmRhdGEuYnVmZmVyKTtcblxuICAgICAgZm9yICh2YXIgaSA9IDM7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA0KVxuICAgICAgICBkYXRhW2ldIC89IGRhdGFbaV0gPCBvcHRzLmFscGhhVGhyZXNob2xkID8gNiA6IDE7XG5cbiAgICAgIGZjdHgucHV0SW1hZ2VEYXRhKGltYWdlLCAwLCAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByYW5kb21WZWxvY2l0eSgpIHtcbiAgICAgIHJldHVybiAob3B0cy5iYXNlVmVsICsgb3B0cy5hZGRlZFZlbCAqIE1hdGgucmFuZG9tKCkpIHwgMDtcbiAgICB9XG4gICAgY29uc3Qgb3JiQm91bmRzID0geyB3aWR0aDogdywgaGVpZ2h0OiBoIH07XG5cbiAgICBmb3IgKGxldCBjaXJjbGVDb25maWcgb2YgY2lyY2xlc0NvbmZpZykge1xuICAgICAgY29uc3QgcmFkaXVzID0gY2lyY2xlQ29uZmlnLmJhc2VTaXplICogMS41O1xuICAgICAgY29uc3QgcmFuZG9tUmFkaXVzID0gKHJhZGl1cyArIChyYWRpdXMgLyAyKSAqIE1hdGgucmFuZG9tKCkpIHwgMDtcbiAgICAgIGNvbnN0IGRyYXdlckluc3RhbmNlID0gbmV3IENhbnZhc09yYkRyYXdlcihyYW5kb21SYWRpdXMpO1xuICAgICAgb3Jicy5wdXNoKFxuICAgICAgICBuZXcgT3JiKGRyYXdlckluc3RhbmNlLCByYW5kb21WZWxvY2l0eSgpLCBvcmJCb3VuZHMsIHJhbmRvbVJhZGl1cylcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGd1aWRlT3JiSW5zdGFuY2UgPSBuZXcgR3VpZGVPcmIoXG4gICAgICBuZXcgQ2FudmFzT3JiRHJhd2VyKCksXG4gICAgICB0cmFuc2l0aW9uUG9zaXRpb25Nc1xuICAgICk7XG4gICAgbGV0IGd1aWRlT3JiQXV0b0luc3RhbmNlOiBPcmI7XG4gICAgb3Jicy5wdXNoKGd1aWRlT3JiSW5zdGFuY2UpO1xuXG4gICAgY2FudmFzUmVmLmN1cnJlbnQhLnBhcmVudEVsZW1lbnQhLm9ubW91c2VsZWF2ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4T2ZHdWlkZSA9IG9yYnMuaW5kZXhPZihndWlkZU9yYkluc3RhbmNlKTtcbiAgICAgIGlmIChpbmRleE9mR3VpZGUgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGRyYXdlckluc3RhbmNlID0gbmV3IENhbnZhc09yYkRyYXdlcihndWlkZU9yYkluc3RhbmNlLmxhc3RSYWRpdXMpO1xuICAgICAgICBndWlkZU9yYkF1dG9JbnN0YW5jZSA9IG5ldyBPcmIoXG4gICAgICAgICAgZHJhd2VySW5zdGFuY2UsXG4gICAgICAgICAgcmFuZG9tVmVsb2NpdHkoKSxcbiAgICAgICAgICBvcmJCb3VuZHMsXG4gICAgICAgICAgZ3VpZGVPcmJJbnN0YW5jZS5sYXN0UmFkaXVzXG4gICAgICAgICk7XG4gICAgICAgIGd1aWRlT3JiQXV0b0luc3RhbmNlLnJhZGl1cyA9IGd1aWRlT3JiSW5zdGFuY2UubGFzdFJhZGl1cztcbiAgICAgICAgZ3VpZGVPcmJBdXRvSW5zdGFuY2UueCA9IGd1aWRlT3JiSW5zdGFuY2UubGFzdFg7XG4gICAgICAgIGd1aWRlT3JiQXV0b0luc3RhbmNlLnkgPSBndWlkZU9yYkluc3RhbmNlLmxhc3RZO1xuICAgICAgICBvcmJzLnNwbGljZShpbmRleE9mR3VpZGUsIDEpO1xuICAgICAgICBvcmJzLnB1c2goZ3VpZGVPcmJBdXRvSW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgY2FudmFzUmVmLmN1cnJlbnQhLnBhcmVudEVsZW1lbnQhLm9ubW91c2VlbnRlciA9ICgpID0+IHtcbiAgICAgIGlmIChvcmJzLmluZGV4T2YoZ3VpZGVPcmJJbnN0YW5jZSkgPT09IC0xKSB7XG4gICAgICAgIG9yYnMucHVzaChndWlkZU9yYkluc3RhbmNlKTtcbiAgICAgICAgb3Jicy5zcGxpY2Uob3Jicy5pbmRleE9mKGd1aWRlT3JiQXV0b0luc3RhbmNlKSwgMSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFuaW0oKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbUZyYW1lKTtcbiAgICB9O1xuICB9LCBbY2lyY2xlc0NvbmZpZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Ake2NsYXNzTmFtZX0gJHtTdHlsZXMucm9vdH1gfT5cbiAgICAgIDxjYW52YXMgcmVmPXtjYW52YXNSZWZ9IC8+XG4gICAgICA8ZGl2PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FB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
@@ -0,0 +1,23 @@
1
+ @use 'sass:math';
2
+
3
+ $transitionMs: math.div(1000, 5);
4
+ $transitionPositionMs: math.div($transitionMs, 2);
5
+ @value transitionMs #{$transitionMs};
6
+ @value transitionPositionMs #{$transitionPositionMs};
7
+
8
+ .root {
9
+ position: relative;
10
+ > canvas {
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ bottom: 0;
15
+ right: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ }
19
+ > div {
20
+ position: relative;
21
+ z-index: 1;
22
+ }
23
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = LinkToId;
7
+ exports.scrollToId = scrollToId;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _LinkToIdModule = _interopRequireDefault(require("./LinkToId.module.scss"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function scrollToId(id) {
12
+ let shouldScrollToCenter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
13
+ const el = document.getElementById(id);
14
+ if (el) {
15
+ const elStyles = window.getComputedStyle(el);
16
+ const padding = Number(elStyles.paddingTop.replace(/[^0-9]+/g, ""));
17
+ const elementPosition = el.offsetTop;
18
+ const elementHeight = el.clientHeight;
19
+ window.scrollTo({
20
+ behavior: "smooth",
21
+ //Go to element, scroll half the screen height scrollback half the element height
22
+ top: shouldScrollToCenter ? elementPosition + elementHeight / 2 - window.innerHeight / 2 : elementPosition + padding
23
+ });
24
+ }
25
+ }
26
+
27
+ /**
28
+ * This component creates an interactive element that, when clicked, either scrolls to a section on the page or opens a link in a new tab.
29
+ **/
30
+ function LinkToId(_ref) {
31
+ let {
32
+ children,
33
+ id,
34
+ link,
35
+ scrollToCenter = false
36
+ } = _ref;
37
+ return link ? /*#__PURE__*/_react.default.createElement("span", {
38
+ className: _LinkToIdModule.default.root,
39
+ onClick: () => window.open(link, "_blank")
40
+ }, children) : /*#__PURE__*/_react.default.createElement("span", {
41
+ className: _LinkToIdModule.default.root,
42
+ onClick: () => scrollToId(id, scrollToCenter)
43
+ }, children);
44
+ }
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9MaW5rVG9JZE1vZHVsZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwic2Nyb2xsVG9JZCIsImlkIiwic2hvdWxkU2Nyb2xsVG9DZW50ZXIiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJlbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJlbFN0eWxlcyIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJwYWRkaW5nIiwiTnVtYmVyIiwicGFkZGluZ1RvcCIsInJlcGxhY2UiLCJlbGVtZW50UG9zaXRpb24iLCJvZmZzZXRUb3AiLCJlbGVtZW50SGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG8iLCJiZWhhdmlvciIsInRvcCIsImlubmVySGVpZ2h0IiwiTGlua1RvSWQiLCJfcmVmIiwiY2hpbGRyZW4iLCJsaW5rIiwic2Nyb2xsVG9DZW50ZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiU3R5bGVzIiwicm9vdCIsIm9uQ2xpY2siLCJvcGVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTGlua1RvSWQvTGlua1RvSWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9MaW5rVG9JZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgRnJvbU9uZVBlcmNlbnRVdGlsaXR5IH0gZnJvbSBcIi4uLy4uL3R5cGUtdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbFRvSWQoXG4gIGlkOiBGcm9tT25lUGVyY2VudFV0aWxpdHk8J1BhZ2VTZWN0aW9ucyc+LFxuICBzaG91bGRTY3JvbGxUb0NlbnRlcjogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG5cbiAgaWYgKGVsKSB7XG4gICAgY29uc3QgZWxTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG4gICAgY29uc3QgcGFkZGluZyA9IE51bWJlcihlbFN0eWxlcy5wYWRkaW5nVG9wLnJlcGxhY2UoL1teMC05XSsvZywgXCJcIikpO1xuICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IGVsLm9mZnNldFRvcDtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0O1xuXG4gICAgd2luZG93LnNjcm9sbFRvKHtcbiAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgLy9HbyB0byBlbGVtZW50LCBzY3JvbGwgaGFsZiB0aGUgc2NyZWVuIGhlaWdodCBzY3JvbGxiYWNrIGhhbGYgdGhlIGVsZW1lbnQgaGVpZ2h0XG4gICAgICB0b3A6IHNob3VsZFNjcm9sbFRvQ2VudGVyXG4gICAgICAgID8gZWxlbWVudFBvc2l0aW9uICsgZWxlbWVudEhlaWdodCAvIDIgLSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyXG4gICAgICAgIDogZWxlbWVudFBvc2l0aW9uICsgcGFkZGluZyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGNyZWF0ZXMgYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB0aGF0LCB3aGVuIGNsaWNrZWQsIGVpdGhlciBzY3JvbGxzIHRvIGEgc2VjdGlvbiBvbiB0aGUgcGFnZSBvciBvcGVucyBhIGxpbmsgaW4gYSBuZXcgdGFiLlxuICoqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTGlua1RvSWQoe1xuICBjaGlsZHJlbixcbiAgaWQsXG4gIGxpbmssXG4gIHNjcm9sbFRvQ2VudGVyID0gZmFsc2UsXG59OiBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGlkPzogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PCdQYWdlU2VjdGlvbnMnPjtcbiAgbGluaz86IHN0cmluZztcbiAgc2Nyb2xsVG9DZW50ZXI/OiBib29sZWFuO1xufT4pIHtcbiAgcmV0dXJuIGxpbmsgPyAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPXtTdHlsZXMucm9vdH0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4obGluaywgXCJfYmxhbmtcIil9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvc3Bhbj5cbiAgKSA6IChcbiAgICA8c3BhblxuICAgICAgY2xhc3NOYW1lPXtTdHlsZXMucm9vdH1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHNjcm9sbFRvSWQoaWQhLCBzY3JvbGxUb0NlbnRlcil9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvc3Bhbj5cbiAgKTtcbn0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFBNEMsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFHckMsU0FBU0csVUFBVUEsQ0FDeEJDLEVBQXlDLEVBRXpDO0VBQUEsSUFEQUMsb0JBQTZCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7RUFFckMsTUFBTUcsRUFBRSxHQUFHQyxRQUFRLENBQUNDLGNBQWMsQ0FBQ1AsRUFBRSxDQUFDO0VBRXRDLElBQUlLLEVBQUUsRUFBRTtJQUNOLE1BQU1HLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQ0wsRUFBRSxDQUFDO0lBQzVDLE1BQU1NLE9BQU8sR0FBR0MsTUFBTSxDQUFDSixRQUFRLENBQUNLLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRSxNQUFNQyxlQUFlLEdBQUdWLEVBQUUsQ0FBQ1csU0FBUztJQUNwQyxNQUFNQyxhQUFhLEdBQUdaLEVBQUUsQ0FBQ2EsWUFBWTtJQUVyQ1QsTUFBTSxDQUFDVSxRQUFRLENBQUM7TUFDZEMsUUFBUSxFQUFFLFFBQVE7TUFDbEI7TUFDQUMsR0FBRyxFQUFFcEIsb0JBQW9CLEdBQ3JCYyxlQUFlLEdBQUdFLGFBQWEsR0FBRyxDQUFDLEdBQUdSLE1BQU0sQ0FBQ2EsV0FBVyxHQUFHLENBQUMsR0FDNURQLGVBQWUsR0FBR0o7SUFDeEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDZSxTQUFTWSxRQUFRQSxDQUFBQyxJQUFBLEVBUzVCO0VBQUEsSUFUNkI7SUFDL0JDLFFBQVE7SUFDUnpCLEVBQUU7SUFDRjBCLElBQUk7SUFDSkMsY0FBYyxHQUFHO0VBS2xCLENBQUMsR0FBQUgsSUFBQTtFQUNBLE9BQU9FLElBQUksZ0JBQ1RsQyxNQUFBLENBQUFNLE9BQUEsQ0FBQThCLGFBQUE7SUFBTUMsU0FBUyxFQUFFQyx1QkFBTSxDQUFDQyxJQUFLO0lBQUNDLE9BQU8sRUFBRUEsQ0FBQSxLQUFNdkIsTUFBTSxDQUFDd0IsSUFBSSxDQUFDUCxJQUFJLEVBQUUsUUFBUTtFQUFFLEdBQ3RFRCxRQUNHLENBQUMsZ0JBRVBqQyxNQUFBLENBQUFNLE9BQUEsQ0FBQThCLGFBQUE7SUFDRUMsU0FBUyxFQUFFQyx1QkFBTSxDQUFDQyxJQUFLO0lBQ3ZCQyxPQUFPLEVBQUVBLENBQUEsS0FBTWpDLFVBQVUsQ0FBQ0MsRUFBRSxFQUFHMkIsY0FBYztFQUFFLEdBRTlDRixRQUNHLENBQ1A7QUFDSCJ9
@@ -0,0 +1,4 @@
1
+ .root:hover {
2
+ text-decoration: underline;
3
+ cursor: pointer;
4
+ }