@studiometa/ui 0.2.14 → 0.2.16

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 +14 -16
  176. package/molecules/Slider/Slider.cjs.map +7 -0
  177. package/molecules/Slider/Slider.js +30 -38
  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
@@ -32,13 +32,10 @@ var import_utils = require("@studiometa/js-toolkit/utils");
32
32
  var SliderItem = class extends (0, import_js_toolkit.withIntersectionObserver)(import_js_toolkit.Base, {
33
33
  threshold: [0, 1]
34
34
  }) {
35
- constructor() {
36
- super(...arguments);
37
- __publicField(this, "isVisible", false);
38
- __publicField(this, "x", 0);
39
- __publicField(this, "dampedX", 0);
40
- __publicField(this, "rect");
41
- }
35
+ isVisible = false;
36
+ x = 0;
37
+ dampedX = 0;
38
+ rect;
42
39
  mounted() {
43
40
  this.updateRectAdjustedWithX();
44
41
  }
@@ -112,3 +109,4 @@ __publicField(SliderItem, "config", {
112
109
  emits: ["is-fully-visible", "is-partially-visible", "is-hidden"]
113
110
  });
114
111
  if (module.exports.default) module.exports = module.exports.default;
112
+ //# sourceMappingURL=SliderItem.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/SliderItem.ts"],
4
+ "sourcesContent": ["import { Base, withIntersectionObserver } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { damp, domScheduler, transform } from '@studiometa/js-toolkit/utils';\n\n/**\n * Manage a slider item and its state transition.\n */\nexport class SliderItem<T extends BaseProps = BaseProps> extends withIntersectionObserver(Base, {\n threshold: [0, 1],\n})<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'SliderItem',\n emits: ['is-fully-visible', 'is-partially-visible', 'is-hidden'],\n };\n\n /**\n * Wether the SliderItem is visible or not.\n * @type {boolean}\n */\n isVisible = false;\n\n /**\n * The SliderItem `x` position.\n * @type {number}\n */\n x = 0;\n\n /**\n * The smoothed `x` position.\n * @type {number}\n */\n dampedX = 0;\n\n /**\n * Item original position.\n */\n rect:{\n x: number;\n y: number;\n top: number;\n right: number;\n bottom: number;\n left: number;\n width: number;\n height: number;\n };\n\n /**\n * Set SliderItem bounding rectangle on mount.\n */\n mounted() {\n this.updateRectAdjustedWithX();\n }\n\n /**\n * Update SliderItem bounding rectangle on resize.\n */\n resized() {\n this.updateRectAdjustedWithX();\n }\n\n /**\n * Reset position to `0` on destroy.\n */\n destroyed() {\n this.moveInstantly(0);\n }\n\n /**\n * Intersected hook.\n */\n intersected([{ intersectionRatio, isIntersecting }]:IntersectionObserverEntry[]) {\n if (intersectionRatio >= 1) {\n this.$emit('is-fully-visible');\n this.$el.setAttribute('aria-hidden', 'false');\n } else if (intersectionRatio > 0) {\n this.$emit('is-partially-visible');\n this.$el.setAttribute('aria-hidden', 'true');\n } else {\n this.$emit('is-hidden');\n this.$el.setAttribute('aria-hidden', 'true');\n }\n\n this.isVisible = isIntersecting;\n }\n\n /**\n * Ticked hook.\n *\n * @todo create AbstractSliderItem with `render` method\n * @todo add state to SliderItem\n * @todo add origin to SliderItem\n * @returns {void}\n */\n ticked() {\n this.dampedX = damp(this.x, this.dampedX, 0.1, 0.00001);\n this.render();\n\n if (this.dampedX === this.x) {\n this.$services.disable('ticked');\n }\n }\n\n /**\n * Enable the SliderItem.\n */\n activate() {\n this.$el.classList.add('is-active');\n }\n\n /**\n * Disable the SliderItem.\n */\n disactivate() {\n this.$el.classList.remove('is-active');\n }\n\n /**\n * Move the SliderItem to the given target position.\n */\n move(targetPosition:number) {\n this.x = targetPosition;\n\n if (!this.$services.has('ticked')) {\n this.$services.enable('ticked');\n }\n }\n\n /**\n * Move the SliderItem instantly to the given target position.\n */\n moveInstantly(targetPosition:number) {\n this.x = targetPosition;\n this.dampedX = targetPosition;\n this.render();\n }\n\n /**\n * Render the component.\n */\n render() {\n domScheduler.write(() => {\n transform(this.$el, { x: this.dampedX });\n });\n }\n\n /**\n * Check if SliderItem is partially visible for the given target position.\n */\n willBeVisible(targetPosition:number) {\n return (\n this.rect.x + targetPosition < window.innerWidth * 1.5 &&\n this.rect.x + targetPosition + this.rect.width > window.innerWidth * -0.5\n );\n }\n\n /**\n * Check if SliderItem is fully visible for the given target position.\n *\n * @param {number} targetPosition\n * @returns {boolean}\n */\n willBeFullyVisible(targetPosition) {\n return (\n this.rect.x + targetPosition < window.innerWidth &&\n this.rect.x + targetPosition > 0 &&\n this.rect.x + targetPosition + this.rect.width < window.innerWidth &&\n this.rect.x + targetPosition + this.rect.width > 0\n );\n }\n\n /**\n * Update the bounding rectangle values without the current transformation.\n *\n * @returns {void}\n */\n updateRectAdjustedWithX() {\n const x = this.x * -1;\n const rect:this['rect'] = this.$el.getBoundingClientRect().toJSON();\n\n this.rect = {\n ...rect,\n left: rect.left + x,\n right: rect.left + x + rect.width,\n x: rect.left + x,\n };\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA+C;AAE/C,mBAA8C;AAKvC,IAAM,aAAN,kBAA0D,4CAAyB,wBAAM;AAAA,EAC9F,WAAW,CAAC,GAAG,CAAC;AAClB,CAAC,EAAK;AAAA,EAaJ,YAAY;AAAA,EAMZ,IAAI;AAAA,EAMJ,UAAU;AAAA,EAKV;AAAA,EAcA,UAAU;AACR,SAAK,wBAAwB;AAAA,EAC/B;AAAA,EAKA,UAAU;AACR,SAAK,wBAAwB;AAAA,EAC/B;AAAA,EAKA,YAAY;AACV,SAAK,cAAc,CAAC;AAAA,EACtB;AAAA,EAKA,YAAY,CAAC,EAAE,mBAAmB,eAAe,CAAC,GAA+B;AAC/E,QAAI,qBAAqB,GAAG;AAC1B,WAAK,MAAM,kBAAkB;AAC7B,WAAK,IAAI,aAAa,eAAe,OAAO;AAAA,IAC9C,WAAW,oBAAoB,GAAG;AAChC,WAAK,MAAM,sBAAsB;AACjC,WAAK,IAAI,aAAa,eAAe,MAAM;AAAA,IAC7C,OAAO;AACL,WAAK,MAAM,WAAW;AACtB,WAAK,IAAI,aAAa,eAAe,MAAM;AAAA,IAC7C;AAEA,SAAK,YAAY;AAAA,EACnB;AAAA,EAUA,SAAS;AACP,SAAK,cAAU,mBAAK,KAAK,GAAG,KAAK,SAAS,KAAK,IAAO;AACtD,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,KAAK,GAAG;AAC3B,WAAK,UAAU,QAAQ,QAAQ;AAAA,IACjC;AAAA,EACF;AAAA,EAKA,WAAW;AACT,SAAK,IAAI,UAAU,IAAI,WAAW;AAAA,EACpC;AAAA,EAKA,cAAc;AACZ,SAAK,IAAI,UAAU,OAAO,WAAW;AAAA,EACvC;AAAA,EAKA,KAAK,gBAAuB;AAC1B,SAAK,IAAI;AAET,QAAI,CAAC,KAAK,UAAU,IAAI,QAAQ,GAAG;AACjC,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAKA,cAAc,gBAAuB;AACnC,SAAK,IAAI;AACT,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAKA,SAAS;AACP,8BAAa,MAAM,MAAM;AACvB,kCAAU,KAAK,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;AAAA,IACzC,CAAC;AAAA,EACH;AAAA,EAKA,cAAc,gBAAuB;AACnC,WACE,KAAK,KAAK,IAAI,iBAAiB,OAAO,aAAa,OACnD,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ,OAAO,aAAa;AAAA,EAEzE;AAAA,EAQA,mBAAmB,gBAAgB;AACjC,WACE,KAAK,KAAK,IAAI,iBAAiB,OAAO,cACtC,KAAK,KAAK,IAAI,iBAAiB,KAC/B,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ,OAAO,cACxD,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ;AAAA,EAErD;AAAA,EAOA,0BAA0B;AACxB,UAAM,IAAI,KAAK,IAAI;AACnB,UAAM,OAAoB,KAAK,IAAI,sBAAsB,EAAE,OAAO;AAElE,SAAK,OAAO;AAAA,MACV,GAAG;AAAA,MACH,MAAM,KAAK,OAAO;AAAA,MAClB,OAAO,KAAK,OAAO,IAAI,KAAK;AAAA,MAC5B,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EACF;AACF;AAjLE,cANW,YAMJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,OAAO,CAAC,oBAAoB,wBAAwB,WAAW;AACjE;",
6
+ "names": []
7
+ }
@@ -1,21 +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, withIntersectionObserver } from "@studiometa/js-toolkit";
8
2
  import { damp, domScheduler, transform } from "@studiometa/js-toolkit/utils";
