@studiometa/ui 1.0.0-alpha.7 → 1.0.0-alpha.9

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 (49) hide show
  1. package/atoms/Action/Action.d.ts +4 -6
  2. package/atoms/Action/Action.js +25 -63
  3. package/atoms/Action/Action.js.map +2 -2
  4. package/atoms/Action/ActionEvent.d.ts +55 -0
  5. package/atoms/Action/ActionEvent.js +130 -0
  6. package/atoms/Action/ActionEvent.js.map +7 -0
  7. package/atoms/Data/DataBind.d.ts +1 -1
  8. package/atoms/Data/DataBind.js +4 -4
  9. package/atoms/Data/DataBind.js.map +2 -2
  10. package/atoms/Data/DataComputed.js +2 -2
  11. package/atoms/Data/DataComputed.js.map +2 -2
  12. package/atoms/Data/DataEffect.js +2 -2
  13. package/atoms/Data/DataEffect.js.map +2 -2
  14. package/atoms/Figure/AbstractFigure.d.ts +41 -0
  15. package/atoms/Figure/AbstractFigure.js +65 -0
  16. package/atoms/Figure/AbstractFigure.js.map +7 -0
  17. package/atoms/Figure/AbstractFigureDynamic.d.ts +29 -0
  18. package/atoms/Figure/AbstractFigureDynamic.js +48 -0
  19. package/atoms/Figure/AbstractFigureDynamic.js.map +7 -0
  20. package/atoms/Figure/Figure.d.ts +4 -35
  21. package/atoms/Figure/Figure.js +5 -68
  22. package/atoms/Figure/Figure.js.map +2 -2
  23. package/atoms/Figure/FigureShopify.d.ts +23 -0
  24. package/atoms/Figure/FigureShopify.js +38 -0
  25. package/atoms/Figure/FigureShopify.js.map +7 -0
  26. package/atoms/Figure/FigureTwicpics.d.ts +3 -19
  27. package/atoms/Figure/FigureTwicpics.js +10 -32
  28. package/atoms/Figure/FigureTwicpics.js.map +2 -2
  29. package/atoms/Figure/index.d.ts +1 -0
  30. package/atoms/Figure/index.js +1 -0
  31. package/atoms/Figure/index.js.map +2 -2
  32. package/atoms/Figure/utils.d.ts +8 -0
  33. package/atoms/Figure/utils.js +15 -0
  34. package/atoms/Figure/utils.js.map +7 -0
  35. package/atoms/FigureVideo/FigureVideo.js +1 -1
  36. package/atoms/FigureVideo/FigureVideo.js.map +1 -1
  37. package/atoms/FigureVideo/FigureVideoTwicpics.js +1 -1
  38. package/atoms/FigureVideo/FigureVideoTwicpics.js.map +1 -1
  39. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.d.ts +1 -1
  40. package/atoms/ScrollAnimation/ScrollAnimationWithEase.d.ts +1 -1
  41. package/decorators/withTransition.d.ts +1 -0
  42. package/decorators/withTransition.js +47 -23
  43. package/decorators/withTransition.js.map +2 -2
  44. package/molecules/AnchorNav/AnchorNavLink.d.ts +1 -1
  45. package/molecules/Menu/MenuList.d.ts +1 -1
  46. package/molecules/Slider/SliderDots.d.ts +1 -1
  47. package/organisms/Frame/FrameTarget.d.ts +1 -1
  48. package/package.json +1 -1
  49. package/primitives/Transition/Transition.d.ts +1 -1
@@ -1,4 +1,4 @@
1
- declare const ScrollAnimationWithEase_base: import("@studiometa/js-toolkit").BaseDecorator<import("./animationScrollWithEase.js").AnimationScrollWithEaseInterface, import("#private").AbstractScrollAnimation<import("@studiometa/js-toolkit").BaseProps>, import("./animationScrollWithEase.js").AnimationScrollWithEaseProps>;
1
+ declare const ScrollAnimationWithEase_base: import("@studiometa/js-toolkit").BaseDecorator<import("./animationScrollWithEase.js").AnimationScrollWithEaseInterface, import("#private/index.js").AbstractScrollAnimation<import("@studiometa/js-toolkit").BaseProps>, import("./animationScrollWithEase.js").AnimationScrollWithEaseProps>;
2
2
  /**
3
3
  * ScrollAnimation class.
4
4
  */
