@easemate/web-kit 0.2.0 → 0.3.0

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 (437) hide show
  1. package/build/decorators.cjs +921 -0
  2. package/build/decorators.cjs.map +1 -0
  3. package/build/decorators.d.cts +123 -0
  4. package/build/decorators.d.ts +123 -0
  5. package/build/decorators.js +889 -0
  6. package/build/decorators.js.map +1 -0
  7. package/build/elements.cjs +27604 -0
  8. package/build/elements.cjs.map +1 -0
  9. package/build/elements.d.cts +373 -0
  10. package/build/elements.d.ts +373 -0
  11. package/build/elements.js +27528 -0
  12. package/build/elements.js.map +1 -0
  13. package/build/{elements/monitor/index.d.ts → index-31iOHBv0.d.cts} +26 -5
  14. package/build/{elements/monitor/index.d.cts → index-31iOHBv0.d.ts} +26 -5
  15. package/build/{elements/panel/index.d.cts → index-NzGpn7ai.d.cts} +6 -3
  16. package/build/{elements/panel/index.d.ts → index-NzGpn7ai.d.ts} +6 -3
  17. package/build/{elements/state/index.d.ts → index-qZoNKsHn.d.cts} +46 -5
  18. package/build/{elements/state/index.d.cts → index-qZoNKsHn.d.ts} +46 -5
  19. package/build/index.cjs +38651 -38
  20. package/build/index.cjs.map +1 -0
  21. package/build/index.d.cts +85 -6
  22. package/build/index.d.ts +85 -6
  23. package/build/index.js +38535 -12
  24. package/build/index.js.map +1 -0
  25. package/build/init-B7gNNyTd.d.ts +235 -0
  26. package/build/init-DwVGVxkx.d.cts +235 -0
  27. package/build/jsx.cjs +31 -0
  28. package/build/jsx.cjs.map +1 -0
  29. package/build/jsx.d.cts +317 -0
  30. package/build/jsx.d.ts +317 -0
  31. package/build/jsx.js +6 -0
  32. package/build/jsx.js.map +1 -0
  33. package/build/outside-click-rZ3Di_WX.d.cts +16 -0
  34. package/build/outside-click-rZ3Di_WX.d.ts +16 -0
  35. package/build/react.cjs +37827 -0
  36. package/build/react.cjs.map +1 -0
  37. package/build/react.d.cts +356 -0
  38. package/build/react.d.ts +356 -0
  39. package/build/react.js +37802 -0
  40. package/build/react.js.map +1 -0
  41. package/build/register.cjs +35832 -36
  42. package/build/register.cjs.map +1 -0
  43. package/build/register.d.cts +4 -33
  44. package/build/register.d.ts +4 -33
  45. package/build/register.js +35831 -35
  46. package/build/register.js.map +1 -0
  47. package/build/register.server.cjs +19 -0
  48. package/build/register.server.cjs.map +1 -0
  49. package/build/register.server.d.cts +2 -0
  50. package/build/register.server.d.ts +2 -0
  51. package/build/register.server.js +1 -0
  52. package/build/register.server.js.map +1 -0
  53. package/build/registry-9GX9KTG1.d.cts +264 -0
  54. package/build/registry-9GX9KTG1.d.ts +264 -0
  55. package/build/template-helpers-CguLXtLD.d.cts +10 -0
  56. package/build/template-helpers-CguLXtLD.d.ts +10 -0
  57. package/build/theme.cjs +746 -0
  58. package/build/theme.cjs.map +1 -0
  59. package/build/{theme/index.d.cts → theme.d.cts} +41 -21
  60. package/build/{theme/index.d.ts → theme.d.ts} +41 -21
  61. package/build/theme.js +692 -0
  62. package/build/theme.js.map +1 -0
  63. package/build/utils.cjs +205 -0
  64. package/build/utils.cjs.map +1 -0
  65. package/build/utils.d.cts +26 -0
  66. package/build/utils.d.ts +26 -0
  67. package/build/utils.js +167 -0
  68. package/build/utils.js.map +1 -0
  69. package/package.json +47 -33
  70. package/build/components/code/index.cjs +0 -152
  71. package/build/components/code/index.d.cts +0 -11
  72. package/build/components/code/index.d.ts +0 -11
  73. package/build/components/code/index.js +0 -148
  74. package/build/components/code/utils/highlight-api.cjs +0 -18
  75. package/build/components/code/utils/highlight-api.d.cts +0 -7
  76. package/build/components/code/utils/highlight-api.d.ts +0 -7
  77. package/build/components/code/utils/highlight-api.js +0 -14
  78. package/build/components/code/utils/syntax-grammars.cjs +0 -62
  79. package/build/components/code/utils/syntax-grammars.d.cts +0 -7
  80. package/build/components/code/utils/syntax-grammars.d.ts +0 -7
  81. package/build/components/code/utils/syntax-grammars.js +0 -59
  82. package/build/components/code/utils/syntax-highlighter-theme.cjs +0 -27
  83. package/build/components/code/utils/syntax-highlighter-theme.d.cts +0 -3
  84. package/build/components/code/utils/syntax-highlighter-theme.d.ts +0 -3
  85. package/build/components/code/utils/syntax-highlighter-theme.js +0 -23
  86. package/build/components/code/utils/syntax-highlighter-types.cjs +0 -2
  87. package/build/components/code/utils/syntax-highlighter-types.d.cts +0 -12
  88. package/build/components/code/utils/syntax-highlighter-types.d.ts +0 -12
  89. package/build/components/code/utils/syntax-highlighter-types.js +0 -1
  90. package/build/components/code/utils/syntax-tokenizer.cjs +0 -63
  91. package/build/components/code/utils/syntax-tokenizer.d.cts +0 -3
  92. package/build/components/code/utils/syntax-tokenizer.d.ts +0 -3
  93. package/build/components/code/utils/syntax-tokenizer.js +0 -58
  94. package/build/components/curve/bezier-conversion.cjs +0 -23
  95. package/build/components/curve/bezier-conversion.d.cts +0 -2
  96. package/build/components/curve/bezier-conversion.d.ts +0 -2
  97. package/build/components/curve/bezier-conversion.js +0 -19
  98. package/build/components/curve/canvas-controls.cjs +0 -300
  99. package/build/components/curve/canvas-controls.d.cts +0 -12
  100. package/build/components/curve/canvas-controls.d.ts +0 -12
  101. package/build/components/curve/canvas-controls.js +0 -296
  102. package/build/components/curve/canvas.cjs +0 -1208
  103. package/build/components/curve/canvas.d.cts +0 -24
  104. package/build/components/curve/canvas.d.ts +0 -24
  105. package/build/components/curve/canvas.js +0 -1204
  106. package/build/components/curve/constants.cjs +0 -203
  107. package/build/components/curve/constants.d.cts +0 -23
  108. package/build/components/curve/constants.d.ts +0 -23
  109. package/build/components/curve/constants.js +0 -200
  110. package/build/components/curve/controls.cjs +0 -942
  111. package/build/components/curve/controls.d.cts +0 -37
  112. package/build/components/curve/controls.d.ts +0 -37
  113. package/build/components/curve/controls.js +0 -938
  114. package/build/components/curve/index.cjs +0 -335
  115. package/build/components/curve/index.d.cts +0 -31
  116. package/build/components/curve/index.d.ts +0 -31
  117. package/build/components/curve/index.js +0 -330
  118. package/build/components/curve/output.cjs +0 -141
  119. package/build/components/curve/output.d.cts +0 -19
  120. package/build/components/curve/output.d.ts +0 -19
  121. package/build/components/curve/output.js +0 -137
  122. package/build/components/curve/styles.cjs +0 -493
  123. package/build/components/curve/styles.d.cts +0 -6
  124. package/build/components/curve/styles.d.ts +0 -6
  125. package/build/components/curve/styles.js +0 -490
  126. package/build/components/curve/svg-renderer.cjs +0 -185
  127. package/build/components/curve/svg-renderer.d.cts +0 -9
  128. package/build/components/curve/svg-renderer.d.ts +0 -9
  129. package/build/components/curve/svg-renderer.js +0 -175
  130. package/build/components/curve/toolbar.cjs +0 -368
  131. package/build/components/curve/toolbar.d.cts +0 -26
  132. package/build/components/curve/toolbar.d.ts +0 -26
  133. package/build/components/curve/toolbar.js +0 -364
  134. package/build/components/curve/types.cjs +0 -10
  135. package/build/components/curve/types.d.cts +0 -33
  136. package/build/components/curve/types.d.ts +0 -33
  137. package/build/components/curve/types.js +0 -7
  138. package/build/components/curve/utils.cjs +0 -541
  139. package/build/components/curve/utils.d.cts +0 -33
  140. package/build/components/curve/utils.d.ts +0 -33
  141. package/build/components/curve/utils.js +0 -521
  142. package/build/components/index.cjs +0 -18
  143. package/build/components/index.d.cts +0 -2
  144. package/build/components/index.d.ts +0 -2
  145. package/build/components/index.js +0 -2
  146. package/build/decorators/Component.cjs +0 -127
  147. package/build/decorators/Component.d.cts +0 -28
  148. package/build/decorators/Component.d.ts +0 -28
  149. package/build/decorators/Component.js +0 -123
  150. package/build/decorators/Listen.cjs +0 -154
  151. package/build/decorators/Listen.d.cts +0 -18
  152. package/build/decorators/Listen.d.ts +0 -18
  153. package/build/decorators/Listen.js +0 -151
  154. package/build/decorators/OutsideClick.cjs +0 -64
  155. package/build/decorators/OutsideClick.d.cts +0 -16
  156. package/build/decorators/OutsideClick.d.ts +0 -16
  157. package/build/decorators/OutsideClick.js +0 -59
  158. package/build/decorators/Prop.cjs +0 -273
  159. package/build/decorators/Prop.d.cts +0 -22
  160. package/build/decorators/Prop.d.ts +0 -22
  161. package/build/decorators/Prop.js +0 -270
  162. package/build/decorators/Query.cjs +0 -79
  163. package/build/decorators/Query.d.cts +0 -27
  164. package/build/decorators/Query.d.ts +0 -27
  165. package/build/decorators/Query.js +0 -76
  166. package/build/decorators/Watch.cjs +0 -52
  167. package/build/decorators/Watch.d.cts +0 -11
  168. package/build/decorators/Watch.d.ts +0 -11
  169. package/build/decorators/Watch.js +0 -49
  170. package/build/decorators/index.cjs +0 -15
  171. package/build/decorators/index.d.cts +0 -6
  172. package/build/decorators/index.d.ts +0 -6
  173. package/build/decorators/index.js +0 -6
  174. package/build/elements/button/index.cjs +0 -214
  175. package/build/elements/button/index.d.cts +0 -11
  176. package/build/elements/button/index.d.ts +0 -11
  177. package/build/elements/button/index.js +0 -210
  178. package/build/elements/checkbox/index.cjs +0 -316
  179. package/build/elements/checkbox/index.d.cts +0 -14
  180. package/build/elements/checkbox/index.d.ts +0 -14
  181. package/build/elements/checkbox/index.js +0 -312
  182. package/build/elements/color/index.cjs +0 -154
  183. package/build/elements/color/index.d.cts +0 -18
  184. package/build/elements/color/index.d.ts +0 -18
  185. package/build/elements/color/index.js +0 -150
  186. package/build/elements/color/picker.cjs +0 -544
  187. package/build/elements/color/picker.d.cts +0 -37
  188. package/build/elements/color/picker.d.ts +0 -37
  189. package/build/elements/color/picker.js +0 -540
  190. package/build/elements/color/utils.cjs +0 -235
  191. package/build/elements/color/utils.d.cts +0 -37
  192. package/build/elements/color/utils.d.ts +0 -37
  193. package/build/elements/color/utils.js +0 -218
  194. package/build/elements/dropdown/index.cjs +0 -875
  195. package/build/elements/dropdown/index.d.cts +0 -30
  196. package/build/elements/dropdown/index.d.ts +0 -30
  197. package/build/elements/dropdown/index.js +0 -871
  198. package/build/elements/field/index.cjs +0 -82
  199. package/build/elements/field/index.d.cts +0 -4
  200. package/build/elements/field/index.d.ts +0 -4
  201. package/build/elements/field/index.js +0 -78
  202. package/build/elements/icons/animation/chevron.cjs +0 -57
  203. package/build/elements/icons/animation/chevron.d.cts +0 -10
  204. package/build/elements/icons/animation/chevron.d.ts +0 -10
  205. package/build/elements/icons/animation/chevron.js +0 -53
  206. package/build/elements/icons/animation/clear.cjs +0 -74
  207. package/build/elements/icons/animation/clear.d.cts +0 -3
  208. package/build/elements/icons/animation/clear.d.ts +0 -3
  209. package/build/elements/icons/animation/clear.js +0 -70
  210. package/build/elements/icons/animation/grid.cjs +0 -77
  211. package/build/elements/icons/animation/grid.d.cts +0 -8
  212. package/build/elements/icons/animation/grid.d.ts +0 -8
  213. package/build/elements/icons/animation/grid.js +0 -73
  214. package/build/elements/icons/animation/loading.cjs +0 -68
  215. package/build/elements/icons/animation/loading.d.cts +0 -3
  216. package/build/elements/icons/animation/loading.d.ts +0 -3
  217. package/build/elements/icons/animation/loading.js +0 -64
  218. package/build/elements/icons/animation/snap.cjs +0 -133
  219. package/build/elements/icons/animation/snap.d.cts +0 -8
  220. package/build/elements/icons/animation/snap.d.ts +0 -8
  221. package/build/elements/icons/animation/snap.js +0 -129
  222. package/build/elements/icons/index.cjs +0 -40
  223. package/build/elements/icons/index.d.cts +0 -24
  224. package/build/elements/icons/index.d.ts +0 -24
  225. package/build/elements/icons/index.js +0 -24
  226. package/build/elements/icons/interface/anchor-add.cjs +0 -35
  227. package/build/elements/icons/interface/anchor-add.d.cts +0 -3
  228. package/build/elements/icons/interface/anchor-add.d.ts +0 -3
  229. package/build/elements/icons/interface/anchor-add.js +0 -31
  230. package/build/elements/icons/interface/anchor-remove.cjs +0 -34
  231. package/build/elements/icons/interface/anchor-remove.d.cts +0 -3
  232. package/build/elements/icons/interface/anchor-remove.d.ts +0 -3
  233. package/build/elements/icons/interface/anchor-remove.js +0 -30
  234. package/build/elements/icons/interface/arrow-up.cjs +0 -30
  235. package/build/elements/icons/interface/arrow-up.d.cts +0 -3
  236. package/build/elements/icons/interface/arrow-up.d.ts +0 -3
  237. package/build/elements/icons/interface/arrow-up.js +0 -26
  238. package/build/elements/icons/interface/arrows-vertical.cjs +0 -30
  239. package/build/elements/icons/interface/arrows-vertical.d.cts +0 -3
  240. package/build/elements/icons/interface/arrows-vertical.d.ts +0 -3
  241. package/build/elements/icons/interface/arrows-vertical.js +0 -26
  242. package/build/elements/icons/interface/bezier-angle.cjs +0 -33
  243. package/build/elements/icons/interface/bezier-angle.d.cts +0 -3
  244. package/build/elements/icons/interface/bezier-angle.d.ts +0 -3
  245. package/build/elements/icons/interface/bezier-angle.js +0 -29
  246. package/build/elements/icons/interface/bezier-distribute.cjs +0 -34
  247. package/build/elements/icons/interface/bezier-distribute.d.cts +0 -3
  248. package/build/elements/icons/interface/bezier-distribute.d.ts +0 -3
  249. package/build/elements/icons/interface/bezier-distribute.js +0 -30
  250. package/build/elements/icons/interface/bezier-length.cjs +0 -31
  251. package/build/elements/icons/interface/bezier-length.d.cts +0 -3
  252. package/build/elements/icons/interface/bezier-length.d.ts +0 -3
  253. package/build/elements/icons/interface/bezier-length.js +0 -27
  254. package/build/elements/icons/interface/bezier-mirror.cjs +0 -31
  255. package/build/elements/icons/interface/bezier-mirror.d.cts +0 -3
  256. package/build/elements/icons/interface/bezier-mirror.d.ts +0 -3
  257. package/build/elements/icons/interface/bezier-mirror.js +0 -27
  258. package/build/elements/icons/interface/bezier.cjs +0 -26
  259. package/build/elements/icons/interface/bezier.d.cts +0 -3
  260. package/build/elements/icons/interface/bezier.d.ts +0 -3
  261. package/build/elements/icons/interface/bezier.js +0 -22
  262. package/build/elements/icons/interface/check.cjs +0 -30
  263. package/build/elements/icons/interface/check.d.cts +0 -3
  264. package/build/elements/icons/interface/check.d.ts +0 -3
  265. package/build/elements/icons/interface/check.js +0 -26
  266. package/build/elements/icons/interface/circle-arrow-left.cjs +0 -30
  267. package/build/elements/icons/interface/circle-arrow-left.d.cts +0 -3
  268. package/build/elements/icons/interface/circle-arrow-left.d.ts +0 -3
  269. package/build/elements/icons/interface/circle-arrow-left.js +0 -26
  270. package/build/elements/icons/interface/circle-arrow-right.cjs +0 -30
  271. package/build/elements/icons/interface/circle-arrow-right.d.cts +0 -3
  272. package/build/elements/icons/interface/circle-arrow-right.d.ts +0 -3
  273. package/build/elements/icons/interface/circle-arrow-right.js +0 -26
  274. package/build/elements/icons/interface/code.cjs +0 -30
  275. package/build/elements/icons/interface/code.d.cts +0 -3
  276. package/build/elements/icons/interface/code.d.ts +0 -3
  277. package/build/elements/icons/interface/code.js +0 -26
  278. package/build/elements/icons/interface/dots.cjs +0 -32
  279. package/build/elements/icons/interface/dots.d.cts +0 -3
  280. package/build/elements/icons/interface/dots.d.ts +0 -3
  281. package/build/elements/icons/interface/dots.js +0 -28
  282. package/build/elements/icons/interface/mention.cjs +0 -30
  283. package/build/elements/icons/interface/mention.d.cts +0 -3
  284. package/build/elements/icons/interface/mention.d.ts +0 -3
  285. package/build/elements/icons/interface/mention.js +0 -26
  286. package/build/elements/icons/interface/minus.cjs +0 -30
  287. package/build/elements/icons/interface/minus.d.cts +0 -3
  288. package/build/elements/icons/interface/minus.d.ts +0 -3
  289. package/build/elements/icons/interface/minus.js +0 -26
  290. package/build/elements/icons/interface/picker.cjs +0 -34
  291. package/build/elements/icons/interface/picker.d.cts +0 -3
  292. package/build/elements/icons/interface/picker.d.ts +0 -3
  293. package/build/elements/icons/interface/picker.js +0 -30
  294. package/build/elements/icons/interface/plus.cjs +0 -30
  295. package/build/elements/icons/interface/plus.d.cts +0 -3
  296. package/build/elements/icons/interface/plus.d.ts +0 -3
  297. package/build/elements/icons/interface/plus.js +0 -26
  298. package/build/elements/icons/interface/settings.cjs +0 -30
  299. package/build/elements/icons/interface/settings.d.cts +0 -3
  300. package/build/elements/icons/interface/settings.d.ts +0 -3
  301. package/build/elements/icons/interface/settings.js +0 -26
  302. package/build/elements/index.cjs +0 -65
  303. package/build/elements/index.d.cts +0 -23
  304. package/build/elements/index.d.ts +0 -23
  305. package/build/elements/index.js +0 -23
  306. package/build/elements/input/index.cjs +0 -273
  307. package/build/elements/input/index.d.cts +0 -17
  308. package/build/elements/input/index.d.ts +0 -17
  309. package/build/elements/input/index.js +0 -269
  310. package/build/elements/logo/index.cjs +0 -732
  311. package/build/elements/logo/index.d.cts +0 -17
  312. package/build/elements/logo/index.d.ts +0 -17
  313. package/build/elements/logo/index.js +0 -728
  314. package/build/elements/monitor/fps.cjs +0 -432
  315. package/build/elements/monitor/fps.d.cts +0 -21
  316. package/build/elements/monitor/fps.d.ts +0 -21
  317. package/build/elements/monitor/fps.js +0 -428
  318. package/build/elements/monitor/index.cjs +0 -670
  319. package/build/elements/monitor/index.js +0 -666
  320. package/build/elements/number/index.cjs +0 -173
  321. package/build/elements/number/index.d.cts +0 -19
  322. package/build/elements/number/index.d.ts +0 -19
  323. package/build/elements/number/index.js +0 -169
  324. package/build/elements/origin/index.cjs +0 -169
  325. package/build/elements/origin/index.d.cts +0 -12
  326. package/build/elements/origin/index.d.ts +0 -12
  327. package/build/elements/origin/index.js +0 -165
  328. package/build/elements/panel/index.cjs +0 -496
  329. package/build/elements/panel/index.js +0 -492
  330. package/build/elements/popover/index.cjs +0 -209
  331. package/build/elements/popover/index.d.cts +0 -19
  332. package/build/elements/popover/index.d.ts +0 -19
  333. package/build/elements/popover/index.js +0 -205
  334. package/build/elements/radio/index.cjs +0 -301
  335. package/build/elements/radio/index.d.cts +0 -13
  336. package/build/elements/radio/index.d.ts +0 -13
  337. package/build/elements/radio/index.js +0 -283
  338. package/build/elements/radio/input.cjs +0 -329
  339. package/build/elements/radio/input.d.cts +0 -15
  340. package/build/elements/radio/input.d.ts +0 -15
  341. package/build/elements/radio/input.js +0 -325
  342. package/build/elements/radio/option.cjs +0 -15
  343. package/build/elements/radio/option.d.cts +0 -3
  344. package/build/elements/radio/option.d.ts +0 -3
  345. package/build/elements/radio/option.js +0 -11
  346. package/build/elements/shared.cjs +0 -66
  347. package/build/elements/shared.d.cts +0 -40
  348. package/build/elements/shared.d.ts +0 -40
  349. package/build/elements/shared.js +0 -59
  350. package/build/elements/slider/index.cjs +0 -232
  351. package/build/elements/slider/index.d.cts +0 -20
  352. package/build/elements/slider/index.d.ts +0 -20
  353. package/build/elements/slider/index.js +0 -228
  354. package/build/elements/state/index.cjs +0 -274
  355. package/build/elements/state/index.js +0 -270
  356. package/build/elements/toggle/index.cjs +0 -151
  357. package/build/elements/toggle/index.d.cts +0 -9
  358. package/build/elements/toggle/index.d.ts +0 -9
  359. package/build/elements/toggle/index.js +0 -147
  360. package/build/elements/tooltip/index.cjs +0 -187
  361. package/build/elements/tooltip/index.d.cts +0 -17
  362. package/build/elements/tooltip/index.d.ts +0 -17
  363. package/build/elements/tooltip/index.js +0 -183
  364. package/build/init.cjs +0 -325
  365. package/build/init.d.cts +0 -157
  366. package/build/init.d.ts +0 -157
  367. package/build/init.js +0 -289
  368. package/build/internal/component-loaders.cjs +0 -208
  369. package/build/internal/component-loaders.d.cts +0 -52
  370. package/build/internal/component-loaders.d.ts +0 -52
  371. package/build/internal/component-loaders.js +0 -169
  372. package/build/internal/fonts.cjs +0 -128
  373. package/build/internal/fonts.d.cts +0 -32
  374. package/build/internal/fonts.d.ts +0 -32
  375. package/build/internal/fonts.js +0 -123
  376. package/build/internal/lazy-load.cjs +0 -89
  377. package/build/internal/lazy-load.d.cts +0 -32
  378. package/build/internal/lazy-load.d.ts +0 -32
  379. package/build/internal/lazy-load.js +0 -86
  380. package/build/internal/style-inject.cjs +0 -236
  381. package/build/internal/style-inject.d.cts +0 -44
  382. package/build/internal/style-inject.d.ts +0 -44
  383. package/build/internal/style-inject.js +0 -226
  384. package/build/react/events.cjs +0 -25
  385. package/build/react/events.d.cts +0 -39
  386. package/build/react/events.d.ts +0 -39
  387. package/build/react/events.js +0 -22
  388. package/build/react/index.cjs +0 -19
  389. package/build/react/index.d.cts +0 -13
  390. package/build/react/index.d.ts +0 -13
  391. package/build/react/index.js +0 -12
  392. package/build/react/provider.cjs +0 -134
  393. package/build/react/provider.d.cts +0 -81
  394. package/build/react/provider.d.ts +0 -81
  395. package/build/react/provider.js +0 -98
  396. package/build/react/types.cjs +0 -8
  397. package/build/react/types.d.cts +0 -55
  398. package/build/react/types.d.ts +0 -55
  399. package/build/react/types.js +0 -7
  400. package/build/react/use-ease-state.cjs +0 -129
  401. package/build/react/use-ease-state.d.cts +0 -95
  402. package/build/react/use-ease-state.d.ts +0 -95
  403. package/build/react/use-ease-state.js +0 -126
  404. package/build/react/use-web-kit.cjs +0 -150
  405. package/build/react/use-web-kit.d.cts +0 -80
  406. package/build/react/use-web-kit.d.ts +0 -80
  407. package/build/react/use-web-kit.js +0 -114
  408. package/build/theme/index.cjs +0 -452
  409. package/build/theme/index.js +0 -423
  410. package/build/theme/presets.cjs +0 -54
  411. package/build/theme/presets.d.cts +0 -19
  412. package/build/theme/presets.d.ts +0 -19
  413. package/build/theme/presets.js +0 -51
  414. package/build/theme/registry.cjs +0 -204
  415. package/build/theme/registry.d.cts +0 -99
  416. package/build/theme/registry.d.ts +0 -99
  417. package/build/theme/registry.js +0 -194
  418. package/build/theme/tokens.cjs +0 -148
  419. package/build/theme/tokens.d.cts +0 -163
  420. package/build/theme/tokens.d.ts +0 -163
  421. package/build/theme/tokens.js +0 -145
  422. package/build/utils/dismiss-controller.cjs +0 -77
  423. package/build/utils/dismiss-controller.d.cts +0 -14
  424. package/build/utils/dismiss-controller.d.ts +0 -14
  425. package/build/utils/dismiss-controller.js +0 -73
  426. package/build/utils/index.cjs +0 -18
  427. package/build/utils/index.d.cts +0 -3
  428. package/build/utils/index.d.ts +0 -3
  429. package/build/utils/index.js +0 -3
  430. package/build/utils/outside-click.cjs +0 -82
  431. package/build/utils/outside-click.d.cts +0 -18
  432. package/build/utils/outside-click.d.ts +0 -18
  433. package/build/utils/outside-click.js +0 -74
  434. package/build/utils/template-helpers.cjs +0 -39
  435. package/build/utils/template-helpers.d.cts +0 -13
  436. package/build/utils/template-helpers.d.ts +0 -13
  437. package/build/utils/template-helpers.js +0 -28