9
3
  class SliderItem extends withIntersectionObserver(Base, {
10
4
  threshold: [0, 1]
11
5
  }) {
12
- constructor() {
13
- super(...arguments);
14
- __publicField(this, "isVisible", false);
15
- __publicField(this, "x", 0);
16
- __publicField(this, "dampedX", 0);
17
- __publicField(this, "rect");
18
- }
6
+ static config = {
7
+ name: "SliderItem",
8
+ emits: ["is-fully-visible", "is-partially-visible", "is-hidden"]
9
+ };
10
+ isVisible = false;
11
+ x = 0;
12
+ dampedX = 0;
13
+ rect;
19
14
  mounted() {
20
15
  this.updateRectAdjustedWithX();
21
16
  }
@@ -84,10 +79,7 @@ class SliderItem extends withIntersectionObserver(Base, {
84
79
  };
85
80
  }
86
81
  }
87
- __publicField(SliderItem, "config", {
88
- name: "SliderItem",
89
- emits: ["is-fully-visible", "is-partially-visible", "is-hidden"]
90
- });
91
82
  export {
92
83
  SliderItem
93
84
  };
85
+ //# sourceMappingURL=SliderItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/SliderItem.ts"],
4
+ "sourcesContent": ["import { Base, withIntersectionObserver } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { damp, domScheduler, transform } from '@studiometa/js-toolkit/utils';\n\n/**\n * Manage a slider item and its state transition.\n */\nexport class SliderItem<T extends BaseProps = BaseProps> extends withIntersectionObserver(Base, {\n threshold: [0, 1],\n})<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'SliderItem',\n emits: ['is-fully-visible', 'is-partially-visible', 'is-hidden'],\n };\n\n /**\n * Wether the SliderItem is visible or not.\n * @type {boolean}\n */\n isVisible = false;\n\n /**\n * The SliderItem `x` position.\n * @type {number}\n */\n x = 0;\n\n /**\n * The smoothed `x` position.\n * @type {number}\n */\n dampedX = 0;\n\n /**\n * Item original position.\n */\n rect:{\n x: number;\n y: number;\n top: number;\n right: number;\n bottom: number;\n left: number;\n width: number;\n height: number;\n };\n\n /**\n * Set SliderItem bounding rectangle on mount.\n */\n mounted() {\n this.updateRectAdjustedWithX();\n }\n\n /**\n * Update SliderItem bounding rectangle on resize.\n */\n resized() {\n this.updateRectAdjustedWithX();\n }\n\n /**\n * Reset position to `0` on destroy.\n */\n destroyed() {\n this.moveInstantly(0);\n }\n\n /**\n * Intersected hook.\n */\n intersected([{ intersectionRatio, isIntersecting }]:IntersectionObserverEntry[]) {\n if (intersectionRatio >= 1) {\n this.$emit('is-fully-visible');\n this.$el.setAttribute('aria-hidden', 'false');\n } else if (intersectionRatio > 0) {\n this.$emit('is-partially-visible');\n this.$el.setAttribute('aria-hidden', 'true');\n } else {\n this.$emit('is-hidden');\n this.$el.setAttribute('aria-hidden', 'true');\n }\n\n this.isVisible = isIntersecting;\n }\n\n /**\n * Ticked hook.\n *\n * @todo create AbstractSliderItem with `render` method\n * @todo add state to SliderItem\n * @todo add origin to SliderItem\n * @returns {void}\n */\n ticked() {\n this.dampedX = damp(this.x, this.dampedX, 0.1, 0.00001);\n this.render();\n\n if (this.dampedX === this.x) {\n this.$services.disable('ticked');\n }\n }\n\n /**\n * Enable the SliderItem.\n */\n activate() {\n this.$el.classList.add('is-active');\n }\n\n /**\n * Disable the SliderItem.\n */\n disactivate() {\n this.$el.classList.remove('is-active');\n }\n\n /**\n * Move the SliderItem to the given target position.\n */\n move(targetPosition:number) {\n this.x = targetPosition;\n\n if (!this.$services.has('ticked')) {\n this.$services.enable('ticked');\n }\n }\n\n /**\n * Move the SliderItem instantly to the given target position.\n */\n moveInstantly(targetPosition:number) {\n this.x = targetPosition;\n this.dampedX = targetPosition;\n this.render();\n }\n\n /**\n * Render the component.\n */\n render() {\n domScheduler.write(() => {\n transform(this.$el, { x: this.dampedX });\n });\n }\n\n /**\n * Check if SliderItem is partially visible for the given target position.\n */\n willBeVisible(targetPosition:number) {\n return (\n this.rect.x + targetPosition < window.innerWidth * 1.5 &&\n this.rect.x + targetPosition + this.rect.width > window.innerWidth * -0.5\n );\n }\n\n /**\n * Check if SliderItem is fully visible for the given target position.\n *\n * @param {number} targetPosition\n * @returns {boolean}\n */\n willBeFullyVisible(targetPosition) {\n return (\n this.rect.x + targetPosition < window.innerWidth &&\n this.rect.x + targetPosition > 0 &&\n this.rect.x + targetPosition + this.rect.width < window.innerWidth &&\n this.rect.x + targetPosition + this.rect.width > 0\n );\n }\n\n /**\n * Update the bounding rectangle values without the current transformation.\n *\n * @returns {void}\n */\n updateRectAdjustedWithX() {\n const x = this.x * -1;\n const rect:this['rect'] = this.$el.getBoundingClientRect().toJSON();\n\n this.rect = {\n ...rect,\n left: rect.left + x,\n right: rect.left + x + rect.width,\n x: rect.left + x,\n };\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,MAAM,gCAAgC;AAE/C,SAAS,MAAM,cAAc,iBAAiB;AAKvC,MAAM,mBAAoD,yBAAyB,MAAM;AAAA,EAC9F,WAAW,CAAC,GAAG,CAAC;AAClB,CAAC,EAAK;AAAA,EAIJ,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,oBAAoB,wBAAwB,WAAW;AAAA,EACjE;AAAA,EAMA,YAAY;AAAA,EAMZ,IAAI;AAAA,EAMJ,UAAU;AAAA,EAKV;AAAA,EAcA,UAAU;AACR,SAAK,wBAAwB;AAAA,EAC/B;AAAA,EAKA,UAAU;AACR,SAAK,wBAAwB;AAAA,EAC/B;AAAA,EAKA,YAAY;AACV,SAAK,cAAc,CAAC;AAAA,EACtB;AAAA,EAKA,YAAY,CAAC,EAAE,mBAAmB,eAAe,CAAC,GAA+B;AAC/E,QAAI,qBAAqB,GAAG;AAC1B,WAAK,MAAM,kBAAkB;AAC7B,WAAK,IAAI,aAAa,eAAe,OAAO;AAAA,IAC9C,WAAW,oBAAoB,GAAG;AAChC,WAAK,MAAM,sBAAsB;AACjC,WAAK,IAAI,aAAa,eAAe,MAAM;AAAA,IAC7C,OAAO;AACL,WAAK,MAAM,WAAW;AACtB,WAAK,IAAI,aAAa,eAAe,MAAM;AAAA,IAC7C;AAEA,SAAK,YAAY;AAAA,EACnB;AAAA,EAUA,SAAS;AACP,SAAK,UAAU,KAAK,KAAK,GAAG,KAAK,SAAS,KAAK,IAAO;AACtD,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,KAAK,GAAG;AAC3B,WAAK,UAAU,QAAQ,QAAQ;AAAA,IACjC;AAAA,EACF;AAAA,EAKA,WAAW;AACT,SAAK,IAAI,UAAU,IAAI,WAAW;AAAA,EACpC;AAAA,EAKA,cAAc;AACZ,SAAK,IAAI,UAAU,OAAO,WAAW;AAAA,EACvC;AAAA,EAKA,KAAK,gBAAuB;AAC1B,SAAK,IAAI;AAET,QAAI,CAAC,KAAK,UAAU,IAAI,QAAQ,GAAG;AACjC,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAKA,cAAc,gBAAuB;AACnC,SAAK,IAAI;AACT,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAKA,SAAS;AACP,iBAAa,MAAM,MAAM;AACvB,gBAAU,KAAK,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC;AAAA,IACzC,CAAC;AAAA,EACH;AAAA,EAKA,cAAc,gBAAuB;AACnC,WACE,KAAK,KAAK,IAAI,iBAAiB,OAAO,aAAa,OACnD,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ,OAAO,aAAa;AAAA,EAEzE;AAAA,EAQA,mBAAmB,gBAAgB;AACjC,WACE,KAAK,KAAK,IAAI,iBAAiB,OAAO,cACtC,KAAK,KAAK,IAAI,iBAAiB,KAC/B,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ,OAAO,cACxD,KAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,QAAQ;AAAA,EAErD;AAAA,EAOA,0BAA0B;AACxB,UAAM,IAAI,KAAK,IAAI;AACnB,UAAM,OAAoB,KAAK,IAAI,sBAAsB,EAAE,OAAO;AAElE,SAAK,OAAO;AAAA,MACV,GAAG;AAAA,MACH,MAAM,KAAK,OAAO;AAAA,MAClB,OAAO,KAAK,OAAO,IAAI,KAAK;AAAA,MAC5B,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -45,3 +45,4 @@ __publicField(SliderProgress, "config", {
45
45
  refs: ["progress"]
46
46
  });
