@nanoporetech-digital/components 6.0.1 → 6.2.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 (295) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cjs/index-14451c95.js +6 -2
  3. package/dist/cjs/index-browser.cjs-d4554470.js +39 -0
  4. package/dist/cjs/index-browser.cjs-d4554470.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/nano-algolia.cjs.entry.js +6 -1
  7. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nano-animation.cjs.entry.js +1209 -0
  9. package/dist/cjs/nano-animation.cjs.entry.js.map +1 -0
  10. package/dist/cjs/nano-components.cjs.js +1 -1
  11. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nano-global-nav.cjs.entry.js +24 -25
  13. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nano-global-search-results.cjs.entry.js +51 -27
  15. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nano-hero.cjs.entry.js +1 -1
  17. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nano-intersection-observe.cjs.entry.js +131 -0
  19. package/dist/cjs/nano-intersection-observe.cjs.entry.js.map +1 -0
  20. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  21. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-sticker.cjs.entry.js +2 -27
  23. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  24. package/dist/cjs/{nano-table-400049cc.js → nano-table-06530d49.js} +5 -25
  25. package/dist/cjs/nano-table-06530d49.js.map +1 -0
  26. package/dist/cjs/nano-table.cjs.entry.js +2 -1
  27. package/dist/cjs/nano-table.cjs.entry.js.map +1 -1
  28. package/dist/cjs/scroll-parent-87393de2.js +31 -0
  29. package/dist/cjs/scroll-parent-87393de2.js.map +1 -0
  30. package/dist/cjs/search-insights-b2bb12bd.js +50 -0
  31. package/dist/cjs/search-insights-b2bb12bd.js.map +1 -0
  32. package/dist/cjs/{table.worker-a37f8365.js → table.worker-b4922b9b.js} +3 -2
  33. package/dist/cjs/table.worker-b4922b9b.js.map +1 -0
  34. package/dist/collection/collection-manifest.json +2 -1
  35. package/dist/collection/components/algolia/algolia-interface.js.map +1 -1
  36. package/dist/collection/components/algolia/algolia.js +8 -3
  37. package/dist/collection/components/algolia/algolia.js.map +1 -1
  38. package/dist/collection/components/animation/animation.js +547 -0
  39. package/dist/collection/components/animation/animation.js.map +1 -0
  40. package/dist/collection/components/animation/animations/attention_seekers/bounce.js +43 -0
  41. package/dist/collection/components/animation/animations/attention_seekers/flash.js +7 -0
  42. package/dist/collection/components/animation/animations/attention_seekers/headShake.js +8 -0
  43. package/dist/collection/components/animation/animations/attention_seekers/heartBeat.js +7 -0
  44. package/dist/collection/components/animation/animations/attention_seekers/jello.js +15 -0
  45. package/dist/collection/components/animation/animations/attention_seekers/pulse.js +5 -0
  46. package/dist/collection/components/animation/animations/attention_seekers/rubberBand.js +9 -0
  47. package/dist/collection/components/animation/animations/attention_seekers/shake.js +13 -0
  48. package/dist/collection/components/animation/animations/attention_seekers/shakeX.js +13 -0
  49. package/dist/collection/components/animation/animations/attention_seekers/shakeY.js +13 -0
  50. package/dist/collection/components/animation/animations/attention_seekers/swing.js +7 -0
  51. package/dist/collection/components/animation/animations/attention_seekers/tada.js +13 -0
  52. package/dist/collection/components/animation/animations/attention_seekers/wobble.js +18 -0
  53. package/dist/collection/components/animation/animations/back_entrances/backInDown.js +5 -0
  54. package/dist/collection/components/animation/animations/back_entrances/backInLeft.js +5 -0
  55. package/dist/collection/components/animation/animations/back_entrances/backInRight.js +5 -0
  56. package/dist/collection/components/animation/animations/back_entrances/backInUp.js +5 -0
  57. package/dist/collection/components/animation/animations/back_exits/backOutDown.js +5 -0
  58. package/dist/collection/components/animation/animations/back_exits/backOutLeft.js +5 -0
  59. package/dist/collection/components/animation/animations/back_exits/backOutRight.js +5 -0
  60. package/dist/collection/components/animation/animations/back_exits/backOutUp.js +5 -0
  61. package/dist/collection/components/animation/animations/bouncing_entrances/bounceIn.js +14 -0
  62. package/dist/collection/components/animation/animations/bouncing_entrances/bounceInDown.js +20 -0
  63. package/dist/collection/components/animation/animations/bouncing_entrances/bounceInLeft.js +16 -0
  64. package/dist/collection/components/animation/animations/bouncing_entrances/bounceInRight.js +16 -0
  65. package/dist/collection/components/animation/animations/bouncing_entrances/bounceInUp.js +16 -0
  66. package/dist/collection/components/animation/animations/bouncing_exits/bounceOut.js +6 -0
  67. package/dist/collection/components/animation/animations/bouncing_exits/bounceOutDown.js +14 -0
  68. package/dist/collection/components/animation/animations/bouncing_exits/bounceOutLeft.js +12 -0
  69. package/dist/collection/components/animation/animations/bouncing_exits/bounceOutRight.js +8 -0
  70. package/dist/collection/components/animation/animations/bouncing_exits/bounceOutUp.js +18 -0
  71. package/dist/collection/components/animation/animations/easings/easings.js +35 -0
  72. package/dist/collection/components/animation/animations/easings/easings.js.map +1 -0
  73. package/dist/collection/components/animation/animations/fading_entrances/fadeIn.js +4 -0
  74. package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomLeft.js +4 -0
  75. package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomRight.js +4 -0
  76. package/dist/collection/components/animation/animations/fading_entrances/fadeInDown.js +4 -0
  77. package/dist/collection/components/animation/animations/fading_entrances/fadeInDownBig.js +4 -0
  78. package/dist/collection/components/animation/animations/fading_entrances/fadeInLeft.js +4 -0
  79. package/dist/collection/components/animation/animations/fading_entrances/fadeInLeftBig.js +4 -0
  80. package/dist/collection/components/animation/animations/fading_entrances/fadeInRight.js +4 -0
  81. package/dist/collection/components/animation/animations/fading_entrances/fadeInRightBig.js +4 -0
  82. package/dist/collection/components/animation/animations/fading_entrances/fadeInTopLeft.js +4 -0
  83. package/dist/collection/components/animation/animations/fading_entrances/fadeInTopRight.js +4 -0
  84. package/dist/collection/components/animation/animations/fading_entrances/fadeInUp.js +4 -0
  85. package/dist/collection/components/animation/animations/fading_entrances/fadeInUpBig.js +4 -0
  86. package/dist/collection/components/animation/animations/fading_exits/fadeOut.js +4 -0
  87. package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomLeft.js +4 -0
  88. package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomRight.js +4 -0
  89. package/dist/collection/components/animation/animations/fading_exits/fadeOutDown.js +4 -0
  90. package/dist/collection/components/animation/animations/fading_exits/fadeOutDownBig.js +4 -0
  91. package/dist/collection/components/animation/animations/fading_exits/fadeOutLeft.js +4 -0
  92. package/dist/collection/components/animation/animations/fading_exits/fadeOutLeftBig.js +4 -0
  93. package/dist/collection/components/animation/animations/fading_exits/fadeOutRight.js +4 -0
  94. package/dist/collection/components/animation/animations/fading_exits/fadeOutRightBig.js +4 -0
  95. package/dist/collection/components/animation/animations/fading_exits/fadeOutTopLeft.js +4 -0
  96. package/dist/collection/components/animation/animations/fading_exits/fadeOutTopRight.js +4 -0
  97. package/dist/collection/components/animation/animations/fading_exits/fadeOutUp.js +4 -0
  98. package/dist/collection/components/animation/animations/fading_exits/fadeOutUpBig.js +4 -0
  99. package/dist/collection/components/animation/animations/flippers/flip.js +32 -0
  100. package/dist/collection/components/animation/animations/flippers/flipInX.js +20 -0
  101. package/dist/collection/components/animation/animations/flippers/flipInY.js +20 -0
  102. package/dist/collection/components/animation/animations/flippers/flipOutX.js +13 -0
  103. package/dist/collection/components/animation/animations/flippers/flipOutY.js +13 -0
  104. package/dist/collection/components/animation/animations/index.js +203 -0
  105. package/dist/collection/components/animation/animations/index.js.map +1 -0
  106. package/dist/collection/components/animation/animations/lightspeed/lightSpeedInLeft.js +10 -0
  107. package/dist/collection/components/animation/animations/lightspeed/lightSpeedInRight.js +10 -0
  108. package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutLeft.js +8 -0
  109. package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutRight.js +8 -0
  110. package/dist/collection/components/animation/animations/rotating_entrances/rotateIn.js +4 -0
  111. package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownLeft.js +4 -0
  112. package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownRight.js +4 -0
  113. package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpLeft.js +4 -0
  114. package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpRight.js +4 -0
  115. package/dist/collection/components/animation/animations/rotating_exits/rotateOut.js +4 -0
  116. package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownLeft.js +4 -0
  117. package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownRight.js +4 -0
  118. package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpLeft.js +4 -0
  119. package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpRight.js +4 -0
  120. package/dist/collection/components/animation/animations/sliding_entrances/slideInDown.js +4 -0
  121. package/dist/collection/components/animation/animations/sliding_entrances/slideInLeft.js +4 -0
  122. package/dist/collection/components/animation/animations/sliding_entrances/slideInRight.js +4 -0
  123. package/dist/collection/components/animation/animations/sliding_entrances/slideInUp.js +4 -0
  124. package/dist/collection/components/animation/animations/sliding_exits/slideOutDown.js +4 -0
  125. package/dist/collection/components/animation/animations/sliding_exits/slideOutLeft.js +4 -0
  126. package/dist/collection/components/animation/animations/sliding_exits/slideOutRight.js +4 -0
  127. package/dist/collection/components/animation/animations/sliding_exits/slideOutUp.js +4 -0
  128. package/dist/collection/components/animation/animations/specials/hinge.js +18 -0
  129. package/dist/collection/components/animation/animations/specials/jackInTheBox.js +11 -0
  130. package/dist/collection/components/animation/animations/specials/rollIn.js +8 -0
  131. package/dist/collection/components/animation/animations/specials/rollOut.js +8 -0
  132. package/dist/collection/components/animation/animations/zooming_entrances/zoomIn.js +4 -0
  133. package/dist/collection/components/animation/animations/zooming_entrances/zoomInDown.js +14 -0
  134. package/dist/collection/components/animation/animations/zooming_entrances/zoomInLeft.js +14 -0
  135. package/dist/collection/components/animation/animations/zooming_entrances/zoomInRight.js +14 -0
  136. package/dist/collection/components/animation/animations/zooming_entrances/zoomInUp.js +14 -0
  137. package/dist/collection/components/animation/animations/zooming_exits/zoomOut.js +5 -0
  138. package/dist/collection/components/animation/animations/zooming_exits/zoomOutDown.js +14 -0
  139. package/dist/collection/components/animation/animations/zooming_exits/zoomOutLeft.js +12 -0
  140. package/dist/collection/components/animation/animations/zooming_exits/zoomOutRight.js +12 -0
  141. package/dist/collection/components/animation/animations/zooming_exits/zoomOutUp.js +14 -0
  142. package/dist/collection/components/global-nav/global-nav-interface.js.map +1 -1
  143. package/dist/collection/components/global-nav/global-nav.js +25 -25
  144. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  145. package/dist/collection/components/global-search-results/global-search-results.js +51 -27
  146. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  147. package/dist/collection/components/hero/hero.css +0 -1
  148. package/dist/collection/components/intersection-observe/intersection-observe.js +256 -0
  149. package/dist/collection/components/intersection-observe/intersection-observe.js.map +1 -0
  150. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  151. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  152. package/dist/collection/components/select/select.js +5 -5
  153. package/dist/collection/components/select/select.js.map +1 -1
  154. package/dist/collection/components/sticker/sticker.js +2 -27
  155. package/dist/collection/components/sticker/sticker.js.map +1 -1
  156. package/dist/collection/components/table/table.js +2 -1
  157. package/dist/collection/components/table/table.js.map +1 -1
  158. package/dist/collection/components/table/table.utils.js +0 -21
  159. package/dist/collection/components/table/table.utils.js.map +1 -1
  160. package/dist/collection/utils/scroll-parent.js +26 -0
  161. package/dist/collection/utils/scroll-parent.js.map +1 -0
  162. package/dist/collection/utils/search-insights.js +46 -0
  163. package/dist/collection/utils/search-insights.js.map +1 -0
  164. package/dist/components/algolia.js +6 -1
  165. package/dist/components/algolia.js.map +1 -1
  166. package/dist/components/index-browser.cjs.js +37 -0
  167. package/dist/components/index-browser.cjs.js.map +1 -0
  168. package/dist/components/index.d.ts +2 -1
  169. package/dist/components/index.js +2 -1
  170. package/dist/components/index.js.map +1 -1
  171. package/dist/components/{nano-aspect-ratio.d.ts → nano-animation.d.ts} +4 -4
  172. package/dist/components/nano-animation.js +1239 -0
  173. package/dist/components/nano-animation.js.map +1 -0
  174. package/dist/components/nano-global-nav.js +24 -25
  175. package/dist/components/nano-global-nav.js.map +1 -1
  176. package/dist/components/nano-global-search-results.js +51 -27
  177. package/dist/components/nano-global-search-results.js.map +1 -1
  178. package/dist/components/nano-hero.js +1 -1
  179. package/dist/components/nano-hero.js.map +1 -1
  180. package/dist/components/nano-intersection-observe.d.ts +11 -0
  181. package/dist/components/nano-intersection-observe.js +149 -0
  182. package/dist/components/nano-intersection-observe.js.map +1 -0
  183. package/dist/components/resize-observe.js +1 -1
  184. package/dist/components/resize-observe.js.map +1 -1
  185. package/dist/components/scroll-parent.js +29 -0
  186. package/dist/components/scroll-parent.js.map +1 -0
  187. package/dist/components/search-insights.js +48 -0
  188. package/dist/components/search-insights.js.map +1 -0
  189. package/dist/components/select.js.map +1 -1
  190. package/dist/components/sticker.js +2 -27
  191. package/dist/components/sticker.js.map +1 -1
  192. package/dist/components/table.js +1 -21
  193. package/dist/components/table.js.map +1 -1
  194. package/dist/esm/index-9695db0a.js +6 -2
  195. package/dist/esm/index-browser.cjs-bf702094.js +37 -0
  196. package/dist/esm/index-browser.cjs-bf702094.js.map +1 -0
  197. package/dist/esm/loader.js +1 -1
  198. package/dist/esm/nano-algolia.entry.js +6 -1
  199. package/dist/esm/nano-algolia.entry.js.map +1 -1
  200. package/dist/esm/nano-animation.entry.js +1205 -0
  201. package/dist/esm/nano-animation.entry.js.map +1 -0
  202. package/dist/esm/nano-components.js +1 -1
  203. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  204. package/dist/esm/nano-global-nav.entry.js +24 -25
  205. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  206. package/dist/esm/nano-global-search-results.entry.js +51 -27
  207. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  208. package/dist/esm/nano-hero.entry.js +1 -1
  209. package/dist/esm/nano-hero.entry.js.map +1 -1
  210. package/dist/esm/nano-intersection-observe.entry.js +127 -0
  211. package/dist/esm/nano-intersection-observe.entry.js.map +1 -0
  212. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  213. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  214. package/dist/esm/nano-sticker.entry.js +2 -27
  215. package/dist/esm/nano-sticker.entry.js.map +1 -1
  216. package/dist/esm/{nano-table-a6641aef.js → nano-table-c85a2fd3.js} +3 -23
  217. package/dist/esm/nano-table-c85a2fd3.js.map +1 -0
  218. package/dist/esm/nano-table.entry.js +2 -1
  219. package/dist/esm/nano-table.entry.js.map +1 -1
  220. package/dist/esm/scroll-parent-bab1cbf7.js +29 -0
  221. package/dist/esm/scroll-parent-bab1cbf7.js.map +1 -0
  222. package/dist/esm/search-insights-f64a6b4c.js +48 -0
  223. package/dist/esm/search-insights-f64a6b4c.js.map +1 -0
  224. package/dist/esm/{table.worker-6b597e20.js → table.worker-761fba3e.js} +3 -2
  225. package/dist/esm/table.worker-761fba3e.js.map +1 -0
  226. package/dist/nano-components/index-browser.cjs-bf702094.js +5 -0
  227. package/dist/nano-components/index-browser.cjs-bf702094.js.map +1 -0
  228. package/dist/nano-components/nano-algolia.entry.js +1 -1
  229. package/dist/nano-components/nano-algolia.entry.js.map +1 -1
  230. package/dist/nano-components/nano-animation.entry.js +5 -0
  231. package/dist/nano-components/nano-animation.entry.js.map +1 -0
  232. package/dist/nano-components/nano-components.css +1 -1
  233. package/dist/nano-components/nano-components.esm.js +1 -1
  234. package/dist/nano-components/nano-components.esm.js.map +1 -1
  235. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  236. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  237. package/dist/nano-components/nano-global-nav.entry.js.map +1 -1
  238. package/dist/nano-components/nano-global-search-results.entry.js +1 -1
  239. package/dist/nano-components/nano-global-search-results.entry.js.map +1 -1
  240. package/dist/nano-components/nano-hero.entry.js +1 -1
  241. package/dist/nano-components/nano-hero.entry.js.map +1 -1
  242. package/dist/nano-components/nano-intersection-observe.entry.js +5 -0
  243. package/dist/nano-components/nano-intersection-observe.entry.js.map +1 -0
  244. package/dist/nano-components/nano-resize-observe_2.entry.js +1 -1
  245. package/dist/nano-components/nano-resize-observe_2.entry.js.map +1 -1
  246. package/dist/nano-components/nano-sticker.entry.js +1 -1
  247. package/dist/nano-components/nano-sticker.entry.js.map +1 -1
  248. package/dist/nano-components/nano-table-c85a2fd3.js +5 -0
  249. package/dist/nano-components/nano-table-c85a2fd3.js.map +1 -0
  250. package/dist/nano-components/nano-table.entry.js +1 -1
  251. package/dist/nano-components/scroll-parent-bab1cbf7.js +5 -0
  252. package/dist/nano-components/scroll-parent-bab1cbf7.js.map +1 -0
  253. package/dist/nano-components/search-insights-f64a6b4c.js +5 -0
  254. package/dist/nano-components/search-insights-f64a6b4c.js.map +1 -0
  255. package/dist/nano-components/table.worker-761fba3e.js +5 -0
  256. package/dist/types/components/algolia/algolia-interface.d.ts +2 -1
  257. package/dist/types/components/algolia/algolia.d.ts +7 -1
  258. package/dist/types/components/animation/animation.d.ts +74 -0
  259. package/dist/types/components/animation/animations/easings/easings.d.ts +31 -0
  260. package/dist/types/components/animation/animations/index.d.ts +101 -0
  261. package/dist/types/components/global-nav/global-nav-interface.d.ts +1 -0
  262. package/dist/types/components/global-nav/global-nav.d.ts +2 -6
  263. package/dist/types/components/global-search-results/global-search-results.d.ts +13 -7
  264. package/dist/types/components/intersection-observe/intersection-observe.d.ts +45 -0
  265. package/dist/types/components/select/select.d.ts +2 -4
  266. package/dist/types/components/sticker/sticker.d.ts +0 -5
  267. package/dist/types/components/table/table.utils.d.ts +0 -6
  268. package/dist/types/components.d.ts +213 -43
  269. package/dist/types/interface.d.ts +7 -2
  270. package/dist/types/utils/scroll-parent.d.ts +6 -0
  271. package/dist/types/utils/search-insights.d.ts +22 -0
  272. package/docs-json.json +1031 -117
  273. package/docs-vscode.json +488 -8
  274. package/hydrate/index.js +1636 -249
  275. package/package.json +3 -2
  276. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +0 -53
  277. package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +0 -1
  278. package/dist/cjs/nano-table-400049cc.js.map +0 -1
  279. package/dist/cjs/table.worker-a37f8365.js.map +0 -1
  280. package/dist/collection/components/aspect-ratio/aspect-ratio.css +0 -38
  281. package/dist/collection/components/aspect-ratio/aspect-ratio.js +0 -106
  282. package/dist/collection/components/aspect-ratio/aspect-ratio.js.map +0 -1
  283. package/dist/components/nano-aspect-ratio.js +0 -70
  284. package/dist/components/nano-aspect-ratio.js.map +0 -1
  285. package/dist/esm/nano-aspect-ratio.entry.js +0 -49
  286. package/dist/esm/nano-aspect-ratio.entry.js.map +0 -1
  287. package/dist/esm/nano-table-a6641aef.js.map +0 -1
  288. package/dist/esm/table.worker-6b597e20.js.map +0 -1
  289. package/dist/nano-components/nano-aspect-ratio.entry.js +0 -5
  290. package/dist/nano-components/nano-aspect-ratio.entry.js.map +0 -1
  291. package/dist/nano-components/nano-table-a6641aef.js +0 -5
  292. package/dist/nano-components/nano-table-a6641aef.js.map +0 -1
  293. package/dist/nano-components/table.worker-6b597e20.js +0 -5
  294. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +0 -19
  295. /package/dist/nano-components/{table.worker-6b597e20.js.map → table.worker-761fba3e.js.map} +0 -0
