@studiometa/ui 1.0.0-alpha.8 → 1.0.0-beta.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 (325) hide show
  1. package/{molecules/Accordion → Accordion}/Accordion.js.map +1 -1
  2. package/{molecules/Accordion → Accordion}/AccordionCore.js.map +1 -1
  3. package/{molecules/Accordion → Accordion}/AccordionItem.js.map +1 -1
  4. package/{molecules/Accordion → Accordion}/index.js.map +1 -1
  5. package/{atoms/Action → Action}/Action.js.map +1 -1
  6. package/{atoms/Action → Action}/ActionEvent.js.map +1 -1
  7. package/{atoms/Action → Action}/Target.js.map +1 -1
  8. package/{atoms/Action → Action}/index.js.map +1 -1
  9. package/{molecules/AnchorNav → AnchorNav}/AnchorNav.js.map +1 -1
  10. package/{molecules/AnchorNav → AnchorNav}/AnchorNavLink.d.ts +2 -2
  11. package/{molecules/AnchorNav → AnchorNav}/AnchorNavLink.js +2 -2
  12. package/AnchorNav/AnchorNavLink.js.map +7 -0
  13. package/{molecules/AnchorNav → AnchorNav}/AnchorNavTarget.js.map +1 -1
  14. package/{molecules/AnchorNav → AnchorNav}/index.js.map +1 -1
  15. package/{atoms/AnchorScrollTo → AnchorScrollTo}/AnchorScrollTo.js.map +1 -1
  16. package/{atoms/AnchorScrollTo → AnchorScrollTo}/index.js.map +1 -1
  17. package/{atoms/Button → Button}/Button.twig +1 -1
  18. package/{atoms/Button → Button}/StyledButton.twig +1 -1
  19. package/{atoms/Button → Button}/StyledButtonRounded.twig +1 -1
  20. package/{atoms/CircularMarquee → CircularMarquee}/CircularMarquee.js.map +1 -1
  21. package/{atoms/CircularMarquee → CircularMarquee}/CircularMarquee.twig +1 -1
  22. package/{atoms/CircularMarquee → CircularMarquee}/index.js.map +1 -1
  23. package/{atoms/Cursor → Cursor}/Cursor.js.map +1 -1
  24. package/{atoms/Cursor → Cursor}/index.js.map +1 -1
  25. package/{atoms/Data → Data}/DataBind.js.map +1 -1
  26. package/{atoms/Data → Data}/DataComputed.js +0 -1
  27. package/Data/DataComputed.js.map +7 -0
  28. package/Data/DataEffect.js.map +7 -0
  29. package/{atoms/Data → Data}/DataModel.js.map +1 -1
  30. package/{atoms/Data → Data}/index.js.map +1 -1
  31. package/{atoms/Data → Data}/utils.js.map +1 -1
  32. package/{primitives/Draggable → Draggable}/Draggable.js.map +1 -1
  33. package/{primitives/Draggable → Draggable}/index.js.map +1 -1
  34. package/{atoms/Figure/Figure.d.ts → Figure/AbstractFigure.d.ts} +4 -12
  35. package/{atoms/Figure/Figure.js → Figure/AbstractFigure.js} +11 -29
  36. package/Figure/AbstractFigure.js.map +7 -0
  37. package/Figure/AbstractFigureDynamic.d.ts +29 -0
  38. package/Figure/AbstractFigureDynamic.js +48 -0
  39. package/Figure/AbstractFigureDynamic.js.map +7 -0
  40. package/Figure/Figure.d.ts +18 -0
  41. package/Figure/Figure.js +20 -0
  42. package/Figure/Figure.js.map +7 -0
  43. package/Figure/FigureShopify.d.ts +23 -0
  44. package/Figure/FigureShopify.js +38 -0
  45. package/Figure/FigureShopify.js.map +7 -0
  46. package/{atoms/Figure → Figure}/FigureTwicpics.d.ts +3 -19
  47. package/{atoms/Figure → Figure}/FigureTwicpics.js +10 -32
  48. package/Figure/FigureTwicpics.js.map +7 -0
  49. package/{atoms/Figure → Figure}/FigureTwicpics.twig +1 -1
  50. package/{atoms/Figure → Figure}/index.d.ts +1 -0
  51. package/{atoms/Figure → Figure}/index.js +1 -0
  52. package/Figure/index.js.map +7 -0
  53. package/Figure/utils.d.ts +8 -0
  54. package/Figure/utils.js +15 -0
  55. package/Figure/utils.js.map +7 -0
  56. package/{atoms/FigureVideo → FigureVideo}/FigureVideo.d.ts +1 -1
  57. package/{atoms/FigureVideo → FigureVideo}/FigureVideo.js +2 -2
  58. package/FigureVideo/FigureVideo.js.map +7 -0
  59. package/{atoms/FigureVideo → FigureVideo}/FigureVideoTwicpics.js +1 -1
  60. package/FigureVideo/FigureVideoTwicpics.js.map +7 -0
  61. package/{atoms/FigureVideo → FigureVideo}/FigureVideoTwicpics.twig +1 -1
  62. package/{atoms/FigureVideo → FigureVideo}/index.js.map +1 -1
  63. package/{organisms/Frame → Frame}/Frame.js +1 -1
  64. package/{organisms/Frame → Frame}/Frame.js.map +3 -3
  65. package/{organisms/Frame → Frame}/FrameAnchor.js.map +1 -1
  66. package/{organisms/Frame → Frame}/FrameForm.js.map +1 -1
  67. package/{organisms/Frame → Frame}/FrameTarget.d.ts +2 -2
  68. package/{organisms/Frame → Frame}/FrameTarget.js +1 -1
  69. package/Frame/FrameTarget.js.map +7 -0
  70. package/{organisms/Frame → Frame}/index.js.map +1 -1
  71. package/{organisms/Hero → Hero}/Hero.twig +2 -2
  72. package/{atoms/Icon/IconInline.twig → Icon/Icon.twig} +5 -1
  73. package/{atoms/Icon/IconInlineImg.twig → Icon/IconImg.twig} +5 -1
  74. package/{molecules/IconList → IconList}/IconList.twig +4 -4
  75. package/{organisms/ImageGrid → ImageGrid}/ImageGrid.twig +1 -1
  76. package/{atoms/LargeText → LargeText}/LargeText.js.map +1 -1
  77. package/{atoms/LargeText → LargeText}/index.js.map +1 -1
  78. package/{atoms/LazyInclude → LazyInclude}/LazyInclude.js.map +1 -1
  79. package/{atoms/LazyInclude → LazyInclude}/index.js.map +1 -1
  80. package/{molecules/MapboxStaticMap → MapboxStaticMap}/MapboxStaticMap.twig +1 -1
  81. package/{molecules/Menu → Menu}/Menu.js.map +1 -1
  82. package/{molecules/Menu → Menu}/MenuBtn.js.map +1 -1
  83. package/{molecules/Menu → Menu}/MenuList.d.ts +2 -2
  84. package/{molecules/Menu → Menu}/MenuList.js +1 -1
  85. package/Menu/MenuList.js.map +7 -0
  86. package/{molecules/Menu → Menu}/index.js.map +1 -1
  87. package/{molecules/Modal → Modal}/Modal.d.ts +1 -1
  88. package/{molecules/Modal → Modal}/Modal.js.map +1 -1
  89. package/{molecules/Modal → Modal}/Modal.twig +2 -2
  90. package/{molecules/Modal → Modal}/ModalWithTransition.js.map +1 -1
  91. package/{molecules/Modal → Modal}/StyledModal.twig +3 -3
  92. package/{molecules/Modal → Modal}/index.js.map +1 -1
  93. package/{molecules/Panel → Panel}/Panel.js.map +1 -1
  94. package/{molecules/Panel → Panel}/Panel.twig +1 -1
  95. package/{molecules/Panel → Panel}/StyledPanel.twig +3 -3
  96. package/{molecules/Panel → Panel}/index.js.map +1 -1
  97. package/{atoms/Prefetch → Prefetch}/AbstractPrefetch.js.map +1 -1
  98. package/{atoms/Prefetch → Prefetch}/PrefetchWhenOver.js.map +1 -1
  99. package/{atoms/Prefetch → Prefetch}/PrefetchWhenVisible.js.map +1 -1
  100. package/{atoms/Prefetch → Prefetch}/index.js.map +1 -1
  101. package/{molecules/Reinsurance → Reinsurance}/Reinsurance.twig +1 -1
  102. package/{atoms/ScrollAnimation → ScrollAnimation}/AbstractScrollAnimation.js.map +1 -1
  103. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimation.js.map +1 -1
  104. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChild.js.map +1 -1
  105. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChildWithEase.d.ts +1 -1
  106. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChildWithEase.js.map +1 -1
  107. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationParent.js.map +1 -1
  108. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationWithEase.d.ts +1 -1
  109. package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationWithEase.js.map +1 -1
  110. package/{atoms/ScrollAnimation → ScrollAnimation}/animationScrollWithEase.js.map +1 -1
  111. package/{atoms/ScrollAnimation → ScrollAnimation}/index.js.map +1 -1
  112. package/{atoms/ScrollReveal → ScrollReveal}/ScrollReveal.d.ts +1 -1
  113. package/{atoms/ScrollReveal → ScrollReveal}/ScrollReveal.js +1 -1
  114. package/ScrollReveal/ScrollReveal.js.map +7 -0
  115. package/{atoms/ScrollReveal → ScrollReveal}/index.js.map +1 -1
  116. package/{primitives/Sentinel → Sentinel}/Sentinel.js.map +1 -1
  117. package/{primitives/Sentinel → Sentinel}/index.js.map +1 -1
  118. package/{molecules/Slider → Slider}/AbstractSliderChild.js.map +1 -1
  119. package/{molecules/Slider → Slider}/Slider.js.map +1 -1
  120. package/{molecules/Slider → Slider}/SliderBtn.js.map +1 -1
  121. package/{molecules/Slider → Slider}/SliderCount.js.map +1 -1
  122. package/{molecules/Slider → Slider}/SliderDots.d.ts +2 -3
  123. package/{molecules/Slider → Slider}/SliderDots.js +2 -2
  124. package/Slider/SliderDots.js.map +7 -0
  125. package/{molecules/Slider → Slider}/SliderDrag.js.map +1 -1
  126. package/{molecules/Slider → Slider}/SliderItem.js.map +1 -1
  127. package/{molecules/Slider → Slider}/SliderProgress.js.map +1 -1
  128. package/{molecules/Slider → Slider}/index.js.map +1 -1
  129. package/{molecules/Sticky → Sticky}/Sticky.d.ts +1 -1
  130. package/{molecules/Sticky → Sticky}/Sticky.js +1 -1
  131. package/Sticky/Sticky.js.map +7 -0
  132. package/{molecules/Sticky → Sticky}/index.js.map +1 -1
  133. package/{molecules/TableOfContent → TableOfContent}/TableOfContent.d.ts +1 -1
  134. package/{molecules/TableOfContent → TableOfContent}/TableOfContent.js +1 -1
  135. package/TableOfContent/TableOfContent.js.map +7 -0
  136. package/{molecules/TableOfContent → TableOfContent}/TableOfContentAnchor.d.ts +2 -2
  137. package/{molecules/TableOfContent → TableOfContent}/TableOfContentAnchor.js +2 -2
  138. package/TableOfContent/TableOfContentAnchor.js.map +7 -0
  139. package/{molecules/TableOfContent → TableOfContent}/index.js.map +1 -1
  140. package/{molecules/Tabs → Tabs}/Tabs.d.ts +1 -2
  141. package/{molecules/Tabs → Tabs}/Tabs.js +1 -1
  142. package/Tabs/Tabs.js.map +7 -0
  143. package/{molecules/Tabs → Tabs}/index.js.map +1 -1
  144. package/{primitives/Transition → Transition}/Transition.d.ts +1 -1
  145. package/{primitives/Transition → Transition}/Transition.js +1 -1
  146. package/Transition/Transition.js.map +7 -0
  147. package/{primitives/Transition → Transition}/index.js.map +1 -1
  148. package/decorators/withTransition.d.ts +1 -0
  149. package/decorators/withTransition.js +47 -23
  150. package/decorators/withTransition.js.map +2 -2
  151. package/index.d.ts +25 -4
  152. package/index.js +25 -4
  153. package/index.js.map +2 -2
  154. package/package.json +2 -2
  155. package/atoms/Data/DataComputed.js.map +0 -7
  156. package/atoms/Data/DataEffect.js.map +0 -7
  157. package/atoms/Figure/Figure.js.map +0 -7
  158. package/atoms/Figure/FigureTwicpics.js.map +0 -7
  159. package/atoms/Figure/index.js.map +0 -7
  160. package/atoms/FigureVideo/FigureVideo.js.map +0 -7
  161. package/atoms/FigureVideo/FigureVideoTwicpics.js.map +0 -7
  162. package/atoms/Icon/Icon.twig +0 -12
  163. package/atoms/ScrollReveal/ScrollReveal.js.map +0 -7
  164. package/atoms/index.d.ts +0 -12
  165. package/atoms/index.js +0 -13
  166. package/atoms/index.js.map +0 -7
  167. package/molecules/AnchorNav/AnchorNavLink.js.map +0 -7
  168. package/molecules/Menu/MenuList.js.map +0 -7
  169. package/molecules/Slider/SliderDots.js.map +0 -7
  170. package/molecules/Sticky/Sticky.js.map +0 -7
  171. package/molecules/TableOfContent/TableOfContent.js.map +0 -7
  172. package/molecules/TableOfContent/TableOfContentAnchor.js.map +0 -7
  173. package/molecules/Tabs/Tabs.js.map +0 -7
  174. package/molecules/index.d.ts +0 -9
  175. package/molecules/index.js +0 -10
  176. package/molecules/index.js.map +0 -7
  177. package/organisms/Frame/FrameTarget.js.map +0 -7
  178. package/organisms/index.d.ts +0 -1
  179. package/organisms/index.js +0 -2
  180. package/organisms/index.js.map +0 -7
  181. package/primitives/Transition/Transition.js.map +0 -7
  182. package/primitives/index.d.ts +0 -3
  183. package/primitives/index.js +0 -4
  184. package/primitives/index.js.map +0 -7
  185. /package/{molecules/Accordion → Accordion}/Accordion.d.ts +0 -0
  186. /package/{molecules/Accordion → Accordion}/Accordion.js +0 -0
  187. /package/{molecules/Accordion → Accordion}/Accordion.twig +0 -0
  188. /package/{molecules/Accordion → Accordion}/AccordionCore.d.ts +0 -0
  189. /package/{molecules/Accordion → Accordion}/AccordionCore.js +0 -0
  190. /package/{molecules/Accordion → Accordion}/AccordionItem.d.ts +0 -0
  191. /package/{molecules/Accordion → Accordion}/AccordionItem.js +0 -0
  192. /package/{molecules/Accordion → Accordion}/index.d.ts +0 -0
  193. /package/{molecules/Accordion → Accordion}/index.js +0 -0
  194. /package/{atoms/Action → Action}/Action.d.ts +0 -0
  195. /package/{atoms/Action → Action}/Action.js +0 -0
  196. /package/{atoms/Action → Action}/ActionEvent.d.ts +0 -0
  197. /package/{atoms/Action → Action}/ActionEvent.js +0 -0
  198. /package/{atoms/Action → Action}/Target.d.ts +0 -0
  199. /package/{atoms/Action → Action}/Target.js +0 -0
  200. /package/{atoms/Action → Action}/index.d.ts +0 -0
  201. /package/{atoms/Action → Action}/index.js +0 -0
  202. /package/{molecules/AnchorNav → AnchorNav}/AnchorNav.d.ts +0 -0
  203. /package/{molecules/AnchorNav → AnchorNav}/AnchorNav.js +0 -0
  204. /package/{molecules/AnchorNav → AnchorNav}/AnchorNavTarget.d.ts +0 -0
  205. /package/{molecules/AnchorNav → AnchorNav}/AnchorNavTarget.js +0 -0
  206. /package/{molecules/AnchorNav → AnchorNav}/index.d.ts +0 -0
  207. /package/{molecules/AnchorNav → AnchorNav}/index.js +0 -0
  208. /package/{atoms/AnchorScrollTo → AnchorScrollTo}/AnchorScrollTo.d.ts +0 -0
  209. /package/{atoms/AnchorScrollTo → AnchorScrollTo}/AnchorScrollTo.js +0 -0
  210. /package/{atoms/AnchorScrollTo → AnchorScrollTo}/index.d.ts +0 -0
  211. /package/{atoms/AnchorScrollTo → AnchorScrollTo}/index.js +0 -0
  212. /package/{atoms/CircularMarquee → CircularMarquee}/CircularMarquee.d.ts +0 -0
  213. /package/{atoms/CircularMarquee → CircularMarquee}/CircularMarquee.js +0 -0
  214. /package/{atoms/CircularMarquee → CircularMarquee}/index.d.ts +0 -0
  215. /package/{atoms/CircularMarquee → CircularMarquee}/index.js +0 -0
  216. /package/{atoms/Cursor → Cursor}/Cursor.d.ts +0 -0
  217. /package/{atoms/Cursor → Cursor}/Cursor.js +0 -0
  218. /package/{atoms/Cursor → Cursor}/Cursor.twig +0 -0
  219. /package/{atoms/Cursor → Cursor}/index.d.ts +0 -0
  220. /package/{atoms/Cursor → Cursor}/index.js +0 -0
  221. /package/{atoms/Data → Data}/DataBind.d.ts +0 -0
  222. /package/{atoms/Data → Data}/DataBind.js +0 -0
  223. /package/{atoms/Data → Data}/DataComputed.d.ts +0 -0
  224. /package/{atoms/Data → Data}/DataEffect.d.ts +0 -0
  225. /package/{atoms/Data → Data}/DataEffect.js +0 -0
  226. /package/{atoms/Data → Data}/DataModel.d.ts +0 -0
  227. /package/{atoms/Data → Data}/DataModel.js +0 -0
  228. /package/{atoms/Data → Data}/index.d.ts +0 -0
  229. /package/{atoms/Data → Data}/index.js +0 -0
  230. /package/{atoms/Data → Data}/utils.d.ts +0 -0
  231. /package/{atoms/Data → Data}/utils.js +0 -0
  232. /package/{primitives/Draggable → Draggable}/Draggable.d.ts +0 -0
  233. /package/{primitives/Draggable → Draggable}/Draggable.js +0 -0
  234. /package/{primitives/Draggable → Draggable}/index.d.ts +0 -0
  235. /package/{primitives/Draggable → Draggable}/index.js +0 -0
  236. /package/{atoms/Figure → Figure}/Figure.twig +0 -0
  237. /package/{atoms/FigureVideo → FigureVideo}/FigureVideo.twig +0 -0
  238. /package/{atoms/FigureVideo → FigureVideo}/FigureVideoTwicpics.d.ts +0 -0
  239. /package/{atoms/FigureVideo → FigureVideo}/index.d.ts +0 -0
  240. /package/{atoms/FigureVideo → FigureVideo}/index.js +0 -0
  241. /package/{organisms/Frame → Frame}/Frame.d.ts +0 -0
  242. /package/{organisms/Frame → Frame}/FrameAnchor.d.ts +0 -0
  243. /package/{organisms/Frame → Frame}/FrameAnchor.js +0 -0
  244. /package/{organisms/Frame → Frame}/FrameForm.d.ts +0 -0
  245. /package/{organisms/Frame → Frame}/FrameForm.js +0 -0
  246. /package/{organisms/Frame → Frame}/index.d.ts +0 -0
  247. /package/{organisms/Frame → Frame}/index.js +0 -0
  248. /package/{atoms/LargeText → LargeText}/LargeText.d.ts +0 -0
  249. /package/{atoms/LargeText → LargeText}/LargeText.js +0 -0
  250. /package/{atoms/LargeText → LargeText}/LargeText.twig +0 -0
  251. /package/{atoms/LargeText → LargeText}/index.d.ts +0 -0
  252. /package/{atoms/LargeText → LargeText}/index.js +0 -0
  253. /package/{atoms/LazyInclude → LazyInclude}/LazyInclude.d.ts +0 -0
  254. /package/{atoms/LazyInclude → LazyInclude}/LazyInclude.js +0 -0
  255. /package/{atoms/LazyInclude → LazyInclude}/index.d.ts +0 -0
  256. /package/{atoms/LazyInclude → LazyInclude}/index.js +0 -0
  257. /package/{molecules/Menu → Menu}/Menu.d.ts +0 -0
  258. /package/{molecules/Menu → Menu}/Menu.js +0 -0
  259. /package/{molecules/Menu → Menu}/MenuBtn.d.ts +0 -0
  260. /package/{molecules/Menu → Menu}/MenuBtn.js +0 -0
  261. /package/{molecules/Menu → Menu}/index.d.ts +0 -0
  262. /package/{molecules/Menu → Menu}/index.js +0 -0
  263. /package/{molecules/Modal → Modal}/Modal.js +0 -0
  264. /package/{molecules/Modal → Modal}/ModalWithTransition.d.ts +0 -0
  265. /package/{molecules/Modal → Modal}/ModalWithTransition.js +0 -0
  266. /package/{molecules/Modal → Modal}/index.d.ts +0 -0
  267. /package/{molecules/Modal → Modal}/index.js +0 -0
  268. /package/{molecules/Panel → Panel}/Panel.d.ts +0 -0
  269. /package/{molecules/Panel → Panel}/Panel.js +0 -0
  270. /package/{molecules/Panel → Panel}/index.d.ts +0 -0
  271. /package/{molecules/Panel → Panel}/index.js +0 -0
  272. /package/{atoms/Prefetch → Prefetch}/AbstractPrefetch.d.ts +0 -0
  273. /package/{atoms/Prefetch → Prefetch}/AbstractPrefetch.js +0 -0
  274. /package/{atoms/Prefetch → Prefetch}/PrefetchWhenOver.d.ts +0 -0
  275. /package/{atoms/Prefetch → Prefetch}/PrefetchWhenOver.js +0 -0
  276. /package/{atoms/Prefetch → Prefetch}/PrefetchWhenVisible.d.ts +0 -0
  277. /package/{atoms/Prefetch → Prefetch}/PrefetchWhenVisible.js +0 -0
  278. /package/{atoms/Prefetch → Prefetch}/index.d.ts +0 -0
  279. /package/{atoms/Prefetch → Prefetch}/index.js +0 -0
  280. /package/{atoms/ScrollAnimation → ScrollAnimation}/AbstractScrollAnimation.d.ts +0 -0
  281. /package/{atoms/ScrollAnimation → ScrollAnimation}/AbstractScrollAnimation.js +0 -0
  282. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimation.d.ts +0 -0
  283. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimation.js +0 -0
  284. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChild.d.ts +0 -0
  285. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChild.js +0 -0
  286. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationChildWithEase.js +0 -0
  287. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationParent.d.ts +0 -0
  288. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationParent.js +0 -0
  289. /package/{atoms/ScrollAnimation → ScrollAnimation}/ScrollAnimationWithEase.js +0 -0
  290. /package/{atoms/ScrollAnimation → ScrollAnimation}/animationScrollWithEase.d.ts +0 -0
  291. /package/{atoms/ScrollAnimation → ScrollAnimation}/animationScrollWithEase.js +0 -0
  292. /package/{atoms/ScrollAnimation → ScrollAnimation}/index.d.ts +0 -0
  293. /package/{atoms/ScrollAnimation → ScrollAnimation}/index.js +0 -0
  294. /package/{atoms/ScrollReveal → ScrollReveal}/index.d.ts +0 -0
  295. /package/{atoms/ScrollReveal → ScrollReveal}/index.js +0 -0
  296. /package/{primitives/Sentinel → Sentinel}/Sentinel.d.ts +0 -0
  297. /package/{primitives/Sentinel → Sentinel}/Sentinel.js +0 -0
  298. /package/{primitives/Sentinel → Sentinel}/index.d.ts +0 -0
  299. /package/{primitives/Sentinel → Sentinel}/index.js +0 -0
  300. /package/{molecules/Slider → Slider}/AbstractSliderChild.d.ts +0 -0
  301. /package/{molecules/Slider → Slider}/AbstractSliderChild.js +0 -0
  302. /package/{molecules/Slider → Slider}/Slider.d.ts +0 -0
  303. /package/{molecules/Slider → Slider}/Slider.js +0 -0
  304. /package/{molecules/Slider → Slider}/SliderBtn.d.ts +0 -0
  305. /package/{molecules/Slider → Slider}/SliderBtn.js +0 -0
  306. /package/{molecules/Slider → Slider}/SliderCount.d.ts +0 -0
  307. /package/{molecules/Slider → Slider}/SliderCount.js +0 -0
  308. /package/{molecules/Slider → Slider}/SliderDrag.d.ts +0 -0
  309. /package/{molecules/Slider → Slider}/SliderDrag.js +0 -0
  310. /package/{molecules/Slider → Slider}/SliderItem.d.ts +0 -0
  311. /package/{molecules/Slider → Slider}/SliderItem.js +0 -0
  312. /package/{molecules/Slider → Slider}/SliderProgress.d.ts +0 -0
  313. /package/{molecules/Slider → Slider}/SliderProgress.js +0 -0
  314. /package/{molecules/Slider → Slider}/index.d.ts +0 -0
  315. /package/{molecules/Slider → Slider}/index.js +0 -0
  316. /package/{molecules/Sticky → Sticky}/Sticky.twig +0 -0
  317. /package/{molecules/Sticky → Sticky}/index.d.ts +0 -0
  318. /package/{molecules/Sticky → Sticky}/index.js +0 -0
  319. /package/{molecules/TableOfContent → TableOfContent}/index.d.ts +0 -0
  320. /package/{molecules/TableOfContent → TableOfContent}/index.js +0 -0
  321. /package/{molecules/Tabs → Tabs}/Tabs.twig +0 -0
  322. /package/{molecules/Tabs → Tabs}/index.d.ts +0 -0
  323. /package/{molecules/Tabs → Tabs}/index.js +0 -0
  324. /package/{primitives/Transition → Transition}/index.d.ts +0 -0
  325. /package/{primitives/Transition → Transition}/index.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Accordion/Accordion.ts"],
