@studiometa/ui 0.2.14 → 0.2.15

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 (292) hide show
  1. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +1 -0
  2. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs.map +7 -0
  3. package/atoms/AnchorScrollTo/AnchorScrollTo.js +4 -9
  4. package/atoms/AnchorScrollTo/AnchorScrollTo.js.map +7 -0
  5. package/atoms/AnchorScrollTo/index.cjs +1 -0
  6. package/atoms/AnchorScrollTo/index.cjs.map +7 -0
  7. package/atoms/AnchorScrollTo/index.js +1 -0
  8. package/atoms/AnchorScrollTo/index.js.map +7 -0
  9. package/atoms/Cursor/Cursor.cjs +7 -9
  10. package/atoms/Cursor/Cursor.cjs.map +7 -0
  11. package/atoms/Cursor/Cursor.js +44 -52
  12. package/atoms/Cursor/Cursor.js.map +7 -0
  13. package/atoms/Cursor/index.cjs +1 -0
  14. package/atoms/Cursor/index.cjs.map +7 -0
  15. package/atoms/Cursor/index.js +1 -0
  16. package/atoms/Cursor/index.js.map +7 -0
  17. package/atoms/Figure/Figure.cjs +1 -0
  18. package/atoms/Figure/Figure.cjs.map +7 -0
  19. package/atoms/Figure/Figure.js +10 -15
  20. package/atoms/Figure/Figure.js.map +7 -0
  21. package/atoms/Figure/FigureTwicPics.cjs +1 -0
  22. package/atoms/Figure/FigureTwicPics.cjs.map +7 -0
  23. package/atoms/Figure/FigureTwicPics.js +17 -22
  24. package/atoms/Figure/FigureTwicPics.js.map +7 -0
  25. package/atoms/Figure/index.cjs +1 -0
  26. package/atoms/Figure/index.cjs.map +7 -0
  27. package/atoms/Figure/index.js +1 -0
  28. package/atoms/Figure/index.js.map +7 -0
  29. package/atoms/LargeText/LargeText.cjs +8 -10
  30. package/atoms/LargeText/LargeText.cjs.map +7 -0
  31. package/atoms/LargeText/LargeText.js +23 -31
  32. package/atoms/LargeText/LargeText.js.map +7 -0
  33. package/atoms/LargeText/index.cjs +1 -0
  34. package/atoms/LargeText/index.cjs.map +7 -0
  35. package/atoms/LargeText/index.js +1 -0
  36. package/atoms/LargeText/index.js.map +7 -0
  37. package/atoms/LazyInclude/LazyInclude.cjs +1 -0
  38. package/atoms/LazyInclude/LazyInclude.cjs.map +7 -0
  39. package/atoms/LazyInclude/LazyInclude.js +10 -15
  40. package/atoms/LazyInclude/LazyInclude.js.map +7 -0
  41. package/atoms/LazyInclude/index.cjs +1 -0
  42. package/atoms/LazyInclude/index.cjs.map +7 -0
  43. package/atoms/LazyInclude/index.js +1 -0
  44. package/atoms/LazyInclude/index.js.map +7 -0
  45. package/atoms/Prefetch/AbstractPrefetch.cjs +1 -0
  46. package/atoms/Prefetch/AbstractPrefetch.cjs.map +7 -0
  47. package/atoms/Prefetch/AbstractPrefetch.js +15 -21
  48. package/atoms/Prefetch/AbstractPrefetch.js.map +7 -0
  49. package/atoms/Prefetch/PrefetchWhenOver.cjs +1 -0
  50. package/atoms/Prefetch/PrefetchWhenOver.cjs.map +7 -0
  51. package/atoms/Prefetch/PrefetchWhenOver.js +5 -10
  52. package/atoms/Prefetch/PrefetchWhenOver.js.map +7 -0
  53. package/atoms/Prefetch/PrefetchWhenVisible.cjs +1 -0
  54. package/atoms/Prefetch/PrefetchWhenVisible.cjs.map +7 -0
  55. package/atoms/Prefetch/PrefetchWhenVisible.js +5 -10
  56. package/atoms/Prefetch/PrefetchWhenVisible.js.map +7 -0
  57. package/atoms/Prefetch/index.cjs +1 -0
  58. package/atoms/Prefetch/index.cjs.map +7 -0
  59. package/atoms/Prefetch/index.js +1 -0
  60. package/atoms/Prefetch/index.js.map +7 -0
  61. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs +1 -0
  62. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs.map +7 -0
  63. package/atoms/ScrollAnimation/AbstractScrollAnimation.js +25 -30
  64. package/atoms/ScrollAnimation/AbstractScrollAnimation.js.map +7 -0
  65. package/atoms/ScrollAnimation/ScrollAnimation.cjs +1 -0
  66. package/atoms/ScrollAnimation/ScrollAnimation.cjs.map +7 -0
  67. package/atoms/ScrollAnimation/ScrollAnimation.js +6 -11
  68. package/atoms/ScrollAnimation/ScrollAnimation.js.map +7 -0
  69. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs +9 -11
  70. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs.map +7 -0
  71. package/atoms/ScrollAnimation/ScrollAnimationChild.js +24 -32
  72. package/atoms/ScrollAnimation/ScrollAnimationChild.js.map +7 -0
  73. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs +1 -0
  74. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs.map +7 -0
  75. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.js +5 -10
  76. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.js.map +7 -0
  77. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs +1 -0
  78. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs.map +7 -0
  79. package/atoms/ScrollAnimation/ScrollAnimationParent.js +7 -12
  80. package/atoms/ScrollAnimation/ScrollAnimationParent.js.map +7 -0
  81. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs +1 -0
  82. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs.map +7 -0
  83. package/atoms/ScrollAnimation/ScrollAnimationWithEase.js +5 -10
  84. package/atoms/ScrollAnimation/ScrollAnimationWithEase.js.map +7 -0
  85. package/atoms/ScrollAnimation/animationScrollWithEase.cjs +12 -16
  86. package/atoms/ScrollAnimation/animationScrollWithEase.cjs.map +7 -0
  87. package/atoms/ScrollAnimation/animationScrollWithEase.js +12 -17
  88. package/atoms/ScrollAnimation/animationScrollWithEase.js.map +7 -0
  89. package/atoms/ScrollAnimation/index.cjs +1 -0
  90. package/atoms/ScrollAnimation/index.cjs.map +7 -0
  91. package/atoms/ScrollAnimation/index.js +1 -0
  92. package/atoms/ScrollAnimation/index.js.map +7 -0
  93. package/atoms/ScrollReveal/ScrollReveal.cjs +2 -2
  94. package/atoms/ScrollReveal/ScrollReveal.cjs.map +7 -0
  95. package/atoms/ScrollReveal/ScrollReveal.js +24 -31
  96. package/atoms/ScrollReveal/ScrollReveal.js.map +7 -0
  97. package/atoms/ScrollReveal/index.cjs +1 -0
  98. package/atoms/ScrollReveal/index.cjs.map +7 -0
  99. package/atoms/ScrollReveal/index.js +1 -0
  100. package/atoms/ScrollReveal/index.js.map +7 -0
  101. package/atoms/index.cjs +1 -0
  102. package/atoms/index.cjs.map +7 -0
  103. package/atoms/index.js +1 -0
  104. package/atoms/index.js.map +7 -0
  105. package/decorators/index.cjs +1 -0
  106. package/decorators/index.cjs.map +7 -0
  107. package/decorators/index.js +1 -0
  108. package/decorators/index.js.map +7 -0
  109. package/decorators/withTransition.cjs +18 -27
  110. package/decorators/withTransition.cjs.map +7 -0
  111. package/decorators/withTransition.js +19 -29
  112. package/decorators/withTransition.js.map +7 -0
  113. package/index.cjs +1 -0
  114. package/index.cjs.map +7 -0
  115. package/index.js +1 -0
  116. package/index.js.map +7 -0
  117. package/molecules/Accordion/Accordion.cjs +1 -0
  118. package/molecules/Accordion/Accordion.cjs.map +7 -0
  119. package/molecules/Accordion/Accordion.js +7 -12
  120. package/molecules/Accordion/Accordion.js.map +7 -0
  121. package/molecules/Accordion/AccordionCore.cjs +1 -0
  122. package/molecules/Accordion/AccordionCore.cjs.map +7 -0
  123. package/molecules/Accordion/AccordionCore.js +12 -17
  124. package/molecules/Accordion/AccordionCore.js.map +7 -0
  125. package/molecules/Accordion/AccordionItem.cjs +2 -2
  126. package/molecules/Accordion/AccordionItem.cjs.map +7 -0
  127. package/molecules/Accordion/AccordionItem.js +23 -30
  128. package/molecules/Accordion/AccordionItem.js.map +7 -0
  129. package/molecules/Accordion/index.cjs +1 -0
  130. package/molecules/Accordion/index.cjs.map +7 -0
  131. package/molecules/Accordion/index.js +1 -0
  132. package/molecules/Accordion/index.js.map +7 -0
  133. package/molecules/Menu/Menu.cjs +1 -0
  134. package/molecules/Menu/Menu.cjs.map +7 -0
  135. package/molecules/Menu/Menu.js +17 -23
  136. package/molecules/Menu/Menu.js.map +7 -0
  137. package/molecules/Menu/MenuBtn.cjs +2 -4
  138. package/molecules/Menu/MenuBtn.cjs.map +7 -0
  139. package/molecules/Menu/MenuBtn.js +5 -13
  140. package/molecules/Menu/MenuBtn.js.map +7 -0
  141. package/molecules/Menu/MenuList.cjs +3 -5
  142. package/molecules/Menu/MenuList.cjs.map +7 -0
  143. package/molecules/Menu/MenuList.d.ts +1 -1
  144. package/molecules/Menu/MenuList.js +13 -22
  145. package/molecules/Menu/MenuList.js.map +7 -0
  146. package/molecules/Menu/index.cjs +1 -0
  147. package/molecules/Menu/index.cjs.map +7 -0
  148. package/molecules/Menu/index.js +1 -0
  149. package/molecules/Menu/index.js.map +7 -0
  150. package/molecules/Modal/Modal.cjs +8 -15
  151. package/molecules/Modal/Modal.cjs.map +7 -0
  152. package/molecules/Modal/Modal.d.ts +1 -1
  153. package/molecules/Modal/Modal.js +34 -47
  154. package/molecules/Modal/Modal.js.map +7 -0
  155. package/molecules/Modal/ModalWithTransition.cjs +1 -0
  156. package/molecules/Modal/ModalWithTransition.cjs.map +7 -0
  157. package/molecules/Modal/ModalWithTransition.js +26 -31
  158. package/molecules/Modal/ModalWithTransition.js.map +7 -0
  159. package/molecules/Modal/index.cjs +1 -0
  160. package/molecules/Modal/index.cjs.map +7 -0
  161. package/molecules/Modal/index.js +1 -0
  162. package/molecules/Modal/index.js.map +7 -0
  163. package/molecules/Panel/Panel.cjs +3 -6
  164. package/molecules/Panel/Panel.cjs.map +7 -0
  165. package/molecules/Panel/Panel.js +20 -30
  166. package/molecules/Panel/Panel.js.map +7 -0
  167. package/molecules/Panel/index.cjs +1 -0
  168. package/molecules/Panel/index.cjs.map +7 -0
  169. package/molecules/Panel/index.js +1 -0
  170. package/molecules/Panel/index.js.map +7 -0
  171. package/molecules/Slider/AbstractSliderChild.cjs +1 -0
  172. package/molecules/Slider/AbstractSliderChild.cjs.map +7 -0
  173. package/molecules/Slider/AbstractSliderChild.js +4 -9
  174. package/molecules/Slider/AbstractSliderChild.js.map +7 -0
  175. package/molecules/Slider/Slider.cjs +13 -15
  176. package/molecules/Slider/Slider.cjs.map +7 -0
  177. package/molecules/Slider/Slider.js +29 -37
  178. package/molecules/Slider/Slider.js.map +7 -0
  179. package/molecules/Slider/SliderBtn.cjs +1 -0
  180. package/molecules/Slider/SliderBtn.cjs.map +7 -0
  181. package/molecules/Slider/SliderBtn.js +8 -13
  182. package/molecules/Slider/SliderBtn.js.map +7 -0
  183. package/molecules/Slider/SliderCount.cjs +1 -0
  184. package/molecules/Slider/SliderCount.cjs.map +7 -0
  185. package/molecules/Slider/SliderCount.js +5 -10
  186. package/molecules/Slider/SliderCount.js.map +7 -0
  187. package/molecules/Slider/SliderDots.cjs +2 -4
  188. package/molecules/Slider/SliderDots.cjs.map +7 -0
  189. package/molecules/Slider/SliderDots.js +6 -14
  190. package/molecules/Slider/SliderDots.js.map +7 -0
  191. package/molecules/Slider/SliderDrag.cjs +1 -0
  192. package/molecules/Slider/SliderDrag.cjs.map +7 -0
  193. package/molecules/Slider/SliderDrag.js +11 -16
  194. package/molecules/Slider/SliderDrag.js.map +7 -0
  195. package/molecules/Slider/SliderItem.cjs +5 -7
  196. package/molecules/Slider/SliderItem.cjs.map +7 -0
  197. package/molecules/Slider/SliderItem.js +9 -17
  198. package/molecules/Slider/SliderItem.js.map +7 -0
  199. package/molecules/Slider/SliderProgress.cjs +1 -0
  200. package/molecules/Slider/SliderProgress.cjs.map +7 -0
  201. package/molecules/Slider/SliderProgress.js +5 -10
  202. package/molecules/Slider/SliderProgress.js.map +7 -0
  203. package/molecules/Slider/index.cjs +1 -0
  204. package/molecules/Slider/index.cjs.map +7 -0
  205. package/molecules/Slider/index.js +1 -0
  206. package/molecules/Slider/index.js.map +7 -0
  207. package/molecules/Sticky/Sticky.cjs +4 -6
  208. package/molecules/Sticky/Sticky.cjs.map +7 -0
  209. package/molecules/Sticky/Sticky.js +25 -34
  210. package/molecules/Sticky/Sticky.js.map +7 -0
  211. package/molecules/Sticky/index.cjs +1 -0
  212. package/molecules/Sticky/index.cjs.map +7 -0
  213. package/molecules/Sticky/index.js +1 -0
  214. package/molecules/Sticky/index.js.map +7 -0
  215. package/molecules/TableOfContent/TableOfContent.cjs +1 -0
  216. package/molecules/TableOfContent/TableOfContent.cjs.map +7 -0
  217. package/molecules/TableOfContent/TableOfContent.js +12 -17
  218. package/molecules/TableOfContent/TableOfContent.js.map +7 -0
  219. package/molecules/TableOfContent/TableOfContentAnchor.cjs +2 -4
  220. package/molecules/TableOfContent/TableOfContentAnchor.cjs.map +7 -0
  221. package/molecules/TableOfContent/TableOfContentAnchor.js +12 -20
  222. package/molecules/TableOfContent/TableOfContentAnchor.js.map +7 -0
  223. package/molecules/TableOfContent/index.cjs +1 -0
  224. package/molecules/TableOfContent/index.cjs.map +7 -0
  225. package/molecules/TableOfContent/index.js +1 -0
  226. package/molecules/TableOfContent/index.js.map +7 -0
  227. package/molecules/Tabs/Tabs.cjs +2 -4
  228. package/molecules/Tabs/Tabs.cjs.map +7 -0
  229. package/molecules/Tabs/Tabs.js +23 -31
  230. package/molecules/Tabs/Tabs.js.map +7 -0
  231. package/molecules/Tabs/index.cjs +1 -0
  232. package/molecules/Tabs/index.cjs.map +7 -0
  233. package/molecules/Tabs/index.js +1 -0
  234. package/molecules/Tabs/index.js.map +7 -0
  235. package/molecules/index.cjs +1 -0
  236. package/molecules/index.cjs.map +7 -0
  237. package/molecules/index.js +1 -0
  238. package/molecules/index.js.map +7 -0
  239. package/organisms/Frame/Frame.cjs +1 -0
  240. package/organisms/Frame/Frame.cjs.map +7 -0
  241. package/organisms/Frame/Frame.js +26 -32
  242. package/organisms/Frame/Frame.js.map +7 -0
  243. package/organisms/Frame/FrameAnchor.cjs +1 -0
  244. package/organisms/Frame/FrameAnchor.cjs.map +7 -0
  245. package/organisms/Frame/FrameAnchor.js +4 -9
  246. package/organisms/Frame/FrameAnchor.js.map +7 -0
  247. package/organisms/Frame/FrameForm.cjs +1 -0
  248. package/organisms/Frame/FrameForm.cjs.map +7 -0
  249. package/organisms/Frame/FrameForm.js +4 -9
  250. package/organisms/Frame/FrameForm.js.map +7 -0
  251. package/organisms/Frame/FrameTarget.cjs +3 -5
  252. package/organisms/Frame/FrameTarget.cjs.map +7 -0
  253. package/organisms/Frame/FrameTarget.d.ts +1 -1
  254. package/organisms/Frame/FrameTarget.js +24 -33
  255. package/organisms/Frame/FrameTarget.js.map +7 -0
  256. package/organisms/Frame/index.cjs +1 -0
  257. package/organisms/Frame/index.cjs.map +7 -0
  258. package/organisms/Frame/index.js +1 -0
  259. package/organisms/Frame/index.js.map +7 -0
  260. package/organisms/index.cjs +1 -0
  261. package/organisms/index.cjs.map +7 -0
  262. package/organisms/index.js +1 -0
  263. package/organisms/index.js.map +7 -0
  264. package/package.json +2 -2
  265. package/primitives/Draggable/Draggable.cjs +5 -7
  266. package/primitives/Draggable/Draggable.cjs.map +7 -0
  267. package/primitives/Draggable/Draggable.js +8 -16
  268. package/primitives/Draggable/Draggable.js.map +7 -0
  269. package/primitives/Draggable/index.cjs +1 -0
  270. package/primitives/Draggable/index.cjs.map +7 -0
  271. package/primitives/Draggable/index.js +1 -0
  272. package/primitives/Draggable/index.js.map +7 -0
  273. package/primitives/Sentinel/Sentinel.cjs +1 -0
  274. package/primitives/Sentinel/Sentinel.cjs.map +7 -0
  275. package/primitives/Sentinel/Sentinel.js +4 -9
  276. package/primitives/Sentinel/Sentinel.js.map +7 -0
  277. package/primitives/Sentinel/index.cjs +1 -0
  278. package/primitives/Sentinel/index.cjs.map +7 -0
  279. package/primitives/Sentinel/index.js +1 -0
  280. package/primitives/Sentinel/index.js.map +7 -0
  281. package/primitives/Transition/Transition.cjs +1 -0
  282. package/primitives/Transition/Transition.cjs.map +7 -0
  283. package/primitives/Transition/Transition.js +4 -9
  284. package/primitives/Transition/Transition.js.map +7 -0
  285. package/primitives/Transition/index.cjs +1 -0
  286. package/primitives/Transition/index.cjs.map +7 -0
  287. package/primitives/Transition/index.js +1 -0
  288. package/primitives/Transition/index.js.map +7 -0
  289. package/primitives/index.cjs +1 -0
  290. package/primitives/index.cjs.map +7 -0
  291. package/primitives/index.js +1 -0
  292. package/primitives/index.js.map +7 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/MenuList.ts"],
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { Transition } from '../../primitives/index.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([inert])',\n 'area[href]:not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([inert])',\n 'audio:not([inert])',\n 'video:not([inert])',\n '[contenteditable]:not([inert])',\n '[tabindex]:not([inert])',\n].join(',');\n\nexport interface MenuListProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n MenuList: MenuList[];\n };\n}\n\n/**\n * MenuList class.\n */\nexport class MenuList<T extends BaseProps = BaseProps> extends Transition<T & MenuListProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n ...Transition.config,\n name: 'MenuList',\n emits: ['items-open', 'items-close', 'items-mouseleave'],\n components: {\n MenuList,\n },\n };\n\n /**\n * Are the menu items visible?\n */\n isOpen = false;\n\n /**\n * Wether the component is hovered.\n */\n isHover = false;\n\n /**\n * Override `Transition` options.\n */\n // @ts-ignore\n get $options() {\n const options = super.$options;\n\n options.leaveKeep = true;\n options.enterKeep = true;\n\n return options;\n }\n\n /**\n * Update tab indexes on mount.\n */\n mounted() {\n this.__updateTabIndexes('close');\n }\n\n /**\n * Set hover state.\n */\n onMouseenter() {\n this.isHover = true;\n }\n\n /**\n * Unset hover state.\n */\n onMouseleave() {\n this.isHover = false;\n }\n\n /**\n * Display the menu items.\n */\n open() {\n if (this.isOpen) {\n return;\n }\n\n // @todo Remove event listener when the close method is called.\n const clickOutsideHandler = (event) => {\n if (!this.$el.contains(event.target)) {\n document.removeEventListener('click', clickOutsideHandler);\n this.close();\n }\n };\n document.addEventListener('click', clickOutsideHandler);\n\n this.__updateTabIndexes('open');\n this.$el.setAttribute('aria-hidden', 'false');\n this.isOpen = true;\n this.enter();\n this.$emit('items-open');\n }\n\n /**\n * Hide the menu items.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n\n // Close child menu items.\n this.$children.MenuList.forEach((menuItem) => {\n menuItem.close();\n });\n\n if (\n document.activeElement instanceof HTMLElement &&\n this.$el.contains(document.activeElement)\n ) {\n document.activeElement.blur();\n }\n\n this.$el.setAttribute('aria-hidden', 'true');\n this.__updateTabIndexes('close');\n this.isOpen = false;\n this.leave();\n this.$emit('items-close');\n }\n\n /**\n * Toggle the menu items.\n */\n toggle() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Update `tabindex` attribute of child focusable elements.\n * @private\n */\n __updateTabIndexes(mode:'open'|'close' = 'open') {\n const focusableItems = Array.from(this.$el.querySelectorAll(FOCUSABLE_ELEMENTS)).filter(\n (item) => this.__filterFocusableItems(item as HTMLElement),\n );\n\n focusableItems.forEach((item) => {\n if (mode === 'close') {\n item.setAttribute('tabindex', '-1');\n } else {\n item.removeAttribute('tabindex');\n }\n });\n }\n\n /**\n * Filter out items which are inside a child `MenuList` instance.\n * @private\n */\n __filterFocusableItems(item:HTMLElement):boolean {\n let ancestor = item.parentElement;\n\n // @ts-ignore\n while (ancestor && (!ancestor.__base__ || !ancestor.__base__.has(this.constructor))) {\n ancestor = ancestor.parentElement;\n }\n\n return ancestor === null || ancestor === this.$el;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAA2B;AAE3B,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAYH,IAAM,YAAN,cAAwD,6BAA8B;AAAA,EAgB3F,SAAS;AAAA,EAKT,UAAU;AAAA,EAMV,IAAI,WAAW;AACb,UAAM,UAAU,MAAM;AAEtB,YAAQ,YAAY;AACpB,YAAQ,YAAY;AAEpB,WAAO;AAAA,EACT;AAAA,EAKA,UAAU;AACR,SAAK,mBAAmB,OAAO;AAAA,EACjC;AAAA,EAKA,eAAe;AACb,SAAK,UAAU;AAAA,EACjB;AAAA,EAKA,eAAe;AACb,SAAK,UAAU;AAAA,EACjB;AAAA,EAKA,OAAO;AACL,QAAI,KAAK,QAAQ;AACf;AAAA,IACF;AAGA,UAAM,sBAAsB,CAAC,UAAU;AACrC,UAAI,CAAC,KAAK,IAAI,SAAS,MAAM,MAAM,GAAG;AACpC,iBAAS,oBAAoB,SAAS,mBAAmB;AACzD,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAiB,SAAS,mBAAmB;AAEtD,SAAK,mBAAmB,MAAM;AAC9B,SAAK,IAAI,aAAa,eAAe,OAAO;AAC5C,SAAK,SAAS;AACd,SAAK,MAAM;AACX,SAAK,MAAM,YAAY;AAAA,EACzB;AAAA,EAKA,QAAQ;AACN,QAAI,CAAC,KAAK,QAAQ;AAChB;AAAA,IACF;AAGA,SAAK,UAAU,SAAS,QAAQ,CAAC,aAAa;AAC5C,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,QACE,SAAS,yBAAyB,eAClC,KAAK,IAAI,SAAS,SAAS,aAAa,GACxC;AACA,eAAS,cAAc,KAAK;AAAA,IAC9B;AAEA,SAAK,IAAI,aAAa,eAAe,MAAM;AAC3C,SAAK,mBAAmB,OAAO;AAC/B,SAAK,SAAS;AACd,SAAK,MAAM;AACX,SAAK,MAAM,aAAa;AAAA,EAC1B;AAAA,EAKA,SAAS;AACP,QAAI,KAAK,QAAQ;AACf,WAAK,MAAM;AAAA,IACb,OAAO;AACL,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAMA,mBAAmB,OAAsB,QAAQ;AAC/C,UAAM,iBAAiB,MAAM,KAAK,KAAK,IAAI,iBAAiB,kBAAkB,CAAC,EAAE;AAAA,MAC/E,CAAC,SAAS,KAAK,uBAAuB,IAAmB;AAAA,IAC3D;AAEA,mBAAe,QAAQ,CAAC,SAAS;AAC/B,UAAI,SAAS,SAAS;AACpB,aAAK,aAAa,YAAY,IAAI;AAAA,MACpC,OAAO;AACL,aAAK,gBAAgB,UAAU;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAMA,uBAAuB,MAA0B;AAC/C,QAAI,WAAW,KAAK;AAGpB,WAAO,aAAa,CAAC,SAAS,YAAY,CAAC,SAAS,SAAS,IAAI,KAAK,WAAW,IAAI;AACnF,iBAAW,SAAS;AAAA,IACtB;AAEA,WAAO,aAAa,QAAQ,aAAa,KAAK;AAAA,EAChD;AACF;AAvJO,IAAM,WAAN;AAIL,cAJW,UAIJ,UAAoB;AAAA,EACzB,GAAG,6BAAW;AAAA,EACd,MAAM;AAAA,EACN,OAAO,CAAC,cAAc,eAAe,kBAAkB;AAAA,EACvD,YAAY;AAAA,IACV;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -24,7 +24,7 @@ export declare class MenuList<T extends BaseProps = BaseProps> extends Transitio
24
24
  /**
25
25
  * Override `Transition` options.
26
26
  */
