@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
@@ -1,24 +1,26 @@
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
- import { transition, isArray } from "@studiometa/js-toolkit/utils";
8
- function delegateTransition(elementOrElements, name, endMode) {
9
- return isArray(elementOrElements) || elementOrElements instanceof NodeList ? Promise.all(
10
- Array.from(elementOrElements).map((el) => transition(el, name, endMode))
11
- ) : transition(elementOrElements, name, endMode);
12
- }
1
+ import { transition } from "@studiometa/js-toolkit/utils";
13
2
  function withTransition(BaseClass) {
14
3
  class Transition extends BaseClass {
4
+ static config = {
5
+ name: "Transition",
6
+ options: {
7
+ enterFrom: String,
8
+ enterActive: String,
9
+ enterTo: String,
10
+ enterKeep: Boolean,
11
+ leaveFrom: String,
12
+ leaveActive: String,
13
+ leaveTo: String,
14
+ leaveKeep: Boolean
15
+ }
16
+ };
15
17
  get target() {
16
18
  return this.$el;
17
19
  }
18
20
  async enter(target) {
19
21
  const { enterFrom, enterActive, enterTo, enterKeep, leaveTo } = this.$options;
20
- await delegateTransition(
21
- target != null ? target : this.target,
22
+ await transition(
23
+ target ?? this.target,
22
24
  {
23
25
  from: (leaveTo + " " + enterFrom).trim(),
24
26
  active: enterActive,
@@ -29,8 +31,8 @@ function withTransition(BaseClass) {
29
31
  }
30
32
  async leave(target) {
31
33
  const { leaveFrom, leaveActive, leaveTo, leaveKeep, enterTo } = this.$options;
32
- await delegateTransition(
33
- target != null ? target : this.target,
34
+ await transition(
35
+ target ?? this.target,
34
36
  {
35
37
  from: (enterTo + " " + leaveFrom).trim(),
36
38
  active: leaveActive,
@@ -40,21 +42,9 @@ function withTransition(BaseClass) {
40
42
  );
41
43
  }
42
44
  }
43
- __publicField(Transition, "config", {
44
- name: "Transition",
45
- options: {
46
- enterFrom: String,
47
- enterActive: String,
48
- enterTo: String,
49
- enterKeep: Boolean,
50
- leaveFrom: String,
51
- leaveActive: String,
52
- leaveTo: String,
53
- leaveKeep: Boolean
54
- }
55
- });
56
45
  return Transition;
57
46
  }
58
47
  export {
59
48
  withTransition
60
49
  };
50
+ //# sourceMappingURL=withTransition.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/ui/decorators/withTransition.ts"],
4
+ "sourcesContent": ["import { transition } from '@studiometa/js-toolkit/utils';\nimport type {\n Base,\n BaseDecorator,\n BaseProps,\n BaseConfig,\n BaseInterface,\n} from '@studiometa/js-toolkit';\n\nexport interface TransitionProps extends BaseProps {\n $options: {\n enterFrom: string;\n enterActive: string;\n enterTo: string;\n enterKeep: boolean;\n leaveFrom: string;\n leaveActive: string;\n leaveTo: string;\n leaveKeep: boolean;\n };\n}\n\nexport interface TransitionInterface extends BaseInterface {\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[];\n /**\n * Trigger the enter transition.\n */\n enter(target?: HTMLElement | HTMLElement[]):Promise<void>;\n /**\n * Trigger the leave transition.\n */\n leave(target?: HTMLElement | HTMLElement[]):Promise<void>;\n}\n\n/**\n * Extend a class to add transition capabilities.\n */\nexport function withTransition<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<TransitionInterface, S, TransitionProps> {\n /**\n * Class.\n */\n class Transition<T extends BaseProps = BaseProps> extends BaseClass<\n T & TransitionProps\n > {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Transition',\n options: {\n enterFrom: String,\n enterActive: String,\n enterTo: String,\n enterKeep: Boolean,\n leaveFrom: String,\n leaveActive: String,\n leaveTo: String,\n leaveKeep: Boolean,\n },\n };\n\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[] {\n return this.$el;\n }\n\n /**\n * Trigger the enter transition.\n */\n async enter(target?: HTMLElement | HTMLElement[]): Promise<void> {\n const { enterFrom, enterActive, enterTo, enterKeep, leaveTo } = this.$options;\n\n await transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (leaveTo + ' ' + enterFrom).trim(),\n active: enterActive as string,\n to: enterTo as string,\n },\n enterKeep && 'keep',\n );\n }\n\n /**\n * Trigger the leave transition.\n */\n async leave(target?: HTMLElement | HTMLElement[]): Promise<void> {\n const { leaveFrom, leaveActive, leaveTo, leaveKeep, enterTo } = this.$options;\n\n await transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (enterTo + ' ' + leaveFrom).trim(),\n active: leaveActive as string,\n to: leaveTo as string,\n },\n leaveKeep && 'keep',\n );\n }\n }\n\n // @ts-ignore\n return Transition;\n}\n"],
5
+ "mappings": "AAAA,SAAS,kBAAkB;AAwCpB,SAAS,eACd,WACwD;AAIxD,QAAM,mBAAoD,UAExD;AAAA,IAIA,OAAO,SAAqB;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS;AAAA,QACP,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IAKA,IAAI,SAAsC;AACxC,aAAO,KAAK;AAAA,IACd;AAAA,IAKA,MAAM,MAAM,QAAqD;AAC/D,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM;AAAA,QACJ,UAAU,KAAK;AAAA,QACf;AAAA,UAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,UACvC,QAAQ;AAAA,UACR,IAAI;AAAA,QACN;AAAA,QACA,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IAKA,MAAM,MAAM,QAAqD;AAC/D,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM;AAAA,QACJ,UAAU,KAAK;AAAA,QACf;AAAA,UAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,UACvC,QAAQ;AAAA,UACR,IAAI;AAAA,QACN;AAAA,QACA,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;",
6
+ "names": []
7
+ }
package/index.cjs CHANGED
@@ -22,3 +22,4 @@ __reExport(ui_exports, require("./molecules/index.cjs"), module.exports);
22
22
  __reExport(ui_exports, require("./organisms/index.cjs"), module.exports);
23
23
  __reExport(ui_exports, require("./decorators/index.cjs"), module.exports);
24
24
  if (module.exports.default) module.exports = module.exports.default;
25
+ //# sourceMappingURL=index.cjs.map
package/index.cjs.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../packages/ui/index.ts"],
4
+ "sourcesContent": ["export * from './primitives/index.js';\nexport * from './atoms/index.js';\nexport * from './molecules/index.js';\nexport * from './organisms/index.js';\nexport * from './decorators/index.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,uBAAc,mCAAd;AACA,uBAAc,8BADd;AAEA,uBAAc,kCAFd;AAGA,uBAAc,kCAHd;AAIA,uBAAc,mCAJd;",
6
+ "names": []
7
+ }
package/index.js CHANGED
@@ -3,3 +3,4 @@ export * from "./atoms/index.js";
3
3
  export * from "./molecules/index.js";
4
4
  export * from "./organisms/index.js";
5
5
  export * from "./decorators/index.js";
6
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../packages/ui/index.ts"],
4
+ "sourcesContent": ["export * from './primitives/index.js';\nexport * from './atoms/index.js';\nexport * from './molecules/index.js';\nexport * from './organisms/index.js';\nexport * from './decorators/index.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -38,3 +38,4 @@ __publicField(Accordion, "config", {
38
38
  }
39
39
  });
40
40
  if (module.exports.default) module.exports = module.exports.default;
41
+ //# sourceMappingURL=Accordion.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/Accordion.ts"],
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
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAA8B;AAE9B,2BAA8B;AAKvB,IAAM,YAAN,cAAyD,mCAAkC;AAOlG;AANE,cADW,WACJ,UAAqB;AAAA,EAC1B,GAAG,mCAAc;AAAA,EACjB,YAAY;AAAA,IACV;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,19 +1,14 @@
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 { AccordionCore } from "./AccordionCore.js";
8
2
  import { AccordionItem } from "./AccordionItem.js";
9
3
  class Accordion extends AccordionCore {
4
+ static config = {
5
+ ...AccordionCore.config,
6
+ components: {
7
+ AccordionItem
8
+ }
9
+ };
10
10
  }
11
- __publicField(Accordion, "config", {
12
- ...AccordionCore.config,
13
- components: {
14
- AccordionItem
15
- }
16
- });
17
11
  export {
18
12
  Accordion
19
13
  };
14
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/Accordion.ts"],
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
+ "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
+ "names": []
7
+ }
@@ -51,3 +51,4 @@ __publicField(AccordionCore, "config", {
51
51
  }
52
52
  });
53
53
  if (module.exports.default) module.exports = module.exports.default;
54
+ //# sourceMappingURL=AccordionCore.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/AccordionCore.ts"],
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<\n T & AccordionProps\n> {\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: 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: number) {\n this.$emit('close', this.$children.AccordionItem[index], index);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAqBd,IAAM,gBAAN,cAA6D,uBAElE;AAAA,EAmBA,oBAAoB,OAAe;AACjC,SAAK,MAAM,QAAQ,KAAK,UAAU,cAAc,QAAQ,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,EAKA,qBAAqB,OAAe;AAClC,SAAK,MAAM,SAAS,KAAK,UAAU,cAAc,QAAQ,KAAK;AAAA,EAChE;AACF;AA5BE,cANW,eAMJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,OAAO,CAAC,QAAQ,OAAO;AAAA,EACvB,SAAS;AAAA,IACP,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,OAAgD,CAAC;AAAA,IAC5D;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,11 +1,16 @@
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
2
  class AccordionCore extends Base {
3
+ static config = {
4
+ name: "Accordion",
5
+ emits: ["open", "close"],
6
+ options: {
7
+ autoclose: Boolean,
8
+ item: {
9
+ type: Object,
10
+ default: () => ({})
11
+ }
12
+ }
13
+ };
9
14
  onAccordionItemOpen(index) {
10
15
  this.$emit("open", this.$children.AccordionItem[index], index);
11
16
  if (this.$options.autoclose) {
@@ -16,17 +21,7 @@ class AccordionCore extends Base {
16
21
  this.$emit("close", this.$children.AccordionItem[index], index);
17
22
  }
18
23
  }
19
- __publicField(AccordionCore, "config", {
20
- name: "Accordion",
21
- emits: ["open", "close"],
22
- options: {
23
- autoclose: Boolean,
24
- item: {
25
- type: Object,
26
- default: () => ({})
27
- }
28
- }
29
- });
30
24
  export {
31
25
  AccordionCore
32
26
  };
27
+ //# sourceMappingURL=AccordionCore.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/AccordionCore.ts"],
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<\n T & AccordionProps\n> {\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: 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: number) {\n this.$emit('close', this.$children.AccordionItem[index], index);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAqBd,MAAM,sBAAuD,KAElE;AAAA,EAIA,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,EAKA,oBAAoB,OAAe;AACjC,SAAK,MAAM,QAAQ,KAAK,UAAU,cAAc,QAAQ,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,EAKA,qBAAqB,OAAe;AAClC,SAAK,MAAM,SAAS,KAAK,UAAU,cAAc,QAAQ,KAAK;AAAA,EAChE;AACF;",
6
+ "names": []
7
+ }
@@ -41,9 +41,8 @@ var _AccordionItem = class extends import_js_toolkit.Base {
41
41
  mounted() {
42
42
  if (this.$parent && this.$parent instanceof import_AccordionCore.AccordionCore && this.$parent.$options.item) {
43
43
  Object.entries(this.$parent.$options.item).forEach(([key, value]) => {
44
- var _a;
45
44
  if (key in this.$options) {
46
- const type = (_a = _AccordionItem.config.options[key].type) != null ? _a : _AccordionItem.config.options[key];
45
+ const type = _AccordionItem.config.options[key].type ?? _AccordionItem.config.options[key];
47
46
  if (type === Array || type === Object) {
48
47
  this.$options[key] = (0, import_deepmerge.default)(this.$options[key], value);
49
48
  } else {
@@ -178,3 +177,4 @@ __publicField(AccordionItem, "config", {
178
177
  }
179
178
  });
180
179
  if (module.exports.default) module.exports = module.exports.default;
180
+ //# sourceMappingURL=AccordionItem.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/AccordionItem.ts"],
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<\n T & AccordionItemProps\n> {\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
+ "mappings": "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",
6
+ "names": ["Accordion", "deepmerge"]
7
+ }
@@ -1,20 +1,32 @@
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 deepmerge from "deepmerge";
8
2
  import { Base } from "@studiometa/js-toolkit";
9
3
  import { transition } from "@studiometa/js-toolkit/utils";
10
4
  import { AccordionCore as Accordion } from "./AccordionCore.js";
11
- const _AccordionItem = class extends Base {
5
+ class AccordionItem extends Base {
6
+ static config = {
7
+ name: "AccordionItem",
8
+ refs: ["btn", "content", "container"],
9
+ emits: ["open", "close"],
10
+ options: {
11
+ isOpen: Boolean,
12
+ styles: {
13
+ type: Object,
14
+ default: () => ({
15
+ container: {
16
+ open: "",
17
+ active: "",
18
+ closed: ""
19
+ }
20
+ }),
21
+ merge: true
22
+ }
23
+ }
24
+ };
12
25
  mounted() {
13
26
  if (this.$parent && this.$parent instanceof Accordion && this.$parent.$options.item) {
14
27
  Object.entries(this.$parent.$options.item).forEach(([key, value]) => {
15
- var _a;
16
28
  if (key in this.$options) {
17
- const type = (_a = _AccordionItem.config.options[key].type) != null ? _a : _AccordionItem.config.options[key];
29
+ const type = AccordionItem.config.options[key].type ?? AccordionItem.config.options[key];
18
30
  if (type === Array || type === Object) {
19
31
  this.$options[key] = deepmerge(this.$options[key], value);
20
32
  } else {
@@ -127,27 +139,8 @@ const _AccordionItem = class extends Base {
127
139
  )
128
140
  ]);
129
141
  }
130
- };
131
- let AccordionItem = _AccordionItem;
132
- __publicField(AccordionItem, "config", {
133
- name: "AccordionItem",
134
- refs: ["btn", "content", "container"],
135
- emits: ["open", "close"],
136
- options: {
137
- isOpen: Boolean,
138
- styles: {
139
- type: Object,
140
- default: () => ({
141
- container: {
142
- open: "",
143
- active: "",
144
- closed: ""
145
- }
146
- }),
147
- merge: true
148
- }
149
- }
150
- });
142
+ }
151
143
  export {
152
144
  AccordionItem
153
145
  };
146
+ //# sourceMappingURL=AccordionItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/AccordionItem.ts"],
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<\n T & AccordionItemProps\n> {\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
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -19,3 +19,4 @@ module.exports = __toCommonJS(Accordion_exports);
19
19
  __reExport(Accordion_exports, require("./Accordion.cjs"), module.exports);
20
20
  __reExport(Accordion_exports, require("./AccordionItem.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/Accordion/index.ts"],
4
+ "sourcesContent": ["export * from './Accordion.js';\nexport * from './AccordionItem.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,8BAAc,4BAAd;AACA,8BAAc,gCADd;",
6
+ "names": []
7
+ }
@@ -1,2 +1,3 @@
1
1
  export * from "./Accordion.js";
2
2
  export * from "./AccordionItem.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Accordion/index.ts"],
4
+ "sourcesContent": ["export * from './Accordion.js';\nexport * from './AccordionItem.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -133,3 +133,4 @@ __publicField(Menu, "config", {
133
133
  }
134
134
  });
135
135
  if (module.exports.default) module.exports = module.exports.default;
136
+ //# sourceMappingURL=Menu.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/Menu.ts"],
4
+ "sourcesContent": ["import { Base, isDirectChild, getDirectChildren } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps, KeyServiceProps } from '@studiometa/js-toolkit';\nimport { nextTick } from '@studiometa/js-toolkit/utils';\nimport { MenuBtn } from './MenuBtn.js';\nimport { MenuList } from './MenuList.js';\n\nexport interface MenuProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n Menu: Menu[];\n MenutBtn: MenuBtn[];\n MenuList: MenuList[];\n };\n $options: {\n mode: 'click' | 'hover';\n };\n}\n\n/**\n * Menu class.\n */\nexport class Menu<T extends BaseProps = BaseProps> extends Base<T & MenuProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Menu',\n components: {\n MenuBtn,\n MenuList,\n Menu,\n },\n options: {\n mode: {\n type: String,\n default: 'click', // or 'hover'\n },\n },\n };\n\n /**\n * Get the first `MenuList` instance.\n */\n get menuList(): MenuList {\n return getDirectChildren<MenuList>(this, 'Menu', 'MenuList')[0];\n }\n\n /**\n * Get the first `MenuBtn` instance.\n */\n get menuBtn(): MenuBtn {\n return getDirectChildren<MenuBtn>(this, 'Menu', 'MenuBtn')[0];\n }\n\n /**\n * Test which mode to use.\n */\n get shouldReactOnClick(): boolean {\n return this.$options.mode === 'click';\n }\n\n /**\n * Wether the button or the items are hovered.\n */\n get isHover(): boolean {\n return this.menuBtn.isHover || this.menuList.isHover;\n }\n\n /**\n * Set attributes on mounted, destroy the component if it is missing required\n * child components.\n */\n mounted() {\n if (!this.menuBtn || !this.menuList) {\n this.$destroy();\n return;\n }\n\n this.menuBtn.$el.setAttribute('aria-controls', this.$id);\n this.menuList.$el.setAttribute('id', this.$id);\n this.menuList.close();\n }\n\n /**\n * Keyboard management.\n */\n keyed({ ENTER, ESC, isUp }: KeyServiceProps) {\n if (!isUp) {\n return;\n }\n\n if (ESC) {\n this.close();\n return;\n }\n\n if (!this.shouldReactOnClick) {\n const hasFocusElementWithin = document.activeElement === this.menuBtn.$el;\n\n if (ENTER && hasFocusElementWithin) {\n this.toggle();\n }\n }\n }\n\n /**\n * Toggle menu items on button click.\n */\n onMenuBtnClick(index: number, event: MouseEvent) {\n if (\n isDirectChild(this, 'Menu', 'MenuBtn', this.$children.MenuBtn[index]) &&\n this.shouldReactOnClick\n ) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n /**\n * Open menu items on button mouse enter.\n */\n onMenuBtnMouseenter(index: number) {\n if (this.$children.MenuBtn[index] === this.menuBtn && !this.shouldReactOnClick) {\n this.open();\n }\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuBtnMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuListMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close other non-parent menu items on menu items open.\n */\n onMenuListItemsOpen(index: number) {\n const targetMenu = this.$children.MenuList[index];\n this.$children.MenuList.forEach((menuItem) => {\n if (!menuItem.$el.contains(targetMenu.$el)) {\n menuItem.close();\n }\n });\n }\n\n /**\n * Close the menu.\n */\n close() {\n this.menuList.close();\n }\n\n /**\n * Open the menu.\n */\n open() {\n this.menuList.open();\n }\n\n /**\n * Toggle the menu.\n */\n toggle() {\n this.menuList.toggle();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuD;AAEvD,mBAAyB;AACzB,qBAAwB;AACxB,sBAAyB;AAiBlB,IAAM,QAAN,cAAoD,uBAAoB;AAAA,EAsB7E,IAAI,WAAqB;AACvB,eAAO,qCAA4B,MAAM,QAAQ,UAAU,EAAE;AAAA,EAC/D;AAAA,EAKA,IAAI,UAAmB;AACrB,eAAO,qCAA2B,MAAM,QAAQ,SAAS,EAAE;AAAA,EAC7D;AAAA,EAKA,IAAI,qBAA8B;AAChC,WAAO,KAAK,SAAS,SAAS;AAAA,EAChC;AAAA,EAKA,IAAI,UAAmB;AACrB,WAAO,KAAK,QAAQ,WAAW,KAAK,SAAS;AAAA,EAC/C;AAAA,EAMA,UAAU;AACR,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,UAAU;AACnC,WAAK,SAAS;AACd;AAAA,IACF;AAEA,SAAK,QAAQ,IAAI,aAAa,iBAAiB,KAAK,GAAG;AACvD,SAAK,SAAS,IAAI,aAAa,MAAM,KAAK,GAAG;AAC7C,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAKA,MAAM,EAAE,OAAO,KAAK,KAAK,GAAoB;AAC3C,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AAEA,QAAI,KAAK;AACP,WAAK,MAAM;AACX;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,oBAAoB;AAC5B,YAAM,wBAAwB,SAAS,kBAAkB,KAAK,QAAQ;AAEtE,UAAI,SAAS,uBAAuB;AAClC,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EAKA,eAAe,OAAe,OAAmB;AAC/C,YACE,iCAAc,MAAM,QAAQ,WAAW,KAAK,UAAU,QAAQ,MAAM,KACpE,KAAK,oBACL;AACA,YAAM,eAAe;AACrB,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAAA,EAKA,oBAAoB,OAAe;AACjC,QAAI,KAAK,UAAU,QAAQ,WAAW,KAAK,WAAW,CAAC,KAAK,oBAAoB;AAC9E,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAKA,sBAAsB;AACpB,QAAI,KAAK,oBAAoB;AAC3B;AAAA,IACF;AAEA,+BAAS,MAAM;AACb,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,uBAAuB;AACrB,QAAI,KAAK,oBAAoB;AAC3B;AAAA,IACF;AAEA,+BAAS,MAAM;AACb,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,oBAAoB,OAAe;AACjC,UAAM,aAAa,KAAK,UAAU,SAAS;AAC3C,SAAK,UAAU,SAAS,QAAQ,CAAC,aAAa;AAC5C,UAAI,CAAC,SAAS,IAAI,SAAS,WAAW,GAAG,GAAG;AAC1C,iBAAS,MAAM;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,QAAQ;AACN,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAKA,OAAO;AACL,SAAK,SAAS,KAAK;AAAA,EACrB;AAAA,EAKA,SAAS;AACP,SAAK,SAAS,OAAO;AAAA,EACvB;AACF;AAxKO,IAAM,OAAN;AAIL,cAJW,MAIJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,14 +1,22 @@
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, isDirectChild, getDirectChildren } from "@studiometa/js-toolkit";
8
2
  import { nextTick } from "@studiometa/js-toolkit/utils";
9
3
  import { MenuBtn } from "./MenuBtn.js";
10
4
  import { MenuList } from "./MenuList.js";
11
- const _Menu = class extends Base {
5
+ class Menu extends Base {
6
+ static config = {
7
+ name: "Menu",
8
+ components: {
9
+ MenuBtn,
10
+ MenuList,
11
+ Menu
12
+ },
13
+ options: {
14
+ mode: {
15
+ type: String,
16
+ default: "click"
17
+ }
18
+ }
19
+ };
12
20
  get menuList() {
13
21
  return getDirectChildren(this, "Menu", "MenuList")[0];
14
22
  }
@@ -93,22 +101,8 @@ const _Menu = class extends Base {
93
101
  toggle() {
94
102
  this.menuList.toggle();
95
103
  }
96
- };
97
- let Menu = _Menu;
98
- __publicField(Menu, "config", {
99
- name: "Menu",
100
- components: {
101
- MenuBtn,
102
- MenuList,
103
- Menu: _Menu
104
- },
105
- options: {
106
- mode: {
107
- type: String,
108
- default: "click"
109
- }
110
- }
111
- });
104
+ }
112
105
  export {
113
106
  Menu
114
107
  };
108
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/Menu.ts"],
4
+ "sourcesContent": ["import { Base, isDirectChild, getDirectChildren } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps, KeyServiceProps } from '@studiometa/js-toolkit';\nimport { nextTick } from '@studiometa/js-toolkit/utils';\nimport { MenuBtn } from './MenuBtn.js';\nimport { MenuList } from './MenuList.js';\n\nexport interface MenuProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n Menu: Menu[];\n MenutBtn: MenuBtn[];\n MenuList: MenuList[];\n };\n $options: {\n mode: 'click' | 'hover';\n };\n}\n\n/**\n * Menu class.\n */\nexport class Menu<T extends BaseProps = BaseProps> extends Base<T & MenuProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Menu',\n components: {\n MenuBtn,\n MenuList,\n Menu,\n },\n options: {\n mode: {\n type: String,\n default: 'click', // or 'hover'\n },\n },\n };\n\n /**\n * Get the first `MenuList` instance.\n */\n get menuList(): MenuList {\n return getDirectChildren<MenuList>(this, 'Menu', 'MenuList')[0];\n }\n\n /**\n * Get the first `MenuBtn` instance.\n */\n get menuBtn(): MenuBtn {\n return getDirectChildren<MenuBtn>(this, 'Menu', 'MenuBtn')[0];\n }\n\n /**\n * Test which mode to use.\n */\n get shouldReactOnClick(): boolean {\n return this.$options.mode === 'click';\n }\n\n /**\n * Wether the button or the items are hovered.\n */\n get isHover(): boolean {\n return this.menuBtn.isHover || this.menuList.isHover;\n }\n\n /**\n * Set attributes on mounted, destroy the component if it is missing required\n * child components.\n */\n mounted() {\n if (!this.menuBtn || !this.menuList) {\n this.$destroy();\n return;\n }\n\n this.menuBtn.$el.setAttribute('aria-controls', this.$id);\n this.menuList.$el.setAttribute('id', this.$id);\n this.menuList.close();\n }\n\n /**\n * Keyboard management.\n */\n keyed({ ENTER, ESC, isUp }: KeyServiceProps) {\n if (!isUp) {\n return;\n }\n\n if (ESC) {\n this.close();\n return;\n }\n\n if (!this.shouldReactOnClick) {\n const hasFocusElementWithin = document.activeElement === this.menuBtn.$el;\n\n if (ENTER && hasFocusElementWithin) {\n this.toggle();\n }\n }\n }\n\n /**\n * Toggle menu items on button click.\n */\n onMenuBtnClick(index: number, event: MouseEvent) {\n if (\n isDirectChild(this, 'Menu', 'MenuBtn', this.$children.MenuBtn[index]) &&\n this.shouldReactOnClick\n ) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n /**\n * Open menu items on button mouse enter.\n */\n onMenuBtnMouseenter(index: number) {\n if (this.$children.MenuBtn[index] === this.menuBtn && !this.shouldReactOnClick) {\n this.open();\n }\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuBtnMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuListMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close other non-parent menu items on menu items open.\n */\n onMenuListItemsOpen(index: number) {\n const targetMenu = this.$children.MenuList[index];\n this.$children.MenuList.forEach((menuItem) => {\n if (!menuItem.$el.contains(targetMenu.$el)) {\n menuItem.close();\n }\n });\n }\n\n /**\n * Close the menu.\n */\n close() {\n this.menuList.close();\n }\n\n /**\n * Open the menu.\n */\n open() {\n this.menuList.open();\n }\n\n /**\n * Toggle the menu.\n */\n toggle() {\n this.menuList.toggle();\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,MAAM,eAAe,yBAAyB;AAEvD,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAiBlB,MAAM,aAA8C,KAAoB;AAAA,EAI7E,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAKA,IAAI,WAAqB;AACvB,WAAO,kBAA4B,MAAM,QAAQ,UAAU,EAAE;AAAA,EAC/D;AAAA,EAKA,IAAI,UAAmB;AACrB,WAAO,kBAA2B,MAAM,QAAQ,SAAS,EAAE;AAAA,EAC7D;AAAA,EAKA,IAAI,qBAA8B;AAChC,WAAO,KAAK,SAAS,SAAS;AAAA,EAChC;AAAA,EAKA,IAAI,UAAmB;AACrB,WAAO,KAAK,QAAQ,WAAW,KAAK,SAAS;AAAA,EAC/C;AAAA,EAMA,UAAU;AACR,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,UAAU;AACnC,WAAK,SAAS;AACd;AAAA,IACF;AAEA,SAAK,QAAQ,IAAI,aAAa,iBAAiB,KAAK,GAAG;AACvD,SAAK,SAAS,IAAI,aAAa,MAAM,KAAK,GAAG;AAC7C,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAKA,MAAM,EAAE,OAAO,KAAK,KAAK,GAAoB;AAC3C,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AAEA,QAAI,KAAK;AACP,WAAK,MAAM;AACX;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,oBAAoB;AAC5B,YAAM,wBAAwB,SAAS,kBAAkB,KAAK,QAAQ;AAEtE,UAAI,SAAS,uBAAuB;AAClC,aAAK,OAAO;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EAKA,eAAe,OAAe,OAAmB;AAC/C,QACE,cAAc,MAAM,QAAQ,WAAW,KAAK,UAAU,QAAQ,MAAM,KACpE,KAAK,oBACL;AACA,YAAM,eAAe;AACrB,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAAA,EAKA,oBAAoB,OAAe;AACjC,QAAI,KAAK,UAAU,QAAQ,WAAW,KAAK,WAAW,CAAC,KAAK,oBAAoB;AAC9E,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAKA,sBAAsB;AACpB,QAAI,KAAK,oBAAoB;AAC3B;AAAA,IACF;AAEA,aAAS,MAAM;AACb,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,uBAAuB;AACrB,QAAI,KAAK,oBAAoB;AAC3B;AAAA,IACF;AAEA,aAAS,MAAM;AACb,UAAI,CAAC,KAAK,SAAS;AACjB,aAAK,MAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,oBAAoB,OAAe;AACjC,UAAM,aAAa,KAAK,UAAU,SAAS;AAC3C,SAAK,UAAU,SAAS,QAAQ,CAAC,aAAa;AAC5C,UAAI,CAAC,SAAS,IAAI,SAAS,WAAW,GAAG,GAAG;AAC1C,iBAAS,MAAM;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAKA,QAAQ;AACN,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAKA,OAAO;AACL,SAAK,SAAS,KAAK;AAAA,EACrB;AAAA,EAKA,SAAS;AACP,SAAK,SAAS,OAAO;AAAA,EACvB;AACF;",
6
+ "names": []
7
+ }
@@ -29,10 +29,7 @@ __export(MenuBtn_exports, {
29
29
  module.exports = __toCommonJS(MenuBtn_exports);
30
30
  var import_js_toolkit = require("@studiometa/js-toolkit");
31
31
  var MenuBtn = class extends import_js_toolkit.Base {
32
- constructor() {
33
- super(...arguments);
34
- __publicField(this, "isHover", false);
35
- }
32
+ isHover = false;
36
33
  onClick(event) {
37
34
  event.stopPropagation();
38
35
  }
@@ -49,3 +46,4 @@ __publicField(MenuBtn, "config", {
49
46
  name: "MenuBtn"
50
47
  });
51
48
  if (module.exports.default) module.exports = module.exports.default;
49
+ //# sourceMappingURL=MenuBtn.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/MenuBtn.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\n/**\n * MenuBtn class.\n */\nexport class MenuBtn<T extends BaseProps = BaseProps> extends Base<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'MenuBtn',\n };\n\n /**\n * Wether the button is hovered or not.\n * @type {boolean}\n */\n isHover = false;\n\n /**\n * Dispatch the click event.\n *\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick(event) {\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseenter event.\n *\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseenter(event) {\n this.isHover = true;\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseleave event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseleave(event) {\n this.isHover = false;\n event.stopPropagation();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAMd,IAAM,UAAN,cAAuD,uBAAQ;AAAA,EAYpE,UAAU;AAAA,EAQV,QAAQ,OAAO;AACb,UAAM,gBAAgB;AAAA,EACxB;AAAA,EAQA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AAAA,EAOA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AACF;AAxCE,cAJW,SAIJ,UAAqB;AAAA,EAC1B,MAAM;AACR;",
6
+ "names": []
7
+ }
@@ -1,15 +1,9 @@
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
2
  class MenuBtn extends Base {
9
- constructor() {
10
- super(...arguments);
11
- __publicField(this, "isHover", false);
12
- }
3
+ static config = {
4
+ name: "MenuBtn"
5
+ };
6
+ isHover = false;
13
7
  onClick(event) {
14
8
  event.stopPropagation();
15
9
  }
@@ -22,9 +16,7 @@ class MenuBtn extends Base {
22
16
  event.stopPropagation();
23
17
  }
24
18
  }
25
- __publicField(MenuBtn, "config", {
26
- name: "MenuBtn"
27
- });
28
19
  export {
29
20
  MenuBtn
30
21
  };
22
+ //# sourceMappingURL=MenuBtn.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Menu/MenuBtn.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\n/**\n * MenuBtn class.\n */\nexport class MenuBtn<T extends BaseProps = BaseProps> extends Base<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'MenuBtn',\n };\n\n /**\n * Wether the button is hovered or not.\n * @type {boolean}\n */\n isHover = false;\n\n /**\n * Dispatch the click event.\n *\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick(event) {\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseenter event.\n *\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseenter(event) {\n this.isHover = true;\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseleave event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseleave(event) {\n this.isHover = false;\n event.stopPropagation();\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAMd,MAAM,gBAAiD,KAAQ;AAAA,EAIpE,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAMA,UAAU;AAAA,EAQV,QAAQ,OAAO;AACb,UAAM,gBAAgB;AAAA,EACxB;AAAA,EAQA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AAAA,EAOA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AACF;",
6
+ "names": []
7
+ }
@@ -42,11 +42,8 @@ var FOCUSABLE_ELEMENTS = [
42
42
  "[tabindex]:not([inert])"
43
43
  ].join(",");
44
44
  var _MenuList = class extends import_primitives.Transition {
45
- constructor() {
46
- super(...arguments);
47
- __publicField(this, "isOpen", false);
48
- __publicField(this, "isHover", false);
49
- }
45
+ isOpen = false;
46
+ isHover = false;
50
47
  get $options() {
51
48
  const options = super.$options;
52
49
  options.leaveKeep = true;
@@ -132,3 +129,4 @@ __publicField(MenuList, "config", {
132
129
  }
133
130
  });
134
131
  if (module.exports.default) module.exports = module.exports.default;
132
+ //# sourceMappingURL=MenuList.cjs.map