3
+ "sources": ["../../packages/ui/Accordion/Accordion.ts"],
4
4
  "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AccordionCore } from './AccordionCore.js';\nimport type { AccordionProps } from './AccordionCore.js';\nimport { AccordionItem } from './AccordionItem.js';\n\n/**\n * Accordion class.\n */\nexport class Accordion<T extends BaseProps = BaseProps> extends AccordionCore<T & AccordionProps> {\n static config: BaseConfig = {\n ...AccordionCore.config,\n components: {\n AccordionItem,\n },\n };\n}\n"],
5
5
  "mappings": "AACA,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAKvB,MAAM,kBAAmD,cAAkC;AAAA,EAChG,OAAO,SAAqB;AAAA,IAC1B,GAAG,cAAc;AAAA,IACjB,YAAY;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Accordion/AccordionCore.ts"],
3
+ "sources": ["../../packages/ui/Accordion/AccordionCore.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport type { AccordionItem, AccordionItemProps } from './AccordionItem';\n\nexport interface AccordionProps extends BaseProps {\n $refs: {\n btn: HTMLElement[];\n content: HTMLElement[];\n };\n $options: {\n autoclose: boolean;\n item: AccordionItemProps['$options'];\n };\n $children: {\n AccordionItem: AccordionItem[];\n };\n}\n\n/**\n * Accordion class.\n */\nexport class AccordionCore<T extends BaseProps = BaseProps> extends Base<T & AccordionProps> {\n /**\n * Accordion config.\n */\n static config: BaseConfig = {\n name: 'Accordion',\n emits: ['open', 'close'],\n options: {\n autoclose: Boolean,\n item: {\n type: Object,\n default: (): Partial<AccordionItemProps['$options']> => ({}),\n },\n },\n };\n\n /**\n * Synchronize close on open.\n */\n onAccordionItemOpen({ index }: { index: number }) {\n this.$emit('open', this.$children.AccordionItem[index], index);\n if (this.$options.autoclose) {\n this.$children.AccordionItem.filter((el, i) => index !== i).forEach((item) => item.close());\n }\n }\n\n /**\n * Emit close event.\n */\n onAccordionItemClose({ index }: { index: number }) {\n this.$emit('close', this.$children.AccordionItem[index], index);\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAqBd,MAAM,sBAAuD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAI3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,QAAQ,OAAO;AAAA,IACvB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,OAAgD,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,EAAE,MAAM,GAAsB;AAChD,SAAK,MAAM,QAAQ,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAC7D,QAAI,KAAK,SAAS,WAAW;AAC3B,WAAK,UAAU,cAAc,OAAO,CAAC,IAAI,MAAM,UAAU,CAAC,EAAE,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC;AAAA,IAC5F;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,EAAE,MAAM,GAAsB;AACjD,SAAK,MAAM,SAAS,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAAA,EAChE;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Accordion/AccordionItem.ts"],
3
+ "sources": ["../../packages/ui/Accordion/AccordionItem.ts"],
4
4
  "sourcesContent": ["import deepmerge from 'deepmerge';\nimport { Base, BaseConfig } from '@studiometa/js-toolkit';\nimport type { BaseProps } from '@studiometa/js-toolkit';\nimport { transition } from '@studiometa/js-toolkit/utils';\nimport { AccordionCore as Accordion } from './AccordionCore.js';\n\ntype AccordionItemStates = Partial<\n Record<'open' | 'active' | 'closed', string | Partial<CSSStyleDeclaration>>\n>;\n\nexport interface AccordionItemProps extends BaseProps {\n $refs: {\n btn: HTMLElement;\n content: HTMLElement;\n container: HTMLElement;\n };\n $options: {\n isOpen: boolean;\n styles: Partial<Record<keyof AccordionItemProps['$refs'], AccordionItemStates>>;\n };\n}\n\n/**\n * AccordionItem class.\n */\nexport class AccordionItem<T extends BaseProps = BaseProps> extends Base<T & AccordionItemProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'AccordionItem',\n refs: ['btn', 'content', 'container'],\n emits: ['open', 'close'],\n options: {\n isOpen: Boolean,\n styles: {\n type: Object,\n default: (): AccordionItemProps['$options']['styles'] => ({\n container: {\n open: '',\n active: '',\n closed: '',\n },\n }),\n merge: true,\n },\n },\n };\n\n /**\n * Add aria-attributes on mounted.\n */\n mounted() {\n if (this.$parent && this.$parent instanceof Accordion && this.$parent.$options.item) {\n Object.entries(this.$parent.$options.item).forEach(([key, value]) => {\n if (key in this.$options) {\n // @ts-ignore\n const type = AccordionItem.config.options[key].type ?? AccordionItem.config.options[key];\n if (type === Array || type === Object) {\n // @ts-ignore\n this.$options[key] = deepmerge(this.$options[key], /** @type {any} */ value);\n } else {\n // @ts-ignore\n this.$options[key] = value;\n }\n }\n });\n }\n\n this.$refs.btn.setAttribute('id', this.$id);\n this.$refs.btn.setAttribute('aria-controls', this.contentId);\n this.$refs.content.setAttribute('aria-labelledby', this.$id);\n this.$refs.content.setAttribute('id', this.contentId);\n\n const { isOpen } = this.$options;\n this.updateAttributes(isOpen);\n\n // Update refs styles on mount\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { container, ...otherStyles } = this.$options.styles;\n\n const { $refs } = this;\n Object.entries(otherStyles)\n .filter(([refName]) => $refs[refName])\n .forEach(([refName, { open, closed } = { open: '', closed: '' }]) => {\n transition($refs[refName] as HTMLElement, { to: isOpen ? open : closed }, 'keep');\n });\n }\n\n /**\n * Remove styles on destroy.\n */\n destroyed() {\n this.$refs.container.style.visibility = '';\n this.$refs.container.style.height = '';\n }\n\n /**\n * Handler for the click event on the `btn` ref.\n */\n onBtnClick() {\n if (this.$options.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Get the content ID.\n */\n get contentId(): string {\n return `content-${this.$id}`;\n }\n\n /**\n * Update the refs' attributes according to the given type.\n */\n updateAttributes(isOpen: boolean) {\n this.$refs.container.style.visibility = isOpen ? '' : 'invisible';\n this.$refs.container.style.height = isOpen ? '' : '0';\n this.$refs.content.setAttribute('aria-hidden', isOpen ? 'false' : 'true');\n this.$refs.btn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n }\n\n /**\n * Open an item.\n */\n async open() {\n if (this.$options.isOpen) {\n return;\n }\n\n this.$log('open');\n this.$emit('open');\n\n this.$options.isOpen = true;\n this.updateAttributes(this.$options.isOpen);\n\n this.$refs.container.style.visibility = '';\n const { container, ...otherStyles } = this.$options.styles;\n\n const { $refs } = this;\n\n await Promise.all([\n transition($refs.container, {\n from: { height: '0' },\n active: container.active,\n to: { height: `${$refs.content.offsetHeight}px` },\n }).then(() => {\n // Remove style only if the item has not been closed before the end\n if (this.$options.isOpen) {\n $refs.content.style.position = '';\n }\n\n return Promise.resolve();\n }),\n ...Object.entries(otherStyles)\n .filter(([refName]) => $refs[refName])\n .map(([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n $refs[refName] as HTMLElement,\n {\n from: closed,\n active,\n to: open,\n },\n 'keep',\n ),\n ),\n ]);\n }\n\n /**\n * Close an item.\n */\n async close() {\n if (!this.$options.isOpen) {\n return;\n }\n\n this.$log('close');\n this.$emit('close');\n\n this.$options.isOpen = false;\n\n const height = this.$refs.container.offsetHeight;\n this.$refs.content.style.position = 'absolute';\n const { container, ...otherStyles } = this.$options.styles;\n\n /** @type {AccordionItemRefs} */\n const refs = this.$refs;\n\n await Promise.all([\n transition(refs.container, {\n from: { height: `${height}px` },\n active: container.active,\n to: { height: '0' },\n }).then(() => {\n // Add end styles only if the item has not been re-opened before the end\n if (!this.$options.isOpen) {\n refs.container.style.height = '0';\n refs.container.style.visibility = 'invisible';\n this.updateAttributes(this.$options.isOpen);\n }\n return Promise.resolve();\n }),\n ...Object.entries(otherStyles)\n .filter(([refName]) => refs[refName])\n .map(([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName] as HTMLElement,\n {\n from: open,\n active,\n to: closed,\n },\n 'keep',\n ),\n ),\n ]);\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Accordion/index.ts"],