27
- get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").default & import("@studiometa/js-toolkit/Base/index.js").BaseOptions & (T & MenuListProps & import("../../index.js").TransitionProps)["$options"];
27
+ get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").OptionsManager & import("@studiometa/js-toolkit/Base/index.js").BaseOptions & (T & MenuListProps & import("../../index.js").TransitionProps)["$options"];
28
28
  /**
29
29
  * Update tab indexes on mount.
30
30
  */
@@ -1,9 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
1
  import { Transition } from "../../primitives/index.js";
8
2
  const FOCUSABLE_ELEMENTS = [
9
3
  "a[href]:not([inert])",
@@ -18,12 +12,17 @@ const FOCUSABLE_ELEMENTS = [
18
12
  "[contenteditable]:not([inert])",
19
13
  "[tabindex]:not([inert])"
20
14
  ].join(",");
21
- const _MenuList = class extends Transition {
22
- constructor() {
23
- super(...arguments);
24
- __publicField(this, "isOpen", false);
25
- __publicField(this, "isHover", false);
26
- }
15
+ class MenuList extends Transition {
16
+ static config = {
17
+ ...Transition.config,
18
+ name: "MenuList",
19
+ emits: ["items-open", "items-close", "items-mouseleave"],
20
+ components: {
21
+ MenuList
22
+ }
23
+ };
24
+ isOpen = false;
25
+ isHover = false;
27
26
  get $options() {
28
27
  const options = super.$options;
29
28
  options.leaveKeep = true;
@@ -98,16 +97,8 @@ const _MenuList = class extends Transition {
98
97
  }
99
98
  return ancestor === null || ancestor === this.$el;
100
99
  }
101
- };
102
- let MenuList = _MenuList;
103
- __publicField(MenuList, "config", {
104
- ...Transition.config,
105
- name: "MenuList",
106
- emits: ["items-open", "items-close", "items-mouseleave"],
107
- components: {
108
- MenuList: _MenuList
109
- }
110
- });
100
+ }
111
101
  export {
112
102
  MenuList
113
103
  };
104
+ //# sourceMappingURL=MenuList.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/MenuList.ts"],
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { Transition } from '../../primitives/index.js';\n\nconst FOCUSABLE_ELEMENTS = [\n 'a[href]:not([inert])',\n 'area[href]:not([inert])',\n 'input:not([disabled]):not([inert])',\n 'select:not([disabled]):not([inert])',\n 'textarea:not([disabled]):not([inert])',\n 'button:not([disabled]):not([inert])',\n 'iframe:not([inert])',\n 'audio:not([inert])',\n 'video:not([inert])',\n '[contenteditable]:not([inert])',\n '[tabindex]:not([inert])',\n].join(',');\n\nexport interface MenuListProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n MenuList: MenuList[];\n };\n}\n\n/**\n * MenuList class.\n */\nexport class MenuList<T extends BaseProps = BaseProps> extends Transition<T & MenuListProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n ...Transition.config,\n name: 'MenuList',\n emits: ['items-open', 'items-close', 'items-mouseleave'],\n components: {\n MenuList,\n },\n };\n\n /**\n * Are the menu items visible?\n */\n isOpen = false;\n\n /**\n * Wether the component is hovered.\n */\n isHover = false;\n\n /**\n * Override `Transition` options.\n */\n // @ts-ignore\n get $options() {\n const options = super.$options;\n\n options.leaveKeep = true;\n options.enterKeep = true;\n\n return options;\n }\n\n /**\n * Update tab indexes on mount.\n */\n mounted() {\n this.__updateTabIndexes('close');\n }\n\n /**\n * Set hover state.\n */\n onMouseenter() {\n this.isHover = true;\n }\n\n /**\n * Unset hover state.\n */\n onMouseleave() {\n this.isHover = false;\n }\n\n /**\n * Display the menu items.\n */\n open() {\n if (this.isOpen) {\n return;\n }\n\n // @todo Remove event listener when the close method is called.\n const clickOutsideHandler = (event) => {\n if (!this.$el.contains(event.target)) {\n document.removeEventListener('click', clickOutsideHandler);\n this.close();\n }\n };\n document.addEventListener('click', clickOutsideHandler);\n\n this.__updateTabIndexes('open');\n this.$el.setAttribute('aria-hidden', 'false');\n this.isOpen = true;\n this.enter();\n this.$emit('items-open');\n }\n\n /**\n * Hide the menu items.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n\n // Close child menu items.\n this.$children.MenuList.forEach((menuItem) => {\n menuItem.close();\n });\n\n if (\n document.activeElement instanceof HTMLElement &&\n this.$el.contains(document.activeElement)\n ) {\n document.activeElement.blur();\n }\n\n this.$el.setAttribute('aria-hidden', 'true');\n this.__updateTabIndexes('close');\n this.isOpen = false;\n this.leave();\n this.$emit('items-close');\n }\n\n /**\n * Toggle the menu items.\n */\n toggle() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Update `tabindex` attribute of child focusable elements.\n * @private\n */\n __updateTabIndexes(mode:'open'|'close' = 'open') {\n const focusableItems = Array.from(this.$el.querySelectorAll(FOCUSABLE_ELEMENTS)).filter(\n (item) => this.__filterFocusableItems(item as HTMLElement),\n );\n\n focusableItems.forEach((item) => {\n if (mode === 'close') {\n item.setAttribute('tabindex', '-1');\n } else {\n item.removeAttribute('tabindex');\n }\n });\n }\n\n /**\n * Filter out items which are inside a child `MenuList` instance.\n * @private\n */\n __filterFocusableItems(item:HTMLElement):boolean {\n let ancestor = item.parentElement;\n\n // @ts-ignore\n while (ancestor && (!ancestor.__base__ || !ancestor.__base__.has(this.constructor))) {\n ancestor = ancestor.parentElement;\n }\n\n return ancestor === null || ancestor === this.$el;\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,kBAAkB;AAE3B,MAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAYH,MAAM,iBAAkD,WAA8B;AAAA,EAI3F,OAAO,SAAoB;AAAA,IACzB,GAAG,WAAW;AAAA,IACd,MAAM;AAAA,IACN,OAAO,CAAC,cAAc,eAAe,kBAAkB;AAAA,IACvD,YAAY;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAKA,SAAS;AAAA,EAKT,UAAU;AAAA,EAMV,IAAI,WAAW;AACb,UAAM,UAAU,MAAM;AAEtB,YAAQ,YAAY;AACpB,YAAQ,YAAY;AAEpB,WAAO;AAAA,EACT;AAAA,EAKA,UAAU;AACR,SAAK,mBAAmB,OAAO;AAAA,EACjC;AAAA,EAKA,eAAe;AACb,SAAK,UAAU;AAAA,EACjB;AAAA,EAKA,eAAe;AACb,SAAK,UAAU;AAAA,EACjB;AAAA,EAKA,OAAO;AACL,QAAI,KAAK,QAAQ;AACf;AAAA,IACF;AAGA,UAAM,sBAAsB,CAAC,UAAU;AACrC,UAAI,CAAC,KAAK,IAAI,SAAS,MAAM,MAAM,GAAG;AACpC,iBAAS,oBAAoB,SAAS,mBAAmB;AACzD,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAiB,SAAS,mBAAmB;AAEtD,SAAK,mBAAmB,MAAM;AAC9B,SAAK,IAAI,aAAa,eAAe,OAAO;AAC5C,SAAK,SAAS;AACd,SAAK,MAAM;AACX,SAAK,MAAM,YAAY;AAAA,EACzB;AAAA,EAKA,QAAQ;AACN,QAAI,CAAC,KAAK,QAAQ;AAChB;AAAA,IACF;AAGA,SAAK,UAAU,SAAS,QAAQ,CAAC,aAAa;AAC5C,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,QACE,SAAS,yBAAyB,eAClC,KAAK,IAAI,SAAS,SAAS,aAAa,GACxC;AACA,eAAS,cAAc,KAAK;AAAA,IAC9B;AAEA,SAAK,IAAI,aAAa,eAAe,MAAM;AAC3C,SAAK,mBAAmB,OAAO;AAC/B,SAAK,SAAS;AACd,SAAK,MAAM;AACX,SAAK,MAAM,aAAa;AAAA,EAC1B;AAAA,EAKA,SAAS;AACP,QAAI,KAAK,QAAQ;AACf,WAAK,MAAM;AAAA,IACb,OAAO;AACL,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAMA,mBAAmB,OAAsB,QAAQ;AAC/C,UAAM,iBAAiB,MAAM,KAAK,KAAK,IAAI,iBAAiB,kBAAkB,CAAC,EAAE;AAAA,MAC/E,CAAC,SAAS,KAAK,uBAAuB,IAAmB;AAAA,IAC3D;AAEA,mBAAe,QAAQ,CAAC,SAAS;AAC/B,UAAI,SAAS,SAAS;AACpB,aAAK,aAAa,YAAY,IAAI;AAAA,MACpC,OAAO;AACL,aAAK,gBAAgB,UAAU;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAMA,uBAAuB,MAA0B;AAC/C,QAAI,WAAW,KAAK;AAGpB,WAAO,aAAa,CAAC,SAAS,YAAY,CAAC,SAAS,SAAS,IAAI,KAAK,WAAW,IAAI;AACnF,iBAAW,SAAS;AAAA,IACtB;AAEA,WAAO,aAAa,QAAQ,aAAa,KAAK;AAAA,EAChD;AACF;",
6
+ "names": []
7
+ }
@@ -20,3 +20,4 @@ __reExport(Menu_exports, require("./Menu.cjs"), module.exports);
20
20
  __reExport(Menu_exports, require("./MenuBtn.cjs"), module.exports);