47
47
  if (module.exports.default) module.exports = module.exports.default;
48
+ //# sourceMappingURL=SliderProgress.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/SliderProgress.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transform, map, domScheduler } from '@studiometa/js-toolkit/utils';\nimport { AbstractSliderChild } from './AbstractSliderChild.js';\n\nexport interface SliderProgressProps extends BaseProps {\n $refs: {\n progress: HTMLElement;\n };\n}\n\n/**\n * SliderProgress class.\n */\nexport class SliderProgress<T extends BaseProps = BaseProps> extends AbstractSliderChild<\n T & SliderProgressProps\n> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'SliderProgress',\n refs: ['progress'],\n };\n\n /**\n * Update the progress indicator.\n */\n update(index:number) {\n domScheduler.read(() => {\n const { progress } = this.$refs;\n const x = map(index, 0, this.$parent.indexMax, progress.clientWidth * -1, 0);\n domScheduler.write(() => {\n transform(progress, { x });\n });\n });\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA6C;AAC7C,iCAAoC;AAW7B,IAAM,iBAAN,cAA8D,+CAEnE;AAAA,EAYA,OAAO,OAAc;AACnB,8BAAa,KAAK,MAAM;AACtB,YAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,YAAM,QAAI,kBAAI,OAAO,GAAG,KAAK,QAAQ,UAAU,SAAS,cAAc,IAAI,CAAC;AAC3E,gCAAa,MAAM,MAAM;AACvB,oCAAU,UAAU,EAAE,EAAE,CAAC;AAAA,MAC3B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAjBE,cANW,gBAMJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM,CAAC,UAAU;AACnB;",
6
+ "names": []
7
+ }
@@ -1,12 +1,10 @@
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 { transform, map, domScheduler } from "@studiometa/js-toolkit/utils";
8
2
  import { AbstractSliderChild } from "./AbstractSliderChild.js";