3
+ "sources": ["../../packages/ui/Accordion/index.ts"],
4
4
  "sourcesContent": ["export * from './Accordion.js';\nexport * from './AccordionItem.js';\n"],
5
5
  "mappings": "AAAA,cAAc;AACd,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/Action.ts"],
3
+ "sources": ["../../packages/ui/Action/Action.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { ActionEvent } from './ActionEvent.js';\n\nexport interface ActionProps extends BaseProps {\n $options: {\n on: string;\n target: string;\n selector: string;\n effect: string;\n };\n}\n\n/**\n * Action class.\n */\nexport class Action<T extends BaseProps = BaseProps> extends Base<ActionProps & T> {\n static config: BaseConfig = {\n name: 'Action',\n options: {\n on: {\n type: String,\n default: 'click',\n },\n target: String,\n effect: String,\n },\n };\n\n /**\n * @private\n */\n __actionEvents: Set<ActionEvent<Action>>;\n\n get actionEvents() {\n if (this.__actionEvents) {\n return this.__actionEvents;\n }\n\n const { on } = this.$options;\n this.__actionEvents = new Set();\n\n // @ts-ignore\n for (const attribute of this.$el.attributes) {\n if (attribute.name.includes('on:')) {\n const name = attribute.name.split('on:').pop();\n this.__actionEvents.add(new ActionEvent(this, name, attribute.value));\n }\n }\n\n if (on) {\n const { target, effect } = this.$options;\n const effectDefinition = target ? `${target}${ActionEvent.effectSeparator}${effect}` : effect;\n this.__actionEvents.add(new ActionEvent(this, on, effectDefinition));\n }\n\n return this.__actionEvents;\n }\n\n /**\n * Mounted\n */\n mounted() {\n for (const actionEvent of this.actionEvents) {\n actionEvent.attachEvent();\n }\n }\n\n /**\n * Destroyed\n */\n destroyed() {\n for (const actionEvent of this.actionEvents) {\n actionEvent.detachEvent();\n }\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,mBAAmB;AAcrB,MAAM,eAAgD,KAAsB;AAAA,EACjF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,IAAI;AAAA,QACF,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,EAEA,IAAI,eAAe;AACjB,QAAI,KAAK,gBAAgB;AACvB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,EAAE,GAAG,IAAI,KAAK;AACpB,SAAK,iBAAiB,oBAAI,IAAI;AAG9B,eAAW,aAAa,KAAK,IAAI,YAAY;AAC3C,UAAI,UAAU,KAAK,SAAS,KAAK,GAAG;AAClC,cAAM,OAAO,UAAU,KAAK,MAAM,KAAK,EAAE,IAAI;AAC7C,aAAK,eAAe,IAAI,IAAI,YAAY,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,MACtE;AAAA,IACF;AAEA,QAAI,IAAI;AACN,YAAM,EAAE,QAAQ,OAAO,IAAI,KAAK;AAChC,YAAM,mBAAmB,SAAS,GAAG,MAAM,GAAG,YAAY,eAAe,GAAG,MAAM,KAAK;AACvF,WAAK,eAAe,IAAI,IAAI,YAAY,MAAM,IAAI,gBAAgB,CAAC;AAAA,IACrE;AAEA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,eAAW,eAAe,KAAK,cAAc;AAC3C,kBAAY,YAAY;AAAA,IAC1B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY;AACV,eAAW,eAAe,KAAK,cAAc;AAC3C,kBAAY,YAAY;AAAA,IAC1B;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/ActionEvent.ts"],
3
+ "sources": ["../../packages/ui/Action/ActionEvent.ts"],
4
4
  "sourcesContent": ["import { getInstances } from '@studiometa/js-toolkit';\nimport type { Base } from '@studiometa/js-toolkit';\nimport { isFunction } from '@studiometa/js-toolkit/utils';\n\n/**\n * Extract component name and an optional additional selector from a string.\n * @type {RegExp}\n */\nconst TARGET_REGEX = /([a-zA-Z]+)(\\((.*)\\))?/;\n\nconst effectCache = new Map<string, Function>();\n\nexport type Modifiers = 'prevent' | 'stop' | 'once' | 'passive' | 'capture';\n\nexport class ActionEvent<T extends Base> {\n static modifierSeparator = '.';\n static targetSeparator = ' ';\n static effectSeparator = '->';\n\n /**\n * The Action instance.\n */\n action: T;\n\n /**\n * The event to listen to.\n */\n event: string;\n\n /**\n * The modifiers to apply to the event.\n */\n modifiers: Modifiers[];\n\n /**\n * Target definition.\n * Ex: `Target Target(.selector)`.\n */\n targetDefinition: string;\n\n /**\n * The content of the effect callback function.\n */\n effectDefinition: string;\n\n /**\n * Class constructor.\n * @param {T} action The parent Action instance.\n * @param {string} eventDefinition The event with its modifiers: `click.prevent.stop`\n * @param {string} effectDefinition The target and effect definition: `Target(.selector)->target.$destroy()`\n */\n constructor(action: T, eventDefinition: string, effectDefinition: string) {\n this.action = action;\n const [event, ...modifiers] = eventDefinition.split(ActionEvent.modifierSeparator);\n this.event = event;\n this.modifiers = modifiers as Modifiers[];\n\n let effect = effectDefinition;\n let targetDefinition = '';\n\n if (effect.includes(ActionEvent.effectSeparator)) {\n [targetDefinition, effect] = effect.split(ActionEvent.effectSeparator);\n }\n\n this.targetDefinition = targetDefinition.trim();\n this.effectDefinition = effect.trim();\n }\n\n /**\n * Get the generated function for the defined effect.\n */\n get effect() {\n const { effectDefinition } = this;\n\n if (!effectCache.has(effectDefinition)) {\n effectCache.set(\n effectDefinition,\n new Function('ctx', 'event', 'target', 'action', 'self', `return ${effectDefinition}`),\n );\n }\n\n return effectCache.get(effectDefinition) as Function;\n }\n\n /**\n * Get the targets object for the defined targets string.\n */\n get targets() {\n const { targetDefinition } = this;\n\n if (!targetDefinition) {\n return [{ Action: this.action }];\n }\n\n // Extract component's names and selectors.\n const parts = targetDefinition.split(ActionEvent.targetSeparator).map((part) => {\n const [, name, , selector] = part.match(TARGET_REGEX) ?? [];\n return [name, selector];\n });\n\n const targets = [] as Array<Record<string, Base>>;\n\n for (const instance of getInstances()) {\n const { name } = instance.__config;\n\n for (const part of parts) {\n const shouldPush =\n part[0] === name && (!part[1] || (part[1] && instance.$el.matches(part[1])));\n if (shouldPush) {\n targets.push({ [instance.__config.name]: instance });\n }\n }\n }\n\n return targets;\n }\n\n /**\n * Handle the defined event and trigger the effect for each defined target.\n */\n handleEvent(event: Event) {\n const { targets, effect, modifiers } = this;\n\n if (modifiers.includes('prevent')) {\n event.preventDefault();\n }\n\n if (modifiers.includes('stop')) {\n event.stopPropagation();\n }\n\n for (const target of targets) {\n try {\n const [currentTarget] = Object.values(target).flat();\n const value = effect(target, event, currentTarget, this.action, this.action);\n if (isFunction(value)) {\n value(target, event, currentTarget, this.action, this.action);\n }\n } catch (err) {\n this.action.$warn(err);\n }\n }\n }\n\n /**\n * Bind the defined event to the given Action instance root element.\n */\n attachEvent() {\n const { event, modifiers } = this;\n this.action.$el.addEventListener(event, this, {\n capture: modifiers.includes('capture'),\n once: modifiers.includes('once'),\n passive: modifiers.includes('passive'),\n });\n }\n\n /**\n * Unbind the event from the given Action instance root element.\n */\n detachEvent() {\n this.action.$el.removeEventListener(this.event, this);\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/Target.ts"],