@@ -9,6 +9,7 @@ export interface TransitionProps extends BaseProps {
9
9
  leaveActive: string;
10
10
  leaveTo: string;
11
11
  leaveKeep: boolean;
12
+ group: string;
12
13
  };
13
14
  }
14
15
  export interface TransitionInterface extends BaseInterface {
@@ -1,3 +1,4 @@
1
+ import { getInstances } from "@studiometa/js-toolkit";
1
2
  import { transition } from "@studiometa/js-toolkit/utils";
2
3
  function withTransition(BaseClass) {
3
4
  class Transition extends BaseClass {
@@ -14,7 +15,8 @@ function withTransition(BaseClass) {
14
15
  leaveFrom: String,
15
16
  leaveActive: String,
16
17
  leaveTo: String,
17
- leaveKeep: Boolean
18
+ leaveKeep: Boolean,
19
+ group: String
18
20
  }
19
21
  };
20
22
  /**
@@ -26,34 +28,56 @@ function withTransition(BaseClass) {
26
28
  /**
27
29
  * Trigger the enter transition.
28
30
  */
29
- async enter(target) {
31
+ async enter(target, { dispatch = true } = {}) {
30
32
  const { enterFrom, enterActive, enterTo, enterKeep, leaveTo } = this.$options;
31
- await transition(
32
- target ?? this.target,
33
- {
34
- // eslint-disable-next-line prefer-template
35
- from: (leaveTo + " " + enterFrom).trim(),
36
- active: enterActive,
37
- to: enterTo
38
- },
39
- enterKeep ? "keep" : void 0
40
- );
33
+ await Promise.all([
34
+ transition(
35
+ target ?? this.target,
36
+ {
37
+ // eslint-disable-next-line prefer-template
38
+ from: (leaveTo + " " + enterFrom).trim(),
39
+ active: enterActive,
40
+ to: enterTo
41
+ },
42
+ enterKeep ? "keep" : void 0
43
+ ),
44
+ dispatch && this.dispatch("enter")
45
+ ]);
41
46
  }
42
47
  /**
43
48
  * Trigger the leave transition.
44
49
  */
45
- async leave(target) {
50
+ async leave(target, { dispatch = true } = {}) {
46
51
  const { leaveFrom, leaveActive, leaveTo, leaveKeep, enterTo } = this.$options;
47
- await transition(
48
- target ?? this.target,
49
- {
50
- // eslint-disable-next-line prefer-template
51
- from: (enterTo + " " + leaveFrom).trim(),
52
- active: leaveActive,
53
- to: leaveTo
54
- },
55
- leaveKeep ? "keep" : void 0
56
- );
52
+ await Promise.all([
53
+ transition(
54
+ target ?? this.target,
55
+ {
56
+ // eslint-disable-next-line prefer-template
57
+ from: (enterTo + " " + leaveFrom).trim(),
58
+ active: leaveActive,
59
+ to: leaveTo
60
+ },
61
+ leaveKeep ? "keep" : void 0
62
+ ),
63
+ dispatch && this.dispatch("leave")
64
+ ]);
65
+ }
66
+ /**
67
+ * Dispatch the callback to related instances.
68
+ */
69
+ async dispatch(method) {
70
+ const { group } = this.$options;
71
+ if (!group) {
72
+ return;
73
+ }
74
+ const promises = [];
75
+ for (const instance of getInstances(Transition)) {
76
+ if (instance !== this && instance.$options.group === group) {
77
+ promises.push(instance[method](void 0, { dispatch: false }));
78
+ }
79
+ }
80
+ await Promise.all(promises);
57
81
  }
58
82
  }
59
83
  return Transition;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/ui/decorators/withTransition.ts"],
4
- "sourcesContent": ["import { transition } from '@studiometa/js-toolkit/utils';\nimport type {\n Base,\n BaseDecorator,\n BaseProps,\n BaseConfig,\n BaseInterface,\n} from '@studiometa/js-toolkit';\n\nexport interface TransitionProps extends BaseProps {\n $options: {\n enterFrom: string;\n enterActive: string;\n enterTo: string;\n enterKeep: boolean;\n leaveFrom: string;\n leaveActive: string;\n leaveTo: string;\n leaveKeep: boolean;\n };\n}\n\nexport interface TransitionInterface extends BaseInterface {\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[];\n /**\n * Trigger the enter transition.\n */\n enter(target?: HTMLElement | HTMLElement[]): Promise<void>;\n /**\n * Trigger the leave transition.\n */\n leave(target?: HTMLElement | HTMLElement[]): Promise<void>;\n}\n\n/**\n * Extend a class to add transition capabilities.\n */\nexport function withTransition<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<TransitionInterface, S, TransitionProps> {\n /**\n * Class.\n */\n class Transition<T extends BaseProps = BaseProps> extends BaseClass<T & TransitionProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Transition',\n options: {\n enterFrom: String,\n enterActive: String,\n enterTo: String,\n enterKeep: Boolean,\n leaveFrom: String,\n leaveActive: String,\n leaveTo: String,\n leaveKeep: Boolean,\n },\n };\n\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[] {\n return this.$el;\n }\n\n /**\n * Trigger the enter transition.\n */\n async enter(target?: HTMLElement | HTMLElement[]): Promise<void> {\n const { enterFrom, enterActive, enterTo, enterKeep, leaveTo } = this.$options;\n\n await transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (leaveTo + ' ' + enterFrom).trim(),\n active: enterActive as string,\n to: enterTo as string,\n },\n enterKeep ? 'keep' : undefined,\n );\n }\n\n /**\n * Trigger the leave transition.\n */\n async leave(target?: HTMLElement | HTMLElement[]): Promise<void> {\n const { leaveFrom, leaveActive, leaveTo, leaveKeep, enterTo } = this.$options;\n\n await transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (enterTo + ' ' + leaveFrom).trim(),\n active: leaveActive as string,\n to: leaveTo as string,\n },\n leaveKeep ? 'keep' : undefined,\n );\n }\n }\n\n // @ts-ignore\n return Transition;\n}\n"],
5
- "mappings": "AAAA,SAAS,kBAAkB;AAwCpB,SAAS,eACd,WACwD;AAAA,EAIxD,MAAM,mBAAoD,UAA+B;AAAA;AAAA;AAAA;AAAA,IAIvF,OAAO,SAAqB;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS;AAAA,QACP,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,MACb;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,SAAsC;AACxC,aAAO,KAAK;AAAA,IACd;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAM,QAAqD;AAC/D,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM;AAAA,QACJ,UAAU,KAAK;AAAA,QACf;AAAA;AAAA,UAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,UACvC,QAAQ;AAAA,UACR,IAAI;AAAA,QACN;AAAA,QACA,YAAY,SAAS;AAAA,MACvB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAM,QAAqD;AAC/D,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM;AAAA,QACJ,UAAU,KAAK;AAAA,QACf;AAAA;AAAA,UAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,UACvC,QAAQ;AAAA,UACR,IAAI;AAAA,QACN;AAAA,QACA,YAAY,SAAS;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;",
4
+ "sourcesContent": ["import { getInstances } from '@studiometa/js-toolkit';\nimport { transition } from '@studiometa/js-toolkit/utils';\nimport type {\n Base,\n BaseDecorator,\n BaseProps,\n BaseConfig,\n BaseInterface,\n} from '@studiometa/js-toolkit';\n\nexport interface TransitionProps extends BaseProps {\n $options: {\n enterFrom: string;\n enterActive: string;\n enterTo: string;\n enterKeep: boolean;\n leaveFrom: string;\n leaveActive: string;\n leaveTo: string;\n leaveKeep: boolean;\n group: string;\n };\n}\n\nexport interface TransitionInterface extends BaseInterface {\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[];\n /**\n * Trigger the enter transition.\n */\n enter(target?: HTMLElement | HTMLElement[]): Promise<void>;\n /**\n * Trigger the leave transition.\n */\n leave(target?: HTMLElement | HTMLElement[]): Promise<void>;\n}\n\n/**\n * Extend a class to add transition capabilities.\n */\nexport function withTransition<S extends Base>(\n BaseClass: typeof Base,\n): BaseDecorator<TransitionInterface, S, TransitionProps> {\n /**\n * Class.\n */\n class Transition<T extends BaseProps = BaseProps> extends BaseClass<T & TransitionProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Transition',\n options: {\n enterFrom: String,\n enterActive: String,\n enterTo: String,\n enterKeep: Boolean,\n leaveFrom: String,\n leaveActive: String,\n leaveTo: String,\n leaveKeep: Boolean,\n group: String,\n },\n };\n\n /**\n * Get the transition target.\n */\n get target(): HTMLElement | HTMLElement[] {\n return this.$el;\n }\n\n /**\n * Trigger the enter transition.\n */\n async enter(target?: HTMLElement | HTMLElement[], { dispatch = true } = {}): Promise<void> {\n const { enterFrom, enterActive, enterTo, enterKeep, leaveTo } = this.$options;\n\n await Promise.all([\n transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (leaveTo + ' ' + enterFrom).trim(),\n active: enterActive as string,\n to: enterTo as string,\n },\n enterKeep ? 'keep' : undefined,\n ),\n dispatch && this.dispatch('enter'),\n ]);\n }\n\n /**\n * Trigger the leave transition.\n */\n async leave(target?: HTMLElement | HTMLElement[], { dispatch = true } = {}): Promise<void> {\n const { leaveFrom, leaveActive, leaveTo, leaveKeep, enterTo } = this.$options;\n\n await Promise.all([\n transition(\n target ?? this.target,\n {\n // eslint-disable-next-line prefer-template\n from: (enterTo + ' ' + leaveFrom).trim(),\n active: leaveActive as string,\n to: leaveTo as string,\n },\n leaveKeep ? 'keep' : undefined,\n ),\n dispatch && this.dispatch('leave'),\n ]);\n }\n\n /**\n * Dispatch the callback to related instances.\n */\n async dispatch(method: 'enter' | 'leave') {\n const { group } = this.$options;\n\n if (!group) {\n return;\n }\n\n const promises = [];\n\n for (const instance of getInstances(Transition)) {\n if (instance !== this && instance.$options.group === group) {\n promises.push(instance[method](undefined, { dispatch: false }));\n }\n }\n\n await Promise.all(promises);\n }\n }\n\n // @ts-ignore\n return Transition;\n}\n"],
5
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAyCpB,SAAS,eACd,WACwD;AAAA,EAIxD,MAAM,mBAAoD,UAA+B;AAAA;AAAA;AAAA;AAAA,IAIvF,OAAO,SAAqB;AAAA,MAC1B,MAAM;AAAA,MACN,SAAS;AAAA,QACP,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,SAAsC;AACxC,aAAO,KAAK;AAAA,IACd;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAM,QAAsC,EAAE,WAAW,KAAK,IAAI,CAAC,GAAkB;AACzF,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM,QAAQ,IAAI;AAAA,QAChB;AAAA,UACE,UAAU,KAAK;AAAA,UACf;AAAA;AAAA,YAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,YACvC,QAAQ;AAAA,YACR,IAAI;AAAA,UACN;AAAA,UACA,YAAY,SAAS;AAAA,QACvB;AAAA,QACA,YAAY,KAAK,SAAS,OAAO;AAAA,MACnC,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAM,QAAsC,EAAE,WAAW,KAAK,IAAI,CAAC,GAAkB;AACzF,YAAM,EAAE,WAAW,aAAa,SAAS,WAAW,QAAQ,IAAI,KAAK;AAErE,YAAM,QAAQ,IAAI;AAAA,QAChB;AAAA,UACE,UAAU,KAAK;AAAA,UACf;AAAA;AAAA,YAEE,OAAO,UAAU,MAAM,WAAW,KAAK;AAAA,YACvC,QAAQ;AAAA,YACR,IAAI;AAAA,UACN;AAAA,UACA,YAAY,SAAS;AAAA,QACvB;AAAA,QACA,YAAY,KAAK,SAAS,OAAO;AAAA,MACnC,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAS,QAA2B;AACxC,YAAM,EAAE,MAAM,IAAI,KAAK;AAEvB,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AAEA,YAAM,WAAW,CAAC;AAElB,iBAAW,YAAY,aAAa,UAAU,GAAG;AAC/C,YAAI,aAAa,QAAQ,SAAS,SAAS,UAAU,OAAO;AAC1D,mBAAS,KAAK,SAAS,MAAM,EAAE,QAAW,EAAE,UAAU,MAAM,CAAC,CAAC;AAAA,QAChE;AAAA,MACF;AAEA,YAAM,QAAQ,IAAI,QAAQ;AAAA,IAC5B;AAAA,EACF;AAGA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -5,7 +5,7 @@ export interface AnchorNavLinkProps extends AnchorScrollToProps {
5
5
  id: string;
6
6
  };
7
7
  }
8
- declare const AnchorNavLink_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private").TransitionInterface, import("@studiometa/js-toolkit").Base<import("@studiometa/js-toolkit").BaseProps>, import("#private").TransitionProps>;
8
+ declare const AnchorNavLink_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private/decorators/withTransition.js").TransitionInterface, import("@studiometa/js-toolkit").Base<import("@studiometa/js-toolkit").BaseProps>, import("#private/decorators/withTransition.js").TransitionProps>;
9
9
  /**
10
10
  * Manage a slider item and its state transition.
11
11
  */
@@ -24,7 +24,7 @@ export declare class MenuList<T extends BaseProps = BaseProps> extends Transitio
24
24
  /**
25
25
  * Override `Transition` options.
26
26
  */
27
- get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").OptionsManager & import("@studiometa/js-toolkit").BaseOptions & (T & MenuListProps & import("#private").TransitionProps)["$options"];
27
+ get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").OptionsManager & import("@studiometa/js-toolkit").BaseOptions & (T & MenuListProps & import("#private/index.js").TransitionProps)["$options"];
28
28
  /**
29
29
  * Update tab indexes on mount.
30
30
  */
@@ -5,7 +5,7 @@ export interface SliderDotsProps extends BaseProps {
5
5
  dots: HTMLButtonElement[];
6
6
  };
7
7
  }
8
- declare const SliderDots_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private").TransitionInterface, AbstractSliderChild<BaseProps>, import("#private").TransitionProps>;
8
+ declare const SliderDots_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private/decorators/withTransition.js").TransitionInterface, AbstractSliderChild<BaseProps>, import("#private/decorators/withTransition.js").TransitionProps>;
9
9
  /**
10
10
  * SliderDots class.
11
11
  */
@@ -25,7 +25,7 @@ export declare class FrameTarget<T extends BaseProps = BaseProps> extends Transi
25
25
  /**
26
26
  * Override options.
27
27
  */
28
- get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").OptionsManager & import("@studiometa/js-toolkit").BaseOptions & (T & FrameTargetProps & import("#private").TransitionProps)["$options"];
28
+ get $options(): import("@studiometa/js-toolkit/Base/managers/OptionsManager.js").OptionsManager & import("@studiometa/js-toolkit").BaseOptions & (T & FrameTargetProps & import("#private/index.js").TransitionProps)["$options"];
29
29
  /**
30
30
  * Get uniq ID.
31
31
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiometa/ui",
3
- "version": "1.0.0-alpha.7",
3
+ "version": "1.0.0-alpha.9",
4
4
  "description": "A set of opiniated, unstyled and accessible components",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,6 +1,6 @@
1
1
  import { Base, BaseProps } from '@studiometa/js-toolkit';
2
2
  import type { BaseConfig } from '@studiometa/js-toolkit';
3
- declare const Transition_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private").TransitionInterface, Base<BaseProps>, import("#private").TransitionProps>;
3
+ declare const Transition_base: import("@studiometa/js-toolkit").BaseDecorator<import("#private/decorators/withTransition.js").TransitionInterface, Base<BaseProps>, import("#private/decorators/withTransition.js").TransitionProps>;
4
4
  /**
5
5
  * Transition class.
6
6
  */