@studiometa/ui 1.0.0-alpha.0 → 1.0.0-alpha.2

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 (192) hide show
  1. package/README.md +6 -4
  2. package/atoms/Data/DataBind.d.ts +1 -1
  3. package/atoms/Data/DataBind.js +12 -5
  4. package/atoms/Data/DataBind.js.map +2 -2
  5. package/atoms/Data/DataComputed.js +1 -1
  6. package/atoms/Data/DataComputed.js.map +2 -2
  7. package/atoms/Data/DataModel.d.ts +1 -0
  8. package/atoms/Data/DataModel.js +13 -3
  9. package/atoms/Data/DataModel.js.map +2 -2
  10. package/package.json +1 -1
  11. package/atoms/Action/Action.cjs +0 -115
  12. package/atoms/Action/Action.cjs.map +0 -7
  13. package/atoms/Action/Target.cjs +0 -35
  14. package/atoms/Action/Target.cjs.map +0 -7
  15. package/atoms/Action/index.cjs +0 -22
  16. package/atoms/Action/index.cjs.map +0 -7
  17. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +0 -52
  18. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs.map +0 -7
  19. package/atoms/AnchorScrollTo/index.cjs +0 -21
  20. package/atoms/AnchorScrollTo/index.cjs.map +0 -7
  21. package/atoms/CircularMarquee/CircularMarquee.cjs +0 -69
  22. package/atoms/CircularMarquee/CircularMarquee.cjs.map +0 -7
  23. package/atoms/CircularMarquee/index.cjs +0 -21
  24. package/atoms/CircularMarquee/index.cjs.map +0 -7
  25. package/atoms/Cursor/Cursor.cjs +0 -137
  26. package/atoms/Cursor/Cursor.cjs.map +0 -7
  27. package/atoms/Cursor/index.cjs +0 -21
  28. package/atoms/Cursor/index.cjs.map +0 -7
  29. package/atoms/Data/DataBind.cjs +0 -124
  30. package/atoms/Data/DataBind.cjs.map +0 -7
  31. package/atoms/Data/DataComputed.cjs +0 -49
  32. package/atoms/Data/DataComputed.cjs.map +0 -7
  33. package/atoms/Data/DataEffect.cjs +0 -47
  34. package/atoms/Data/DataEffect.cjs.map +0 -7
  35. package/atoms/Data/DataModel.cjs +0 -38
  36. package/atoms/Data/DataModel.cjs.map +0 -7
  37. package/atoms/Data/index.cjs +0 -24
  38. package/atoms/Data/index.cjs.map +0 -7
  39. package/atoms/Data/utils.cjs +0 -46
  40. package/atoms/Data/utils.cjs.map +0 -7
  41. package/atoms/Figure/Figure.cjs +0 -105
  42. package/atoms/Figure/Figure.cjs.map +0 -7
  43. package/atoms/Figure/FigureTwicpics.cjs +0 -123
  44. package/atoms/Figure/FigureTwicpics.cjs.map +0 -7
  45. package/atoms/Figure/index.cjs +0 -22
  46. package/atoms/Figure/index.cjs.map +0 -7
  47. package/atoms/FigureVideo/FigureVideo.cjs +0 -132
  48. package/atoms/FigureVideo/FigureVideo.cjs.map +0 -7
  49. package/atoms/FigureVideo/FigureVideoTwicpics.cjs +0 -153
  50. package/atoms/FigureVideo/FigureVideoTwicpics.cjs.map +0 -7
  51. package/atoms/FigureVideo/index.cjs +0 -22
  52. package/atoms/FigureVideo/index.cjs.map +0 -7
  53. package/atoms/LargeText/LargeText.cjs +0 -109
  54. package/atoms/LargeText/LargeText.cjs.map +0 -7
  55. package/atoms/LargeText/index.cjs +0 -21
  56. package/atoms/LargeText/index.cjs.map +0 -7
  57. package/atoms/LazyInclude/LazyInclude.cjs +0 -78
  58. package/atoms/LazyInclude/LazyInclude.cjs.map +0 -7
  59. package/atoms/LazyInclude/index.cjs +0 -21
  60. package/atoms/LazyInclude/index.cjs.map +0 -7
  61. package/atoms/Prefetch/AbstractPrefetch.cjs +0 -86
  62. package/atoms/Prefetch/AbstractPrefetch.cjs.map +0 -7
  63. package/atoms/Prefetch/PrefetchWhenOver.cjs +0 -42
  64. package/atoms/Prefetch/PrefetchWhenOver.cjs.map +0 -7
  65. package/atoms/Prefetch/PrefetchWhenVisible.cjs +0 -43
  66. package/atoms/Prefetch/PrefetchWhenVisible.cjs.map +0 -7
  67. package/atoms/Prefetch/index.cjs +0 -23
  68. package/atoms/Prefetch/index.cjs.map +0 -7
  69. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs +0 -95
  70. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs.map +0 -7
  71. package/atoms/ScrollAnimation/ScrollAnimation.cjs +0 -44
  72. package/atoms/ScrollAnimation/ScrollAnimation.cjs.map +0 -7
  73. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs +0 -84
  74. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs.map +0 -7
  75. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs +0 -37
  76. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs.map +0 -7
  77. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs +0 -50
  78. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs.map +0 -7
  79. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs +0 -37
  80. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs.map +0 -7
  81. package/atoms/ScrollAnimation/animationScrollWithEase.cjs +0 -59
  82. package/atoms/ScrollAnimation/animationScrollWithEase.cjs.map +0 -7
  83. package/atoms/ScrollAnimation/index.cjs +0 -27
  84. package/atoms/ScrollAnimation/index.cjs.map +0 -7
  85. package/atoms/ScrollReveal/ScrollReveal.cjs +0 -81
  86. package/atoms/ScrollReveal/ScrollReveal.cjs.map +0 -7
  87. package/atoms/ScrollReveal/index.cjs +0 -21
  88. package/atoms/ScrollReveal/index.cjs.map +0 -7
  89. package/atoms/index.cjs +0 -32
  90. package/atoms/index.cjs.map +0 -7
  91. package/decorators/index.cjs +0 -22
  92. package/decorators/index.cjs.map +0 -7
  93. package/decorators/withDeprecation.cjs +0 -47
  94. package/decorators/withDeprecation.cjs.map +0 -7
  95. package/decorators/withTransition.cjs +0 -86
  96. package/decorators/withTransition.cjs.map +0 -7
  97. package/index.cjs +0 -25
  98. package/index.cjs.map +0 -7
  99. package/molecules/Accordion/Accordion.cjs +0 -36
  100. package/molecules/Accordion/Accordion.cjs.map +0 -7
  101. package/molecules/Accordion/AccordionCore.cjs +0 -58
  102. package/molecules/Accordion/AccordionCore.cjs.map +0 -7
  103. package/molecules/Accordion/AccordionItem.cjs +0 -206
  104. package/molecules/Accordion/AccordionItem.cjs.map +0 -7
  105. package/molecules/Accordion/index.cjs +0 -22
  106. package/molecules/Accordion/index.cjs.map +0 -7
  107. package/molecules/AnchorNav/AnchorNav.cjs +0 -63
  108. package/molecules/AnchorNav/AnchorNav.cjs.map +0 -7
  109. package/molecules/AnchorNav/AnchorNavLink.cjs +0 -40
  110. package/molecules/AnchorNav/AnchorNavLink.cjs.map +0 -7
  111. package/molecules/AnchorNav/AnchorNavTarget.cjs +0 -35
  112. package/molecules/AnchorNav/AnchorNavTarget.cjs.map +0 -7
  113. package/molecules/AnchorNav/index.cjs +0 -23
  114. package/molecules/AnchorNav/index.cjs.map +0 -7
  115. package/molecules/Menu/Menu.cjs +0 -177
  116. package/molecules/Menu/Menu.cjs.map +0 -7
  117. package/molecules/Menu/MenuBtn.cjs +0 -66
  118. package/molecules/Menu/MenuBtn.cjs.map +0 -7
  119. package/molecules/Menu/MenuList.cjs +0 -165
  120. package/molecules/Menu/MenuList.cjs.map +0 -7
  121. package/molecules/Menu/index.cjs +0 -23
  122. package/molecules/Menu/index.cjs.map +0 -7
  123. package/molecules/Modal/Modal.cjs +0 -219
  124. package/molecules/Modal/Modal.cjs.map +0 -7
  125. package/molecules/Modal/ModalWithTransition.cjs +0 -69
  126. package/molecules/Modal/ModalWithTransition.cjs.map +0 -7
  127. package/molecules/Modal/index.cjs +0 -22
  128. package/molecules/Modal/index.cjs.map +0 -7
  129. package/molecules/Panel/Panel.cjs +0 -137
  130. package/molecules/Panel/Panel.cjs.map +0 -7
  131. package/molecules/Panel/index.cjs +0 -21
  132. package/molecules/Panel/index.cjs.map +0 -7
  133. package/molecules/Slider/AbstractSliderChild.cjs +0 -88
  134. package/molecules/Slider/AbstractSliderChild.cjs.map +0 -7
  135. package/molecules/Slider/Slider.cjs +0 -404
  136. package/molecules/Slider/Slider.cjs.map +0 -7
  137. package/molecules/Slider/SliderBtn.cjs +0 -71
  138. package/molecules/Slider/SliderBtn.cjs.map +0 -7
  139. package/molecules/Slider/SliderCount.cjs +0 -44
  140. package/molecules/Slider/SliderCount.cjs.map +0 -7
  141. package/molecules/Slider/SliderDots.cjs +0 -64
  142. package/molecules/Slider/SliderDots.cjs.map +0 -7
  143. package/molecules/Slider/SliderDrag.cjs +0 -66
  144. package/molecules/Slider/SliderDrag.cjs.map +0 -7
  145. package/molecules/Slider/SliderItem.cjs +0 -177
  146. package/molecules/Slider/SliderItem.cjs.map +0 -7
  147. package/molecules/Slider/SliderProgress.cjs +0 -49
  148. package/molecules/Slider/SliderProgress.cjs.map +0 -7
  149. package/molecules/Slider/index.cjs +0 -28
  150. package/molecules/Slider/index.cjs.map +0 -7
  151. package/molecules/Sticky/Sticky.cjs +0 -177
  152. package/molecules/Sticky/Sticky.cjs.map +0 -7
  153. package/molecules/Sticky/index.cjs +0 -21
  154. package/molecules/Sticky/index.cjs.map +0 -7
  155. package/molecules/TableOfContent/TableOfContent.cjs +0 -72
  156. package/molecules/TableOfContent/TableOfContent.cjs.map +0 -7
  157. package/molecules/TableOfContent/TableOfContentAnchor.cjs +0 -76
  158. package/molecules/TableOfContent/TableOfContentAnchor.cjs.map +0 -7
  159. package/molecules/TableOfContent/index.cjs +0 -22
  160. package/molecules/TableOfContent/index.cjs.map +0 -7
  161. package/molecules/Tabs/Tabs.cjs +0 -153
  162. package/molecules/Tabs/Tabs.cjs.map +0 -7
  163. package/molecules/Tabs/index.cjs +0 -21
  164. package/molecules/Tabs/index.cjs.map +0 -7
  165. package/molecules/index.cjs +0 -30
  166. package/molecules/index.cjs.map +0 -7
  167. package/organisms/Frame/Frame.cjs +0 -220
  168. package/organisms/Frame/Frame.cjs.map +0 -7
  169. package/organisms/Frame/FrameAnchor.cjs +0 -41
  170. package/organisms/Frame/FrameAnchor.cjs.map +0 -7
  171. package/organisms/Frame/FrameForm.cjs +0 -41
  172. package/organisms/Frame/FrameForm.cjs.map +0 -7
  173. package/organisms/Frame/FrameTarget.cjs +0 -114
  174. package/organisms/Frame/FrameTarget.cjs.map +0 -7
  175. package/organisms/Frame/index.cjs +0 -24
  176. package/organisms/Frame/index.cjs.map +0 -7
  177. package/organisms/index.cjs +0 -21
  178. package/organisms/index.cjs.map +0 -7
  179. package/primitives/Draggable/Draggable.cjs +0 -65
  180. package/primitives/Draggable/Draggable.cjs.map +0 -7
  181. package/primitives/Draggable/index.cjs +0 -21
  182. package/primitives/Draggable/index.cjs.map +0 -7
  183. package/primitives/Sentinel/Sentinel.cjs +0 -35
  184. package/primitives/Sentinel/Sentinel.cjs.map +0 -7
  185. package/primitives/Sentinel/index.cjs +0 -21
  186. package/primitives/Sentinel/index.cjs.map +0 -7
  187. package/primitives/Transition/Transition.cjs +0 -36
  188. package/primitives/Transition/Transition.cjs.map +0 -7
  189. package/primitives/Transition/index.cjs +0 -21
  190. package/primitives/Transition/index.cjs.map +0 -7
  191. package/primitives/index.cjs +0 -23
  192. package/primitives/index.cjs.map +0 -7