21
21
  __reExport(Menu_exports, require("./MenuList.cjs"), module.exports);
22
22
  if (module.exports.default) module.exports = module.exports.default;
23
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/index.ts"],
4
+ "sourcesContent": ["export * from './Menu.js';\nexport * from './MenuBtn.js';\nexport * from './MenuList.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAc,uBAAd;AACA,yBAAc,0BADd;AAEA,yBAAc,2BAFd;",
6
+ "names": []
7
+ }
@@ -1,3 +1,4 @@
1
1
  export * from "./Menu.js";
2
2
  export * from "./MenuBtn.js";
3
3
  export * from "./MenuList.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/index.ts"],
4
+ "sourcesContent": ["export * from './Menu.js';\nexport * from './MenuBtn.js';\nexport * from './MenuList.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -29,21 +29,13 @@ __export(Modal_exports, {
29
29
  module.exports = __toCommonJS(Modal_exports);
30
30
  var import_js_toolkit = require("@studiometa/js-toolkit");
31
31
  var import_utils = require("@studiometa/js-toolkit/utils");
32
- function delegateTransition(elementOrElements, name, endMode) {
33
- return (0, import_utils.isArray)(elementOrElements) || elementOrElements instanceof NodeList ? Promise.all(
34
- Array.from(elementOrElements).map((el) => (0, import_utils.transition)(el, name, endMode))
35
- ) : (0, import_utils.transition)(elementOrElements, name, endMode);
36
- }
37
32
  var { trap, untrap, saveActiveElement } = (0, import_utils.focusTrap)();
38
33
  var Modal = class extends import_js_toolkit.Base {
39
- constructor() {
40
- super(...arguments);
41
- __publicField(this, "isOpen", false);
42
- __publicField(this, "__refsBackup");
43
- __publicField(this, "__refModalPlaceholder");
44
- __publicField(this, "__refModalParentBackup");
45
- __publicField(this, "__refModalUnbindGetRefFilter");
46
- }
34
+ isOpen = false;
35
+ __refsBackup;
36
+ __refModalPlaceholder;
37
+ __refModalParentBackup;
38
+ __refModalUnbindGetRefFilter;
47
39
  get onOpenClick() {
48
40
  return this.open;
49
41
  }
@@ -110,7 +102,7 @@ var Modal = class extends import_js_toolkit.Base {
110
102
  const refs = this.$refs;
111
103
  return Promise.all(
112
104
  Object.entries(this.$options.styles).map(
113
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => delegateTransition(
105
+ ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => (0, import_utils.transition)(
114
106
  refs[refName],
115
107
  {
116
108
  from: closed,
@@ -143,7 +135,7 @@ var Modal = class extends import_js_toolkit.Base {
143
135
  const refs = this.$refs;
144
136
  return Promise.all(
145
137
  Object.entries(this.$options.styles).map(
146
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => delegateTransition(
138
+ ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => (0, import_utils.transition)(
147
139
  refs[refName],
148
140
  {
149
141
  from: open,
@@ -182,3 +174,4 @@ __publicField(Modal, "config", {
182
174
  }
183
175
  });
184
176
  if (module.exports.default) module.exports = module.exports.default;
177
+ //# sourceMappingURL=Modal.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/Modal.ts"],
4
+ "sourcesContent": ["import { Base, KeyServiceProps } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition, focusTrap } from '@studiometa/js-toolkit/utils';\n\nconst { trap, untrap, saveActiveElement } = focusTrap();\n\ntype ModalStates = Partial<Record<'open'|'active'|'closed', string|Partial<CSSStyleDeclaration>>>\n// eslint-disable-next-line no-use-before-define\ntype ModalStylesOption = Partial<Record<keyof ModalProps['$refs'], ModalStates>>\n\nexport interface ModalProps extends BaseProps {\n $refs: {\n close: HTMLElement[];\n container: HTMLElement;\n content: HTMLElement;\n modal: HTMLElement;\n open: HTMLElement[];\n overlay: HTMLElement;\n };\n $options: {\n /**\n * A selector where to move the modal to.\n */\n move: string;\n /**\n * A selector for the element to set the focus to when the modal opens.\n */\n autofocus: string;\n /**\n * Lock or allow scroll in the documentElement.\n */\n scrollLock: boolean;\n /**\n * The styles for the different state of the modal.\n */\n styles: ModalStylesOption;\n }\n}\n\n/**\n * Modal class.\n */\nexport class Modal<T extends BaseProps = BaseProps> extends Base<T & ModalProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n name: 'Modal',\n refs: ['close[]', 'container', 'content', 'modal', 'open[]', 'overlay'],\n emits: ['open', 'close'],\n options: {\n move: String,\n autofocus: { type: String, default: '[autofocus]' },\n styles: {\n type: Object,\n default: ():ModalStylesOption => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n },\n }),\n },\n scrollLock: {\n type: Boolean,\n default: true,\n },\n },\n };\n\n /**\n * Wether the modal is open or not.\n */\n isOpen = false;\n\n /**\n * @private\n */\n __refsBackup:(T & ModalProps)['$refs'];\n\n /**\n * @private\n */\n __refModalPlaceholder: Comment;\n\n /**\n * @private\n */\n __refModalParentBackup: HTMLElement;\n\n /**\n * @private\n */\n __refModalUnbindGetRefFilter:() => void;\n\n /**\n * Open the modal on click on the `open` ref.\n */\n get onOpenClick() {\n return this.open;\n }\n\n /**\n * Close the modal on click on the `close` ref.\n */\n get onCloseClick() {\n return this.close;\n }\n\n /**\n * Close the modal on click on the `overlay` ref.\n *\n * @returns {Function} The component's `close` method.\n */\n get onOverlayClick() {\n return this.close;\n }\n\n /**\n * Initialize the component's behaviours.\n */\n mounted() {\n this.isOpen = false;\n this.close();\n\n if (this.$options.move) {\n const target = document.querySelector(this.$options.move) || document.body;\n\n this.__refsBackup = this.$refs;\n this.__refModalPlaceholder = document.createComment('');\n this.__refModalParentBackup = this.$refs.modal.parentElement || this.$el;\n this.__refModalParentBackup.insertBefore(this.__refModalPlaceholder, this.$refs.modal);\n\n target.append(this.$refs.modal);\n }\n }\n\n /**\n * Add the moved refs to `this.$refs` when using the `move` options.\n */\n get $refs() {\n const $refs = super.$refs;\n\n if (this.$options.move && this.__refsBackup) {\n Object.entries(this.__refsBackup).forEach(([key, ref]) => {\n if (!$refs[key]) {\n // @ts-ignore\n $refs[key] = ref;\n }\n });\n }\n\n return $refs;\n }\n\n /**\n * Unbind all events on destroy.\n */\n destroyed() {\n this.close();\n\n if (this.$options.move && this.__refModalParentBackup) {\n this.__refModalParentBackup.insertBefore(this.$refs.modal, this.__refModalPlaceholder);\n this.__refModalPlaceholder.remove();\n delete this.__refModalPlaceholder;\n delete this.__refModalParentBackup;\n }\n\n return this;\n }\n\n /**\n * Close the modal on `ESC` and trap the tabulation.\n */\n keyed({ event, isUp, isDown, ESC }:KeyServiceProps) {\n if (!this.isOpen) {\n return;\n }\n\n if (isDown) {\n trap(this.$refs.modal, event);\n }\n\n if (ESC && isUp) {\n this.close();\n }\n }\n\n /**\n * Open the modal.\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'false');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = 'hidden';\n }\n\n this.isOpen = true;\n this.$emit('open');\n\n /** @type {ModalRefs} */\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: closed,\n active,\n to: open,\n },\n 'keep',\n ),\n ),\n ).then(() => {\n if (this.$options.autofocus && this.$refs.modal.querySelector(this.$options.autofocus)) {\n saveActiveElement();\n const autofocusElement = this.$refs.modal.querySelector(this.$options.autofocus) as HTMLElement;\n autofocusElement.focus();\n }\n return Promise.resolve();\n });\n }\n\n /**\n * Close the modal.\n */\n async close() {\n if (!this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'true');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = '';\n }\n\n this.isOpen = false;\n untrap();\n this.$emit('close');\n\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: open,\n active,\n to: closed,\n },\n 'keep',\n ),\n ),\n ).then(() => Promise.resolve());\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -79,7 +79,7 @@ export declare class Modal<T extends BaseProps = BaseProps> extends Base<T & Mod
79
79
  /**
80
80
  * Add the moved refs to `this.$refs` when using the `move` options.
81
81
  */
82
- get $refs(): import("@studiometa/js-toolkit/Base/managers/RefsManager").default & (T & ModalProps)["$refs"] & import("@studiometa/js-toolkit/Base").BaseRefs;
82
+ get $refs(): import("@studiometa/js-toolkit/Base/managers/RefsManager").RefsManager & (T & ModalProps)["$refs"] & import("@studiometa/js-toolkit/Base").BaseRefs;
83
83
  /**
84
84
  * Unbind all events on destroy.
85
85
  */
@@ -1,26 +1,37 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
1
  import { Base } from "@studiometa/js-toolkit";
8
- import { transition, isArray, focusTrap } from "@studiometa/js-toolkit/utils";
9
- function delegateTransition(elementOrElements, name, endMode) {
10
- return isArray(elementOrElements) || elementOrElements instanceof NodeList ? Promise.all(
11
- Array.from(elementOrElements).map((el) => transition(el, name, endMode))
12
- ) : transition(elementOrElements, name, endMode);
13
- }
2
+ import { transition, focusTrap } from "@studiometa/js-toolkit/utils";
14
3
  const { trap, untrap, saveActiveElement } = focusTrap();
15
4
  class Modal extends Base {
16
- constructor() {
17
- super(...arguments);
18
- __publicField(this, "isOpen", false);
19
- __publicField(this, "__refsBackup");
20
- __publicField(this, "__refModalPlaceholder");
21
- __publicField(this, "__refModalParentBackup");
22
- __publicField(this, "__refModalUnbindGetRefFilter");
23
- }
5
+ static config = {
6
+ name: "Modal",
7
+ refs: ["close[]", "container", "content", "modal", "open[]", "overlay"],
8
+ emits: ["open", "close"],
9
+ options: {
10
+ move: String,
11
+ autofocus: { type: String, default: "[autofocus]" },
12
+ styles: {
13
+ type: Object,
14
+ default: () => ({
15
+ modal: {
16
+ closed: {
17
+ opacity: "0",
18
+ pointerEvents: "none",
19
+ visibility: "hidden"
20
+ }
21
+ }
22
+ })
23
+ },
24
+ scrollLock: {
25
+ type: Boolean,
26
+ default: true
27
+ }
28
+ }
29
+ };
30
+ isOpen = false;
31
+ __refsBackup;
32
+ __refModalPlaceholder;
33
+ __refModalParentBackup;
34
+ __refModalUnbindGetRefFilter;
24
35
  get onOpenClick() {
25
36
  return this.open;
26
37
  }
@@ -87,7 +98,7 @@ class Modal extends Base {
87
98
  const refs = this.$refs;
88
99
  return Promise.all(
89
100
  Object.entries(this.$options.styles).map(
90
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => delegateTransition(
101
+ ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => transition(
91
102
  refs[refName],
92
103
  {
93
104
  from: closed,
@@ -120,7 +131,7 @@ class Modal extends Base {
120
131
  const refs = this.$refs;
121
132
  return Promise.all(
122
133
  Object.entries(this.$options.styles).map(
123
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => delegateTransition(
134
+ ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => transition(
124
135
  refs[refName],
125
136
  {
126
137
  from: open,
@@ -133,31 +144,7 @@ class Modal extends Base {
133
144
  ).then(() => Promise.resolve());
134
145
  }
135
146
  }
136
- __publicField(Modal, "config", {
137
- name: "Modal",
138
- refs: ["close[]", "container", "content", "modal", "open[]", "overlay"],
139
- emits: ["open", "close"],
140
- options: {
141
- move: String,
142
- autofocus: { type: String, default: "[autofocus]" },
143
- styles: {
144
- type: Object,
145
- default: () => ({
146
- modal: {
147
- closed: {
148
- opacity: "0",
149
- pointerEvents: "none",
150
- visibility: "hidden"
151
- }
152
- }
153
- })
154
- },
155
- scrollLock: {
156
- type: Boolean,
157
- default: true
158
- }
159
- }
160
- });
161
147
  export {
162
148
  Modal
163
149
  };
150
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/Modal.ts"],
4
+ "sourcesContent": ["import { Base, KeyServiceProps } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition, focusTrap } from '@studiometa/js-toolkit/utils';\n\nconst { trap, untrap, saveActiveElement } = focusTrap();\n\ntype ModalStates = Partial<Record<'open'|'active'|'closed', string|Partial<CSSStyleDeclaration>>>\n// eslint-disable-next-line no-use-before-define\ntype ModalStylesOption = Partial<Record<keyof ModalProps['$refs'], ModalStates>>\n\nexport interface ModalProps extends BaseProps {\n $refs: {\n close: HTMLElement[];\n container: HTMLElement;\n content: HTMLElement;\n modal: HTMLElement;\n open: HTMLElement[];\n overlay: HTMLElement;\n };\n $options: {\n /**\n * A selector where to move the modal to.\n */\n move: string;\n /**\n * A selector for the element to set the focus to when the modal opens.\n */\n autofocus: string;\n /**\n * Lock or allow scroll in the documentElement.\n */\n scrollLock: boolean;\n /**\n * The styles for the different state of the modal.\n */\n styles: ModalStylesOption;\n }\n}\n\n/**\n * Modal class.\n */\nexport class Modal<T extends BaseProps = BaseProps> extends Base<T & ModalProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n name: 'Modal',\n refs: ['close[]', 'container', 'content', 'modal', 'open[]', 'overlay'],\n emits: ['open', 'close'],\n options: {\n move: String,\n autofocus: { type: String, default: '[autofocus]' },\n styles: {\n type: Object,\n default: ():ModalStylesOption => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n },\n }),\n },\n scrollLock: {\n type: Boolean,\n default: true,\n },\n },\n };\n\n /**\n * Wether the modal is open or not.\n */\n isOpen = false;\n\n /**\n * @private\n */\n __refsBackup:(T & ModalProps)['$refs'];\n\n /**\n * @private\n */\n __refModalPlaceholder: Comment;\n\n /**\n * @private\n */\n __refModalParentBackup: HTMLElement;\n\n /**\n * @private\n */\n __refModalUnbindGetRefFilter:() => void;\n\n /**\n * Open the modal on click on the `open` ref.\n */\n get onOpenClick() {\n return this.open;\n }\n\n /**\n * Close the modal on click on the `close` ref.\n */\n get onCloseClick() {\n return this.close;\n }\n\n /**\n * Close the modal on click on the `overlay` ref.\n *\n * @returns {Function} The component's `close` method.\n */\n get onOverlayClick() {\n return this.close;\n }\n\n /**\n * Initialize the component's behaviours.\n */\n mounted() {\n this.isOpen = false;\n this.close();\n\n if (this.$options.move) {\n const target = document.querySelector(this.$options.move) || document.body;\n\n this.__refsBackup = this.$refs;\n this.__refModalPlaceholder = document.createComment('');\n this.__refModalParentBackup = this.$refs.modal.parentElement || this.$el;\n this.__refModalParentBackup.insertBefore(this.__refModalPlaceholder, this.$refs.modal);\n\n target.append(this.$refs.modal);\n }\n }\n\n /**\n * Add the moved refs to `this.$refs` when using the `move` options.\n */\n get $refs() {\n const $refs = super.$refs;\n\n if (this.$options.move && this.__refsBackup) {\n Object.entries(this.__refsBackup).forEach(([key, ref]) => {\n if (!$refs[key]) {\n // @ts-ignore\n $refs[key] = ref;\n }\n });\n }\n\n return $refs;\n }\n\n /**\n * Unbind all events on destroy.\n */\n destroyed() {\n this.close();\n\n if (this.$options.move && this.__refModalParentBackup) {\n this.__refModalParentBackup.insertBefore(this.$refs.modal, this.__refModalPlaceholder);\n this.__refModalPlaceholder.remove();\n delete this.__refModalPlaceholder;\n delete this.__refModalParentBackup;\n }\n\n return this;\n }\n\n /**\n * Close the modal on `ESC` and trap the tabulation.\n */\n keyed({ event, isUp, isDown, ESC }:KeyServiceProps) {\n if (!this.isOpen) {\n return;\n }\n\n if (isDown) {\n trap(this.$refs.modal, event);\n }\n\n if (ESC && isUp) {\n this.close();\n }\n }\n\n /**\n * Open the modal.\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'false');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = 'hidden';\n }\n\n this.isOpen = true;\n this.$emit('open');\n\n /** @type {ModalRefs} */\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: closed,\n active,\n to: open,\n },\n 'keep',\n ),\n ),\n ).then(() => {\n if (this.$options.autofocus && this.$refs.modal.querySelector(this.$options.autofocus)) {\n saveActiveElement();\n const autofocusElement = this.$refs.modal.querySelector(this.$options.autofocus) as HTMLElement;\n autofocusElement.focus();\n }\n return Promise.resolve();\n });\n }\n\n /**\n * Close the modal.\n */\n async close() {\n if (!this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'true');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = '';\n }\n\n this.isOpen = false;\n untrap();\n this.$emit('close');\n\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: open,\n active,\n to: closed,\n },\n 'keep',\n ),\n ),\n ).then(() => Promise.resolve());\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -65,3 +65,4 @@ __publicField(ModalWithTransition, "config", {
65
65
  }
66
66
  });
67
67
  if (module.exports.default) module.exports = module.exports.default;
68
+ //# sourceMappingURL=ModalWithTransition.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/ModalWithTransition.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { Modal } from './Modal.js';\n\n/**\n * ModalWithTransition class.\n */\nexport class ModalWithTransition<T extends BaseProps = BaseProps> extends Modal<T> {\n /**\n * Modal options.\n */\n static config:BaseConfig = {\n name: 'ModalWithTransition',\n options: {\n styles: {\n type: Object,\n /**\n * @returns {ModalStylesOption}\n */\n default: () => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n },\n active: 'transition duration-500 ease-out-expo',\n },\n overlay: {\n closed: 'opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n container: {\n closed: 'transform scale-95 opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n }),\n },\n },\n };\n\n open() {\n this.$refs.modal.style.visibility = '';\n return super.open();\n }\n\n async close() {\n await super.close();\n this.$refs.modal.style.visibility = 'hidden';\n return Promise.resolve();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAsB;AAKf,IAAM,sBAAN,cAAmE,mBAAS;AAAA,EAiCjF,OAAO;AACL,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,QAAQ;AACZ,UAAM,MAAM,MAAM;AAClB,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;AAvCE,cAJW,qBAIJ,UAAoB;AAAA,EACzB,MAAM;AAAA,EACN,SAAS;AAAA,IACP,QAAQ;AAAA,MACN,MAAM;AAAA,MAIN,SAAS,OAAO;AAAA,QACd,OAAO;AAAA,UACL,QAAQ;AAAA,YACN,SAAS;AAAA,YACT,eAAe;AAAA,UACjB;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,QACA,SAAS;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,QACA,WAAW;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,11 +1,30 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
1
  import { Modal } from "./Modal.js";
8
2
  class ModalWithTransition extends Modal {
3
+ static config = {
4
+ name: "ModalWithTransition",
5
+ options: {
6
+ styles: {
7
+ type: Object,
8
+ default: () => ({
9
+ modal: {
10
+ closed: {
11
+ opacity: "0",
12
+ pointerEvents: "none"
13
+ },
14
+ active: "transition duration-500 ease-out-expo"
15
+ },
16
+ overlay: {
17
+ closed: "opacity-0",
18
+ active: "transition duration-500 ease-out-expo"
19
+ },
20
+ container: {
21
+ closed: "transform scale-95 opacity-0",
22
+ active: "transition duration-500 ease-out-expo"
23
+ }
24
+ })
25
+ }
26
+ }
27
+ };
9
28
  open() {
10
29
  this.$refs.modal.style.visibility = "";
11
30
  return super.open();
@@ -16,31 +35,7 @@ class ModalWithTransition extends Modal {
16
35
  return Promise.resolve();
17
36
  }
18
37
  }
19
- __publicField(ModalWithTransition, "config", {
20
- name: "ModalWithTransition",
21
- options: {
22
- styles: {
23
- type: Object,
24
- default: () => ({
25
- modal: {
26
- closed: {
27
- opacity: "0",
28
- pointerEvents: "none"
29
- },
30
- active: "transition duration-500 ease-out-expo"
31
- },
32
- overlay: {
33
- closed: "opacity-0",
34
- active: "transition duration-500 ease-out-expo"
35
- },
36
- container: {
37
- closed: "transform scale-95 opacity-0",
38
- active: "transition duration-500 ease-out-expo"
39
- }
40
- })
41
- }
42
- }
43
- });
44
38
  export {
45
39
  ModalWithTransition
46
40
  };
41
+ //# sourceMappingURL=ModalWithTransition.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/ModalWithTransition.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { Modal } from './Modal.js';\n\n/**\n * ModalWithTransition class.\n */\nexport class ModalWithTransition<T extends BaseProps = BaseProps> extends Modal<T> {\n /**\n * Modal options.\n */\n static config:BaseConfig = {\n name: 'ModalWithTransition',\n options: {\n styles: {\n type: Object,\n /**\n * @returns {ModalStylesOption}\n */\n default: () => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n },\n active: 'transition duration-500 ease-out-expo',\n },\n overlay: {\n closed: 'opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n container: {\n closed: 'transform scale-95 opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n }),\n },\n },\n };\n\n open() {\n this.$refs.modal.style.visibility = '';\n return super.open();\n }\n\n async close() {\n await super.close();\n this.$refs.modal.style.visibility = 'hidden';\n return Promise.resolve();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,aAAa;AAKf,MAAM,4BAA6D,MAAS;AAAA,EAIjF,OAAO,SAAoB;AAAA,IACzB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,MAAM;AAAA,QAIN,SAAS,OAAO;AAAA,UACd,OAAO;AAAA,YACL,QAAQ;AAAA,cACN,SAAS;AAAA,cACT,eAAe;AAAA,YACjB;AAAA,YACA,QAAQ;AAAA,UACV;AAAA,UACA,SAAS;AAAA,YACP,QAAQ;AAAA,YACR,QAAQ;AAAA,UACV;AAAA,UACA,WAAW;AAAA,YACT,QAAQ;AAAA,YACR,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO;AACL,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,QAAQ;AACZ,UAAM,MAAM,MAAM;AAClB,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;",
6
+ "names": []
7
+ }
@@ -19,3 +19,4 @@ module.exports = __toCommonJS(Modal_exports);
19
19
  __reExport(Modal_exports, require("./Modal.cjs"), module.exports);
20
20
  __reExport(Modal_exports, require("./ModalWithTransition.cjs"), module.exports);
21
21
  if (module.exports.default) module.exports = module.exports.default;
22
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/index.ts"],
4
+ "sourcesContent": ["export * from './Modal.js';\nexport * from './ModalWithTransition.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,sCADd;",
6
+ "names": []
7
+ }
@@ -1,2 +1,3 @@
1
1
  export * from "./Modal.js";
2
2
  export * from "./ModalWithTransition.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Modal/index.ts"],
4
+ "sourcesContent": ["export * from './Modal.js';\nexport * from './ModalWithTransition.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -31,13 +31,9 @@ var import_utils = require("@studiometa/js-toolkit/utils");
31
31
  var import_Modal = require("../Modal/index.cjs");
32
32
  var DEFAULT_POSITION = "left";
33
33
  var _Panel = class extends import_Modal.Modal {
34
- constructor() {
35
- super(...arguments);
36
- __publicField(this, "isClosing", false);
37
- }
34
+ isClosing = false;
38
35
  get translateClass() {
39
- var _a;
40
- return (_a = _Panel.translateClasses[this.$options.position]) != null ? _a : _Panel.translateClasses[DEFAULT_POSITION];
36
+ return _Panel.translateClasses[this.$options.position] ?? _Panel.translateClasses[DEFAULT_POSITION];
41
37
  }
42
38
  get containerOffset() {
43
39
  const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;
@@ -127,3 +123,4 @@ __publicField(Panel, "translateClasses", {
127
123
  left: "-translate-x-full"
128
124
  });
129
125
  if (module.exports.default) module.exports = module.exports.default;
126
+ //# sourceMappingURL=Panel.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Panel/Panel.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition, matrix } from '@studiometa/js-toolkit/utils';\nimport { Modal } from '../Modal/index.js';\n\nexport interface PanelProps extends BaseProps {\n $options: {\n position: 'top' | 'right' | 'bottom' | 'left'\n }\n}\n\nconst DEFAULT_POSITION = 'left';\n\n/**\n * Panel class.\n */\nexport class Panel<T extends BaseProps = BaseProps> extends Modal<T & PanelProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n name: 'Panel',\n options: {\n position: {\n type: String,\n default: DEFAULT_POSITION,\n },\n },\n };\n\n static translateClasses = {\n top: '-translate-y-full',\n right: 'translate-x-full',\n bottom: 'translate-y-full',\n left: '-translate-x-full',\n };\n\n isClosing = false;\n\n /**\n * Get the translation class.\n * @returns {string}\n */\n get translateClass() {\n return (\n Panel.translateClasses[this.$options.position] ??\n Panel.translateClasses[DEFAULT_POSITION]\n );\n }\n\n get containerOffset() {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;\n\n const store = {\n top: {\n translateY: (offsetTop + offsetHeight) * -1,\n },\n right: {\n translateX: window.innerWidth - offsetLeft + offsetWidth * 2,\n },\n bottom: {\n translateY: window.innerHeight - offsetTop + offsetHeight * 2,\n },\n left: {\n translateX: (offsetLeft + offsetWidth) * -1,\n },\n };\n\n return matrix(store[this.$options.position]);\n }\n\n /**\n * Animate before opening.\n *\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.classList.remove('pointer-events-none');\n transition(\n this.$refs.container,\n {\n from: {\n transform: this.containerOffset,\n },\n to: {\n transform: 'none',\n },\n },\n 'keep',\n );\n transition(this.$refs.overlay, {\n from: 'opacity-0',\n });\n\n return super.open();\n }\n\n /**\n * Animate before closing.\n *\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async close() {\n if (!this.isOpen || this.isClosing) {\n return Promise.resolve();\n }\n\n this.isClosing = true;\n\n this.$refs.modal.classList.add('pointer-events-none');\n await Promise.all([\n transition(\n this.$refs.container,\n {\n from: {\n transform: 'none',\n },\n to: {\n transform: this.containerOffset,\n },\n },\n 'keep',\n ),\n transition(\n this.$refs.overlay,\n {\n to: 'opacity-0',\n },\n 'keep',\n ),\n ]);\n\n this.isClosing = false;\n\n return super.close();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AACnC,mBAAsB;AAQtB,IAAM,mBAAmB;AAKlB,IAAM,SAAN,cAAqD,mBAAsB;AAAA,EAqBhF,YAAY;AAAA,EAMZ,IAAI,iBAAiB;AACnB,WACE,OAAM,iBAAiB,KAAK,SAAS,aACrC,OAAM,iBAAiB;AAAA,EAE3B;AAAA,EAEA,IAAI,kBAAkB;AACpB,UAAM,EAAE,WAAW,YAAY,aAAa,aAAa,IAAI,KAAK,MAAM;AAExE,UAAM,QAAQ;AAAA,MACZ,KAAK;AAAA,QACH,aAAa,YAAY,gBAAgB;AAAA,MAC3C;AAAA,MACA,OAAO;AAAA,QACL,YAAY,OAAO,aAAa,aAAa,cAAc;AAAA,MAC7D;AAAA,MACA,QAAQ;AAAA,QACN,YAAY,OAAO,cAAc,YAAY,eAAe;AAAA,MAC9D;AAAA,MACA,MAAM;AAAA,QACJ,aAAa,aAAa,eAAe;AAAA,MAC3C;AAAA,IACF;AAEA,eAAO,qBAAO,MAAM,KAAK,SAAS,SAAS;AAAA,EAC7C;AAAA,EAQA,MAAM,OAAO;AACX,QAAI,KAAK,QAAQ;AACf,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,MAAM,MAAM,UAAU,OAAO,qBAAqB;AACvD;AAAA,MACE,KAAK,MAAM;AAAA,MACX;AAAA,QACE,MAAM;AAAA,UACJ,WAAW,KAAK;AAAA,QAClB;AAAA,QACA,IAAI;AAAA,UACF,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,IACF;AACA,iCAAW,KAAK,MAAM,SAAS;AAAA,MAC7B,MAAM;AAAA,IACR,CAAC;AAED,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAQA,MAAM,QAAQ;AACZ,QAAI,CAAC,KAAK,UAAU,KAAK,WAAW;AAClC,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,YAAY;AAEjB,SAAK,MAAM,MAAM,UAAU,IAAI,qBAAqB;AACpD,UAAM,QAAQ,IAAI;AAAA,UAChB;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,MAAM;AAAA,YACJ,WAAW;AAAA,UACb;AAAA,UACA,IAAI;AAAA,YACF,WAAW,KAAK;AAAA,UAClB;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,UACA;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,YAAY;AAEjB,WAAO,MAAM,MAAM;AAAA,EACrB;AACF;AA9HO,IAAM,QAAN;AAIL,cAJW,OAIJ,UAAoB;AAAA,EACzB,MAAM;AAAA,EACN,SAAS;AAAA,IACP,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,cAdW,OAcJ,oBAAmB;AAAA,EACxB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;",
6
+ "names": []
7
+ }
@@ -1,20 +1,25 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
1
  import { transition, matrix } from "@studiometa/js-toolkit/utils";
8
2
  import { Modal } from "../Modal/index.js";
9
3
  const DEFAULT_POSITION = "left";
10
- const _Panel = class extends Modal {
11
- constructor() {
12
- super(...arguments);
13
- __publicField(this, "isClosing", false);
14
- }
4
+ class Panel extends Modal {
5
+ static config = {
6
+ name: "Panel",
7
+ options: {
8
+ position: {
9
+ type: String,
10
+ default: DEFAULT_POSITION
11
+ }
12
+ }
13
+ };
14
+ static translateClasses = {
15
+ top: "-translate-y-full",
16
+ right: "translate-x-full",
17
+ bottom: "translate-y-full",
18
+ left: "-translate-x-full"
19
+ };
20
+ isClosing = false;
15
21
  get translateClass() {
16
- var _a;
17
- return (_a = _Panel.translateClasses[this.$options.position]) != null ? _a : _Panel.translateClasses[DEFAULT_POSITION];
22
+ return Panel.translateClasses[this.$options.position] ?? Panel.translateClasses[DEFAULT_POSITION];
18
23
  }
19
24
  get containerOffset() {
20
25
  const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;
@@ -86,23 +91,8 @@ const _Panel = class extends Modal {
86
91
  this.isClosing = false;
87
92
  return super.close();
88
93
  }
89
- };
90
- let Panel = _Panel;
91
- __publicField(Panel, "config", {
92
- name: "Panel",
93
- options: {
94
- position: {
95
- type: String,
96
- default: DEFAULT_POSITION
97
- }
98
- }
99
- });
100
- __publicField(Panel, "translateClasses", {
101
- top: "-translate-y-full",
102
- right: "translate-x-full",
103
- bottom: "translate-y-full",
104
- left: "-translate-x-full"
105
- });
94
+ }
106
95
  export {
107
96
  Panel
108
97
  };
98
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Panel/Panel.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition, matrix } from '@studiometa/js-toolkit/utils';\nimport { Modal } from '../Modal/index.js';\n\nexport interface PanelProps extends BaseProps {\n $options: {\n position: 'top' | 'right' | 'bottom' | 'left'\n }\n}\n\nconst DEFAULT_POSITION = 'left';\n\n/**\n * Panel class.\n */\nexport class Panel<T extends BaseProps = BaseProps> extends Modal<T & PanelProps> {\n /**\n * Config.\n */\n static config:BaseConfig = {\n name: 'Panel',\n options: {\n position: {\n type: String,\n default: DEFAULT_POSITION,\n },\n },\n };\n\n static translateClasses = {\n top: '-translate-y-full',\n right: 'translate-x-full',\n bottom: 'translate-y-full',\n left: '-translate-x-full',\n };\n\n isClosing = false;\n\n /**\n * Get the translation class.\n * @returns {string}\n */\n get translateClass() {\n return (\n Panel.translateClasses[this.$options.position] ??\n Panel.translateClasses[DEFAULT_POSITION]\n );\n }\n\n get containerOffset() {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;\n\n const store = {\n top: {\n translateY: (offsetTop + offsetHeight) * -1,\n },\n right: {\n translateX: window.innerWidth - offsetLeft + offsetWidth * 2,\n },\n bottom: {\n translateY: window.innerHeight - offsetTop + offsetHeight * 2,\n },\n left: {\n translateX: (offsetLeft + offsetWidth) * -1,\n },\n };\n\n return matrix(store[this.$options.position]);\n }\n\n /**\n * Animate before opening.\n *\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.classList.remove('pointer-events-none');\n transition(\n this.$refs.container,\n {\n from: {\n transform: this.containerOffset,\n },\n to: {\n transform: 'none',\n },\n },\n 'keep',\n );\n transition(this.$refs.overlay, {\n from: 'opacity-0',\n });\n\n return super.open();\n }\n\n /**\n * Animate before closing.\n *\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async close() {\n if (!this.isOpen || this.isClosing) {\n return Promise.resolve();\n }\n\n this.isClosing = true;\n\n this.$refs.modal.classList.add('pointer-events-none');\n await Promise.all([\n transition(\n this.$refs.container,\n {\n from: {\n transform: 'none',\n },\n to: {\n transform: this.containerOffset,\n },\n },\n 'keep',\n ),\n transition(\n this.$refs.overlay,\n {\n to: 'opacity-0',\n },\n 'keep',\n ),\n ]);\n\n this.isClosing = false;\n\n return super.close();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,YAAY,cAAc;AACnC,SAAS,aAAa;AAQtB,MAAM,mBAAmB;AAKlB,MAAM,cAA+C,MAAsB;AAAA,EAIhF,OAAO,SAAoB;AAAA,IACzB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,mBAAmB;AAAA,IACxB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EAEA,YAAY;AAAA,EAMZ,IAAI,iBAAiB;AACnB,WACE,MAAM,iBAAiB,KAAK,SAAS,aACrC,MAAM,iBAAiB;AAAA,EAE3B;AAAA,EAEA,IAAI,kBAAkB;AACpB,UAAM,EAAE,WAAW,YAAY,aAAa,aAAa,IAAI,KAAK,MAAM;AAExE,UAAM,QAAQ;AAAA,MACZ,KAAK;AAAA,QACH,aAAa,YAAY,gBAAgB;AAAA,MAC3C;AAAA,MACA,OAAO;AAAA,QACL,YAAY,OAAO,aAAa,aAAa,cAAc;AAAA,MAC7D;AAAA,MACA,QAAQ;AAAA,QACN,YAAY,OAAO,cAAc,YAAY,eAAe;AAAA,MAC9D;AAAA,MACA,MAAM;AAAA,QACJ,aAAa,aAAa,eAAe;AAAA,MAC3C;AAAA,IACF;AAEA,WAAO,OAAO,MAAM,KAAK,SAAS,SAAS;AAAA,EAC7C;AAAA,EAQA,MAAM,OAAO;AACX,QAAI,KAAK,QAAQ;AACf,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,MAAM,MAAM,UAAU,OAAO,qBAAqB;AACvD;AAAA,MACE,KAAK,MAAM;AAAA,MACX;AAAA,QACE,MAAM;AAAA,UACJ,WAAW,KAAK;AAAA,QAClB;AAAA,QACA,IAAI;AAAA,UACF,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,IACF;AACA,eAAW,KAAK,MAAM,SAAS;AAAA,MAC7B,MAAM;AAAA,IACR,CAAC;AAED,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAQA,MAAM,QAAQ;AACZ,QAAI,CAAC,KAAK,UAAU,KAAK,WAAW;AAClC,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,YAAY;AAEjB,SAAK,MAAM,MAAM,UAAU,IAAI,qBAAqB;AACpD,UAAM,QAAQ,IAAI;AAAA,MAChB;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,MAAM;AAAA,YACJ,WAAW;AAAA,UACb;AAAA,UACA,IAAI;AAAA,YACF,WAAW,KAAK;AAAA,UAClB;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,YAAY;AAEjB,WAAO,MAAM,MAAM;AAAA,EACrB;AACF;",
6
+ "names": []
7
+ }
@@ -18,3 +18,4 @@ var Panel_exports = {};
18
18
  module.exports = __toCommonJS(Panel_exports);
19
19
  __reExport(Panel_exports, require("./Panel.cjs"), module.exports);
20
20
  if (module.exports.default) module.exports = module.exports.default;
21
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Panel/index.ts"],
4
+ "sourcesContent": ["export * from './Panel.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;",
6
+ "names": []
7
+ }