9
3
  class SliderProgress extends AbstractSliderChild {
4
+ static config = {
5
+ name: "SliderProgress",
6
+ refs: ["progress"]
7
+ };
10
8
  update(index) {
11
9
  domScheduler.read(() => {
12
10
  const { progress } = this.$refs;
@@ -17,10 +15,7 @@ class SliderProgress extends AbstractSliderChild {
17
15
  });
18
16
  }
19
17
  }
20
- __publicField(SliderProgress, "config", {
21
- name: "SliderProgress",
22
- refs: ["progress"]
23
- });
24
18
  export {
25
19
  SliderProgress
26
20
  };
21
+ //# sourceMappingURL=SliderProgress.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/SliderProgress.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transform, map, domScheduler } from '@studiometa/js-toolkit/utils';\nimport { AbstractSliderChild } from './AbstractSliderChild.js';\n\nexport interface SliderProgressProps extends BaseProps {\n $refs: {\n progress: HTMLElement;\n };\n}\n\n/**\n * SliderProgress class.\n */\nexport class SliderProgress<T extends BaseProps = BaseProps> extends AbstractSliderChild<\n T & SliderProgressProps\n> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'SliderProgress',\n refs: ['progress'],\n };\n\n /**\n * Update the progress indicator.\n */\n update(index:number) {\n domScheduler.read(() => {\n const { progress } = this.$refs;\n const x = map(index, 0, this.$parent.indexMax, progress.clientWidth * -1, 0);\n domScheduler.write(() => {\n transform(progress, { x });\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,WAAW,KAAK,oBAAoB;AAC7C,SAAS,2BAA2B;AAW7B,MAAM,uBAAwD,oBAEnE;AAAA,EAIA,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,MAAM,CAAC,UAAU;AAAA,EACnB;AAAA,EAKA,OAAO,OAAc;AACnB,iBAAa,KAAK,MAAM;AACtB,YAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,YAAM,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,UAAU,SAAS,cAAc,IAAI,CAAC;AAC3E,mBAAa,MAAM,MAAM;AACvB,kBAAU,UAAU,EAAE,EAAE,CAAC;AAAA,MAC3B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;",
6
+ "names": []
7
+ }
@@ -25,3 +25,4 @@ __reExport(Slider_exports, require("./SliderItem.cjs"), module.exports);
25
25
  __reExport(Slider_exports, require("./SliderProgress.cjs"), module.exports);
26
26
  __reExport(Slider_exports, require("./SliderDots.cjs"), module.exports);
27
27
  if (module.exports.default) module.exports = module.exports.default;
28
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/index.ts"],
4
+ "sourcesContent": ["export * from './AbstractSliderChild.js';\nexport * from './Slider.js';\nexport * from './SliderBtn.js';\nexport * from './SliderCount.js';\nexport * from './SliderDrag.js';\nexport * from './SliderItem.js';\nexport * from './SliderProgress.js';\nexport * from './SliderDots.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,sCAAd;AACA,2BAAc,yBADd;AAEA,2BAAc,4BAFd;AAGA,2BAAc,8BAHd;AAIA,2BAAc,6BAJd;AAKA,2BAAc,6BALd;AAMA,2BAAc,iCANd;AAOA,2BAAc,6BAPd;",
6
+ "names": []
7
+ }
@@ -6,3 +6,4 @@ export * from "./SliderDrag.js";
6
6
  export * from "./SliderItem.js";
7
7
  export * from "./SliderProgress.js";
8
8
  export * from "./SliderDots.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Slider/index.ts"],