@@ -1,728 +0,0 @@
1
- import { html } from 'lit-html';
2
- import { Component } from '../../decorators/Component';
3
- import { Prop } from '../../decorators/Prop';
4
- const CENTER = { x: 74, y: 74 };
5
- const DOTS_DATA = [
6
- { id: 'dot-1', cx: 7.22725, cy: 73.99975 },
7
- { id: 'dot-2', cx: 8.0, cy: 107.63685 },
8
- { id: 'dot-3', cx: 41.36365, cy: 7.72734 },
9
- { id: 'dot-4', cx: 40.36105, cy: 40.36375 },
10
- { id: 'dot-5', cx: 40.36105, cy: 107.63625 },
11
- { id: 'dot-6', cx: 41.36365, cy: 140.77285 },
12
- { id: 'dot-7', cx: 73.99995, cy: 7.22725 },
13
- { id: 'dot-8', cx: 73.99995, cy: 140.77325 },
14
- { id: 'dot-9', cx: 108.13785, cy: 7.72734 },
15
- { id: 'dot-10', cx: 107.88425, cy: 73.99975 },
16
- { id: 'dot-11', cx: 108.13785, cy: 140.77285 },
17
- { id: 'dot-12', cx: 141.27285, cy: 40.86385 },
18
- { id: 'dot-13', cx: 140.77225, cy: 73.99975 },
19
- { id: 'dot-14', cx: 141.27285, cy: 107.63685 },
20
- { id: 'dot-15', cx: 40.36165, cy: 73.99925 },
21
- { id: 'dot-16', cx: 74.00125, cy: 40.36345 },
22
- { id: 'dot-17', cx: 74.00125, cy: 73.99925 },
23
- { id: 'dot-18', cx: 74.00125, cy: 107.63585 },
24
- { id: 'dot-19', cx: 107.63485, cy: 40.36345 },
25
- { id: 'dot-20', cx: 107.63485, cy: 107.63585 },
26
- { id: 'dot-21', cx: 141.77, cy: 8.23 },
27
- { id: 'dot-22', cx: 141.77, cy: 140.77 },
28
- { id: 'dot-23', cx: 7.73019, cy: 140.77 },
29
- { id: 'dot-24', cx: 7.72018, cy: 8.22 },
30
- { id: 'dot-25', cx: 7.73518, cy: 40.865 }
31
- ];
32
- const INNER_DOT_IDS = ['dot-19', 'dot-20', 'dot-18', 'dot-15', 'dot-17', 'dot-16'];
33
- const OUTER_DOT_IDS = DOTS_DATA.map((d) => d.id).filter((id) => !INNER_DOT_IDS.includes(id));
34
- const forceReflow = (el) => {
35
- void window.getComputedStyle(el).opacity;
36
- };
37
- const getAngle = (dot) => Math.atan2(dot.cy - CENTER.y, dot.cx - CENTER.x);
38
- const sortByAngle = (ids) => ids
39
- .map((id) => DOTS_DATA.find((d) => d.id === id))
40
- .filter((dot) => dot != null)
41
- .sort((a, b) => getAngle(a) - getAngle(b));
42
- const LOOP_DURATION = 1500;
43
- const ROTATION_DURATION = 600;
44
- @Component({
45
- tag: 'ease-logo-loader',
46
- styles: `
47
- :host {
48
- display: inline-block;
49
- --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
50
- --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);
51
- --ease-overshoot: cubic-bezier(0.34, 1.56, 0.64, 1);
52
-
53
- --dot-dark: var(--color-gray-0, oklab(98.81% 0 0));
54
- --dot-medium: var(--color-gray-600, oklab(65.21% -0.0019 -0.0144));
55
- --dot-light: var(--color-gray-700, oklab(37.92% -0.0006 -0.0179));
56
- --dot-accent: var(--color-blue-600, oklab(76.85% 0.0462 -0.1115));
57
- }
58
-
59
- .logo-loader {
60
- position: relative;
61
- display: inline-flex;
62
- align-items: center;
63
- justify-content: center;
64
- width: var(--logo-loader-size, 36px);
65
- height: var(--logo-loader-size, 36px);
66
- }
67
-
68
- .logo-loader__svg {
69
- width: 100%;
70
- height: 100%;
71
- display: block;
72
- transform-origin: center;
73
- overflow: visible;
74
- }
75
-
76
- .logo-loader__svg rect {
77
- transform-box: fill-box;
78
- transform-origin: center;
79
- transition:
80
- transform 380ms var(--ease-out),
81
- fill 320ms ease,
82
- opacity 320ms ease;
83
- }
84
-
85
- /* State: intro - dots are animating in */
86
- .logo-loader[data-state='intro'] .logo-loader__svg rect {
87
- opacity: 0;
88
- transform: scale(0);
89
- }
90
-
91
- /* Outer dots loading animation */
92
- @keyframes loading-outer {
93
- 0%, 100% {
94
- transform: scale(var(--base-scale, 1));
95
- fill: var(--dot-light);
96
- opacity: 0.4;
97
- }
98
- 15% {
99
- transform: scale(calc(var(--base-scale, 1) * 1.35));
100
- fill: var(--dot-dark);
101
- opacity: 1;
102
- }
103
- 35% {
104
- transform: scale(var(--base-scale, 1));
105
- fill: var(--dot-medium);
106
- opacity: 0.8;
107
- }
108
- }
109
-
110
- /* Inner dots loading animation */
111
- @keyframes loading-inner {
112
- 0%, 100% {
113
- transform: scale(var(--base-scale, 0.6));
114
- opacity: 0.7;
115
- fill: var(--dot-medium);
116
- }
117
- 50% {
118
- transform: scale(calc(var(--base-scale, 0.6) * 1.9));
119
- opacity: 0.1;
120
- fill: var(--dot-light);
121
- }
122
- }
123
-
124
- .dot-loading {
125
- animation-name: loading-outer;
126
- animation-duration: 600ms;
127
- animation-timing-function: cubic-bezier(0.3, 0.6, 0.4, 1);
128
- animation-iteration-count: infinite;
129
- animation-fill-mode: both;
130
- animation-delay: var(--delay, 0ms);
131
- }
132
-
133
- .dot-loading-inner {
134
- animation-name: loading-inner;
135
- animation-duration: 1500ms;
136
- animation-timing-function: ease-in-out;
137
- animation-iteration-count: infinite;
138
- animation-fill-mode: both;
139
- animation-delay: var(--delay, 0ms);
140
- }
141
-
142
- /* Exit animation class */
143
- .restoring {
144
- transition:
145
- transform 450ms cubic-bezier(0.25, 0, 0.5, 1),
146
- fill 350ms ease,
147
- opacity 350ms ease;
148
- }
149
-
150
- /* Particle intro animation */
151
- @keyframes particle-bounce {
152
- 0% { transform: scale(1); }
153
- 40% { transform: scale(1.25); }
154
- 65% { transform: scale(0.95); }
155
- 85% { transform: scale(1.05); }
156
- 100% { transform: scale(1); }
157
- }
158
-
159
- .particle-bounce {
160
- animation: particle-bounce 400ms var(--ease-overshoot) both;
161
- }
162
-
163
- /* Shockwave ring animation */
164
- @keyframes shockwave-expansion {
165
- 0% {
166
- transform: scale(1);
167
- opacity: 1;
168
- stroke-width: 1.5px;
169
- }
170
- 100% {
171
- transform: scale(4);
172
- opacity: 0;
173
- stroke-width: 0.5px;
174
- }
175
- }
176
-
177
- .shockwave-ring {
178
- fill: none;
179
- stroke: var(--dot-dark);
180
- transform-box: fill-box;
181
- transform-origin: center;
182
- animation: shockwave-expansion 900ms cubic-bezier(0.165, 0.84, 0.44, 1) both;
183
- }
184
-
185
- /* Pulse wave for intro */
186
- @keyframes pulse-wave {
187
- 0% {
188
- transform: scale(1);
189
- filter: brightness(1);
190
- }
191
- 50% {
192
- transform: scale(1.2);
193
- filter: brightness(1.6);
194
- fill: var(--dot-light);
195
- }
196
- 100% {
197
- transform: scale(1);
198
- filter: brightness(1);
199
- }
200
- }
201
-
202
- .dot-pulse-wave {
203
- animation: pulse-wave var(--pulse-duration, 500ms) var(--pulse-delay, 0ms) cubic-bezier(0.455, 0.03, 0.515, 0.955);
204
- }
205
-
206
- @media (prefers-reduced-motion: reduce) {
207
- .logo-loader__svg {
208
- transition: none;
209
- transform: scale(1);
210
- }
211
- .logo-loader__svg rect {
212
- animation: none !important;
213
- transition: none;
214
- transform: scale(1);
215
- opacity: 1;
216
- }
217
- }
218
- `,
219
- template(host) {
220
- const size = host.size ?? 36;
221
- const state = host.state;
222
- const ariaLabel = host.ariaLabel;
223
- const ariaLabelTrimmed = ariaLabel?.trim() ?? '';
224
- return html `
225
- <div
226
- class="logo-loader"
227
- data-state=${state}
228
- style=${`--logo-loader-size:${size}px;`}
229
- >
230
- <svg
231
- viewBox="0 0 148 148"
232
- fill="none"
233
- xmlns="http://www.w3.org/2000/svg"
234
- class="logo-loader__svg"
235
- role=${ariaLabelTrimmed ? 'img' : null}
236
- aria-label=${ariaLabelTrimmed || null}
237
- aria-hidden=${ariaLabelTrimmed ? null : 'true'}
238
- focusable=${ariaLabelTrimmed ? null : 'false'}
239
- >
240
- <g class="shockwave-container"></g>
241
-
242
- <rect id="dot-1" x="0.5" y="67.2725" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-medium)" />
243
- <rect id="dot-2" x="3.5" y="103.152" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-medium)" />
244
- <rect id="dot-3" x="36.8788" y="3.24249" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-medium)" />
245
- <rect id="dot-4" x="33.6338" y="33.6365" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-medium)" />
246
- <rect id="dot-5" x="33.6338" y="100.909" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-medium)" />
247
- <rect id="dot-6" x="36.8788" y="136.288" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-medium)" />
248
- <rect id="dot-7" x="67.2727" y="0.5" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-light)" />
249
- <rect id="dot-8" x="67.2727" y="134.046" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-medium)" />
250
- <rect id="dot-9" x="103.653" y="3.24249" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-medium)" />
251
- <rect id="dot-10" x="101.407" y="67.2725" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-medium)" />
252
- <rect id="dot-11" x="103.653" y="136.288" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-light)" />
253
- <rect id="dot-12" x="136.788" y="36.379" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-light)" />
254
- <rect id="dot-13" x="134.045" y="67.2725" width="13.4545" height="13.4545" rx="6.72727" fill="var(--dot-light)" />
255
- <rect id="dot-14" x="136.788" y="103.152" width="8.9697" height="8.9697" rx="4.48485" fill="var(--dot-light)" />
256
-
257
- <rect id="dot-15" x="26.9071" y="60.5447" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
258
- <rect id="dot-16" x="60.5467" y="26.9089" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
259
- <rect id="dot-17" x="60.5467" y="60.5447" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
260
- <rect id="dot-18" x="60.5467" y="94.1813" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
261
- <rect id="dot-19" x="94.1803" y="26.9089" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
262
- <rect id="dot-20" x="94.1803" y="94.1813" width="26.9091" height="26.9091" rx="13.4545" fill="var(--dot-dark)" />
263
-
264
- <rect id="dot-21" x="139.53" y="5.98999" width="4.48" height="4.48" rx="2.24" fill="var(--dot-light)" />
265
- <rect id="dot-22" x="139.53" y="138.53" width="4.48" height="4.48" rx="2.24" fill="var(--dot-light)" />
266
- <rect id="dot-23" x="5.49019" y="138.53" width="4.48" height="4.48" rx="2.24" fill="var(--dot-light)" />
267
- <rect id="dot-24" x="5.48018" y="5.97998" width="4.48" height="4.48" rx="2.24" fill="var(--dot-light)" />
268
- <rect id="dot-25" x="4.37018" y="37.5" width="6.73" height="6.73" rx="3.365" fill="var(--dot-light)" />
269
- </svg>
270
- </div>
271
- `;
272
- }
273
- })
274
- export class LogoLoader extends HTMLElement {
275
- @Prop({
276
- type: Boolean,
277
- attribute: 'loading',
278
- defaultValue: false,
279
- onChange(next) {
280
- this.handleLoadingChange(next);
281
- }
282
- })
283
- accessor loading = false;
284
- @Prop({
285
- type: 'string',
286
- attribute: 'intro',
287
- defaultValue: 'wave'
288
- })
289
- accessor intro = 'wave';
290
- @Prop({
291
- type: Number,
292
- attribute: 'size',
293
- defaultValue: 36
294
- })
295
- accessor size = 36;
296
- @Prop({
297
- type: 'string',
298
- attribute: 'aria-label',
299
- defaultValue: null
300
- })
301
- accessor ariaLabel = null;
302
- #state = 'intro';
303
- #loopStartTime = 0;
304
- #animationTimers = [];
305
- #introCompleted = false;
306
- get state() {
307
- return this.#state;
308
- }
309
- set state(value) {
310
- if (this.#state === value) {
311
- return;
312
- }
313
- this.#state = value;
314
- if (typeof this.requestRender === 'function') {
315
- this.requestRender();
316
- }
317
- }
318
- connectedCallback() {
319
- // Wait for first render before starting intro animation
320
- // The Component decorator renders after connectedCallback via requestAnimationFrame
321
- requestAnimationFrame(() => {
322
- // Double RAF to ensure render is complete
323
- requestAnimationFrame(() => {
324
- if (this.loading) {
325
- this.#runIntro(() => {
326
- this.#introCompleted = true;
327
- this.#startLoopAnimation();
328
- });
329
- }
330
- else {
331
- this.#runIntro(() => {
332
- this.#introCompleted = true;
333
- this.state = 'idle';
334
- });
335
- }
336
- });
337
- });
338
- }
339
- disconnectedCallback() {
340
- this.#clearTimers();
341
- }
342
- #clearTimers() {
343
- for (const id of this.#animationTimers) {
344
- window.clearTimeout(id);
345
- }
346
- this.#animationTimers = [];
347
- }
348
- #setTimeout(fn, delay) {
349
- const id = window.setTimeout(fn, delay);
350
- this.#animationTimers.push(id);
351
- return id;
352
- }
353
- #getDot(id) {
354
- const svg = this.shadowRoot?.querySelector('.logo-loader__svg');
355
- return svg?.querySelector(`#${id}`);
356
- }
357
- #getShockwaveContainer() {
358
- return this.shadowRoot?.querySelector('.shockwave-container');
359
- }
360
- #resetDotsState(instant = false, keepOpacity = false) {
361
- const container = this.#getShockwaveContainer();
362
- if (container) {
363
- container.innerHTML = '';
364
- }
365
- for (const dot of DOTS_DATA) {
366
- const el = this.#getDot(dot.id);
367
- if (!el) {
368
- continue;
369
- }
370
- if (instant) {
371
- el.style.transition = 'none';
372
- }
373
- else {
374
- el.style.transition = '';
375
- }
376
- // Remove all animation classes
377
- el.classList.remove('dot-loading', 'dot-loading-inner', 'restoring', 'dot-pulse-wave', 'particle-bounce');
378
- el.style.removeProperty('--base-scale');
379
- el.style.removeProperty('--delay');
380
- el.style.removeProperty('--pulse-delay');
381
- el.style.removeProperty('--pulse-duration');
382
- // Reset inline styles
383
- el.style.transform = 'scale(1)';
384
- if (!keepOpacity) {
385
- el.style.opacity = instant ? '1' : '';
386
- }
387
- el.style.removeProperty('fill');
388
- el.style.removeProperty('filter');
389
- if (instant) {
390
- forceReflow(el);
391
- el.style.removeProperty('transition');
392
- }
393
- }
394
- }
395
- /** Ensure all dots are visible */
396
- #ensureVisibility() {
397
- for (const dot of DOTS_DATA) {
398
- const el = this.#getDot(dot.id);
399
- if (el && (el.style.opacity === '0' || el.style.opacity === '')) {
400
- el.style.transition = 'opacity 200ms ease-out';
401
- el.style.opacity = '1';
402
- }
403
- }
404
- }
405
- /** Run wave intro animation */
406
- #runWaveIntro(onComplete) {
407
- this.state = 'intro';
408
- // Prepare dots hidden
409
- for (const dot of DOTS_DATA) {
410
- const el = this.#getDot(dot.id);
411
- if (!el) {
412
- continue;
413
- }
414
- el.style.transition = 'none';
415
- el.style.opacity = '0';
416
- el.style.transform = 'scale(0)';
417
- forceReflow(el);
418
- }
419
- const innerDotIds = new Set(INNER_DOT_IDS);
420
- const innerDots = DOTS_DATA.filter((d) => innerDotIds.has(d.id));
421
- const outerDots = DOTS_DATA.filter((d) => !innerDotIds.has(d.id));
422
- // WAVE 1: Inner dots appear at half scale
423
- const orderedInner = sortByAngle(innerDots.map((d) => d.id));
424
- orderedInner.forEach((dot, index) => {
425
- const el = this.#getDot(dot.id);
426
- if (!el) {
427
- return;
428
- }
429
- el.style.fill = 'var(--dot-medium)';
430
- forceReflow(el);
431
- el.style.removeProperty('transition');
432
- const delay = index * 75;
433
- this.#setTimeout(() => {
434
- el.style.transition = 'transform 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 400ms ease-out';
435
- el.style.opacity = '1';
436
- el.style.transform = 'scale(0.5)';
437
- }, delay);
438
- });
439
- // WAVE 2: Inner to full scale + outer appear
440
- this.#setTimeout(() => {
441
- // Inner dots to full scale
442
- orderedInner.forEach((dot, index) => {
443
- const el = this.#getDot(dot.id);
444
- if (!el) {
445
- return;
446
- }
447
- const delay = index * 65;
448
- this.#setTimeout(() => {
449
- el.style.transition = 'transform 600ms cubic-bezier(0.34, 1.56, 0.64, 1), fill 450ms ease-out';
450
- el.style.transform = 'scale(1)';
451
- el.style.removeProperty('fill');
452
- }, delay);
453
- });
454
- // Outer dots appear
455
- const orderedOuter = sortByAngle(outerDots.map((d) => d.id));
456
- orderedOuter.forEach((dot, index) => {
457
- const el = this.#getDot(dot.id);
458
- if (!el) {
459
- return;
460
- }
461
- el.style.removeProperty('transition');
462
- const delay = 150 + index * 40;
463
- this.#setTimeout(() => {
464
- el.style.transition = 'transform 650ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 550ms ease-out';
465
- el.style.opacity = '1';
466
- el.style.transform = 'scale(1)';
467
- }, delay);
468
- });
469
- }, 650);
470
- // Completion
471
- this.#setTimeout(() => {
472
- onComplete?.();
473
- }, 1400);
474
- }
475
- /** Run particle intro animation */
476
- #runParticleIntro(onComplete) {
477
- this.state = 'intro';
478
- // Prepare dots hidden
479
- for (const dot of DOTS_DATA) {
480
- const el = this.#getDot(dot.id);
481
- if (!el) {
482
- continue;
483
- }
484
- el.style.transition = 'none';
485
- el.style.opacity = '0';
486
- el.style.transform = 'scale(0)';
487
- forceReflow(el);
488
- }
489
- const innerDotIds = new Set(INNER_DOT_IDS);
490
- // Create particle animation data
491
- const particles = DOTS_DATA.map((dot, index) => {
492
- const finalAngle = getAngle(dot);
493
- const startDistance = 110 + Math.random() * 80;
494
- const angleVariation = (Math.random() - 0.5) * Math.PI * 0.35;
495
- const startAngle = finalAngle + angleVariation;
496
- const startX = Math.cos(startAngle) * startDistance;
497
- const startY = Math.sin(startAngle) * startDistance;
498
- const curvature = Math.random() * 0.4 + 0.3;
499
- const controlAngle = startAngle + (Math.random() - 0.5) * Math.PI * curvature;
500
- const controlDistance = startDistance * 0.6;
501
- const controlX = Math.cos(controlAngle) * controlDistance;
502
- const controlY = Math.sin(controlAngle) * controlDistance;
503
- const group = Math.floor(index / 5);
504
- const groupDelay = group * 110;
505
- const withinGroupDelay = (index % 5) * 40;
506
- const delay = groupDelay + withinGroupDelay + Math.random() * 40;
507
- const duration = 600 + Math.random() * 300;
508
- return {
509
- ...dot,
510
- startX,
511
- startY,
512
- controlX,
513
- controlY,
514
- delay,
515
- duration,
516
- impactTime: delay + duration,
517
- rotationSpeed: 720 + Math.random() * 360,
518
- isInner: innerDotIds.has(dot.id)
519
- };
520
- });
521
- particles.sort((a, b) => a.delay - b.delay);
522
- // First 3 inner dots for shockwaves
523
- const shockwaveParticles = particles
524
- .filter((p) => p.isInner)
525
- .sort((a, b) => a.impactTime - b.impactTime)
526
- .slice(0, 3);
527
- const shockwaveSet = new Set(shockwaveParticles.map((p) => p.id));
528
- // Animate each particle
529
- for (const particle of particles) {
530
- const el = this.#getDot(particle.id);
531
- if (!el) {
532
- continue;
533
- }
534
- el.style.transform = `translate(${particle.startX}px, ${particle.startY}px) scale(0.05)`;
535
- this.#setTimeout(() => {
536
- el.style.opacity = '1';
537
- const steps = 30;
538
- let step = 0;
539
- const animateStep = () => {
540
- step++;
541
- const progress = step / steps;
542
- const t = progress;
543
- const mt = 1 - t;
544
- const x = mt * mt * particle.startX + 2 * mt * t * particle.controlX + t * t * 0;
545
- const y = mt * mt * particle.startY + 2 * mt * t * particle.controlY + t * t * 0;
546
- const easeOut = 1 - (1 - progress) ** 4;
547
- const scale = 0.05 + easeOut * 0.95;
548
- const rotation = progress * particle.rotationSpeed;
549
- el.style.transition = 'transform 33ms linear';
550
- el.style.transform = `translate(${x}px, ${y}px) scale(${scale}) rotate(${rotation}deg)`;
551
- if (step < steps) {
552
- requestAnimationFrame(animateStep);
553
- }
554
- else {
555
- // Impact - clear all transforms
556
- const bounceDuration = 250;
557
- el.style.transition = `transform ${bounceDuration}ms cubic-bezier(0.34, 1.56, 0.64, 1)`;
558
- el.style.transform = 'scale(1)';
559
- if (shockwaveSet.has(particle.id)) {
560
- this.#triggerShockwave(particle);
561
- }
562
- this.#setTimeout(() => {
563
- el.classList.add('particle-bounce');
564
- this.#setTimeout(() => {
565
- el.classList.remove('particle-bounce');
566
- }, 400);
567
- }, bounceDuration);
568
- }
569
- };
570
- requestAnimationFrame(animateStep);
571
- }, particle.delay);
572
- }
573
- // Early completion
574
- const earlyRevealTime = Math.max(...particles.map((p) => p.delay)) * 0.6;
575
- this.#setTimeout(() => {
576
- onComplete?.();
577
- }, earlyRevealTime);
578
- // Final cleanup
579
- const maxTime = Math.max(...particles.map((p) => p.impactTime + 500));
580
- this.#setTimeout(() => {
581
- this.#resetDotsState(false, true);
582
- }, maxTime);
583
- }
584
- #triggerShockwave(dot) {
585
- const container = this.#getShockwaveContainer();
586
- if (!container) {
587
- return;
588
- }
589
- const ring = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
590
- ring.setAttribute('cx', String(dot.cx));
591
- ring.setAttribute('cy', String(dot.cy));
592
- ring.setAttribute('r', '13.45');
593
- ring.classList.add('shockwave-ring');
594
- container.appendChild(ring);
595
- this.#setTimeout(() => {
596
- ring.remove();
597
- }, 900);
598
- }
599
- #runIntro(onComplete) {
600
- if (this.intro === 'particle') {
601
- this.#runParticleIntro(onComplete);
602
- }
603
- else {
604
- this.#runWaveIntro(onComplete);
605
- }
606
- }
607
- #startLoopAnimation() {
608
- this.#loopStartTime = performance.now();
609
- this.#ensureVisibility();
610
- // Inner dots - scale down with transition, then add animation class
611
- const orderedInnerDots = sortByAngle(INNER_DOT_IDS);
612
- let seedDelay = 0;
613
- orderedInnerDots.forEach((dot) => {
614
- this.#setTimeout(() => {
615
- const el = this.#getDot(dot.id);
616
- if (!el) {
617
- return;
618
- }
619
- const targetScale = 0.6;
620
- el.style.transition = 'all 450ms cubic-bezier(0.4, 0, 0.2, 1)';
621
- el.style.transform = `scale(${targetScale})`;
622
- el.style.fill = 'var(--dot-medium)';
623
- el.style.opacity = '0.7';
624
- el.style.setProperty('--base-scale', `${targetScale}`);
625
- const angle = getAngle(dot);
626
- const normalizedAngle = (angle + Math.PI) / (2 * Math.PI);
627
- const animationDelayMs = normalizedAngle * LOOP_DURATION;
628
- el.style.setProperty('--delay', `${animationDelayMs}ms`);
629
- this.#setTimeout(() => {
630
- el.classList.add('dot-loading-inner');
631
- }, 100);
632
- }, seedDelay);
633
- seedDelay += 60;
634
- });
635
- const orderedOuterDots = sortByAngle(OUTER_DOT_IDS);
636
- this.#setTimeout(() => {
637
- orderedOuterDots.forEach((dot) => {
638
- const el = this.#getDot(dot.id);
639
- if (!el) {
640
- return;
641
- }
642
- el.style.transition = 'all 350ms ease-out';
643
- const baseScale = 1.2;
644
- el.style.setProperty('--base-scale', `${baseScale}`);
645
- const angle = getAngle(dot);
646
- const normalizedAngle = (angle + Math.PI) / (2 * Math.PI);
647
- const animationDelayMs = normalizedAngle * ROTATION_DURATION;
648
- el.style.setProperty('--delay', `${animationDelayMs}ms`);
649
- this.#setTimeout(() => {
650
- el.classList.add('dot-loading');
651
- }, 50);
652
- });
653
- this.state = 'loop';
654
- }, seedDelay + 100);
655
- }
656
- #endLoopAnimation() {
657
- const now = performance.now();
658
- const elapsed = Math.max(0, now - this.#loopStartTime);
659
- const timeInCycle = elapsed % LOOP_DURATION;
660
- const timeLeft = LOOP_DURATION - timeInCycle + 50;
661
- this.state = 'exit';
662
- this.#setTimeout(() => {
663
- const orderedAllDots = sortByAngle(DOTS_DATA.map((d) => d.id));
664
- orderedAllDots.forEach((dot, i) => {
665
- const el = this.#getDot(dot.id);
666
- if (!el) {
667
- return;
668
- }
669
- const delay = i * 18;
670
- this.#setTimeout(() => {
671
- el.classList.remove('dot-loading', 'dot-loading-inner');
672
- el.style.removeProperty('--delay');
673
- el.style.removeProperty('--base-scale');
674
- el.classList.add('restoring');
675
- el.style.transform = 'scale(1)';
676
- el.style.opacity = '1';
677
- el.style.removeProperty('fill');
678
- this.#setTimeout(() => {
679
- el.classList.remove('restoring');
680
- }, 500);
681
- }, delay);
682
- });
683
- this.#setTimeout(() => {
684
- this.state = 'idle';
685
- }, orderedAllDots.length * 18 + 500);
686
- }, timeLeft);
687
- }
688
- handleLoadingChange(next) {
689
- if (!this.#introCompleted) {
690
- return;
691
- }
692
- this.#clearTimers();
693
- if (next) {
694
- if (this.state === 'idle' || this.state === 'exit') {
695
- this.#resetDotsState(true, true);
696
- this.#startLoopAnimation();
697
- }
698
- }
699
- else {
700
- if (this.state === 'loop') {
701
- this.#endLoopAnimation();
702
- }
703
- else if (this.state !== 'intro' && this.state !== 'exit') {
704
- this.state = 'idle';
705
- }
706
- }
707
- }
708
- playIntro(variant) {
709
- this.#clearTimers();
710
- this.#resetDotsState(true);
711
- const originalIntro = this.intro;
712
- if (variant) {
713
- this.intro = variant;
714
- }
715
- this.#runIntro(() => {
716
- this.#introCompleted = true;
717
- if (this.loading) {
718
- this.#startLoopAnimation();
719
- }
720
- else {
721
- this.state = 'idle';
722
- }
723
- });
724
- if (variant) {
725
- this.intro = originalIntro;
726
- }
727
- }
728
- }