package/README.md CHANGED
@@ -1,9 +1,11 @@
1
1
  # @studiometa/ui
2
2
 
3
- [![NPM Version](https://img.shields.io/npm/v/@studiometa/ui.svg?style=flat-square)](https://www.npmjs.com/package/@studiometa/ui/)
4
- [![Size](https://img.shields.io/bundlephobia/minzip/@studiometa/ui?label=size&style=flat-square)](https://bundlephobia.com/package/@studiometa/ui)
5
- [![Dependency Status](https://img.shields.io/librariesio/release/npm/@studiometa/ui?style=flat-square)](https://david-dm.org/studiometa/js-toolkit)
6
- ![Codecov](https://img.shields.io/codecov/c/github/studiometa/js-toolkit?style=flat-square)
3
+ [![NPM Version](https://img.shields.io/npm/v/@studiometa/ui.svg?style=flat&colorB=3e63dd&colorA=414853)](https://www.npmjs.com/package/@studiometa/ui/)
4
+ [![NPM Next Version](https://img.shields.io/npm/v/@studiometa/ui/next?style=flat&colorB=3e63dd&colorA=414853)](https://www.npmjs.com/package/@studiometa/ui/v/next)
5
+ [![Downloads](https://img.shields.io/npm/dm/@studiometa/ui?style=flat&colorB=3e63dd&colorA=414853)](https://www.npmjs.com/package/@studiometa/ui/)
6
+ [![Size](https://img.shields.io/bundlephobia/minzip/@studiometa/ui?style=flat&colorB=3e63dd&colorA=414853&label=size)](https://bundlephobia.com/package/@studiometa/ui)
7
+ [![Dependency Status](https://img.shields.io/librariesio/release/npm/@studiometa/ui?style=flat&colorB=3e63dd&colorA=414853)](https://david-dm.org/studiometa/js-toolkit)
8
+ ![Codecov](https://img.shields.io/codecov/c/github/studiometa/ui?style=flat&colorB=3e63dd&colorA=414853)
7
9
 
8
10
  > 📦 A set of opiniated, unstyled and accessible components based on [@studiometa/js-toolkit](https://github.com/studiometa/js-toolkit)
9
11
 
@@ -17,7 +17,7 @@ export declare class DataBind<T extends BaseProps = BaseProps> extends Base<Data
17
17
  get value(): any;
18
18
  set value(value: any);
19
19
  get(): any;
20
- set(value: boolean | string | string[]): void;
20
+ set(value: boolean | string | string[], dispatch?: boolean): void;
21
21
  mounted(): void;
22
22
  destroyed(): void;
23
23
  }
@@ -56,21 +56,28 @@ class DataBind extends Base {
56
56
  }
57
57
  if (isCheckbox(target)) {
58
58
  if (multiple) {
59
- const values = [];
59
+ const values = /* @__PURE__ */ new Set();
60
60
  for (const instance of this.relatedInstances) {
61
61
  if (isCheckbox(instance.target) && instance.target.checked) {
62
- values.push(instance.target.value);
62
+ values.add(instance.target.value);
63
63
  }
64
64
  }
65
- return values;
65
+ return Array.from(values);
66
66
  } else {
67
67
  return target.checked;
68
68
  }
69
69
  }
70
70
  return target[this.prop];
71
71
  }
72
- set(value) {
73
- const { target, multiple } = this;
72
+ set(value, dispatch = true) {
73
+ const { target, multiple, relatedInstances } = this;
74
+ if (dispatch) {
75
+ for (const instance of relatedInstances) {
76
+ if (instance !== this && instance.value !== value) {
77
+ instance.set(value, false);
78
+ }
79
+ }
80
+ }
74
81
  if (isSelect(target)) {
75
82
  for (const option of target.options) {
76
83
  option.selected = multiple && isArray(value) ? value.includes(option.value) : option.value === value;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataBind.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isArray } from '@studiometa/js-toolkit/utils';\nimport { isInput, isCheckbox, isSelect } from './utils.js';\n\nconst instances = new Map<string, Set<DataBind>>();\n\nexport interface DataBindProps extends BaseProps {\n $options: {\n prop: string;\n name: string;\n };\n}\n\nexport class DataBind<T extends BaseProps = BaseProps> extends Base<DataBindProps & T> {\n static config: BaseConfig = {\n name: 'DataBind',\n options: {\n prop: String,\n name: String,\n },\n };\n\n get relatedInstances() {\n const { name } = this.$options;\n\n if (!instances.has(name)) {\n instances.set(name, new Set());\n }\n\n return instances.get(name);\n }\n\n get multiple() {\n return this.$options.name.endsWith('[]');\n }\n\n get target() {\n return this.$el;\n }\n\n get prop() {\n if (this.$options.prop) {\n return this.$options.prop;\n }\n\n const { target } = this;\n if (target instanceof HTMLInputElement) {\n return 'value';\n }\n\n return 'textContent';\n }\n\n get value() {\n return this.get();\n }\n\n set value(value) {\n this.set(value);\n }\n\n get() {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n if (multiple) {\n const values = [];\n for (const option of target.options) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n\n return values;\n }\n\n const option = target.options.item(target.selectedIndex);\n return option.value;\n }\n\n if (isCheckbox(target)) {\n if (multiple) {\n const values = [];\n for (const instance of this.relatedInstances) {\n if (isCheckbox(instance.target) && instance.target.checked) {\n values.push(instance.target.value);\n }\n }\n return values;\n } else {\n return target.checked;\n }\n }\n\n return target[this.prop];\n }\n\n set(value: boolean | string | string[]) {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n for (const option of target.options) {\n option.selected =\n multiple && isArray(value) ? value.includes(option.value) : option.value === value;\n }\n return;\n }\n\n if (isInput(target)) {\n switch (target.type) {\n case 'radio':\n target.checked = target.value === value;\n return;\n case 'checkbox':\n target.checked =\n multiple && isArray(value) ? value.includes(target.value) : Boolean(value);\n return;\n }\n }\n\n target[this.prop] = value;\n }\n\n mounted() {\n this.relatedInstances.add(this);\n }\n\n destroyed() {\n this.relatedInstances.delete(this);\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY,gBAAgB;AAE9C,MAAM,YAAY,oBAAI,IAA2B;AAS1C,MAAM,iBAAkD,KAAwB;AAAA,EACrF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,IAAI,mBAAmB;AACrB,UAAM,EAAE,KAAK,IAAI,KAAK;AAEtB,QAAI,CAAC,UAAU,IAAI,IAAI,GAAG;AACxB,gBAAU,IAAI,MAAM,oBAAI,IAAI,CAAC;AAAA,IAC/B;AAEA,WAAO,UAAU,IAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,SAAS,KAAK,SAAS,IAAI;AAAA,EACzC;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACT,QAAI,KAAK,SAAS,MAAM;AACtB,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,kBAAkB,kBAAkB;AACtC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,MAAM,OAAO;AACf,SAAK,IAAI,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM;AACJ,UAAM,EAAE,QAAQ,SAAS,IAAI;AAE7B,QAAI,SAAS,MAAM,GAAG;AACpB,UAAI,UAAU;AACZ,cAAM,SAAS,CAAC;AAChB,mBAAWA,WAAU,OAAO,SAAS;AACnC,cAAIA,QAAO,UAAU;AACnB,mBAAO,KAAKA,QAAO,KAAK;AAAA,UAC1B;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,OAAO,QAAQ,KAAK,OAAO,aAAa;AACvD,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,WAAW,MAAM,GAAG;AACtB,UAAI,UAAU;AACZ,cAAM,SAAS,CAAC;AAChB,mBAAW,YAAY,KAAK,kBAAkB;AAC5C,cAAI,WAAW,SAAS,MAAM,KAAK,SAAS,OAAO,SAAS;AAC1D,mBAAO,KAAK,SAAS,OAAO,KAAK;AAAA,UACnC;AAAA,QACF;AACA,eAAO;AAAA,MACT,OAAO;AACL,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,IAAI,OAAoC;AACtC,UAAM,EAAE,QAAQ,SAAS,IAAI;AAE7B,QAAI,SAAS,MAAM,GAAG;AACpB,iBAAW,UAAU,OAAO,SAAS;AACnC,eAAO,WACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU;AAAA,MACjF;AACA;AAAA,IACF;AAEA,QAAI,QAAQ,MAAM,GAAG;AACnB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK;AACH,iBAAO,UAAU,OAAO,UAAU;AAClC;AAAA,QACF,KAAK;AACH,iBAAO,UACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,QAAQ,KAAK;AAC3E;AAAA,MACJ;AAAA,IACF;AAEA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,iBAAiB,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,YAAY;AACV,SAAK,iBAAiB,OAAO,IAAI;AAAA,EACnC;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isArray } from '@studiometa/js-toolkit/utils';\nimport { isInput, isCheckbox, isSelect } from './utils.js';\n\nconst instances = new Map<string, Set<DataBind>>();\n\nexport interface DataBindProps extends BaseProps {\n $options: {\n prop: string;\n name: string;\n };\n}\n\nexport class DataBind<T extends BaseProps = BaseProps> extends Base<DataBindProps & T> {\n static config: BaseConfig = {\n name: 'DataBind',\n options: {\n prop: String,\n name: String,\n },\n };\n\n get relatedInstances() {\n const { name } = this.$options;\n\n if (!instances.has(name)) {\n instances.set(name, new Set());\n }\n\n return instances.get(name);\n }\n\n get multiple() {\n return this.$options.name.endsWith('[]');\n }\n\n get target() {\n return this.$el;\n }\n\n get prop() {\n if (this.$options.prop) {\n return this.$options.prop;\n }\n\n const { target } = this;\n if (target instanceof HTMLInputElement) {\n return 'value';\n }\n\n return 'textContent';\n }\n\n get value() {\n return this.get();\n }\n\n set value(value) {\n this.set(value);\n }\n\n get() {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n if (multiple) {\n const values = [];\n for (const option of target.options) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n\n return values;\n }\n\n const option = target.options.item(target.selectedIndex);\n return option.value;\n }\n\n if (isCheckbox(target)) {\n if (multiple) {\n const values = new Set();\n for (const instance of this.relatedInstances) {\n if (isCheckbox(instance.target) && instance.target.checked) {\n values.add(instance.target.value);\n }\n }\n return Array.from(values);\n } else {\n return target.checked;\n }\n }\n\n return target[this.prop];\n }\n\n set(value: boolean | string | string[], dispatch = true) {\n const { target, multiple, relatedInstances } = this;\n\n if (dispatch) {\n for (const instance of relatedInstances) {\n if (instance !== this && instance.value !== value) {\n instance.set(value, false);\n }\n }\n }\n\n if (isSelect(target)) {\n for (const option of target.options) {\n option.selected =\n multiple && isArray(value) ? value.includes(option.value) : option.value === value;\n }\n return;\n }\n\n if (isInput(target)) {\n switch (target.type) {\n case 'radio':\n target.checked = target.value === value;\n return;\n case 'checkbox':\n target.checked =\n multiple && isArray(value) ? value.includes(target.value) : Boolean(value);\n return;\n }\n }\n\n target[this.prop] = value;\n }\n\n mounted() {\n this.relatedInstances.add(this);\n }\n\n destroyed() {\n this.relatedInstances.delete(this);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY,gBAAgB;AAE9C,MAAM,YAAY,oBAAI,IAA2B;AAS1C,MAAM,iBAAkD,KAAwB;AAAA,EACrF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,IAAI,mBAAmB;AACrB,UAAM,EAAE,KAAK,IAAI,KAAK;AAEtB,QAAI,CAAC,UAAU,IAAI,IAAI,GAAG;AACxB,gBAAU,IAAI,MAAM,oBAAI,IAAI,CAAC;AAAA,IAC/B;AAEA,WAAO,UAAU,IAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,SAAS,KAAK,SAAS,IAAI;AAAA,EACzC;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACT,QAAI,KAAK,SAAS,MAAM;AACtB,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,kBAAkB,kBAAkB;AACtC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,MAAM,OAAO;AACf,SAAK,IAAI,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM;AACJ,UAAM,EAAE,QAAQ,SAAS,IAAI;AAE7B,QAAI,SAAS,MAAM,GAAG;AACpB,UAAI,UAAU;AACZ,cAAM,SAAS,CAAC;AAChB,mBAAWA,WAAU,OAAO,SAAS;AACnC,cAAIA,QAAO,UAAU;AACnB,mBAAO,KAAKA,QAAO,KAAK;AAAA,UAC1B;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,OAAO,QAAQ,KAAK,OAAO,aAAa;AACvD,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,WAAW,MAAM,GAAG;AACtB,UAAI,UAAU;AACZ,cAAM,SAAS,oBAAI,IAAI;AACvB,mBAAW,YAAY,KAAK,kBAAkB;AAC5C,cAAI,WAAW,SAAS,MAAM,KAAK,SAAS,OAAO,SAAS;AAC1D,mBAAO,IAAI,SAAS,OAAO,KAAK;AAAA,UAClC;AAAA,QACF;AACA,eAAO,MAAM,KAAK,MAAM;AAAA,MAC1B,OAAO;AACL,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,IAAI,OAAoC,WAAW,MAAM;AACvD,UAAM,EAAE,QAAQ,UAAU,iBAAiB,IAAI;AAE/C,QAAI,UAAU;AACZ,iBAAW,YAAY,kBAAkB;AACvC,YAAI,aAAa,QAAQ,SAAS,UAAU,OAAO;AACjD,mBAAS,IAAI,OAAO,KAAK;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS,MAAM,GAAG;AACpB,iBAAW,UAAU,OAAO,SAAS;AACnC,eAAO,WACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU;AAAA,MACjF;AACA;AAAA,IACF;AAEA,QAAI,QAAQ,MAAM,GAAG;AACnB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK;AACH,iBAAO,UAAU,OAAO,UAAU;AAClC;AAAA,QACF,KAAK;AACH,iBAAO,UACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,QAAQ,KAAK;AAC3E;AAAA,MACJ;AAAA,IACF;AAEA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,iBAAiB,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,YAAY;AACV,SAAK,iBAAiB,OAAO,IAAI;AAAA,EACnC;AACF;",
6
6
  "names": ["option"]
7
7
  }
@@ -19,7 +19,7 @@ class DataComputed extends DataBind {
19
19
  } catch (error) {
20
20
  console.error("Failed", error);
21
21
  }
22
- super.set(newValue);
22
+ super.set(newValue, false);
23
23
  }
24
24
  }
25
25
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataComputed.ts"],
4
- "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isDefined } from '@studiometa/js-toolkit/utils';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataComputedProps extends DataBindProps {\n $options: {\n compute: string;\n } & DataBindProps['$options'];\n}\n\nconst callbacks = new Map<string, Function>();\n\nexport class DataComputed<T extends BaseProps = BaseProps> extends DataBind<DataComputedProps & T> {\n static config: BaseConfig = {\n name: 'DataComputed',\n options: {\n compute: String,\n },\n };\n\n get compute() {\n const { name, compute } = this.$options;\n return getCallback(name, `return ${compute};`);\n }\n\n set(value: boolean | string | string[]) {\n let newValue = value;\n\n try {\n newValue = this.compute(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n\n super.set(newValue);\n }\n}\n"],
5
- "mappings": "AAEA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQ5B,MAAM,YAAY,oBAAI,IAAsB;AAErC,MAAM,qBAAsD,SAAgC;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,MAAM,QAAQ,IAAI,KAAK;AAC/B,WAAO,YAAY,MAAM,UAAU,OAAO,GAAG;AAAA,EAC/C;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI,WAAW;AAEf,QAAI;AACF,iBAAW,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAC5C,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAEA,UAAM,IAAI,QAAQ;AAAA,EACpB;AACF;",
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isDefined } from '@studiometa/js-toolkit/utils';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataComputedProps extends DataBindProps {\n $options: {\n compute: string;\n } & DataBindProps['$options'];\n}\n\nconst callbacks = new Map<string, Function>();\n\nexport class DataComputed<T extends BaseProps = BaseProps> extends DataBind<DataComputedProps & T> {\n static config: BaseConfig = {\n name: 'DataComputed',\n options: {\n compute: String,\n },\n };\n\n get compute() {\n const { name, compute } = this.$options;\n return getCallback(name, `return ${compute};`);\n }\n\n set(value: boolean | string | string[]) {\n let newValue = value;\n\n try {\n newValue = this.compute(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n\n super.set(newValue, false);\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQ5B,MAAM,YAAY,oBAAI,IAAsB;AAErC,MAAM,qBAAsD,SAAgC;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,MAAM,QAAQ,IAAI,KAAK;AAC/B,WAAO,YAAY,MAAM,UAAU,OAAO,GAAG;AAAA,EAC/C;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI,WAAW;AAEf,QAAI;AACF,iBAAW,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAC5C,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAEA,UAAM,IAAI,UAAU,KAAK;AAAA,EAC3B;AACF;",
6
6
  "names": []
7
7
  }
@@ -5,5 +5,6 @@ export interface DataModelProps extends DataBindProps {
5
5
  }
6
6
  export declare class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {
7
7
  static config: BaseConfig;
8
+ dispatch(): void;
8
9
  onInput(): void;
9
10
  }
@@ -1,14 +1,24 @@
1
1
  import { DataBind } from "./DataBind.js";
2
+ import { isCheckbox } from "./utils.js";
2
3
  class DataModel extends DataBind {
3
4
  static config = {
4
5
  name: "DataModel"
5
6
  };
6
- onInput() {
7
- const value = this.get();
7
+ dispatch() {
8
+ const { target, multiple } = this;
9
+ let value = this.get();
10
+ if (multiple && isCheckbox(target) && !target.checked) {
11
+ const set = new Set(value);
12
+ set.delete(target.value);
13
+ value = Array.from(set);
14
+ }
8
15
  for (const instance of this.relatedInstances) {
9
- instance.set(value);
16
+ instance.set(value, false);
10
17
  }
11
18
  }
19
+ onInput() {
20
+ this.dispatch();
21
+ }
12
22
  }
13
23
  export {
14
24
  DataModel
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataModel.ts"],
4
- "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\n\nexport interface DataModelProps extends DataBindProps {}\n\nexport class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {\n static config: BaseConfig = {\n name: 'DataModel',\n };\n\n onInput() {\n const value = this.get();\n for (const instance of this.relatedInstances) {\n instance.set(value);\n }\n }\n}\n"],
5
- "mappings": "AACA,SAAS,gBAAgB;AAKlB,MAAM,kBAAmD,SAA6B;AAAA,EAC3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAEA,UAAU;AACR,UAAM,QAAQ,KAAK,IAAI;AACvB,eAAW,YAAY,KAAK,kBAAkB;AAC5C,eAAS,IAAI,KAAK;AAAA,IACpB;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { isCheckbox } from './utils.js';\n\nexport interface DataModelProps extends DataBindProps {}\n\nexport class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {\n static config: BaseConfig = {\n name: 'DataModel',\n };\n\n dispatch() {\n const { target, multiple } = this;\n let value = this.get();\n\n if (multiple && isCheckbox(target) && !target.checked) {\n const set = new Set(value);\n set.delete(target.value);\n value = Array.from(set);\n }\n\n for (const instance of this.relatedInstances) {\n instance.set(value, false);\n }\n }\n\n onInput() {\n this.dispatch();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,kBAAkB;AAIpB,MAAM,kBAAmD,SAA6B;AAAA,EAC3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM,EAAE,QAAQ,SAAS,IAAI;AAC7B,QAAI,QAAQ,KAAK,IAAI;AAErB,QAAI,YAAY,WAAW,MAAM,KAAK,CAAC,OAAO,SAAS;AACrD,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,UAAI,OAAO,OAAO,KAAK;AACvB,cAAQ,MAAM,KAAK,GAAG;AAAA,IACxB;AAEA,eAAW,YAAY,KAAK,kBAAkB;AAC5C,eAAS,IAAI,OAAO,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,UAAU;AACR,SAAK,SAAS;AAAA,EAChB;AACF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiometa/ui",
3
- "version": "1.0.0-alpha.0",
3
+ "version": "1.0.0-alpha.2",
4
4
  "description": "A set of opiniated, unstyled and accessible components",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,115 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/atoms/Action/Action.ts
20
- var Action_exports = {};
21
- __export(Action_exports, {
22
- Action: () => Action
23
- });
24
- module.exports = __toCommonJS(Action_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var TARGET_REGEX = /([a-zA-Z]+)(\((.*)\))?/;
27
- var effectCache = /* @__PURE__ */ new Map();
28
- var Action = class extends import_js_toolkit.Base {
29
- static config = {
30
- name: "Action",
31
- options: {
32
- on: {
33
- type: String,
34
- default: "click"
35
- },
36
- target: String,
37
- selector: String,
38
- effect: String
39
- }
40
- };
41
- get event() {
42
- const [event] = this.$options.on.split(".", 1);
43
- return event;
44
- }
45
- get modifiers() {
46
- return this.$options.on.split(".").slice(1);
47
- }
48
- get effect() {
49
- const { effect } = this.$options;
50
- if (!effectCache.has(effect)) {
51
- effectCache.set(effect, new Function("ctx", "event", "target", `return ${effect}`));
52
- }
53
- return effectCache.get(effect);
54
- }
55
- get targets() {
56
- const { target } = this.$options;
57
- const parts = target.split(" ").map((part) => {
58
- const [, name, , selector] = part.match(TARGET_REGEX) ?? [];
59
- return [name, selector];
60
- });
61
- const targets = [];
62
- for (const instance of (0, import_js_toolkit.getInstances)()) {
63
- const { name } = instance.__config;
64
- for (const part of parts) {
65
- const shouldPush = part[0] === name && (!part[1] || part[1] && instance.$el.matches(part[1]));
66
- if (shouldPush) {
67
- targets.push({ [instance.$options.name]: instance });
68
- }
69
- }
70
- }
71
- return targets;
72
- }
73
- /**
74
- * Run method on targeted components
75
- */
76
- handleEvent(event) {
77
- const { targets, effect, modifiers } = this;
78
- if (modifiers.includes("prevent")) {
79
- event.preventDefault();
80
- }
81
- if (modifiers.includes("stop")) {
82
- event.stopPropagation();
83
- }
84
- for (const target of targets) {
85
- try {
86
- const [name, currentTarget] = Object.entries(target).flat();
87
- const value = effect(target, event, currentTarget);
88
- if (typeof value === "function") {
89
- value(target, event, currentTarget);
90
- }
91
- } catch (err) {
92
- this.$warn(err);
93
- }
94
- }
95
- }
96
- /**
97
- * Mounted
98
- */
99
- mounted() {
100
- const { event, modifiers } = this;
101
- this.$el.addEventListener(event, this, {
102
- capture: modifiers.includes("capture"),
103
- once: modifiers.includes("once"),
104
- passive: modifiers.includes("passive")
105
- });
106
- }
107
- /**
108
- * Destroyed
109
- */
110
- destroyed() {
111
- this.$el.removeEventListener(this.$options.on, this);
112
- }
113
- };
114
- if (module.exports.default) module.exports = module.exports.default;
115
- //# sourceMappingURL=Action.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/Action.ts"],
4
- "sourcesContent": ["import { Base, getInstances } from '@studiometa/js-toolkit';\nimport { isFunction } from '@studiometa/js-toolkit/utils';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\n\nexport interface ActionProps extends BaseProps {\n $options: {\n on: string;\n target: string;\n selector: string;\n effect: string;\n };\n}\n\n/**\n * Extract component name and an optional additional selector from a string.\n * @type {RegExp}\n */\nconst TARGET_REGEX = /([a-zA-Z]+)(\\((.*)\\))?/;\n\nconst effectCache = new Map<string, Function>();\n\n/**\n * Action class.\n */\nexport class Action<T extends BaseProps = BaseProps> extends Base<ActionProps & T> {\n static config: BaseConfig = {\n name: 'Action',\n options: {\n on: {\n type: String,\n default: 'click',\n },\n target: String,\n selector: String,\n effect: String,\n },\n };\n\n get event() {\n const [event] = this.$options.on.split('.', 1);\n return event;\n }\n\n get modifiers() {\n return this.$options.on.split('.').slice(1);\n }\n\n get effect() {\n const { effect } = this.$options;\n if (!effectCache.has(effect)) {\n effectCache.set(effect, new Function('ctx', 'event', 'target', `return ${effect}`));\n }\n return effectCache.get(effect);\n }\n\n get targets() {\n const { target } = this.$options;\n const parts = target.split(' ').map((part) => {\n const [, name, , selector] = part.match(TARGET_REGEX) ?? [];\n return [name, selector];\n });\n\n const targets = [] as Array<Record<string, Base>>;\n\n for (const instance of getInstances()) {\n const { name } = instance.__config;\n\n for (const part of parts) {\n const shouldPush =\n part[0] === name && (!part[1] || (part[1] && instance.$el.matches(part[1])));\n if (shouldPush) {\n targets.push({ [instance.$options.name]: instance });\n }\n }\n }\n\n return targets;\n }\n\n /**\n * Run method on targeted components\n */\n handleEvent(event: Event) {\n const { targets, effect, modifiers } = this;\n\n if (modifiers.includes('prevent')) {\n event.preventDefault();\n }\n\n if (modifiers.includes('stop')) {\n event.stopPropagation();\n }\n\n for (const target of targets) {\n try {\n const [name, currentTarget] = Object.entries(target).flat();\n const value = effect(target, event, currentTarget);\n if (typeof value === 'function') {\n value(target, event, currentTarget);\n }\n } catch (err) {\n this.$warn(err);\n }\n }\n }\n\n /**\n * Mounted\n */\n mounted() {\n const { event, modifiers } = this;\n\n this.$el.addEventListener(event, this, {\n capture: modifiers.includes('capture'),\n once: modifiers.includes('once'),\n passive: modifiers.includes('passive'),\n });\n }\n\n /**\n * Destroyed\n */\n destroyed() {\n this.$el.removeEventListener(this.$options.on, this);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAmC;AAiBnC,IAAM,eAAe;AAErB,IAAM,cAAc,oBAAI,IAAsB;AAKvC,IAAM,SAAN,cAAsD,uBAAsB;AAAA,EACjF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,IAAI;AAAA,QACF,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EAEA,IAAI,QAAQ;AACV,UAAM,CAAC,KAAK,IAAI,KAAK,SAAS,GAAG,MAAM,KAAK,CAAC;AAC7C,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,SAAS,GAAG,MAAM,GAAG,EAAE,MAAM,CAAC;AAAA,EAC5C;AAAA,EAEA,IAAI,SAAS;AACX,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,QAAI,CAAC,YAAY,IAAI,MAAM,GAAG;AAC5B,kBAAY,IAAI,QAAQ,IAAI,SAAS,OAAO,SAAS,UAAU,UAAU,MAAM,EAAE,CAAC;AAAA,IACpF;AACA,WAAO,YAAY,IAAI,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,OAAO,IAAI,KAAK;AACxB,UAAM,QAAQ,OAAO,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS;AAC5C,YAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK,MAAM,YAAY,KAAK,CAAC;AAC1D,aAAO,CAAC,MAAM,QAAQ;AAAA,IACxB,CAAC;AAED,UAAM,UAAU,CAAC;AAEjB,eAAW,gBAAY,gCAAa,GAAG;AACrC,YAAM,EAAE,KAAK,IAAI,SAAS;AAE1B,iBAAW,QAAQ,OAAO;AACxB,cAAM,aACJ,KAAK,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,KAAM,KAAK,CAAC,KAAK,SAAS,IAAI,QAAQ,KAAK,CAAC,CAAC;AAC3E,YAAI,YAAY;AACd,kBAAQ,KAAK,EAAE,CAAC,SAAS,SAAS,IAAI,GAAG,SAAS,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,OAAc;AACxB,UAAM,EAAE,SAAS,QAAQ,UAAU,IAAI;AAEvC,QAAI,UAAU,SAAS,SAAS,GAAG;AACjC,YAAM,eAAe;AAAA,IACvB;AAEA,QAAI,UAAU,SAAS,MAAM,GAAG;AAC9B,YAAM,gBAAgB;AAAA,IACxB;AAEA,eAAW,UAAU,SAAS;AAC5B,UAAI;AACF,cAAM,CAAC,MAAM,aAAa,IAAI,OAAO,QAAQ,MAAM,EAAE,KAAK;AAC1D,cAAM,QAAQ,OAAO,QAAQ,OAAO,aAAa;AACjD,YAAI,OAAO,UAAU,YAAY;AAC/B,gBAAM,QAAQ,OAAO,aAAa;AAAA,QACpC;AAAA,MACF,SAAS,KAAK;AACZ,aAAK,MAAM,GAAG;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,UAAM,EAAE,OAAO,UAAU,IAAI;AAE7B,SAAK,IAAI,iBAAiB,OAAO,MAAM;AAAA,MACrC,SAAS,UAAU,SAAS,SAAS;AAAA,MACrC,MAAM,UAAU,SAAS,MAAM;AAAA,MAC/B,SAAS,UAAU,SAAS,SAAS;AAAA,IACvC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY;AACV,SAAK,IAAI,oBAAoB,KAAK,SAAS,IAAI,IAAI;AAAA,EACrD;AACF;",
6
- "names": []
7
- }
@@ -1,35 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/atoms/Action/Target.ts
20
- var Target_exports = {};
21
- __export(Target_exports, {
22
- Target: () => Target
23
- });
24
- module.exports = __toCommonJS(Target_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var Target = class extends import_js_toolkit.Base {
27
- /**
28
- * Config.
29
- */
30
- static config = {
31
- name: "Target"
32
- };
33
- };
34
- if (module.exports.default) module.exports = module.exports.default;
35
- //# sourceMappingURL=Target.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/Target.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\nexport interface TargetProps extends BaseProps {}\n\n/**\n * Target class.\n */\nexport class Target extends Base<TargetProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Target',\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAQd,IAAM,SAAN,cAAqB,uBAAkB;AAAA;AAAA;AAAA;AAAA,EAI5C,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AACF;",
6
- "names": []
7
- }
@@ -1,22 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // packages/ui/atoms/Action/index.ts
17
- var Action_exports = {};
18
- module.exports = __toCommonJS(Action_exports);
19
- __reExport(Action_exports, require("./Action.cjs"), module.exports);
20
- __reExport(Action_exports, require("./Target.cjs"), module.exports);
21
- if (module.exports.default) module.exports = module.exports.default;
22
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/Action/index.ts"],
4
- "sourcesContent": ["export * from './Action.js';\nexport * from './Target.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,yBAAd;AACA,2BAAc,yBADd;",
6
- "names": []
7
- }
@@ -1,52 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/atoms/AnchorScrollTo/AnchorScrollTo.ts
20
- var AnchorScrollTo_exports = {};
21
- __export(AnchorScrollTo_exports, {
22
- AnchorScrollTo: () => AnchorScrollTo
23
- });
24
- module.exports = __toCommonJS(AnchorScrollTo_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var AnchorScrollTo = class extends import_js_toolkit.Base {
28
- static config = {
29
- name: "AnchorScrollTo"
30
- };
31
- /**
32
- * Get the target selector.
33
- * @returns {string}
34
- */
35
- get targetSelector() {
36
- return this.$el.hash;
37
- }
38
- /**
39
- * Scroll to the target selector on click.
40
- * @param {MouseEvent} event
41
- * @returns {void}
42
- */
43
- onClick(event) {
44
- try {
45
- (0, import_utils.scrollTo)(this.targetSelector);
46
- event.preventDefault();
47
- } catch {
48
- }
49
- }
50
- };
51
- if (module.exports.default) module.exports = module.exports.default;
52
- //# sourceMappingURL=AnchorScrollTo.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/AnchorScrollTo/AnchorScrollTo.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { scrollTo } from '@studiometa/js-toolkit/utils';\n\nexport interface AnchorScrollToProps extends BaseProps {\n $el: HTMLAnchorElement;\n}\n\n/**\n * AncorScrollTo class.\n */\nexport class AnchorScrollTo<T extends BaseProps = BaseProps> extends Base<AnchorScrollToProps & T> {\n static config: BaseConfig = {\n name: 'AnchorScrollTo',\n };\n\n /**\n * Get the target selector.\n * @returns {string}\n */\n get targetSelector() {\n return this.$el.hash;\n }\n\n /**\n * Scroll to the target selector on click.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick(event) {\n try {\n scrollTo(this.targetSelector);\n event.preventDefault();\n } catch {\n // Silence is golden.\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAErB,mBAAyB;AASlB,IAAM,iBAAN,cAA8D,uBAA8B;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACnB,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,OAAO;AACb,QAAI;AACF,iCAAS,KAAK,cAAc;AAC5B,YAAM,eAAe;AAAA,IACvB,QAAQ;AAAA,IAER;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,21 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // packages/ui/atoms/AnchorScrollTo/index.ts
17
- var AnchorScrollTo_exports = {};
18
- module.exports = __toCommonJS(AnchorScrollTo_exports);
19
- __reExport(AnchorScrollTo_exports, require("./AnchorScrollTo.cjs"), module.exports);
20
- if (module.exports.default) module.exports = module.exports.default;
21
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/AnchorScrollTo/index.ts"],
4
- "sourcesContent": ["export * from './AnchorScrollTo.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mCAAc,iCAAd;",
6
- "names": []
7
- }
@@ -1,69 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/atoms/CircularMarquee/CircularMarquee.ts
20
- var CircularMarquee_exports = {};
21
- __export(CircularMarquee_exports, {
22
- CircularMarquee: () => CircularMarquee
23
- });
24
- module.exports = __toCommonJS(CircularMarquee_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var CircularMarquee = class extends import_js_toolkit.Base {
28
- /**
29
- * CircularMarquee Configuration
30
- */
31
- static config = {
32
- name: "CircularMarquee",
33
- options: {
34
- sensitivity: {
35
- type: Number,
36
- default: 0.1
37
- }
38
- }
39
- };
40
- /**
41
- * Rotate value.
42
- * @type {number}
43
- */
44
- rotate = 0;
45
- /**
46
- * Scroll delta Y.
47
- * @type {number}
48
- */
49
- deltaY = 0;
50
- /**
51
- * Transform values.
52
- * @type {object}
53
- */
54
- transform = {
55
- rotate: 0
56
- };
57
- scrolled(props) {
58
- this.deltaY = props.delta.y;
59
- }
60
- ticked() {
61
- this.rotate -= (Math.abs(this.deltaY) + 1) * this.$options.sensitivity;
62
- this.transform.rotate = (0, import_utils.damp)(this.rotate, this.transform.rotate, 0.25);
63
- return () => {
64
- (0, import_utils.transform)(this.$el, this.transform);
65
- };
66
- }
67
- };
68
- if (module.exports.default) module.exports = module.exports.default;
69
- //# sourceMappingURL=CircularMarquee.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/CircularMarquee/CircularMarquee.ts"],
4
- "sourcesContent": ["import { Base, BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { damp, transform } from '@studiometa/js-toolkit/utils';\n\nexport interface CircularMarqueeProps extends BaseProps {\n $options: {\n sensitivity: number;\n };\n}\n\n/**\n * CircularMarquee component\n */\nexport class CircularMarquee extends Base<CircularMarqueeProps> {\n /**\n * CircularMarquee Configuration\n */\n static config: BaseConfig = {\n name: 'CircularMarquee',\n options: {\n sensitivity: {\n type: Number,\n default: 0.1,\n },\n },\n };\n\n /**\n * Rotate value.\n * @type {number}\n */\n rotate = 0;\n\n /**\n * Scroll delta Y.\n * @type {number}\n */\n deltaY = 0;\n\n /**\n * Transform values.\n * @type {object}\n */\n transform = {\n rotate: 0,\n };\n\n scrolled(props) {\n this.deltaY = props.delta.y;\n }\n\n ticked() {\n this.rotate -= (Math.abs(this.deltaY) + 1) * this.$options.sensitivity;\n\n this.transform.rotate = damp(this.rotate, this.transform.rotate, 0.25);\n\n return () => {\n transform(this.$el, this.transform);\n };\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA4C;AAC5C,mBAAgC;AAWzB,IAAM,kBAAN,cAA8B,uBAA2B;AAAA;AAAA;AAAA;AAAA,EAI9D,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EAEA,SAAS,OAAO;AACd,SAAK,SAAS,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,SAAS;AACP,SAAK,WAAW,KAAK,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS;AAE3D,SAAK,UAAU,aAAS,mBAAK,KAAK,QAAQ,KAAK,UAAU,QAAQ,IAAI;AAErE,WAAO,MAAM;AACX,kCAAU,KAAK,KAAK,KAAK,SAAS;AAAA,IACpC;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,21 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // packages/ui/atoms/CircularMarquee/index.ts
17
- var CircularMarquee_exports = {};
18
- module.exports = __toCommonJS(CircularMarquee_exports);
19
- __reExport(CircularMarquee_exports, require("./CircularMarquee.cjs"), module.exports);
20
- if (module.exports.default) module.exports = module.exports.default;
21
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/atoms/CircularMarquee/index.ts"],
4
- "sourcesContent": ["export * from './CircularMarquee.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oCAAc,kCAAd;",
6
- "names": []
7
- }