@@ -0,0 +1,547 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import { h, Host, } from '@stencil/core';
5
+ import { animations, easings } from './animations';
6
+ /**
7
+ * Animate elements declaratively with [~100 baked-in presets](https://animate.style/), or make your own with custom keyframes.
8
+ * Powered by the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API).
9
+ *
10
+ * @slot - The element to animate. Avoid slotting in more than one element, as subsequent ones will be ignored. To animate multiple elements, either wrap them in a single container or use multiple *nano-animation* elements.
11
+ */
12
+ export class NanoAnimation {
13
+ constructor() {
14
+ this.hasStarted = false;
15
+ this.handleAnimationFinish = () => {
16
+ this.play = false;
17
+ this.hasStarted = false;
18
+ this.nanoFinish.emit();
19
+ };
20
+ this.handleAnimationCancel = () => {
21
+ this.play = false;
22
+ this.hasStarted = false;
23
+ this.nanoCancel.emit();
24
+ };
25
+ this.handleSlotChange = () => {
26
+ this.destroyAnimation();
27
+ this.createAnimation();
28
+ };
29
+ this.name = 'none';
30
+ this.play = false;
31
+ this.delay = 0;
32
+ this.direction = 'normal';
33
+ this.duration = 1000;
34
+ this.easing = 'ease';
35
+ this.endDelay = 0;
36
+ this.fill = 'auto';
37
+ this.iterations = Infinity;
38
+ this.iterationStart = 0;
39
+ this.keyframes = undefined;
40
+ this.playbackRate = 1;
41
+ }
42
+ /** Gets and sets the current animation time. */
43
+ get currentTime() {
44
+ return this.animation?.currentTime ?? 0;
45
+ }
46
+ set currentTime(time) {
47
+ if (this.animation) {
48
+ this.animation.currentTime = time;
49
+ }
50
+ }
51
+ connectedCallback() {
52
+ this.createAnimation();
53
+ }
54
+ disconnectedCallback() {
55
+ this.destroyAnimation();
56
+ }
57
+ async createAnimation() {
58
+ if (!this.defaultSlot)
59
+ return;
60
+ const easing = easings[this.easing] ?? this.easing;
61
+ const keyframes = this.keyframes ??
62
+ animations[this.name];
63
+ const slot = this.defaultSlot;
64
+ const element = slot.assignedElements()[0];
65
+ if (!element || !keyframes) {
66
+ return false;
67
+ }
68
+ this.destroyAnimation();
69
+ this.animation = element.animate(keyframes, {
70
+ delay: this.delay,
71
+ direction: this.direction,
72
+ duration: this.duration,
73
+ easing,
74
+ endDelay: this.endDelay,
75
+ fill: this.fill,
76
+ iterationStart: this.iterationStart,
77
+ iterations: this.iterations,
78
+ });
79
+ this.animation.playbackRate = this.playbackRate;
80
+ this.animation.addEventListener('cancel', this.handleAnimationCancel);
81
+ this.animation.addEventListener('finish', this.handleAnimationFinish);
82
+ if (this.play) {
83
+ this.hasStarted = true;
84
+ this.nanoStart.emit();
85
+ }
86
+ else {
87
+ this.animation.pause();
88
+ }
89
+ return true;
90
+ }
91
+ destroyAnimation() {
92
+ if (this.animation) {
93
+ this.animation.cancel();
94
+ this.animation.removeEventListener('cancel', this.handleAnimationCancel);
95
+ this.animation.removeEventListener('finish', this.handleAnimationFinish);
96
+ this.hasStarted = false;
97
+ }
98
+ }
99
+ handleAnimationChange() {
100
+ this.createAnimation();
101
+ }
102
+ handlePlayChange() {
103
+ if (this.animation) {
104
+ if (this.play && !this.hasStarted) {
105
+ this.hasStarted = true;
106
+ this.nanoStart.emit();
107
+ }
108
+ if (this.play) {
109
+ this.animation.play();
110
+ }
111
+ else {
112
+ this.animation.pause();
113
+ }
114
+ return true;
115
+ }
116
+ return false;
117
+ }
118
+ handlePlaybackRateChange() {
119
+ if (this.animation) {
120
+ this.animation.playbackRate = this.playbackRate;
121
+ }
122
+ }
123
+ /** Clears all keyframe effects caused by this animation and aborts its playback. */
124
+ async cancel() {
125
+ this.animation?.cancel();
126
+ }
127
+ /** Sets the playback time to the end of the animation corresponding to the current playback direction. */
128
+ async finish() {
129
+ this.animation?.finish();
130
+ }
131
+ render() {
132
+ return (h(Host, null, h("slot", { ref: (slot) => (this.defaultSlot = slot), onSlotchange: this.handleSlotChange })));
133
+ }
134
+ static get is() { return "nano-animation"; }
135
+ static get encapsulation() { return "shadow"; }
136
+ static get styles() { return ":host {\n display: contents;\n }"; }
137
+ static get properties() {
138
+ return {
139
+ "name": {
140
+ "type": "string",
141
+ "mutable": false,
142
+ "complexType": {
143
+ "original": "AnimationName | 'none'",
144
+ "resolved": "\"flip\" | \"none\" | \"bounce\" | \"flash\" | \"headShake\" | \"heartBeat\" | \"jello\" | \"pulse\" | \"rubberBand\" | \"shake\" | \"shakeX\" | \"shakeY\" | \"swing\" | \"tada\" | \"wobble\" | \"backInDown\" | \"backInLeft\" | \"backInRight\" | \"backInUp\" | \"backOutDown\" | \"backOutLeft\" | \"backOutRight\" | \"backOutUp\" | \"bounceIn\" | \"bounceInDown\" | \"bounceInLeft\" | \"bounceInRight\" | \"bounceInUp\" | \"bounceOut\" | \"bounceOutDown\" | \"bounceOutLeft\" | \"bounceOutRight\" | \"bounceOutUp\" | \"fadeIn\" | \"fadeInBottomLeft\" | \"fadeInBottomRight\" | \"fadeInDown\" | \"fadeInDownBig\" | \"fadeInLeft\" | \"fadeInLeftBig\" | \"fadeInRight\" | \"fadeInRightBig\" | \"fadeInTopLeft\" | \"fadeInTopRight\" | \"fadeInUp\" | \"fadeInUpBig\" | \"fadeOut\" | \"fadeOutBottomLeft\" | \"fadeOutBottomRight\" | \"fadeOutDown\" | \"fadeOutDownBig\" | \"fadeOutLeft\" | \"fadeOutLeftBig\" | \"fadeOutRight\" | \"fadeOutRightBig\" | \"fadeOutTopLeft\" | \"fadeOutTopRight\" | \"fadeOutUp\" | \"fadeOutUpBig\" | \"flipInX\" | \"flipInY\" | \"flipOutX\" | \"flipOutY\" | \"lightSpeedInLeft\" | \"lightSpeedInRight\" | \"lightSpeedOutLeft\" | \"lightSpeedOutRight\" | \"rotateIn\" | \"rotateInDownLeft\" | \"rotateInDownRight\" | \"rotateInUpLeft\" | \"rotateInUpRight\" | \"rotateOut\" | \"rotateOutDownLeft\" | \"rotateOutDownRight\" | \"rotateOutUpLeft\" | \"rotateOutUpRight\" | \"slideInDown\" | \"slideInLeft\" | \"slideInRight\" | \"slideInUp\" | \"slideOutDown\" | \"slideOutLeft\" | \"slideOutRight\" | \"slideOutUp\" | \"hinge\" | \"jackInTheBox\" | \"rollIn\" | \"rollOut\" | \"zoomIn\" | \"zoomInDown\" | \"zoomInLeft\" | \"zoomInRight\" | \"zoomInUp\" | \"zoomOut\" | \"zoomOutDown\" | \"zoomOutLeft\" | \"zoomOutRight\" | \"zoomOutUp\"",
145
+ "references": {
146
+ "AnimationName": {
147
+ "location": "import",
148
+ "path": "../../interface"
149
+ }
150
+ }
151
+ },
152
+ "required": false,
153
+ "optional": false,
154
+ "docs": {
155
+ "tags": [],
156
+ "text": "The name of the built-in animation to use. For custom animations, use the `keyframes` prop."
157
+ },
158
+ "getter": false,
159
+ "setter": false,
160
+ "attribute": "name",
161
+ "reflect": false,
162
+ "defaultValue": "'none'"
163
+ },
164
+ "play": {
165
+ "type": "boolean",
166
+ "mutable": true,
167
+ "complexType": {
168
+ "original": "boolean",
169
+ "resolved": "boolean",
170
+ "references": {}
171
+ },
172
+ "required": false,
173
+ "optional": false,
174
+ "docs": {
175
+ "tags": [],
176
+ "text": "Plays the animation. When omitted, the animation will be paused. This attribute will be automatically removed when\nthe animation finishes or gets canceled."
177
+ },
178
+ "getter": false,
179
+ "setter": false,
180
+ "attribute": "play",
181
+ "reflect": true,
182
+ "defaultValue": "false"
183
+ },
184
+ "delay": {
185
+ "type": "number",
186
+ "mutable": false,
187
+ "complexType": {
188
+ "original": "number",
189
+ "resolved": "number",
190
+ "references": {}
191
+ },
192
+ "required": false,
193
+ "optional": false,
194
+ "docs": {
195
+ "tags": [],
196
+ "text": "The number of milliseconds to delay the start of the animation."
197
+ },
198
+ "getter": false,
199
+ "setter": false,
200
+ "attribute": "delay",
201
+ "reflect": false,
202
+ "defaultValue": "0"
203
+ },
204
+ "direction": {
205
+ "type": "string",
206
+ "mutable": false,
207
+ "complexType": {
208
+ "original": "PlaybackDirection",
209
+ "resolved": "\"alternate\" | \"alternate-reverse\" | \"normal\" | \"reverse\"",
210
+ "references": {
211
+ "PlaybackDirection": {
212
+ "location": "global"
213
+ }
214
+ }
215
+ },
216
+ "required": false,
217
+ "optional": false,
218
+ "docs": {
219
+ "tags": [],
220
+ "text": "Determines the direction of playback as well as the behavior when reaching the end of an iteration.\n[Learn more](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction)"
221
+ },
222
+ "getter": false,
223
+ "setter": false,
224
+ "attribute": "direction",
225
+ "reflect": false,
226
+ "defaultValue": "'normal'"
227
+ },
228
+ "duration": {
229
+ "type": "number",
230
+ "mutable": false,
231
+ "complexType": {
232
+ "original": "number",
233
+ "resolved": "number",
234
+ "references": {}
235
+ },
236
+ "required": false,
237
+ "optional": false,
238
+ "docs": {
239
+ "tags": [],
240
+ "text": "The number of milliseconds each iteration of the animation takes to complete."
241
+ },
242
+ "getter": false,
243
+ "setter": false,
244
+ "attribute": "duration",
245
+ "reflect": false,
246
+ "defaultValue": "1000"
247
+ },
248
+ "easing": {
249
+ "type": "string",
250
+ "mutable": false,
251
+ "complexType": {
252
+ "original": "AnimationEasing",
253
+ "resolved": "\"linear\" | \"ease\" | \"easeIn\" | \"easeOut\" | \"easeInOut\" | \"easeInSine\" | \"easeOutSine\" | \"easeInOutSine\" | \"easeInQuad\" | \"easeOutQuad\" | \"easeInOutQuad\" | \"easeInCubic\" | \"easeOutCubic\" | \"easeInOutCubic\" | \"easeInQuart\" | \"easeOutQuart\" | \"easeInOutQuart\" | \"easeInQuint\" | \"easeOutQuint\" | \"easeInOutQuint\" | \"easeInExpo\" | \"easeOutExpo\" | \"easeInOutExpo\" | \"easeInCirc\" | \"easeOutCirc\" | \"easeInOutCirc\" | \"easeInBack\" | \"easeOutBack\" | \"easeInOutBack\"",
254
+ "references": {
255
+ "AnimationEasing": {
256
+ "location": "import",
257
+ "path": "../../interface"
258
+ }
259
+ }
260
+ },
261
+ "required": false,
262
+ "optional": false,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": "The easing function to use for the animation. This can be a easing function or a custom easing function\nsuch as `cubic-bezier(0, 1, .76, 1.14)`."
266
+ },
267
+ "getter": false,
268
+ "setter": false,
269
+ "attribute": "easing",
270
+ "reflect": false,
271
+ "defaultValue": "'ease'"
272
+ },
273
+ "endDelay": {
274
+ "type": "number",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "number",
278
+ "resolved": "number",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": false,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": "The number of milliseconds to delay after the active period of an animation sequence."
286
+ },
287
+ "getter": false,
288
+ "setter": false,
289
+ "attribute": "end-delay",
290
+ "reflect": false,
291
+ "defaultValue": "0"
292
+ },
293
+ "fill": {
294
+ "type": "string",
295
+ "mutable": false,
296
+ "complexType": {
297
+ "original": "FillMode",
298
+ "resolved": "\"auto\" | \"backwards\" | \"both\" | \"forwards\" | \"none\"",
299
+ "references": {
300
+ "FillMode": {
301
+ "location": "global"
302
+ }
303
+ }
304
+ },
305
+ "required": false,
306
+ "optional": false,
307
+ "docs": {
308
+ "tags": [],
309
+ "text": "Sets how the animation applies styles to its target before and after its execution."
310
+ },
311
+ "getter": false,
312
+ "setter": false,
313
+ "attribute": "fill",
314
+ "reflect": false,
315
+ "defaultValue": "'auto'"
316
+ },
317
+ "iterations": {
318
+ "type": "number",
319
+ "mutable": false,
320
+ "complexType": {
321
+ "original": "number",
322
+ "resolved": "number",
323
+ "references": {}
324
+ },
325
+ "required": false,
326
+ "optional": false,
327
+ "docs": {
328
+ "tags": [],
329
+ "text": "The number of iterations to run before the animation completes. Defaults to `Infinity`, which loops."
330
+ },
331
+ "getter": false,
332
+ "setter": false,
333
+ "attribute": "iterations",
334
+ "reflect": false,
335
+ "defaultValue": "Infinity"
336
+ },
337
+ "iterationStart": {
338
+ "type": "number",
339
+ "mutable": false,
340
+ "complexType": {
341
+ "original": "number",
342
+ "resolved": "number",
343
+ "references": {}
344
+ },
345
+ "required": false,
346
+ "optional": false,
347
+ "docs": {
348
+ "tags": [],
349
+ "text": "The offset at which to start the animation, usually between 0 (start) and 1 (end)."
350
+ },
351
+ "getter": false,
352
+ "setter": false,
353
+ "attribute": "iteration-start",
354
+ "reflect": false,
355
+ "defaultValue": "0"
356
+ },
357
+ "keyframes": {
358
+ "type": "unknown",
359
+ "mutable": false,
360
+ "complexType": {
361
+ "original": "Keyframe[]",
362
+ "resolved": "Keyframe[]",
363
+ "references": {
364
+ "Keyframe": {
365
+ "location": "global"
366
+ }
367
+ }
368
+ },
369
+ "required": false,
370
+ "optional": true,
371
+ "docs": {
372
+ "tags": [],
373
+ "text": "The keyframes to use for the animation. If this is set, `name` will be ignored."
374
+ },
375
+ "getter": false,
376
+ "setter": false
377
+ },
378
+ "playbackRate": {
379
+ "type": "number",
380
+ "mutable": false,
381
+ "complexType": {
382
+ "original": "number",
383
+ "resolved": "number",
384
+ "references": {}
385
+ },
386
+ "required": false,
387
+ "optional": false,
388
+ "docs": {
389
+ "tags": [],
390
+ "text": "Sets the animation's playback rate. The default is `1`, which plays the animation at a normal speed. Setting this\nto `2`, for example, will double the animation's speed. A negative value can be used to reverse the animation. This\nvalue can be changed without causing the animation to restart."
391
+ },
392
+ "getter": false,
393
+ "setter": false,
394
+ "attribute": "playback-rate",
395
+ "reflect": false,
396
+ "defaultValue": "1"
397
+ },
398
+ "currentTime": {
399
+ "type": "number",
400
+ "mutable": false,
401
+ "complexType": {
402
+ "original": "CSSNumberish",
403
+ "resolved": "number",
404
+ "references": {
405
+ "CSSNumberish": {
406
+ "location": "global"
407
+ }
408
+ }
409
+ },
410
+ "required": false,
411
+ "optional": false,
412
+ "docs": {
413
+ "tags": [],
414
+ "text": "Gets and sets the current animation time."
415
+ },
416
+ "getter": true,
417
+ "setter": true,
418
+ "attribute": "current-time",
419
+ "reflect": false
420
+ }
421
+ };
422
+ }
423
+ static get events() {
424
+ return [{
425
+ "method": "nanoCancel",
426
+ "name": "nanoCancel",
427
+ "bubbles": true,
428
+ "cancelable": true,
429
+ "composed": true,
430
+ "docs": {
431
+ "tags": [],
432
+ "text": "Emitted when the animation is canceled."
433
+ },
434
+ "complexType": {
435
+ "original": "any",
436
+ "resolved": "any",
437
+ "references": {}
438
+ }
439
+ }, {
440
+ "method": "nanoFinish",
441
+ "name": "nanoFinish",
442
+ "bubbles": true,
443
+ "cancelable": true,
444
+ "composed": true,
445
+ "docs": {
446
+ "tags": [],
447
+ "text": "Emitted when the animation finishes."
448
+ },
449
+ "complexType": {
450
+ "original": "any",
451
+ "resolved": "any",
452
+ "references": {}
453
+ }
454
+ }, {
455
+ "method": "nanoStart",
456
+ "name": "nanoStart",
457
+ "bubbles": true,
458
+ "cancelable": true,
459
+ "composed": true,
460
+ "docs": {
461
+ "tags": [],
462
+ "text": "Emitted when the animation starts."
463
+ },
464
+ "complexType": {
465
+ "original": "any",
466
+ "resolved": "any",
467
+ "references": {}
468
+ }
469
+ }];
470
+ }
471
+ static get methods() {
472
+ return {
473
+ "cancel": {
474
+ "complexType": {
475
+ "signature": "() => Promise<void>",
476
+ "parameters": [],
477
+ "references": {
478
+ "Promise": {
479
+ "location": "global"
480
+ }
481
+ },
482
+ "return": "Promise<void>"
483
+ },
484
+ "docs": {
485
+ "text": "Clears all keyframe effects caused by this animation and aborts its playback.",
486
+ "tags": []
487
+ }
488
+ },
489
+ "finish": {
490
+ "complexType": {
491
+ "signature": "() => Promise<void>",
492
+ "parameters": [],
493
+ "references": {
494
+ "Promise": {
495
+ "location": "global"
496
+ }
497
+ },
498
+ "return": "Promise<void>"
499
+ },
500
+ "docs": {
501
+ "text": "Sets the playback time to the end of the animation corresponding to the current playback direction.",
502
+ "tags": []
503
+ }
504
+ }
505
+ };
506
+ }
507
+ static get watchers() {
508
+ return [{
509
+ "propName": "name",
510
+ "methodName": "handleAnimationChange"
511
+ }, {
512
+ "propName": "delay",
513
+ "methodName": "handleAnimationChange"
514
+ }, {
515
+ "propName": "direction",
516
+ "methodName": "handleAnimationChange"
517
+ }, {
518
+ "propName": "duration",
519
+ "methodName": "handleAnimationChange"
520
+ }, {
521
+ "propName": "easing",
522
+ "methodName": "handleAnimationChange"
523
+ }, {
524
+ "propName": "endDelay",
525
+ "methodName": "handleAnimationChange"
526
+ }, {
527
+ "propName": "fill",
528
+ "methodName": "handleAnimationChange"
529
+ }, {
530
+ "propName": "iterations",
531
+ "methodName": "handleAnimationChange"
532
+ }, {
533
+ "propName": "iterationStart",
534
+ "methodName": "handleAnimationChange"
535
+ }, {
536
+ "propName": "keyframes",
537
+ "methodName": "handleAnimationChange"
538
+ }, {
539
+ "propName": "play",
540
+ "methodName": "handlePlayChange"
541
+ }, {
542
+ "propName": "playbackRate",
543
+ "methodName": "handlePlaybackRateChange"
544
+ }];
545
+ }
546
+ }
547
+ //# sourceMappingURL=animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../src/components/animation/animation.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,CAAC,EAGD,KAAK,EACL,IAAI,EACJ,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGnD;;;;;GAKG;AAUH,MAAM,OAAO,aAAa;;IAEhB,eAAU,GAAG,KAAK,CAAC;IAgFnB,0BAAqB,GAAG,GAAG,EAAE;MACnC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;MAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;MACxB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC,CAAC;IAEM,0BAAqB,GAAG,GAAG,EAAE;MACnC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;MAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;MACxB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC,CAAC;IAEM,qBAAgB,GAAG,GAAG,EAAE;MAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC;gBA3FqC,MAAM;gBAME,KAAK;iBAGpC,CAAC;qBAMsB,QAAQ;oBAG5B,IAAI;kBAMW,MAAM;oBAGrB,CAAC;gBAGK,MAAM;sBAGV,QAAQ;0BAGJ,CAAC;;wBAUH,CAAC;;EAWxB,gDAAgD;EAChD,IACI,WAAW;IACb,OAAO,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI,CAAC,CAAC;EAC1C,CAAC;EACD,IAAI,WAAW,CAAC,IAAY;IAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;KACnC;EACH,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,eAAe,EAAE,CAAC;EACzB,CAAC;EAED,oBAAoB;IAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAmBO,KAAK,CAAC,eAAe;IAC3B,IAAI,CAAC,IAAI,CAAC,WAAW;MAAE,OAAO;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IACnD,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;MACb,UAA6D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAA4B,CAAC;IAEtE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE;MAC1B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;MAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;MACjB,SAAS,EAAE,IAAI,CAAC,SAAS;MACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,MAAM;MACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,IAAI,EAAE,IAAI,CAAC,IAAI;MACf,cAAc,EAAE,IAAI,CAAC,cAAc;MACnC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAEtE,IAAI,IAAI,CAAC,IAAI,EAAE;MACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;MACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;SAAM;MACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;EACd,CAAC;EAEO,gBAAgB;IACtB,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;MACxB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;MACzE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;MACzE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;EACH,CAAC;EAYD,qBAAqB;IACnB,IAAI,CAAC,eAAe,EAAE,CAAC;EACzB,CAAC;EAGD,gBAAgB;IACd,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;OACvB;MAED,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;OACvB;WAAM;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;OACxB;MAED,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;EACf,CAAC;EAGD,wBAAwB;IACtB,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KACjD;EACH,CAAC;EAED,oFAAoF;EAEpF,KAAK,CAAC,MAAM;IACV,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;EAC3B,CAAC;EAED,0GAA0G;EAE1G,KAAK,CAAC,MAAM;IACV,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;EAC3B,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,YACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAuB,CAAC,EAC3D,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAC7B,CACH,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Prop,\n Watch,\n h,\n ComponentInterface,\n EventEmitter,\n Event,\n Host,\n Method,\n} from '@stencil/core';\nimport { animations, easings } from './animations';\nimport type { AnimationEasing, AnimationName } from '../../interface';\n\n/**\n * Animate elements declaratively with [~100 baked-in presets](https://animate.style/), or make your own with custom keyframes.\n * Powered by the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API).\n *\n * @slot - The element to animate. Avoid slotting in more than one element, as subsequent ones will be ignored. To animate multiple elements, either wrap them in a single container or use multiple *nano-animation* elements.\n */\n@Component({\n tag: 'nano-animation',\n styles: /* css */ `\n :host {\n display: contents;\n }\n `,\n shadow: true,\n})\nexport class NanoAnimation implements ComponentInterface {\n private animation?: Animation;\n private hasStarted = false;\n private defaultSlot?: HTMLSlotElement;\n\n /** The name of the built-in animation to use. For custom animations, use the `keyframes` prop. */\n @Prop() name: AnimationName | 'none' = 'none';\n\n /**\n * Plays the animation. When omitted, the animation will be paused. This attribute will be automatically removed when\n * the animation finishes or gets canceled.\n */\n @Prop({ reflect: true, mutable: true }) play = false;\n\n /** The number of milliseconds to delay the start of the animation. */\n @Prop() delay = 0;\n\n /**\n * Determines the direction of playback as well as the behavior when reaching the end of an iteration.\n * [Learn more](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction)\n */\n @Prop() direction: PlaybackDirection = 'normal';\n\n /** The number of milliseconds each iteration of the animation takes to complete. */\n @Prop() duration = 1000;\n\n /**\n * The easing function to use for the animation. This can be a easing function or a custom easing function\n * such as `cubic-bezier(0, 1, .76, 1.14)`.\n */\n @Prop() easing: AnimationEasing = 'ease';\n\n /** The number of milliseconds to delay after the active period of an animation sequence. */\n @Prop() endDelay = 0;\n\n /** Sets how the animation applies styles to its target before and after its execution. */\n @Prop() fill: FillMode = 'auto';\n\n /** The number of iterations to run before the animation completes. Defaults to `Infinity`, which loops. */\n @Prop() iterations = Infinity;\n\n /** The offset at which to start the animation, usually between 0 (start) and 1 (end). */\n @Prop() iterationStart = 0;\n\n /** The keyframes to use for the animation. If this is set, `name` will be ignored. */\n @Prop() keyframes?: Keyframe[];\n\n /**\n * Sets the animation's playback rate. The default is `1`, which plays the animation at a normal speed. Setting this\n * to `2`, for example, will double the animation's speed. A negative value can be used to reverse the animation. This\n * value can be changed without causing the animation to restart.\n */\n @Prop() playbackRate = 1;\n\n /** Emitted when the animation is canceled. */\n @Event() nanoCancel: EventEmitter;\n\n /** Emitted when the animation finishes. */\n @Event() nanoFinish: EventEmitter;\n\n /** Emitted when the animation starts. */\n @Event() nanoStart: EventEmitter;\n\n /** Gets and sets the current animation time. */\n @Prop()\n get currentTime(): CSSNumberish {\n return this.animation?.currentTime ?? 0;\n }\n set currentTime(time: number) {\n if (this.animation) {\n this.animation.currentTime = time;\n }\n }\n\n connectedCallback() {\n this.createAnimation();\n }\n\n disconnectedCallback() {\n this.destroyAnimation();\n }\n\n private handleAnimationFinish = () => {\n this.play = false;\n this.hasStarted = false;\n this.nanoFinish.emit();\n };\n\n private handleAnimationCancel = () => {\n this.play = false;\n this.hasStarted = false;\n this.nanoCancel.emit();\n };\n\n private handleSlotChange = () => {\n this.destroyAnimation();\n this.createAnimation();\n };\n\n private async createAnimation() {\n if (!this.defaultSlot) return;\n\n const easing = easings[this.easing] ?? this.easing;\n const keyframes =\n this.keyframes ??\n (animations as unknown as Partial<Record<string, Keyframe[]>>)[this.name];\n const slot = this.defaultSlot;\n const element = slot.assignedElements()[0] as HTMLElement | undefined;\n\n if (!element || !keyframes) {\n return false;\n }\n\n this.destroyAnimation();\n this.animation = element.animate(keyframes, {\n delay: this.delay,\n direction: this.direction,\n duration: this.duration,\n easing,\n endDelay: this.endDelay,\n fill: this.fill,\n iterationStart: this.iterationStart,\n iterations: this.iterations,\n });\n this.animation.playbackRate = this.playbackRate;\n this.animation.addEventListener('cancel', this.handleAnimationCancel);\n this.animation.addEventListener('finish', this.handleAnimationFinish);\n\n if (this.play) {\n this.hasStarted = true;\n this.nanoStart.emit();\n } else {\n this.animation.pause();\n }\n\n return true;\n }\n\n private destroyAnimation() {\n if (this.animation) {\n this.animation.cancel();\n this.animation.removeEventListener('cancel', this.handleAnimationCancel);\n this.animation.removeEventListener('finish', this.handleAnimationFinish);\n this.hasStarted = false;\n }\n }\n\n @Watch('name')\n @Watch('delay')\n @Watch('direction')\n @Watch('duration')\n @Watch('easing')\n @Watch('endDelay')\n @Watch('fill')\n @Watch('iterations')\n @Watch('iterationStart')\n @Watch('keyframes')\n handleAnimationChange() {\n this.createAnimation();\n }\n\n @Watch('play')\n handlePlayChange() {\n if (this.animation) {\n if (this.play && !this.hasStarted) {\n this.hasStarted = true;\n this.nanoStart.emit();\n }\n\n if (this.play) {\n this.animation.play();\n } else {\n this.animation.pause();\n }\n\n return true;\n }\n return false;\n }\n\n @Watch('playbackRate')\n handlePlaybackRateChange() {\n if (this.animation) {\n this.animation.playbackRate = this.playbackRate;\n }\n }\n\n /** Clears all keyframe effects caused by this animation and aborts its playback. */\n @Method()\n async cancel() {\n this.animation?.cancel();\n }\n\n /** Sets the playback time to the end of the animation corresponding to the current playback direction. */\n @Method()\n async finish() {\n this.animation?.finish();\n }\n\n render() {\n return (\n <Host>\n <slot\n ref={(slot) => (this.defaultSlot = slot as HTMLSlotElement)}\n onSlotchange={this.handleSlotChange}\n ></slot>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,43 @@
1
+ export const bounce = [
2
+ {
3
+ offset: 0,
4
+ easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
5
+ transform: 'translate3d(0, 0, 0)',
6
+ },
7
+ {
8
+ offset: 0.2,
9
+ easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
10
+ transform: 'translate3d(0, 0, 0)',
11
+ },
12
+ {
13
+ offset: 0.4,
14
+ easing: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',
15
+ transform: 'translate3d(0, -30px, 0) scaleY(1.1)',
16
+ },
17
+ {
18
+ offset: 0.43,
19
+ easing: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',
20
+ transform: 'translate3d(0, -30px, 0) scaleY(1.1)',
21
+ },
22
+ {
23
+ offset: 0.53,
24
+ easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
25
+ transform: 'translate3d(0, 0, 0)',
26
+ },
27
+ {
28
+ offset: 0.7,
29
+ easing: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',
30
+ transform: 'translate3d(0, -15px, 0) scaleY(1.05)',
31
+ },
32
+ {
33
+ offset: 0.8,
34
+ 'transition-timing-function': 'cubic-bezier(0.215, 0.61, 0.355, 1)',
35
+ transform: 'translate3d(0, 0, 0) scaleY(0.95)',
36
+ },
37
+ { offset: 0.9, transform: 'translate3d(0, -4px, 0) scaleY(1.02)' },
38
+ {
39
+ offset: 1,
40
+ easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
41
+ transform: 'translate3d(0, 0, 0)',
42
+ },
43
+ ];
@@ -0,0 +1,7 @@
1
+ export const flash = [
2
+ { offset: 0, opacity: '1' },
3
+ { offset: 0.25, opacity: '0' },
4
+ { offset: 0.5, opacity: '1' },
5
+ { offset: 0.75, opacity: '0' },
6
+ { offset: 1, opacity: '1' },
7
+ ];
@@ -0,0 +1,8 @@
1
+ export const headShake = [
2
+ { offset: 0, transform: 'translateX(0)' },
3
+ { offset: 0.065, transform: 'translateX(-6px) rotateY(-9deg)' },
4
+ { offset: 0.185, transform: 'translateX(5px) rotateY(7deg)' },
5
+ { offset: 0.315, transform: 'translateX(-3px) rotateY(-5deg)' },
6
+ { offset: 0.435, transform: 'translateX(2px) rotateY(3deg)' },
7
+ { offset: 0.5, transform: 'translateX(0)' },
8
+ ];
@@ -0,0 +1,7 @@
1
+ export const heartBeat = [
2
+ { offset: 0, transform: 'scale(1)' },
3
+ { offset: 0.14, transform: 'scale(1.3)' },
4
+ { offset: 0.28, transform: 'scale(1)' },
5
+ { offset: 0.42, transform: 'scale(1.3)' },
6
+ { offset: 0.7, transform: 'scale(1)' },
7
+ ];
@@ -0,0 +1,15 @@
1
+ export const jello = [
2
+ { offset: 0, transform: 'translate3d(0, 0, 0)' },
3
+ { offset: 0.111, transform: 'translate3d(0, 0, 0)' },
4
+ { offset: 0.222, transform: 'skewX(-12.5deg) skewY(-12.5deg)' },
5
+ { offset: 0.33299999999999996, transform: 'skewX(6.25deg) skewY(6.25deg)' },
6
+ { offset: 0.444, transform: 'skewX(-3.125deg) skewY(-3.125deg)' },
7
+ { offset: 0.555, transform: 'skewX(1.5625deg) skewY(1.5625deg)' },
8
+ {
9
+ offset: 0.6659999999999999,
10
+ transform: 'skewX(-0.78125deg) skewY(-0.78125deg)',
11
+ },
12
+ { offset: 0.777, transform: 'skewX(0.390625deg) skewY(0.390625deg)' },
13
+ { offset: 0.888, transform: 'skewX(-0.1953125deg) skewY(-0.1953125deg)' },
14
+ { offset: 1, transform: 'translate3d(0, 0, 0)' },
15
+ ];
@@ -0,0 +1,5 @@
1
+ export const pulse = [
2
+ { offset: 0, transform: 'scale3d(1, 1, 1)' },
3
+ { offset: 0.5, transform: 'scale3d(1.05, 1.05, 1.05)' },
4
+ { offset: 1, transform: 'scale3d(1, 1, 1)' },
5
+ ];
@@ -0,0 +1,9 @@
1
+ export const rubberBand = [
2
+ { offset: 0, transform: 'scale3d(1, 1, 1)' },
3
+ { offset: 0.3, transform: 'scale3d(1.25, 0.75, 1)' },
4
+ { offset: 0.4, transform: 'scale3d(0.75, 1.25, 1)' },
5
+ { offset: 0.5, transform: 'scale3d(1.15, 0.85, 1)' },
6
+ { offset: 0.65, transform: 'scale3d(0.95, 1.05, 1)' },
7
+ { offset: 0.75, transform: 'scale3d(1.05, 0.95, 1)' },
8
+ { offset: 1, transform: 'scale3d(1, 1, 1)' },
9
+ ];