4
+ "sourcesContent": ["export * from './AbstractSliderChild.js';\nexport * from './Slider.js';\nexport * from './SliderBtn.js';\nexport * from './SliderCount.js';\nexport * from './SliderDrag.js';\nexport * from './SliderItem.js';\nexport * from './SliderProgress.js';\nexport * from './SliderDots.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -30,11 +30,8 @@ module.exports = __toCommonJS(Sticky_exports);
30
30
  var import_js_toolkit = require("@studiometa/js-toolkit");
31
31
  var import_primitives = require("../../primitives/index.cjs");
32
32
  var _Sticky = class extends import_js_toolkit.Base {
33
- constructor() {
34
- super(...arguments);
35
- __publicField(this, "isSticky", false);
36
- __publicField(this, "isVisible", true);
37
- }
33
+ isSticky = false;
34
+ isVisible = true;
38
35
  set y(value) {
39
36
  this.$refs.inner.style.transform = `translateY(${value}px) translateZ(0px)`;
40
37
  }
@@ -97,7 +94,7 @@ var _Sticky = class extends import_js_toolkit.Base {
97
94
  return;
98
95
  }
99
96
  const { instances } = this;
100
- index = index != null ? index : instances.indexOf(this);
97
+ index = index ?? instances.indexOf(this);
101
98
  this.y = instances.slice(0, index).filter((instance) => instance.isSticky && !instance.isVisible).reduce(
102
99
  (y, instance) => y - instance.$refs.inner.offsetHeight,
103
100
  this.isVisible ? 0 : this.$refs.inner.offsetHeight * -1
@@ -129,3 +126,4 @@ __publicField(Sticky, "config", {
129
126
  });
130
127
  __publicField(Sticky, "instances", /* @__PURE__ */ new Set());
131
128
  if (module.exports.default) module.exports = module.exports.default;
129
+ //# sourceMappingURL=Sticky.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Sticky/Sticky.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { Sentinel } from '../../primitives/index.js';\n\n/**\n * @typedef {Object} StickyRefs\n * @property {HTMLElement} inner\n * @property {HTMLElement} sentinelRef\n */\n\n/**\n * @typedef {Object} StickyPrivateInterface\n * @property {StickyRefs} $refs\n * @property {{ zIndex: number, hideWhenUp: boolean, hideWhenDown: boolean }} $options\n * @property {{ Sentinel: Sentinel[] }} $children\n */\n\nexport interface StickyProps extends BaseProps {\n $refs: {\n inner: HTMLElement;\n sentinelRef: HTMLElement;\n };\n $options: {\n zIndex: number;\n hideWhenUp: boolean;\n hideWhenDown: boolean;\n };\n $children: {\n Sentinel: Sentinel[];\n };\n}\n\n/**\n * Sticky class.\n */\nexport class Sticky<T extends BaseProps = BaseProps> extends Base<T & StickyProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Sticky',\n refs: ['inner', 'sentinelRef'],\n components: {\n Sentinel,\n },\n options: {\n zIndex: {\n type: Number,\n default: 100,\n },\n hideWhenUp: Boolean,\n hideWhenDown: Boolean,\n },\n };\n\n /**\n * Holder for all instances.\n */\n // eslint-disable-next-line no-use-before-define\n static instances: Set<Sticky> = new Set();\n\n /**\n * Is the component sticky?\n */\n isSticky = false;\n\n /**\n * Is the component visible?\n */\n isVisible = true;\n\n /**\n * Set the Y value.\n */\n set y(value: number) {\n this.$refs.inner.style.transform = `translateY(${value}px) translateZ(0px)`;\n }\n\n /**\n * Get instances as array.\n */\n get instances(): Sticky[] {\n return Array.from(Sticky.instances);\n }\n\n /**\n * Mounted hook.\n */\n mounted() {\n Sticky.instances.add(this);\n this.setSentinelSize();\n }\n\n /**\n * Resized hook.\n */\n resized() {\n this.setSentinelSize();\n }\n\n /**\n * Destroyed hook.\n */\n destroyed() {\n Sticky.instances.delete(this);\n }\n\n /**\n * Scrolled hook.\n */\n scrolled(props) {\n if (!this.isSticky || props.y === props.last.y) {\n return;\n }\n\n if (\n (props.direction.y === 'DOWN' && this.$options.hideWhenDown) ||\n (props.direction.y === 'UP' && this.$options.hideWhenUp)\n ) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Listen to the sentinel's `intersected` event to set the `isSticky` value.\n *\n * @param {IntersectionObserverEntry[]} entries\n * @returns {void}\n */\n onSentinelIntersected([entry]: IntersectionObserverEntry[]) {\n this.isSticky = entry.isIntersecting && entry.boundingClientRect.y < 0;\n this.setPosition();\n }\n\n /**\n * Hide the sticky component when another one is sticky.\n */\n hide() {\n if (!this.isVisible) {\n return;\n }\n\n this.isVisible = false;\n this.$el.classList.add('pointer-events-none');\n\n this.instances.forEach((instance, index) => instance.setPosition(index));\n }\n\n /**\n * Show the sticky component when the other one is not sticky anymore.\n */\n show() {\n if (this.isVisible) {\n return;\n }\n\n this.isVisible = true;\n this.$el.classList.remove('pointer-events-none');\n this.instances.forEach((instance, index) => instance.setPosition(index));\n }\n\n /**\n * Set the sentinel height based on the previous instances.\n */\n setSentinelSize() {\n const { instances } = this;\n const index = instances.indexOf(this);\n const height = instances\n .slice(0, index)\n .filter(\n // Test each instance sticky context against the current element\n (instance) => this.closestRelativeElement(instance.$el).contains(this.$el),\n )\n .reduce((acc, instance) => acc + instance.$el.offsetHeight, 0);\n\n this.$refs.sentinelRef.style.height = `${height + 1}px`;\n this.$el.style.top = `${height}px`;\n this.$el.style.zIndex = String(this.$options.zIndex - index);\n }\n\n /**\n * Set the component's position.\n *\n * @param {number} [index] The instance index in all the pages' instances.\n * @returns {void}\n */\n setPosition(index?: number) {\n if (!this.isSticky) {\n this.y = 0;\n return;\n }\n\n const { instances } = this;\n\n // eslint-disable-next-line no-param-reassign\n index = index ?? instances.indexOf(this);\n\n this.y = (instances\n .slice(0, index)\n .filter((instance) => instance.isSticky && !instance.isVisible)\n .reduce<number>(\n (y: number, instance) => y - instance.$refs.inner.offsetHeight,\n this.isVisible ? 0 : this.$refs.inner.offsetHeight * -1,\n )) as number;\n }\n\n /**\n * Find the first parent which has a relative position.\n */\n closestRelativeElement(element:HTMLElement) {\n let parent = element.parentElement;\n\n while (getComputedStyle(parent).position !== 'relative' && parent.parentElement) {\n parent = parent.parentElement;\n }\n\n return parent;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,32 +1,39 @@
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
  import { Sentinel } from "../../primitives/index.js";
9
- const _Sticky = class extends Base {
10
- constructor() {
11
- super(...arguments);
12
- __publicField(this, "isSticky", false);
13
- __publicField(this, "isVisible", true);
14
- }
3
+ class Sticky extends Base {
4
+ static config = {
5
+ name: "Sticky",
6
+ refs: ["inner", "sentinelRef"],
7
+ components: {
8
+ Sentinel
9
+ },
10
+ options: {
11
+ zIndex: {
12
+ type: Number,
13
+ default: 100
14
+ },
15
+ hideWhenUp: Boolean,
16
+ hideWhenDown: Boolean
17
+ }
18
+ };
19
+ static instances = /* @__PURE__ */ new Set();
20
+ isSticky = false;
21
+ isVisible = true;
15
22
  set y(value) {
16
23
  this.$refs.inner.style.transform = `translateY(${value}px) translateZ(0px)`;
17
24
  }
18
25
  get instances() {
19
- return Array.from(_Sticky.instances);
26
+ return Array.from(Sticky.instances);
20
27
  }
21
28
  mounted() {
22
- _Sticky.instances.add(this);
29
+ Sticky.instances.add(this);
23
30
  this.setSentinelSize();
24
31
  }
25
32
  resized() {
26
33
  this.setSentinelSize();
27
34
  }
28
35
  destroyed() {
29
- _Sticky.instances.delete(this);
36
+ Sticky.instances.delete(this);
30
37
  }
31
38
  scrolled(props) {
32
39
  if (!this.isSticky || props.y === props.last.y) {
@@ -74,7 +81,7 @@ const _Sticky = class extends Base {
74
81
  return;
75
82
  }
76
83
  const { instances } = this;
77
- index = index != null ? index : instances.indexOf(this);
84
+ index = index ?? instances.indexOf(this);
78
85
  this.y = instances.slice(0, index).filter((instance) => instance.isSticky && !instance.isVisible).reduce(
79
86
  (y, instance) => y - instance.$refs.inner.offsetHeight,
80
87
  this.isVisible ? 0 : this.$refs.inner.offsetHeight * -1
@@ -87,24 +94,8 @@ const _Sticky = class extends Base {
87
94
  }
88
95
  return parent;
89
96
  }
90
- };
91
- let Sticky = _Sticky;
92
- __publicField(Sticky, "config", {
93
- name: "Sticky",
94
- refs: ["inner", "sentinelRef"],
95
- components: {
96
- Sentinel
97
- },
98
- options: {
99
- zIndex: {
100
- type: Number,
101
- default: 100
102
- },
103
- hideWhenUp: Boolean,
104
- hideWhenDown: Boolean
105
- }
106
- });
107
- __publicField(Sticky, "instances", /* @__PURE__ */ new Set());
97
+ }
108
98
  export {
109
99
  Sticky
110
100
  };
101
+ //# sourceMappingURL=Sticky.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Sticky/Sticky.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { Sentinel } from '../../primitives/index.js';\n\n/**\n * @typedef {Object} StickyRefs\n * @property {HTMLElement} inner\n * @property {HTMLElement} sentinelRef\n */\n\n/**\n * @typedef {Object} StickyPrivateInterface\n * @property {StickyRefs} $refs\n * @property {{ zIndex: number, hideWhenUp: boolean, hideWhenDown: boolean }} $options\n * @property {{ Sentinel: Sentinel[] }} $children\n */\n\nexport interface StickyProps extends BaseProps {\n $refs: {\n inner: HTMLElement;\n sentinelRef: HTMLElement;\n };\n $options: {\n zIndex: number;\n hideWhenUp: boolean;\n hideWhenDown: boolean;\n };\n $children: {\n Sentinel: Sentinel[];\n };\n}\n\n/**\n * Sticky class.\n */\nexport class Sticky<T extends BaseProps = BaseProps> extends Base<T & StickyProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Sticky',\n refs: ['inner', 'sentinelRef'],\n components: {\n Sentinel,\n },\n options: {\n zIndex: {\n type: Number,\n default: 100,\n },\n hideWhenUp: Boolean,\n hideWhenDown: Boolean,\n },\n };\n\n /**\n * Holder for all instances.\n */\n // eslint-disable-next-line no-use-before-define\n static instances: Set<Sticky> = new Set();\n\n /**\n * Is the component sticky?\n */\n isSticky = false;\n\n /**\n * Is the component visible?\n */\n isVisible = true;\n\n /**\n * Set the Y value.\n */\n set y(value: number) {\n this.$refs.inner.style.transform = `translateY(${value}px) translateZ(0px)`;\n }\n\n /**\n * Get instances as array.\n */\n get instances(): Sticky[] {\n return Array.from(Sticky.instances);\n }\n\n /**\n * Mounted hook.\n */\n mounted() {\n Sticky.instances.add(this);\n this.setSentinelSize();\n }\n\n /**\n * Resized hook.\n */\n resized() {\n this.setSentinelSize();\n }\n\n /**\n * Destroyed hook.\n */\n destroyed() {\n Sticky.instances.delete(this);\n }\n\n /**\n * Scrolled hook.\n */\n scrolled(props) {\n if (!this.isSticky || props.y === props.last.y) {\n return;\n }\n\n if (\n (props.direction.y === 'DOWN' && this.$options.hideWhenDown) ||\n (props.direction.y === 'UP' && this.$options.hideWhenUp)\n ) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Listen to the sentinel's `intersected` event to set the `isSticky` value.\n *\n * @param {IntersectionObserverEntry[]} entries\n * @returns {void}\n */\n onSentinelIntersected([entry]: IntersectionObserverEntry[]) {\n this.isSticky = entry.isIntersecting && entry.boundingClientRect.y < 0;\n this.setPosition();\n }\n\n /**\n * Hide the sticky component when another one is sticky.\n */\n hide() {\n if (!this.isVisible) {\n return;\n }\n\n this.isVisible = false;\n this.$el.classList.add('pointer-events-none');\n\n this.instances.forEach((instance, index) => instance.setPosition(index));\n }\n\n /**\n * Show the sticky component when the other one is not sticky anymore.\n */\n show() {\n if (this.isVisible) {\n return;\n }\n\n this.isVisible = true;\n this.$el.classList.remove('pointer-events-none');\n this.instances.forEach((instance, index) => instance.setPosition(index));\n }\n\n /**\n * Set the sentinel height based on the previous instances.\n */\n setSentinelSize() {\n const { instances } = this;\n const index = instances.indexOf(this);\n const height = instances\n .slice(0, index)\n .filter(\n // Test each instance sticky context against the current element\n (instance) => this.closestRelativeElement(instance.$el).contains(this.$el),\n )\n .reduce((acc, instance) => acc + instance.$el.offsetHeight, 0);\n\n this.$refs.sentinelRef.style.height = `${height + 1}px`;\n this.$el.style.top = `${height}px`;\n this.$el.style.zIndex = String(this.$options.zIndex - index);\n }\n\n /**\n * Set the component's position.\n *\n * @param {number} [index] The instance index in all the pages' instances.\n * @returns {void}\n */\n setPosition(index?: number) {\n if (!this.isSticky) {\n this.y = 0;\n return;\n }\n\n const { instances } = this;\n\n // eslint-disable-next-line no-param-reassign\n index = index ?? instances.indexOf(this);\n\n this.y = (instances\n .slice(0, index)\n .filter((instance) => instance.isSticky && !instance.isVisible)\n .reduce<number>(\n (y: number, instance) => y - instance.$refs.inner.offsetHeight,\n this.isVisible ? 0 : this.$refs.inner.offsetHeight * -1,\n )) as number;\n }\n\n /**\n * Find the first parent which has a relative position.\n */\n closestRelativeElement(element:HTMLElement) {\n let parent = element.parentElement;\n\n while (getComputedStyle(parent).position !== 'relative' && parent.parentElement) {\n parent = parent.parentElement;\n }\n\n return parent;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -18,3 +18,4 @@ var Sticky_exports = {};
18
18
  module.exports = __toCommonJS(Sticky_exports);
19
19
  __reExport(Sticky_exports, require("./Sticky.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/Sticky/index.ts"],
4
+ "sourcesContent": ["export * from './Sticky.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,yBAAd;",
6
+ "names": []
7
+ }
@@ -1 +1,2 @@
1
1
  export * from "./Sticky.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/Sticky/index.ts"],
4
+ "sourcesContent": ["export * from './Sticky.js';\n"],
5
+ "mappings": "AAAA,cAAc;",
6
+ "names": []
7
+ }
@@ -61,3 +61,4 @@ __publicField(TableOfContent, "config", {
61
61
  }
62
62
  });
63
63
  if (module.exports.default) module.exports = module.exports.default;
64
+ //# sourceMappingURL=TableOfContent.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContent.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { TableOfContentAnchor } from './TableOfContentAnchor.js';\n\nexport interface TableOfContentProps extends BaseProps {\n $refs: {\n itemTemplate: HTMLTemplateElement;\n list: HTMLUListElement;\n };\n $options: {\n contentSelector: string;\n withTemplate: boolean;\n };\n $children: {\n TableOfContentAnchor: TableOfContentAnchor[];\n };\n}\n\n/**\n * TableOfContent class.\n */\nexport class TableOfContent<T extends BaseProps = BaseProps> extends Base<T & TableOfContentProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContent',\n refs: ['itemTemplate', 'list'],\n components: {\n TableOfContentAnchor,\n },\n options: {\n contentSelector: String,\n withTemplate: Boolean,\n },\n };\n\n /**\n * Generate anchors on mount and update the component to instantiate the\n * `TableOfContentAnchor` components.\n */\n mounted() {\n if (this.$options.withTemplate) {\n this.generateAnchors();\n this.$update();\n }\n }\n\n /**\n * Generate all anchors.\n *\n * @todo Read anchor template from a ref?\n * @todo Better API to easily override the template function, maybe a `render` function?\n */\n generateAnchors() {\n document.querySelectorAll(this.$options.contentSelector).forEach((section) => {\n const tpl = document.createElement('div');\n tpl.innerHTML = this.$refs.itemTemplate.innerHTML;\n const li = tpl.querySelector('li');\n const anchor = li.querySelector('a');\n anchor.href = `#${section.id}`;\n anchor.innerHTML = section.textContent;\n anchor.dataset.component = 'TableOfContentAnchor';\n this.$refs.list.append(li);\n });\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAErB,kCAAqC;AAmB9B,IAAM,iBAAN,cAA8D,uBAA8B;AAAA,EAoBjG,UAAU;AACR,QAAI,KAAK,SAAS,cAAc;AAC9B,WAAK,gBAAgB;AACrB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAQA,kBAAkB;AAChB,aAAS,iBAAiB,KAAK,SAAS,eAAe,EAAE,QAAQ,CAAC,YAAY;AAC5E,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,YAAY,KAAK,MAAM,aAAa;AACxC,YAAM,KAAK,IAAI,cAAc,IAAI;AACjC,YAAM,SAAS,GAAG,cAAc,GAAG;AACnC,aAAO,OAAO,IAAI,QAAQ;AAC1B,aAAO,YAAY,QAAQ;AAC3B,aAAO,QAAQ,YAAY;AAC3B,WAAK,MAAM,KAAK,OAAO,EAAE;AAAA,IAC3B,CAAC;AAAA,EACH;AACF;AAzCE,cAJW,gBAIJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM,CAAC,gBAAgB,MAAM;AAAA,EAC7B,YAAY;AAAA,IACV;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,iBAAiB;AAAA,IACjB,cAAc;AAAA,EAChB;AACF;",
6
+ "names": []
7
+ }
@@ -1,12 +1,17 @@
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
  import { TableOfContentAnchor } from "./TableOfContentAnchor.js";
9
3
  class TableOfContent extends Base {
4
+ static config = {
5
+ name: "TableOfContent",
6
+ refs: ["itemTemplate", "list"],
7
+ components: {
8
+ TableOfContentAnchor
9
+ },
10
+ options: {
11
+ contentSelector: String,
12
+ withTemplate: Boolean
13
+ }
14
+ };
10
15
  mounted() {
11
16
  if (this.$options.withTemplate) {
12
17
  this.generateAnchors();
@@ -26,17 +31,7 @@ class TableOfContent extends Base {
26
31
  });
27
32
  }
28
33
  }
29
- __publicField(TableOfContent, "config", {
30
- name: "TableOfContent",
31
- refs: ["itemTemplate", "list"],
32
- components: {
33
- TableOfContentAnchor
34
- },
35
- options: {
36
- contentSelector: String,
37
- withTemplate: Boolean
38
- }
39
- });
40
34
  export {
41
35
  TableOfContent
42
36
  };
37
+ //# sourceMappingURL=TableOfContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContent.ts"],
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { TableOfContentAnchor } from './TableOfContentAnchor.js';\n\nexport interface TableOfContentProps extends BaseProps {\n $refs: {\n itemTemplate: HTMLTemplateElement;\n list: HTMLUListElement;\n };\n $options: {\n contentSelector: string;\n withTemplate: boolean;\n };\n $children: {\n TableOfContentAnchor: TableOfContentAnchor[];\n };\n}\n\n/**\n * TableOfContent class.\n */\nexport class TableOfContent<T extends BaseProps = BaseProps> extends Base<T & TableOfContentProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContent',\n refs: ['itemTemplate', 'list'],\n components: {\n TableOfContentAnchor,\n },\n options: {\n contentSelector: String,\n withTemplate: Boolean,\n },\n };\n\n /**\n * Generate anchors on mount and update the component to instantiate the\n * `TableOfContentAnchor` components.\n */\n mounted() {\n if (this.$options.withTemplate) {\n this.generateAnchors();\n this.$update();\n }\n }\n\n /**\n * Generate all anchors.\n *\n * @todo Read anchor template from a ref?\n * @todo Better API to easily override the template function, maybe a `render` function?\n */\n generateAnchors() {\n document.querySelectorAll(this.$options.contentSelector).forEach((section) => {\n const tpl = document.createElement('div');\n tpl.innerHTML = this.$refs.itemTemplate.innerHTML;\n const li = tpl.querySelector('li');\n const anchor = li.querySelector('a');\n anchor.href = `#${section.id}`;\n anchor.innerHTML = section.textContent;\n anchor.dataset.component = 'TableOfContentAnchor';\n this.$refs.list.append(li);\n });\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,4BAA4B;AAmB9B,MAAM,uBAAwD,KAA8B;AAAA,EAIjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,MAAM,CAAC,gBAAgB,MAAM;AAAA,IAC7B,YAAY;AAAA,MACV;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EAMA,UAAU;AACR,QAAI,KAAK,SAAS,cAAc;AAC9B,WAAK,gBAAgB;AACrB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAQA,kBAAkB;AAChB,aAAS,iBAAiB,KAAK,SAAS,eAAe,EAAE,QAAQ,CAAC,YAAY;AAC5E,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,YAAY,KAAK,MAAM,aAAa;AACxC,YAAM,KAAK,IAAI,cAAc,IAAI;AACjC,YAAM,SAAS,GAAG,cAAc,GAAG;AACnC,aAAO,OAAO,IAAI,QAAQ;AAC1B,aAAO,YAAY,QAAQ;AAC3B,aAAO,QAAQ,YAAY;AAC3B,WAAK,MAAM,KAAK,OAAO,EAAE;AAAA,IAC3B,CAAC;AAAA,EACH;AACF;",
6
+ "names": []
7
+ }
@@ -29,10 +29,7 @@ __export(TableOfContentAnchor_exports, {
29
29
  module.exports = __toCommonJS(TableOfContentAnchor_exports);
30
30
  var import_atoms = require("../../atoms/index.cjs");
31
31
  var TableOfContentAnchor = class extends import_atoms.AnchorScrollTo {
32
- constructor() {
33
- super(...arguments);
34
- __publicField(this, "__observer");
35
- }
32
+ __observer;
36
33
  get sentinel() {
37
34
  return document.querySelector(this.targetSelector);
38
35
  }
@@ -62,3 +59,4 @@ __publicField(TableOfContentAnchor, "config", {
62
59
  }
63
60
  });
64
61
  if (module.exports.default) module.exports = module.exports.default;
62
+ //# sourceMappingURL=TableOfContentAnchor.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContentAnchor.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorScrollTo } from '../../atoms/index.js';\n\nexport interface TableOfContentAnchorProps extends BaseProps {\n $options: {\n activeClass: string;\n };\n}\n\n/**\n * TableOfContentAnchor class.\n */\nexport class TableOfContentAnchor<T extends BaseProps = BaseProps> extends AnchorScrollTo<\n T & TableOfContentAnchorProps\n> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContentAnchor',\n emits: ['should-activate'],\n options: {\n activeClass: {\n type: String,\n default: 'is-active',\n },\n },\n };\n\n /**\n * Observer.\n * @private\n */\n __observer: IntersectionObserver;\n\n /**\n * Get the sentinel.\n */\n get sentinel():HTMLElement {\n return document.querySelector(this.targetSelector) as HTMLElement;\n }\n\n /**\n * Init observer on mount.\n */\n mounted() {\n if (!this.sentinel) {\n return;\n }\n\n this.__observer = new IntersectionObserver(([entry]) => {\n const shouldActivate =\n entry.isIntersecting &&\n entry.boundingClientRect.y < 100 &&\n entry.boundingClientRect.y > 100;\n this.$el.classList.toggle(this.$options.activeClass, shouldActivate);\n this.$emit('should-activate', shouldActivate);\n });\n\n this.__observer.observe(this.sentinel);\n }\n\n /**\n * Destroy observer on destroy.\n */\n destroyed() {\n this.__observer.disconnect();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA+B;AAWxB,IAAM,uBAAN,cAAoE,4BAEzE;AAAA,EAmBA;AAAA,EAKA,IAAI,WAAuB;AACzB,WAAO,SAAS,cAAc,KAAK,cAAc;AAAA,EACnD;AAAA,EAKA,UAAU;AACR,QAAI,CAAC,KAAK,UAAU;AAClB;AAAA,IACF;AAEA,SAAK,aAAa,IAAI,qBAAqB,CAAC,CAAC,KAAK,MAAM;AACtD,YAAM,iBACJ,MAAM,kBACN,MAAM,mBAAmB,IAAI,OAC7B,MAAM,mBAAmB,IAAI;AAC/B,WAAK,IAAI,UAAU,OAAO,KAAK,SAAS,aAAa,cAAc;AACnE,WAAK,MAAM,mBAAmB,cAAc;AAAA,IAC9C,CAAC;AAED,SAAK,WAAW,QAAQ,KAAK,QAAQ;AAAA,EACvC;AAAA,EAKA,YAAY;AACV,SAAK,WAAW,WAAW;AAAA,EAC7B;AACF;AAlDE,cANW,sBAMJ,UAAqB;AAAA,EAC1B,MAAM;AAAA,EACN,OAAO,CAAC,iBAAiB;AAAA,EACzB,SAAS;AAAA,IACP,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,15 +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 { AnchorScrollTo } from "../../atoms/index.js";
8
2
  class TableOfContentAnchor extends AnchorScrollTo {
9
- constructor() {
10
- super(...arguments);
11
- __publicField(this, "__observer");
12
- }
3
+ static config = {
4
+ name: "TableOfContentAnchor",
5
+ emits: ["should-activate"],
6
+ options: {
7
+ activeClass: {
8
+ type: String,
9
+ default: "is-active"
10
+ }
11
+ }
12
+ };
13
+ __observer;
13
14
  get sentinel() {
14
15
  return document.querySelector(this.targetSelector);
15
16
  }
@@ -28,16 +29,7 @@ class TableOfContentAnchor extends AnchorScrollTo {
28
29
  this.__observer.disconnect();
29
30
  }
30
31
  }
31
- __publicField(TableOfContentAnchor, "config", {
32
- name: "TableOfContentAnchor",
33
- emits: ["should-activate"],
34
- options: {
35
- activeClass: {
36
- type: String,
37
- default: "is-active"
38
- }
39
- }
40
- });
41
32
  export {
42
33
  TableOfContentAnchor
43
34
  };
35
+ //# sourceMappingURL=TableOfContentAnchor.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContentAnchor.ts"],
4
+ "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorScrollTo } from '../../atoms/index.js';\n\nexport interface TableOfContentAnchorProps extends BaseProps {\n $options: {\n activeClass: string;\n };\n}\n\n/**\n * TableOfContentAnchor class.\n */\nexport class TableOfContentAnchor<T extends BaseProps = BaseProps> extends AnchorScrollTo<\n T & TableOfContentAnchorProps\n> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContentAnchor',\n emits: ['should-activate'],\n options: {\n activeClass: {\n type: String,\n default: 'is-active',\n },\n },\n };\n\n /**\n * Observer.\n * @private\n */\n __observer: IntersectionObserver;\n\n /**\n * Get the sentinel.\n */\n get sentinel():HTMLElement {\n return document.querySelector(this.targetSelector) as HTMLElement;\n }\n\n /**\n * Init observer on mount.\n */\n mounted() {\n if (!this.sentinel) {\n return;\n }\n\n this.__observer = new IntersectionObserver(([entry]) => {\n const shouldActivate =\n entry.isIntersecting &&\n entry.boundingClientRect.y < 100 &&\n entry.boundingClientRect.y > 100;\n this.$el.classList.toggle(this.$options.activeClass, shouldActivate);\n this.$emit('should-activate', shouldActivate);\n });\n\n this.__observer.observe(this.sentinel);\n }\n\n /**\n * Destroy observer on destroy.\n */\n destroyed() {\n this.__observer.disconnect();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,sBAAsB;AAWxB,MAAM,6BAA8D,eAEzE;AAAA,EAIA,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,iBAAiB;AAAA,IACzB,SAAS;AAAA,MACP,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAMA;AAAA,EAKA,IAAI,WAAuB;AACzB,WAAO,SAAS,cAAc,KAAK,cAAc;AAAA,EACnD;AAAA,EAKA,UAAU;AACR,QAAI,CAAC,KAAK,UAAU;AAClB;AAAA,IACF;AAEA,SAAK,aAAa,IAAI,qBAAqB,CAAC,CAAC,KAAK,MAAM;AACtD,YAAM,iBACJ,MAAM,kBACN,MAAM,mBAAmB,IAAI,OAC7B,MAAM,mBAAmB,IAAI;AAC/B,WAAK,IAAI,UAAU,OAAO,KAAK,SAAS,aAAa,cAAc;AACnE,WAAK,MAAM,mBAAmB,cAAc;AAAA,IAC9C,CAAC;AAED,SAAK,WAAW,QAAQ,KAAK,QAAQ;AAAA,EACvC;AAAA,EAKA,YAAY;AACV,SAAK,WAAW,WAAW;AAAA,EAC7B;AACF;",
6
+ "names": []
7
+ }
@@ -19,3 +19,4 @@ module.exports = __toCommonJS(TableOfContent_exports);
19
19
  __reExport(TableOfContent_exports, require("./TableOfContent.cjs"), module.exports);
20
20
  __reExport(TableOfContent_exports, require("./TableOfContentAnchor.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/TableOfContent/index.ts"],
4
+ "sourcesContent": ["export * from './TableOfContent.js';\nexport * from './TableOfContentAnchor.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mCAAc,iCAAd;AACA,mCAAc,uCADd;",
6
+ "names": []
7
+ }
@@ -1,2 +1,3 @@
1
1
  export * from "./TableOfContent.js";
2
2
  export * from "./TableOfContentAnchor.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/ui/molecules/TableOfContent/index.ts"],
4
+ "sourcesContent": ["export * from './TableOfContent.js';\nexport * from './TableOfContentAnchor.js';\n"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -30,10 +30,7 @@ module.exports = __toCommonJS(Tabs_exports);
30
30
  var import_js_toolkit = require("@studiometa/js-toolkit");
31
31
  var import_utils = require("@studiometa/js-toolkit/utils");
32
32
  var Tabs = class extends import_js_toolkit.Base {
33
- constructor() {
34
- super(...arguments);
35
- __publicField(this, "items");
36
- }
33
+ items;
37
34
  mounted() {
38
35
  this.items = this.$refs.btn.map((btn, index) => {
39
36
  const id = `${this.$id}-${index}`;
@@ -142,3 +139,4 @@ __publicField(Tabs, "config", {
142
139
  }
143
140
  });
144
141
  if (module.exports.default) module.exports = module.exports.default;
142
+ //# sourceMappingURL=Tabs.cjs.map