3
+ "sources": ["../../packages/ui/Action/Target.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\nexport interface TargetProps extends BaseProps {}\n\n/**\n * Target class.\n */\nexport class Target extends Base<TargetProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Target',\n };\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAQd,MAAM,eAAe,KAAkB;AAAA;AAAA;AAAA;AAAA,EAI5C,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/index.ts"],
3
+ "sources": ["../../packages/ui/Action/index.ts"],
4
4
  "sourcesContent": ["export * from './Action.js';\nexport * from './Target.js';\n"],
5
5
  "mappings": "AAAA,cAAc;AACd,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/AnchorNav/AnchorNav.ts"],
3
+ "sources": ["../../packages/ui/AnchorNav/AnchorNav.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorNavLink } from './AnchorNavLink.js';\nimport { AnchorNavTarget } from './AnchorNavTarget.js';\n\nexport interface AnchorNavProps extends BaseProps {\n $children: {\n AnchorNavLink: AnchorNavLink[];\n AnchorNavTarget: AnchorNavTarget[];\n };\n}\n\nexport class AnchorNav<T extends BaseProps = BaseProps> extends Base<T & AnchorNavProps> {\n /**\n * Config\n */\n static config: BaseConfig = {\n name: 'AnchorNav',\n components: {\n AnchorNavLink,\n AnchorNavTarget,\n },\n };\n\n /**\n * Listen to the AnchorNavTarget that is mounted\n */\n onAnchorNavTargetMounted({ target }: { target: AnchorNavTarget }) {\n const { id } = target.$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.enter();\n }\n });\n }\n\n /**\n * Listen to the AnchorNavTarget that is destroyed\n */\n onAnchorNavTargetDestroyed({ target }: { target: AnchorNavTarget }) {\n const { id } = target.$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.leave();\n }\n });\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AASzB,MAAM,kBAAmD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAIvF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,YAAY;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,yBAAyB,EAAE,OAAO,GAAgC;AAChE,UAAM,EAAE,GAAG,IAAI,OAAO;AACtB,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,2BAA2B,EAAE,OAAO,GAAgC;AAClE,UAAM,EAAE,GAAG,IAAI,OAAO;AACtB,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
6
  "names": []
@@ -1,11 +1,11 @@
1
1
  import type { BaseConfig } from '@studiometa/js-toolkit';
2
- import { AnchorScrollToProps } from '../../atoms/AnchorScrollTo/AnchorScrollTo.js';
2
+ import { AnchorScrollToProps } from '../AnchorScrollTo/AnchorScrollTo.js';
3
3
  export interface AnchorNavLinkProps extends AnchorScrollToProps {
4
4
  $options: {
5
5
  id: string;
6
6
  };
7
7
  }
8
- declare const AnchorNavLink_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private/decorators/withTransition.js").TransitionInterface, import("@studiometa/js-toolkit").Base<import("@studiometa/js-toolkit").BaseProps>, import("#private/decorators/withTransition.js").TransitionProps>;
8
+ declare const AnchorNavLink_base: import("@studiometa/js-toolkit").BaseDecorator<import("../decorators/withTransition.js").TransitionInterface, import("@studiometa/js-toolkit").Base<import("@studiometa/js-toolkit").BaseProps>, import("../decorators/withTransition.js").TransitionProps>;
9
9
  /**
10
10
  * Manage a slider item and its state transition.
11
11
  */
@@ -1,5 +1,5 @@
1
- import { AnchorScrollTo } from "../../atoms/AnchorScrollTo/AnchorScrollTo.js";
2
- import { withTransition } from "../../decorators/index.js";
1
+ import { AnchorScrollTo } from "../AnchorScrollTo/AnchorScrollTo.js";
2
+ import { withTransition } from "../decorators/index.js";
3
3
  class AnchorNavLink extends withTransition(AnchorScrollTo) {
4
4
  /**
5
5
  * Config.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/ui/AnchorNav/AnchorNavLink.ts"],
4
+ "sourcesContent": ["import type { BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorScrollTo, AnchorScrollToProps } from '../AnchorScrollTo/AnchorScrollTo.js';\nimport { withTransition } from '../decorators/index.js';\n\nexport interface AnchorNavLinkProps extends AnchorScrollToProps {\n $options: {\n id: string;\n };\n}\n\n/**\n * Manage a slider item and its state transition.\n */\nexport class AnchorNavLink extends withTransition(AnchorScrollTo)<AnchorNavLinkProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n ...AnchorScrollTo.config,\n name: 'AnchorNavLink',\n };\n\n get targetId() {\n return this.$el.hash.replace(/^#/, '');\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,sBAA2C;AACpD,SAAS,sBAAsB;AAWxB,MAAM,sBAAsB,eAAe,cAAc,EAAsB;AAAA;AAAA;AAAA;AAAA,EAIpF,OAAO,SAAqB;AAAA,IAC1B,GAAG,eAAe;AAAA,IAClB,MAAM;AAAA,EACR;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,IAAI,KAAK,QAAQ,MAAM,EAAE;AAAA,EACvC;AACF;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/AnchorNav/AnchorNavTarget.ts"],
3
+ "sources": ["../../packages/ui/AnchorNav/AnchorNavTarget.ts"],
4
4
  "sourcesContent": ["import { Base, withMountWhenInView } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\n\n/**\n * Manage a sticky table section.\n */\nexport class AnchorNavTarget extends withMountWhenInView(Base)<BaseProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'AnchorNavTarget',\n };\n}\n"],
5
5
  "mappings": "AAAA,SAAS,MAAM,2BAA2B;AAMnC,MAAM,wBAAwB,oBAAoB,IAAI,EAAa;AAAA;AAAA;AAAA;AAAA,EAIxE,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/molecules/AnchorNav/index.ts"],
3
+ "sources": ["../../packages/ui/AnchorNav/index.ts"],
4
4
  "sourcesContent": ["export * from './AnchorNav.js';\nexport * from './AnchorNavLink.js';\nexport * from './AnchorNavTarget.js';\n"],
5
5
  "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/AnchorScrollTo/AnchorScrollTo.ts"],
3
+ "sources": ["../../packages/ui/AnchorScrollTo/AnchorScrollTo.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { scrollTo } from '@studiometa/js-toolkit/utils';\n\nexport interface AnchorScrollToProps extends BaseProps {\n $el: HTMLAnchorElement;\n}\n\n/**\n * AncorScrollTo class.\n */\nexport class AnchorScrollTo<T extends BaseProps = BaseProps> extends Base<AnchorScrollToProps & T> {\n static config: BaseConfig = {\n name: 'AnchorScrollTo',\n };\n\n /**\n * Get the target selector.\n * @returns {string}\n */\n get targetSelector() {\n return this.$el.hash;\n }\n\n /**\n * Scroll to the target selector on click.\n */\n onClick({ event }: { event: MouseEvent }) {\n try {\n scrollTo(this.targetSelector);\n event.preventDefault();\n } catch {\n // Silence is golden.\n }\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,gBAAgB;AASlB,MAAM,uBAAwD,KAA8B;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACnB,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,EAAE,MAAM,GAA0B;AACxC,QAAI;AACF,eAAS,KAAK,cAAc;AAC5B,YAAM,eAAe;AAAA,IACvB,QAAQ;AAAA,IAER;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/AnchorScrollTo/index.ts"],
3
+ "sources": ["../../packages/ui/AnchorScrollTo/index.ts"],
4
4
  "sourcesContent": ["export * from './AnchorScrollTo.js';\n"],
5
5
  "mappings": "AAAA,cAAc;",
6
6
  "names": []
@@ -41,7 +41,7 @@
41
41
  {% set rendered_icon %}
42
42
  {% block icon %}
43
43
  {# @TODO: Breaking change -> Delete icon_classes to use only icon_attr #}
44
- {% include '@ui/atoms/Icon/IconInline.twig' with {
44
+ {% include '@ui/Icon/Icon.twig' with {
45
45
  name: icon ?? '',
46
46
  attr: merge_html_attributes(
47
47
  icon_attr ?? null,
@@ -7,7 +7,7 @@
7
7
  */
8
8
  #}
9
9
 
10
- {% extends '@ui/atoms/Button/Button.twig' %}
10
+ {% extends '@ui/Button/Button.twig' %}
11
11
 
12
12
  {% set icon_only = icon_only|default(false) %}
13
13
 
@@ -8,7 +8,7 @@
8
8
  */
9
9
  #}
10
10
 
11
- {% extends '@ui/atoms/Button/Button.twig' %}
11
+ {% extends '@ui/Button/Button.twig' %}
12
12
 
13
13
  {% set icon_only = icon_only|default(false) %}
14
14
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/CircularMarquee/CircularMarquee.ts"],
3
+ "sources": ["../../packages/ui/CircularMarquee/CircularMarquee.ts"],
4
4
  "sourcesContent": ["import { Base, BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { damp, transform } from '@studiometa/js-toolkit/utils';\n\nexport interface CircularMarqueeProps extends BaseProps {\n $options: {\n sensitivity: number;\n };\n}\n\n/**\n * CircularMarquee component\n */\nexport class CircularMarquee extends Base<CircularMarqueeProps> {\n /**\n * CircularMarquee Configuration\n */\n static config: BaseConfig = {\n name: 'CircularMarquee',\n options: {\n sensitivity: {\n type: Number,\n default: 0.1,\n },\n },\n };\n\n /**\n * Rotate value.\n * @type {number}\n */\n rotate = 0;\n\n /**\n * Scroll delta Y.\n * @type {number}\n */\n deltaY = 0;\n\n /**\n * Transform values.\n * @type {object}\n */\n transform = {\n rotate: 0,\n };\n\n scrolled(props) {\n this.deltaY = props.delta.y;\n }\n\n ticked() {\n this.rotate -= (Math.abs(this.deltaY) + 1) * this.$options.sensitivity;\n\n this.transform.rotate = damp(this.rotate, this.transform.rotate, 0.25);\n\n return () => {\n transform(this.$el, this.transform);\n };\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAmC;AAC5C,SAAS,MAAM,iBAAiB;AAWzB,MAAM,wBAAwB,KAA2B;AAAA;AAAA;AAAA;AAAA,EAI9D,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EAEA,SAAS,OAAO;AACd,SAAK,SAAS,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,SAAS;AACP,SAAK,WAAW,KAAK,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS;AAE3D,SAAK,UAAU,SAAS,KAAK,KAAK,QAAQ,KAAK,UAAU,QAAQ,IAAI;AAErE,WAAO,MAAM;AACX,gBAAU,KAAK,KAAK,KAAK,SAAS;AAAA,IACpC;AAAA,EACF;AACF;",
6
6
  "names": []
@@ -36,7 +36,7 @@
36
36
  %}
37
37
 
38
38
  <div data-component="CircularMarquee"
39
- {{ html_attributes({ data_option_sensitivity: sensitivity }) }}>
39
+ {{ html_attributes({ data_option_sensitivity: sensitivity ?? null }) }}>
40
40
  <svg aria-hidden="true"
41
41
  xmlns="http://www.w3.org/2000/svg"
42
42
  viewBox="0 0 {{ outer_diameter }} {{ outer_diameter }}"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/CircularMarquee/index.ts"],
3
+ "sources": ["../../packages/ui/CircularMarquee/index.ts"],
4
4
  "sourcesContent": ["export * from './CircularMarquee.js';\n"],
5
5
  "mappings": "AAAA,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Cursor/Cursor.ts"],
3
+ "sources": ["../../packages/ui/Cursor/Cursor.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, PointerServiceProps, BaseProps } from '@studiometa/js-toolkit';\nimport { damp, matrix } from '@studiometa/js-toolkit/utils';\n\nexport interface CursorProps extends BaseProps {\n $options: {\n growSelectors: string;\n shrinkSelectors: string;\n scale: number;\n growTo: number;\n shrinkTo: number;\n translateDampFactor: number;\n growDampFactor: number;\n shrinkDampFactor: number;\n };\n}\n\n/**\n * Cursor class.\n */\nexport class Cursor<T extends BaseProps = BaseProps> extends Base<CursorProps & T> {\n static config: BaseConfig = {\n name: 'Cursor',\n options: {\n growSelectors: {\n type: String,\n default: 'a, a *, button, button *, [data-cursor-grow], [data-cursor-grow] *',\n },\n shrinkSelectors: {\n type: String,\n default: '[data-cursor-shrink], [data-cursor-shrink] *',\n },\n scale: {\n type: Number,\n default: 1,\n },\n growTo: {\n type: Number,\n default: 2,\n },\n shrinkTo: {\n type: Number,\n default: 0.5,\n },\n translateDampFactor: {\n type: Number,\n default: 0.25,\n },\n growDampFactor: {\n type: Number,\n default: 0.25,\n },\n shrinkDampFactor: {\n type: Number,\n default: 0.25,\n },\n },\n };\n\n x = 0;\n\n y = 0;\n\n scale = 0;\n\n pointerX = 0;\n\n pointerY = 0;\n\n pointerScale = 0;\n\n /**\n * Mounted hook.\n */\n mounted() {\n this.x = 0;\n this.y = 0;\n this.scale = 0;\n this.pointerX = 0;\n this.pointerY = 0;\n this.pointerScale = 0;\n this.render({ x: this.x, y: this.y, scale: this.scale });\n }\n\n /**\n * Moved hook.\n */\n moved({ event, x, y, isDown }: PointerServiceProps) {\n if (!this.$services.has('ticked')) {\n this.$services.enable('ticked');\n }\n\n this.pointerX = x;\n this.pointerY = y;\n\n let { scale } = this.$options;\n\n if (!event) {\n this.pointerScale = scale;\n return;\n }\n\n const shouldGrow =\n (event.target instanceof Element && event.target.matches(this.$options.growSelectors)) ||\n false;\n const shouldReduce =\n isDown ||\n (event.target instanceof Element && event.target.matches(this.$options.shrinkSelectors)) ||\n false;\n\n if (shouldGrow) {\n scale = this.$options.growTo;\n }\n\n if (shouldReduce) {\n scale = this.$options.shrinkTo;\n }\n\n this.pointerScale = scale;\n }\n\n /**\n * RequestAnimationFrame hook.\n */\n ticked() {\n this.x = damp(this.pointerX, this.x, this.$options.translateDampFactor);\n this.y = damp(this.pointerY, this.y, this.$options.translateDampFactor);\n this.scale = damp(\n this.pointerScale,\n this.scale,\n this.pointerScale < this.scale\n ? this.$options.shrinkDampFactor\n : this.$options.growDampFactor,\n );\n\n this.render({ x: this.x, y: this.y, scale: this.scale });\n\n if (this.x === this.pointerX && this.y === this.pointerY && this.scale === this.pointerScale) {\n this.$services.disable('ticked');\n }\n }\n\n /**\n * Render the cursor.\n */\n render({ x, y, scale }: { x: number; y: number; scale: number }) {\n const transform = matrix({\n translateX: x,\n translateY: y,\n scaleX: scale,\n scaleY: scale,\n });\n this.$el.style.transform = `translateZ(0) ${transform}`;\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,MAAM,cAAc;AAkBtB,MAAM,eAAgD,KAAsB;AAAA,EACjF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,eAAe;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,EAEJ,IAAI;AAAA,EAEJ,QAAQ;AAAA,EAER,WAAW;AAAA,EAEX,WAAW;AAAA,EAEX,eAAe;AAAA;AAAA;AAAA;AAAA,EAKf,UAAU;AACR,SAAK,IAAI;AACT,SAAK,IAAI;AACT,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,OAAO,EAAE,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,EAAE,OAAO,GAAG,GAAG,OAAO,GAAwB;AAClD,QAAI,CAAC,KAAK,UAAU,IAAI,QAAQ,GAAG;AACjC,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAEA,SAAK,WAAW;AAChB,SAAK,WAAW;AAEhB,QAAI,EAAE,MAAM,IAAI,KAAK;AAErB,QAAI,CAAC,OAAO;AACV,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,UAAM,aACH,MAAM,kBAAkB,WAAW,MAAM,OAAO,QAAQ,KAAK,SAAS,aAAa,KACpF;AACF,UAAM,eACJ,UACC,MAAM,kBAAkB,WAAW,MAAM,OAAO,QAAQ,KAAK,SAAS,eAAe,KACtF;AAEF,QAAI,YAAY;AACd,cAAQ,KAAK,SAAS;AAAA,IACxB;AAEA,QAAI,cAAc;AAChB,cAAQ,KAAK,SAAS;AAAA,IACxB;AAEA,SAAK,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS;AACP,SAAK,IAAI,KAAK,KAAK,UAAU,KAAK,GAAG,KAAK,SAAS,mBAAmB;AACtE,SAAK,IAAI,KAAK,KAAK,UAAU,KAAK,GAAG,KAAK,SAAS,mBAAmB;AACtE,SAAK,QAAQ;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,eAAe,KAAK,QACrB,KAAK,SAAS,mBACd,KAAK,SAAS;AAAA,IACpB;AAEA,SAAK,OAAO,EAAE,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC;AAEvD,QAAI,KAAK,MAAM,KAAK,YAAY,KAAK,MAAM,KAAK,YAAY,KAAK,UAAU,KAAK,cAAc;AAC5F,WAAK,UAAU,QAAQ,QAAQ;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,EAAE,GAAG,GAAG,MAAM,GAA4C;AAC/D,UAAM,YAAY,OAAO;AAAA,MACvB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV,CAAC;AACD,SAAK,IAAI,MAAM,YAAY,iBAAiB,SAAS;AAAA,EACvD;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Cursor/index.ts"],
3
+ "sources": ["../../packages/ui/Cursor/index.ts"],
4
4
  "sourcesContent": ["export * from './Cursor.js';\n"],
5
5
  "mappings": "AAAA,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Data/DataBind.ts"],
3
+ "sources": ["../../packages/ui/Data/DataBind.ts"],
4
4
  "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isArray } from '@studiometa/js-toolkit/utils';\nimport { isInput, isCheckbox, isSelect } from './utils.js';\n\nconst groups = new Map<string, Set<DataBind>>();\n\nexport interface DataBindProps extends BaseProps {\n $options: {\n prop: string;\n group: string;\n };\n}\n\nexport class DataBind<T extends BaseProps = BaseProps> extends Base<DataBindProps & T> {\n static config: BaseConfig = {\n name: 'DataBind',\n options: {\n prop: String,\n group: String,\n },\n };\n\n get relatedInstances() {\n const { group } = this.$options;\n\n const instances = groups.get(group) ?? groups.set(group, new Set()).get(group);\n\n for (const instance of instances) {\n if (!instance.$el.isConnected) {\n instances.delete(instance);\n }\n }\n\n return instances;\n }\n\n get multiple() {\n return this.$options.group.endsWith('[]');\n }\n\n get target() {\n return this.$el;\n }\n\n get prop() {\n if (this.$options.prop) {\n return this.$options.prop;\n }\n\n const { target } = this;\n if (target instanceof HTMLInputElement) {\n return 'value';\n }\n\n return 'textContent';\n }\n\n get value() {\n return this.get();\n }\n\n set value(value) {\n this.set(value);\n }\n\n get() {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n if (multiple) {\n const values = [];\n // @ts-ignore\n for (const option of target.options) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n\n return values;\n }\n\n const option = target.options.item(target.selectedIndex);\n return option.value;\n }\n\n if (isCheckbox(target)) {\n if (multiple) {\n const values = new Set();\n for (const instance of this.relatedInstances) {\n if (isCheckbox(instance.target) && instance.target.checked) {\n values.add(instance.target.value);\n }\n }\n return Array.from(values);\n } else {\n return target.checked;\n }\n }\n\n return target[this.prop];\n }\n\n set(value: boolean | string | string[], dispatch = true) {\n const { target, multiple, relatedInstances } = this;\n\n if (dispatch) {\n for (const instance of relatedInstances) {\n if (instance !== this && instance.value !== value) {\n instance.set(value, false);\n }\n }\n }\n\n if (isSelect(target)) {\n // @ts-ignore\n for (const option of target.options) {\n option.selected =\n multiple && isArray(value) ? value.includes(option.value) : option.value === value;\n }\n return;\n }\n\n if (isInput(target)) {\n switch (target.type) {\n case 'radio':\n target.checked = target.value === value;\n return;\n case 'checkbox':\n target.checked =\n multiple && isArray(value) ? value.includes(target.value) : Boolean(value);\n return;\n }\n }\n\n target[this.prop] = value;\n }\n\n mounted() {\n this.relatedInstances.add(this);\n }\n\n destroyed() {\n this.relatedInstances.delete(this);\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["option"]
@@ -1,6 +1,5 @@
1
1
  import { DataBind } from "./DataBind.js";
2
2
  import { getCallback } from "./utils.js";
3
- const callbacks = /* @__PURE__ */ new Map();
4
3
  class DataComputed extends DataBind {
5
4
  static config = {
6
5
  name: "DataComputed",
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/ui/Data/DataComputed.ts"],
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataComputedProps extends DataBindProps {\n $options: {\n compute: string;\n } & DataBindProps['$options'];\n}\n\nexport class DataComputed<T extends BaseProps = BaseProps> extends DataBind<DataComputedProps & T> {\n static config: BaseConfig = {\n name: 'DataComputed',\n options: {\n compute: String,\n },\n };\n\n get compute() {\n const { group, compute } = this.$options;\n return getCallback(group, `return ${compute};`);\n }\n\n set(value: boolean | string | string[]) {\n let newValue = value;\n\n try {\n newValue = this.compute(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n\n super.set(newValue, false);\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQrB,MAAM,qBAAsD,SAAgC;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,OAAO,QAAQ,IAAI,KAAK;AAChC,WAAO,YAAY,OAAO,UAAU,OAAO,GAAG;AAAA,EAChD;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI,WAAW;AAEf,QAAI;AACF,iBAAW,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAC5C,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAEA,UAAM,IAAI,UAAU,KAAK;AAAA,EAC3B;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/ui/Data/DataEffect.ts"],
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataEffectProps extends DataBindProps {\n $options: {\n effect: string;\n } & DataBindProps['$options'];\n}\n\nexport class DataEffect<T extends BaseProps = BaseProps> extends DataBind<DataEffectProps & T> {\n static config: BaseConfig = {\n name: 'DataEffect',\n options: {\n effect: String,\n },\n };\n\n get effect() {\n const { group, effect } = this.$options;\n return getCallback(group, effect);\n }\n\n set(value: boolean | string | string[]) {\n try {\n this.effect(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQrB,MAAM,mBAAoD,SAA8B;AAAA,EAC7F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EAEA,IAAI,SAAS;AACX,UAAM,EAAE,OAAO,OAAO,IAAI,KAAK;AAC/B,WAAO,YAAY,OAAO,MAAM;AAAA,EAClC;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI;AACF,WAAK,OAAO,OAAO,KAAK,MAAM;AAAA,IAChC,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Data/DataModel.ts"],
3
+ "sources": ["../../packages/ui/Data/DataModel.ts"],
4
4
  "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { isCheckbox } from './utils.js';\n\nexport interface DataModelProps extends DataBindProps {}\n\nexport class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {\n static config: BaseConfig = {\n name: 'DataModel',\n };\n\n dispatch() {\n const { target, multiple } = this;\n let value = this.get();\n\n if (multiple && isCheckbox(target) && !target.checked) {\n const set = new Set(value);\n set.delete(target.value);\n value = Array.from(set);\n }\n\n for (const instance of this.relatedInstances) {\n instance.set(value, false);\n }\n }\n\n onInput() {\n this.dispatch();\n }\n}\n"],
5
5
  "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,kBAAkB;AAIpB,MAAM,kBAAmD,SAA6B;AAAA,EAC3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM,EAAE,QAAQ,SAAS,IAAI;AAC7B,QAAI,QAAQ,KAAK,IAAI;AAErB,QAAI,YAAY,WAAW,MAAM,KAAK,CAAC,OAAO,SAAS;AACrD,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,UAAI,OAAO,OAAO,KAAK;AACvB,cAAQ,MAAM,KAAK,GAAG;AAAA,IACxB;AAEA,eAAW,YAAY,KAAK,kBAAkB;AAC5C,eAAS,IAAI,OAAO,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,UAAU;AACR,SAAK,SAAS;AAAA,EAChB;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Data/index.ts"],
3
+ "sources": ["../../packages/ui/Data/index.ts"],
4
4
  "sourcesContent": ["export * from './DataBind.js';\nexport * from './DataComputed.js';\nexport * from './DataEffect.js';\nexport * from './DataModel.js';\n"],
5
5
  "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Data/utils.ts"],
3
+ "sources": ["../../packages/ui/Data/utils.ts"],
4
4
  "sourcesContent": ["export function isInput(el: Element): el is HTMLInputElement {\n return el instanceof HTMLInputElement;\n}\n\nexport function isCheckbox(el: Element): el is HTMLInputElement {\n return isInput(el) && el.type === 'checkbox';\n}\n\nexport function isSelect(el: Element): el is HTMLSelectElement {\n return el instanceof HTMLSelectElement;\n}\n\nconst callbacks = new Map<string, Function>();\n\nexport function getCallback(name: string, code: string): Function {\n const key = code + name;\n\n if (!callbacks.has(key)) {\n callbacks.set(key, new Function('value', 'target', code));\n }\n\n return callbacks.get(key);\n}\n"],
5
5
  "mappings": "AAAO,SAAS,QAAQ,IAAqC;AAC3D,SAAO,cAAc;AACvB;AAEO,SAAS,WAAW,IAAqC;AAC9D,SAAO,QAAQ,EAAE,KAAK,GAAG,SAAS;AACpC;AAEO,SAAS,SAAS,IAAsC;AAC7D,SAAO,cAAc;AACvB;AAEA,MAAM,YAAY,oBAAI,IAAsB;AAErC,SAAS,YAAY,MAAc,MAAwB;AAChE,QAAM,MAAM,OAAO;AAEnB,MAAI,CAAC,UAAU,IAAI,GAAG,GAAG;AACvB,cAAU,IAAI,KAAK,IAAI,SAAS,SAAS,UAAU,IAAI,CAAC;AAAA,EAC1D;AAEA,SAAO,UAAU,IAAI,GAAG;AAC1B;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/primitives/Draggable/Draggable.ts"],
3
+ "sources": ["../../packages/ui/Draggable/Draggable.ts"],
4
4
  "sourcesContent": ["import { Base, withDrag } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig, DragServiceProps } from '@studiometa/js-toolkit';\nimport { matrix } from '@studiometa/js-toolkit/utils';\n\n/**\n * Draggable class.\n */\nexport class Draggable<T extends BaseProps = BaseProps> extends withDrag(Base)<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'DraggableElement',\n };\n\n /**\n * Horizontal transformation.\n */\n x = 0;\n\n /**\n * Vertical transformation.\n */\n y = 0;\n\n /**\n * Horizontal position origin.\n */\n originX = 0;\n\n /**\n * Vertical position origin.\n */\n originY = 0;\n\n /**\n * Drag service hook.\n */\n dragged(props: DragServiceProps) {\n if (props.mode === 'start') {\n this.originX = this.x;\n this.originY = this.y;\n return;\n }\n\n this.x = this.originX + props.x - props.origin.x;\n this.y = this.originY + props.y - props.origin.y;\n\n this.$el.style.transform = matrix({ translateX: this.x, translateY: this.y });\n }\n}\n"],
5
5
  "mappings": "AAAA,SAAS,MAAM,gBAAgB;AAE/B,SAAS,cAAc;AAKhB,MAAM,kBAAmD,SAAS,IAAI,EAAK;AAAA;AAAA;AAAA;AAAA,EAIhF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI;AAAA;AAAA;AAAA;AAAA,EAKJ,IAAI;AAAA;AAAA;AAAA;AAAA,EAKJ,UAAU;AAAA;AAAA;AAAA;AAAA,EAKV,UAAU;AAAA;AAAA;AAAA;AAAA,EAKV,QAAQ,OAAyB;AAC/B,QAAI,MAAM,SAAS,SAAS;AAC1B,WAAK,UAAU,KAAK;AACpB,WAAK,UAAU,KAAK;AACpB;AAAA,IACF;AAEA,SAAK,IAAI,KAAK,UAAU,MAAM,IAAI,MAAM,OAAO;AAC/C,SAAK,IAAI,KAAK,UAAU,MAAM,IAAI,MAAM,OAAO;AAE/C,SAAK,IAAI,MAAM,YAAY,OAAO,EAAE,YAAY,KAAK,GAAG,YAAY,KAAK,EAAE,CAAC;AAAA,EAC9E;AACF;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../packages/ui/primitives/Draggable/index.ts"],
3
+ "sources": ["../../packages/ui/Draggable/index.ts"],
4
4
  "sourcesContent": ["export * from './Draggable.js';\n"],
5
5
  "mappings": "AAAA,cAAc;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';
2
- import { Transition } from '../../primitives/index.js';
3
- export interface FigureProps extends BaseProps {
2
+ import { Transition } from '../Transition/index.js';
3
+ export interface AbstractFigureProps extends BaseProps {
4
4
  $refs: {
5
5
  img: HTMLImageElement;
6
6
  };
@@ -8,15 +8,11 @@ export interface FigureProps extends BaseProps {
8
8
  lazy: boolean;
9
9
  };
10
10
  }
11
- /**
12
- * Load the given image.
13
- */
14
- export declare function loadImage(src: string): Promise<HTMLImageElement>;
15
- declare const Figure_base: import("@studiometa/js-toolkit").BaseDecorator<import("@studiometa/js-toolkit").WithMountWhenInViewInterface, Transition<BaseProps>, import("@studiometa/js-toolkit").WithMountWhenInViewProps>;
11
+ declare const AbstractFigure_base: import("@studiometa/js-toolkit").BaseDecorator<import("@studiometa/js-toolkit").WithMountWhenInViewInterface, Transition<BaseProps>, import("@studiometa/js-toolkit").WithMountWhenInViewProps>;
16
12
  /**
17
13
  * Figure class.
18
14
  */
19
- export declare class Figure<T extends BaseProps = BaseProps> extends Figure_base<T & FigureProps> {
15
+ export declare class AbstractFigure<T extends BaseProps = BaseProps> extends AbstractFigure_base<T & AbstractFigureProps> {
20
16
  /**
21
17
  * Config.
22
18
  */
@@ -41,9 +37,5 @@ export declare class Figure<T extends BaseProps = BaseProps> extends Figure_base
41
37
  * Load on mount.
42
38
  */
43
39
  mounted(): Promise<void>;
44
- /**
45
- * Terminate the component on load.
46
- */
47
- onLoad(): void;
48
40
  }
49
41
  export {};
@@ -1,24 +1,15 @@
1
1
  import { withMountWhenInView } from "@studiometa/js-toolkit";
2
- import { Transition } from "../../primitives/index.js";
3
- function loadImage(src) {
4
- return new Promise((resolve) => {
5
- const img = new Image();
6
- img.addEventListener("load", () => resolve(img));
7
- img.src = src;
8
- });
9
- }
10
- class Figure extends withMountWhenInView(
11
- Transition,
12
- {
13
- threshold: [0, 1]
14
- }
15
- ) {
2
+ import { Transition } from "../Transition/index.js";
3
+ import { loadImage } from "./utils.js";
4
+ class AbstractFigure extends withMountWhenInView(Transition, {
5
+ threshold: [0, 1]
6
+ }) {
16
7
  /**
17
8
  * Config.
18
9
  */
19
10
  static config = {
20
11
  ...Transition.config,
21
- name: "Figure",
12
+ name: "AbstractFigure",
22
13
  emits: ["load"],
23
14
  refs: ["img"],
24
15
  options: {
@@ -55,11 +46,9 @@ class Figure extends withMountWhenInView(
55
46
  */
56
47
  async mounted() {
57
48
  const { img } = this.$refs;
58
- if (!img) {
59
- throw new Error("[Figure] The `img` ref is required.");
60
- }
61
- if (!(img instanceof HTMLImageElement)) {
62
- throw new Error("[Figure] The `img` ref must be an `<img>` element.");
49
+ if (!img || !(img instanceof HTMLImageElement)) {
50
+ this.$warn("The `img` refs is missing or not an `<img>` element.");
51
+ return;
63
52
  }
64
53
  const src = this.original;
65
54
  if (this.$options.lazy && src && src !== this.src) {
@@ -69,15 +58,8 @@ class Figure extends withMountWhenInView(
69
58
  this.$emit("load");
70
59
  }
71
60
  }
72
- /**
73
- * Terminate the component on load.
74
- */
75
- onLoad() {
76
- this.$terminate();
77
- }
78
61
  }
79
62
  export {
80
- Figure,
81
- loadImage
63
+ AbstractFigure
82
64
  };
83
- //# sourceMappingURL=Figure.js.map
65
+ //# sourceMappingURL=AbstractFigure.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/ui/Figure/AbstractFigure.ts"],
4
+ "sourcesContent": ["import { withMountWhenInView } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { Transition } from '../Transition/index.js';\nimport { loadImage } from './utils.js';\n\nexport interface AbstractFigureProps extends BaseProps {\n $refs: {\n img: HTMLImageElement;\n };\n $options: {\n lazy: boolean;\n };\n}\n\n/**\n * Figure class.\n */\nexport class AbstractFigure<\n T extends BaseProps = BaseProps,\n> extends withMountWhenInView<Transition>(Transition, {\n threshold: [0, 1],\n})<T & AbstractFigureProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n ...Transition.config,\n name: 'AbstractFigure',\n emits: ['load'],\n refs: ['img'],\n options: {\n ...Transition.config.options,\n lazy: Boolean,\n },\n };\n\n /**\n * Get the transition target.\n */\n get target() {\n return this.$refs.img;\n }\n\n /**\n * Get the image source.\n */\n get src() {\n return this.$refs.img.src;\n }\n\n /**\n * Set the image source.\n */\n set src(value: string) {\n this.$refs.img.src = value;\n }\n\n /**\n * Get the original source.\n */\n get original() {\n return this.$refs.img.dataset.src;\n }\n\n /**\n * Load on mount.\n */\n async mounted() {\n const { img } = this.$refs;\n\n if (!img || !(img instanceof HTMLImageElement)) {\n this.$warn('The `img` refs is missing or not an `<img>` element.');\n return;\n }\n\n const src = this.original;\n\n if (this.$options.lazy && src && src !== this.src) {\n await loadImage(src);\n this.src = src;\n this.enter();\n this.$emit('load');\n }\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,2BAA2B;AAEpC,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAcnB,MAAM,uBAEH,oBAAgC,YAAY;AAAA,EACpD,WAAW,CAAC,GAAG,CAAC;AAClB,CAAC,EAA2B;AAAA;AAAA;AAAA;AAAA,EAI1B,OAAO,SAAqB;AAAA,IAC1B,GAAG,WAAW;AAAA,IACd,MAAM;AAAA,IACN,OAAO,CAAC,MAAM;AAAA,IACd,MAAM,CAAC,KAAK;AAAA,IACZ,SAAS;AAAA,MACP,GAAG,WAAW,OAAO;AAAA,MACrB,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACX,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAM;AACR,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAI,OAAe;AACrB,SAAK,MAAM,IAAI,MAAM;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACb,WAAO,KAAK,MAAM,IAAI,QAAQ;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU;AACd,UAAM,EAAE,IAAI,IAAI,KAAK;AAErB,QAAI,CAAC,OAAO,EAAE,eAAe,mBAAmB;AAC9C,WAAK,MAAM,sDAAsD;AACjE;AAAA,IACF;AAEA,UAAM,MAAM,KAAK;AAEjB,QAAI,KAAK,SAAS,QAAQ,OAAO,QAAQ,KAAK,KAAK;AACjD,YAAM,UAAU,GAAG;AACnB,WAAK,MAAM;AACX,WAAK,MAAM;AACX,WAAK,MAAM,MAAM;AAAA,IACnB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,29 @@
1
+ import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';
2
+ import { AbstractFigure } from './AbstractFigure.js';
3
+ export interface AbstractFigureDynamicProps extends BaseProps {
4
+ $options: {
5
+ disable: boolean;
6
+ step: number;
7
+ };
8
+ }
9
+ /**
10
+ * AbstractFigureDynamic class.
11
+ */
12
+ export declare class AbstractFigureDynamic<T extends BaseProps = BaseProps> extends AbstractFigure<T & AbstractFigureDynamicProps> {
13
+ /**
14
+ * Config.
15
+ */
16
+ static config: BaseConfig;
17
+ /**
18
+ * Get the formatted source or the original based on the `disable` option.
19
+ */
20
+ get original(): string;
21
+ /**
22
+ * Format the source with dynamic parameters.
23
+ */
24
+ formatSrc(src: string): string;
25
+ /**
26
+ * Reassign the source from the original on resize.
27
+ */
28
+ resized(): Promise<void>;
29
+ }
@@ -0,0 +1,48 @@
1
+ import { AbstractFigure } from "./AbstractFigure.js";
2
+ import { loadImage } from "./utils.js";
3
+ class AbstractFigureDynamic extends AbstractFigure {
4
+ /**
5
+ * Config.
6
+ */
7
+ static config = {
8
+ ...AbstractFigure.config,
9
+ name: "AbstractFigureDynamic",
10
+ options: {
11
+ ...AbstractFigure.config.options,
12
+ disable: Boolean,
13
+ step: {
14
+ type: Number,
15
+ default: 50
16
+ },
17
+ lazy: {
18
+ type: Boolean,
19
+ default: true
20
+ }
21
+ }
22
+ };
23
+ /**
24
+ * Get the formatted source or the original based on the `disable` option.
25
+ */
26
+ get original() {
27
+ return this.$options.disable ? super.original : this.formatSrc(super.original);
28
+ }
29
+ /**
30
+ * Format the source with dynamic parameters.
31
+ */
32
+ /* v8 ignore next 3 */
33
+ formatSrc(src) {
34
+ return src;
35
+ }
36
+ /**
37
+ * Reassign the source from the original on resize.
38
+ */
39
+ async resized() {
40
+ const { original } = this;
41
+ await loadImage(original);
42
+ this.src = original;
43
+ }
44
+ }
45
+ export {
46
+ AbstractFigureDynamic
47
+ };
48
+ //# sourceMappingURL=AbstractFigureDynamic.js.map