@elementor/editor-styles-repository 0.3.0 → 0.3.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @elementor/editor-styles-repository@0.3.0 build
2
+ > @elementor/editor-styles-repository@0.3.2 build
3
3
  > tsup --config=../../tsup.build.ts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,13 +10,13 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/index.mjs 2.22 KB
14
- ESM dist/index.mjs.map 5.02 KB
13
+ ESM dist/index.mjs 2.27 KB
14
+ ESM dist/index.mjs.map 5.42 KB
15
15
  ESM ⚡️ Build success in 55ms
16
- CJS dist/index.js 3.50 KB
17
- CJS dist/index.js.map 5.07 KB
18
- CJS ⚡️ Build success in 56ms
16
+ CJS dist/index.js 3.54 KB
17
+ CJS dist/index.js.map 5.46 KB
18
+ CJS ⚡️ Build success in 55ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 4336ms
21
- DTS dist/index.d.mts 990.00 B
22
- DTS dist/index.d.ts 990.00 B
20
+ DTS ⚡️ Build success in 6093ms
21
+ DTS dist/index.d.mts 1.26 KB
22
+ DTS dist/index.d.ts 1.26 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @elementor/editor-styles-repository
2
2
 
3
+ ## 0.3.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [b18d1a6]
8
+ - @elementor/editor-styles@0.4.0
9
+ - @elementor/editor-elements@0.3.5
10
+
11
+ ## 0.3.1
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [1762144]
16
+ - @elementor/editor-elements@0.3.4
17
+
3
18
  ## 0.3.0
4
19
 
5
20
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -1,23 +1,28 @@
1
1
  import * as _elementor_editor_styles from '@elementor/editor-styles';
2
2
  import { StyleDefinition } from '@elementor/editor-styles';
3
3
 
4
- type StyleProviderMeta = Record<string, unknown>;
4
+ type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
5
+ type GetActionPayload = Record<string, unknown>;
6
+ type CreateActionPayload = MakeOptional<StyleDefinition, 'id' | 'type' | 'variants'>;
5
7
  type StylesProvider = {
6
8
  key: string;
7
9
  priority: number;
8
- get: (meta?: StyleProviderMeta) => StyleDefinition[];
10
+ actions: {
11
+ get: (meta?: GetActionPayload) => StyleDefinition[];
12
+ create?: (data: CreateActionPayload) => Promise<StyleDefinition>;
13
+ };
9
14
  subscribe: (callback: () => void) => () => void;
10
15
  };
11
16
 
12
17
  declare const stylesRepository: {
13
- all: (meta?: StyleProviderMeta) => _elementor_editor_styles.StyleDefinition[];
14
- allByProvider: (meta?: StyleProviderMeta) => (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
18
+ all: (meta?: GetActionPayload) => _elementor_editor_styles.StyleDefinition[];
19
+ allByProvider: (meta?: GetActionPayload) => (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
15
20
  register: (provider: StylesProvider) => void;
16
21
  subscribe: (cb: () => void) => () => void;
17
22
  };
18
23
 
19
- declare function useAllStylesByProvider(meta?: StyleProviderMeta): (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
24
+ declare function useAllStylesByProvider(meta?: GetActionPayload): (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
20
25
 
21
26
  declare const ELEMENTS_STYLES_PROVIDER_KEY = "elements";
22
27
 
23
- export { ELEMENTS_STYLES_PROVIDER_KEY, type StylesProvider, stylesRepository, useAllStylesByProvider };
28
+ export { type CreateActionPayload, ELEMENTS_STYLES_PROVIDER_KEY, type GetActionPayload, type StylesProvider, stylesRepository, useAllStylesByProvider };
package/dist/index.d.ts CHANGED
@@ -1,23 +1,28 @@
1
1
  import * as _elementor_editor_styles from '@elementor/editor-styles';
2
2
  import { StyleDefinition } from '@elementor/editor-styles';
3
3
 
4
- type StyleProviderMeta = Record<string, unknown>;
4
+ type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
5
+ type GetActionPayload = Record<string, unknown>;
6
+ type CreateActionPayload = MakeOptional<StyleDefinition, 'id' | 'type' | 'variants'>;
5
7
  type StylesProvider = {
6
8
  key: string;
7
9
  priority: number;
8
- get: (meta?: StyleProviderMeta) => StyleDefinition[];
10
+ actions: {
11
+ get: (meta?: GetActionPayload) => StyleDefinition[];
12
+ create?: (data: CreateActionPayload) => Promise<StyleDefinition>;
13
+ };
9
14
  subscribe: (callback: () => void) => () => void;
10
15
  };
11
16
 
12
17
  declare const stylesRepository: {
13
- all: (meta?: StyleProviderMeta) => _elementor_editor_styles.StyleDefinition[];
14
- allByProvider: (meta?: StyleProviderMeta) => (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
18
+ all: (meta?: GetActionPayload) => _elementor_editor_styles.StyleDefinition[];
19
+ allByProvider: (meta?: GetActionPayload) => (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
15
20
  register: (provider: StylesProvider) => void;
16
21
  subscribe: (cb: () => void) => () => void;
17
22
  };
18
23
 
19
- declare function useAllStylesByProvider(meta?: StyleProviderMeta): (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
24
+ declare function useAllStylesByProvider(meta?: GetActionPayload): (readonly [string, _elementor_editor_styles.StyleDefinition[]])[];
20
25
 
21
26
  declare const ELEMENTS_STYLES_PROVIDER_KEY = "elements";
22
27
 
23
- export { ELEMENTS_STYLES_PROVIDER_KEY, type StylesProvider, stylesRepository, useAllStylesByProvider };
28
+ export { type CreateActionPayload, ELEMENTS_STYLES_PROVIDER_KEY, type GetActionPayload, type StylesProvider, stylesRepository, useAllStylesByProvider };
package/dist/index.js CHANGED
@@ -36,10 +36,10 @@ var createStylesRepository = () => {
36
36
  providers.push(provider);
37
37
  };
38
38
  const allByProvider = (meta = {}) => {
39
- return getProvidersByPriority().map((provider) => [provider.key, provider.get(meta)]);
39
+ return getProvidersByPriority().map((provider) => [provider.key, provider.actions.get(meta)]);
40
40
  };
41
41
  const all = (meta = {}) => {
42
- return getProvidersByPriority().flatMap((provider) => provider.get(meta));
42
+ return getProvidersByPriority().flatMap((provider) => provider.actions.get(meta));
43
43
  };
44
44
  const subscribe = (cb) => {
45
45
  const unsubscribes = providers.map((provider) => {
@@ -75,12 +75,14 @@ var ELEMENTS_STYLES_PROVIDER_KEY = "elements";
75
75
  var elementsStylesProvider = {
76
76
  key: ELEMENTS_STYLES_PROVIDER_KEY,
77
77
  priority: 50,
78
- get: (meta = {}) => {
79
- let elements = (0, import_editor_elements.getElements)();
80
- if ("elementId" in meta && meta.elementId) {
81
- elements = elements.filter((element) => element.id === meta.elementId);
78
+ actions: {
79
+ get: (meta = {}) => {
80
+ let elements = (0, import_editor_elements.getElements)();
81
+ if ("elementId" in meta && meta.elementId) {
82
+ elements = elements.filter((element) => element.id === meta.elementId);
83
+ }
84
+ return elements.flatMap((element) => Object.values(element.model.get("styles") ?? {}));
82
85
  }
83
- return elements.flatMap((element) => Object.values(element.model.get("styles") ?? {}));
84
86
  },
85
87
  subscribe: (cb) => {
86
88
  return (0, import_editor_v1_adapters.__privateListenTo)(
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils/create-styles-repository.ts","../src/styles-repository.ts","../src/hooks/use-all-styles-by-provider.ts","../src/elements-styles-provider.ts","../src/init.ts"],"sourcesContent":["export { type StylesProvider } from './utils/create-styles-repository';\n\nexport { stylesRepository } from './styles-repository';\nexport { useAllStylesByProvider } from './hooks/use-all-styles-by-provider';\n\nexport { ELEMENTS_STYLES_PROVIDER_KEY } from './elements-styles-provider';\n\nimport { init } from './init';\n\ninit();\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nexport type StyleProviderMeta = Record< string, unknown >;\n\nexport type StylesProvider = {\n\tkey: string;\n\tpriority: number;\n\tget: ( meta?: StyleProviderMeta ) => StyleDefinition[];\n\tsubscribe: ( callback: () => void ) => () => void;\n};\n\nexport const createStylesRepository = () => {\n\tconst providers: StylesProvider[] = [];\n\n\tconst getProvidersByPriority = () => {\n\t\treturn providers.slice( 0 ).sort( ( a, b ) => ( a.priority > b.priority ? -1 : 1 ) );\n\t};\n\n\tconst register = ( provider: StylesProvider ) => {\n\t\tproviders.push( provider );\n\t};\n\n\tconst allByProvider = ( meta: StyleProviderMeta = {} ) => {\n\t\treturn getProvidersByPriority().map( ( provider ) => [ provider.key, provider.get( meta ) ] as const );\n\t};\n\n\tconst all = ( meta: StyleProviderMeta = {} ) => {\n\t\treturn getProvidersByPriority().flatMap( ( provider ) => provider.get( meta ) );\n\t};\n\n\tconst subscribe = ( cb: () => void ) => {\n\t\tconst unsubscribes = providers.map( ( provider ) => {\n\t\t\treturn provider.subscribe( cb );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribes.forEach( ( unsubscribe ) => unsubscribe() );\n\t\t};\n\t};\n\n\treturn {\n\t\tall,\n\t\tallByProvider,\n\t\tregister,\n\t\tsubscribe,\n\t};\n};\n","import { createStylesRepository } from './utils/create-styles-repository';\n\nexport const stylesRepository = createStylesRepository();\n","import { useEffect, useReducer } from 'react';\n\nimport { stylesRepository } from '../styles-repository';\nimport { type StyleProviderMeta } from '../utils/create-styles-repository';\n\nexport function useAllStylesByProvider( meta: StyleProviderMeta = {} ) {\n\tconst [ , rerender ] = useReducer( ( prev ) => ! prev, false );\n\n\tuseEffect( () => stylesRepository.subscribe( rerender ), [] );\n\n\treturn stylesRepository.allByProvider( meta );\n}\n","import { getElements } from '@elementor/editor-elements';\nimport { __privateListenTo as listenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type StylesProvider } from './utils/create-styles-repository';\n\nexport const ELEMENTS_STYLES_PROVIDER_KEY = 'elements';\n\nexport const elementsStylesProvider: StylesProvider = {\n\tkey: ELEMENTS_STYLES_PROVIDER_KEY,\n\tpriority: 50,\n\tget: ( meta = {} ) => {\n\t\tlet elements = getElements();\n\n\t\tif ( 'elementId' in meta && meta.elementId ) {\n\t\t\telements = elements.filter( ( element ) => element.id === meta.elementId );\n\t\t}\n\n\t\treturn elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );\n\t},\n\tsubscribe: ( cb ) => {\n\t\treturn listenTo(\n\t\t\t[\n\t\t\t\tcommandEndEvent( 'editor/documents/attach-preview' ),\n\t\t\t\tcommandEndEvent( 'document/atomic-widgets/styles' ),\n\t\t\t],\n\t\t\tcb\n\t\t);\n\t},\n};\n","import { elementsStylesProvider } from './elements-styles-provider';\nimport { stylesRepository } from './styles-repository';\n\nexport function init() {\n\tstylesRepository.register( elementsStylesProvider );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACWO,IAAM,yBAAyB,MAAM;AAC3C,QAAM,YAA8B,CAAC;AAErC,QAAM,yBAAyB,MAAM;AACpC,WAAO,UAAU,MAAO,CAAE,EAAE,KAAM,CAAE,GAAG,MAAS,EAAE,WAAW,EAAE,WAAW,KAAK,CAAI;AAAA,EACpF;AAEA,QAAM,WAAW,CAAE,aAA8B;AAChD,cAAU,KAAM,QAAS;AAAA,EAC1B;AAEA,QAAM,gBAAgB,CAAE,OAA0B,CAAC,MAAO;AACzD,WAAO,uBAAuB,EAAE,IAAK,CAAE,aAAc,CAAE,SAAS,KAAK,SAAS,IAAK,IAAK,CAAE,CAAW;AAAA,EACtG;AAEA,QAAM,MAAM,CAAE,OAA0B,CAAC,MAAO;AAC/C,WAAO,uBAAuB,EAAE,QAAS,CAAE,aAAc,SAAS,IAAK,IAAK,CAAE;AAAA,EAC/E;AAEA,QAAM,YAAY,CAAE,OAAoB;AACvC,UAAM,eAAe,UAAU,IAAK,CAAE,aAAc;AACnD,aAAO,SAAS,UAAW,EAAG;AAAA,IAC/B,CAAE;AAEF,WAAO,MAAM;AACZ,mBAAa,QAAS,CAAE,gBAAiB,YAAY,CAAE;AAAA,IACxD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AC5CO,IAAM,mBAAmB,uBAAuB;;;ACFvD,mBAAsC;AAK/B,SAAS,uBAAwB,OAA0B,CAAC,GAAI;AACtE,QAAM,CAAE,EAAE,QAAS,QAAI,yBAAY,CAAE,SAAU,CAAE,MAAM,KAAM;AAE7D,8BAAW,MAAM,iBAAiB,UAAW,QAAS,GAAG,CAAC,CAAE;AAE5D,SAAO,iBAAiB,cAAe,IAAK;AAC7C;;;ACXA,6BAA4B;AAC5B,gCAA+D;AAIxD,IAAM,+BAA+B;AAErC,IAAM,yBAAyC;AAAA,EACrD,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK,CAAE,OAAO,CAAC,MAAO;AACrB,QAAI,eAAW,oCAAY;AAE3B,QAAK,eAAe,QAAQ,KAAK,WAAY;AAC5C,iBAAW,SAAS,OAAQ,CAAE,YAAa,QAAQ,OAAO,KAAK,SAAU;AAAA,IAC1E;AAEA,WAAO,SAAS,QAAS,CAAE,YAAa,OAAO,OAAQ,QAAQ,MAAM,IAAK,QAAS,KAAK,CAAC,CAAE,CAAE;AAAA,EAC9F;AAAA,EACA,WAAW,CAAE,OAAQ;AACpB,eAAO,0BAAAA;AAAA,MACN;AAAA,YACC,2CAAiB,iCAAkC;AAAA,YACnD,2CAAiB,gCAAiC;AAAA,MACnD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;;;ACzBO,SAAS,OAAO;AACtB,mBAAiB,SAAU,sBAAuB;AACnD;;;ALIA,KAAK;","names":["listenTo"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/create-styles-repository.ts","../src/styles-repository.ts","../src/hooks/use-all-styles-by-provider.ts","../src/elements-styles-provider.ts","../src/init.ts"],"sourcesContent":["export { type StylesProvider, type CreateActionPayload, type GetActionPayload } from './utils/create-styles-repository';\n\nexport { stylesRepository } from './styles-repository';\nexport { useAllStylesByProvider } from './hooks/use-all-styles-by-provider';\n\nexport { ELEMENTS_STYLES_PROVIDER_KEY } from './elements-styles-provider';\n\nimport { init } from './init';\n\ninit();\n","import { type StyleDefinition } from '@elementor/editor-styles';\n\nexport type MakeOptional< T, K extends keyof T > = Omit< T, K > & Partial< T >;\n\nexport type GetActionPayload = Record< string, unknown >;\nexport type CreateActionPayload = MakeOptional< StyleDefinition, 'id' | 'type' | 'variants' >;\n\nexport type StylesProvider = {\n\tkey: string;\n\tpriority: number;\n\tactions: {\n\t\tget: ( meta?: GetActionPayload ) => StyleDefinition[];\n\t\tcreate?: ( data: CreateActionPayload ) => Promise< StyleDefinition >;\n\t};\n\tsubscribe: ( callback: () => void ) => () => void;\n};\n\nexport const createStylesRepository = () => {\n\tconst providers: StylesProvider[] = [];\n\n\tconst getProvidersByPriority = () => {\n\t\treturn providers.slice( 0 ).sort( ( a, b ) => ( a.priority > b.priority ? -1 : 1 ) );\n\t};\n\n\tconst register = ( provider: StylesProvider ) => {\n\t\tproviders.push( provider );\n\t};\n\n\tconst allByProvider = ( meta: GetActionPayload = {} ) => {\n\t\treturn getProvidersByPriority().map( ( provider ) => [ provider.key, provider.actions.get( meta ) ] as const );\n\t};\n\n\tconst all = ( meta: GetActionPayload = {} ) => {\n\t\treturn getProvidersByPriority().flatMap( ( provider ) => provider.actions.get( meta ) );\n\t};\n\n\tconst subscribe = ( cb: () => void ) => {\n\t\tconst unsubscribes = providers.map( ( provider ) => {\n\t\t\treturn provider.subscribe( cb );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribes.forEach( ( unsubscribe ) => unsubscribe() );\n\t\t};\n\t};\n\n\treturn {\n\t\tall,\n\t\tallByProvider,\n\t\tregister,\n\t\tsubscribe,\n\t};\n};\n","import { createStylesRepository } from './utils/create-styles-repository';\n\nexport const stylesRepository = createStylesRepository();\n","import { useEffect, useReducer } from 'react';\n\nimport { stylesRepository } from '../styles-repository';\nimport { type GetActionPayload } from '../utils/create-styles-repository';\n\nexport function useAllStylesByProvider( meta: GetActionPayload = {} ) {\n\tconst [ , rerender ] = useReducer( ( prev ) => ! prev, false );\n\n\tuseEffect( () => stylesRepository.subscribe( rerender ), [] );\n\n\treturn stylesRepository.allByProvider( meta );\n}\n","import { getElements } from '@elementor/editor-elements';\nimport { __privateListenTo as listenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type StylesProvider } from './utils/create-styles-repository';\n\nexport const ELEMENTS_STYLES_PROVIDER_KEY = 'elements';\n\nexport const elementsStylesProvider: StylesProvider = {\n\tkey: ELEMENTS_STYLES_PROVIDER_KEY,\n\tpriority: 50,\n\tactions: {\n\t\tget: ( meta = {} ) => {\n\t\t\tlet elements = getElements();\n\n\t\t\tif ( 'elementId' in meta && meta.elementId ) {\n\t\t\t\telements = elements.filter( ( element ) => element.id === meta.elementId );\n\t\t\t}\n\n\t\t\treturn elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );\n\t\t},\n\t},\n\tsubscribe: ( cb ) => {\n\t\treturn listenTo(\n\t\t\t[\n\t\t\t\tcommandEndEvent( 'editor/documents/attach-preview' ),\n\t\t\t\tcommandEndEvent( 'document/atomic-widgets/styles' ),\n\t\t\t],\n\t\t\tcb\n\t\t);\n\t},\n};\n","import { elementsStylesProvider } from './elements-styles-provider';\nimport { stylesRepository } from './styles-repository';\n\nexport function init() {\n\tstylesRepository.register( elementsStylesProvider );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiBO,IAAM,yBAAyB,MAAM;AAC3C,QAAM,YAA8B,CAAC;AAErC,QAAM,yBAAyB,MAAM;AACpC,WAAO,UAAU,MAAO,CAAE,EAAE,KAAM,CAAE,GAAG,MAAS,EAAE,WAAW,EAAE,WAAW,KAAK,CAAI;AAAA,EACpF;AAEA,QAAM,WAAW,CAAE,aAA8B;AAChD,cAAU,KAAM,QAAS;AAAA,EAC1B;AAEA,QAAM,gBAAgB,CAAE,OAAyB,CAAC,MAAO;AACxD,WAAO,uBAAuB,EAAE,IAAK,CAAE,aAAc,CAAE,SAAS,KAAK,SAAS,QAAQ,IAAK,IAAK,CAAE,CAAW;AAAA,EAC9G;AAEA,QAAM,MAAM,CAAE,OAAyB,CAAC,MAAO;AAC9C,WAAO,uBAAuB,EAAE,QAAS,CAAE,aAAc,SAAS,QAAQ,IAAK,IAAK,CAAE;AAAA,EACvF;AAEA,QAAM,YAAY,CAAE,OAAoB;AACvC,UAAM,eAAe,UAAU,IAAK,CAAE,aAAc;AACnD,aAAO,SAAS,UAAW,EAAG;AAAA,IAC/B,CAAE;AAEF,WAAO,MAAM;AACZ,mBAAa,QAAS,CAAE,gBAAiB,YAAY,CAAE;AAAA,IACxD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AClDO,IAAM,mBAAmB,uBAAuB;;;ACFvD,mBAAsC;AAK/B,SAAS,uBAAwB,OAAyB,CAAC,GAAI;AACrE,QAAM,CAAE,EAAE,QAAS,QAAI,yBAAY,CAAE,SAAU,CAAE,MAAM,KAAM;AAE7D,8BAAW,MAAM,iBAAiB,UAAW,QAAS,GAAG,CAAC,CAAE;AAE5D,SAAO,iBAAiB,cAAe,IAAK;AAC7C;;;ACXA,6BAA4B;AAC5B,gCAA+D;AAIxD,IAAM,+BAA+B;AAErC,IAAM,yBAAyC;AAAA,EACrD,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACR,KAAK,CAAE,OAAO,CAAC,MAAO;AACrB,UAAI,eAAW,oCAAY;AAE3B,UAAK,eAAe,QAAQ,KAAK,WAAY;AAC5C,mBAAW,SAAS,OAAQ,CAAE,YAAa,QAAQ,OAAO,KAAK,SAAU;AAAA,MAC1E;AAEA,aAAO,SAAS,QAAS,CAAE,YAAa,OAAO,OAAQ,QAAQ,MAAM,IAAK,QAAS,KAAK,CAAC,CAAE,CAAE;AAAA,IAC9F;AAAA,EACD;AAAA,EACA,WAAW,CAAE,OAAQ;AACpB,eAAO,0BAAAA;AAAA,MACN;AAAA,YACC,2CAAiB,iCAAkC;AAAA,YACnD,2CAAiB,gCAAiC;AAAA,MACnD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;;;AC3BO,SAAS,OAAO;AACtB,mBAAiB,SAAU,sBAAuB;AACnD;;;ALIA,KAAK;","names":["listenTo"]}
package/dist/index.mjs CHANGED
@@ -8,10 +8,10 @@ var createStylesRepository = () => {
8
8
  providers.push(provider);
9
9
  };
10
10
  const allByProvider = (meta = {}) => {
11
- return getProvidersByPriority().map((provider) => [provider.key, provider.get(meta)]);
11
+ return getProvidersByPriority().map((provider) => [provider.key, provider.actions.get(meta)]);
12
12
  };
13
13
  const all = (meta = {}) => {
14
- return getProvidersByPriority().flatMap((provider) => provider.get(meta));
14
+ return getProvidersByPriority().flatMap((provider) => provider.actions.get(meta));
15
15
  };
16
16
  const subscribe = (cb) => {
17
17
  const unsubscribes = providers.map((provider) => {
@@ -47,12 +47,14 @@ var ELEMENTS_STYLES_PROVIDER_KEY = "elements";
47
47
  var elementsStylesProvider = {
48
48
  key: ELEMENTS_STYLES_PROVIDER_KEY,
49
49
  priority: 50,
50
- get: (meta = {}) => {
51
- let elements = getElements();
52
- if ("elementId" in meta && meta.elementId) {
53
- elements = elements.filter((element) => element.id === meta.elementId);
50
+ actions: {
51
+ get: (meta = {}) => {
52
+ let elements = getElements();
53
+ if ("elementId" in meta && meta.elementId) {
54
+ elements = elements.filter((element) => element.id === meta.elementId);
55
+ }
56
+ return elements.flatMap((element) => Object.values(element.model.get("styles") ?? {}));
54
57
  }
55
- return elements.flatMap((element) => Object.values(element.model.get("styles") ?? {}));
56
58
  },
57
59
  subscribe: (cb) => {
58
60
  return listenTo(
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/create-styles-repository.ts","../src/styles-repository.ts","../src/hooks/use-all-styles-by-provider.ts","../src/elements-styles-provider.ts","../src/init.ts","../src/index.ts"],"sourcesContent":["import { type StyleDefinition } from '@elementor/editor-styles';\n\nexport type StyleProviderMeta = Record< string, unknown >;\n\nexport type StylesProvider = {\n\tkey: string;\n\tpriority: number;\n\tget: ( meta?: StyleProviderMeta ) => StyleDefinition[];\n\tsubscribe: ( callback: () => void ) => () => void;\n};\n\nexport const createStylesRepository = () => {\n\tconst providers: StylesProvider[] = [];\n\n\tconst getProvidersByPriority = () => {\n\t\treturn providers.slice( 0 ).sort( ( a, b ) => ( a.priority > b.priority ? -1 : 1 ) );\n\t};\n\n\tconst register = ( provider: StylesProvider ) => {\n\t\tproviders.push( provider );\n\t};\n\n\tconst allByProvider = ( meta: StyleProviderMeta = {} ) => {\n\t\treturn getProvidersByPriority().map( ( provider ) => [ provider.key, provider.get( meta ) ] as const );\n\t};\n\n\tconst all = ( meta: StyleProviderMeta = {} ) => {\n\t\treturn getProvidersByPriority().flatMap( ( provider ) => provider.get( meta ) );\n\t};\n\n\tconst subscribe = ( cb: () => void ) => {\n\t\tconst unsubscribes = providers.map( ( provider ) => {\n\t\t\treturn provider.subscribe( cb );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribes.forEach( ( unsubscribe ) => unsubscribe() );\n\t\t};\n\t};\n\n\treturn {\n\t\tall,\n\t\tallByProvider,\n\t\tregister,\n\t\tsubscribe,\n\t};\n};\n","import { createStylesRepository } from './utils/create-styles-repository';\n\nexport const stylesRepository = createStylesRepository();\n","import { useEffect, useReducer } from 'react';\n\nimport { stylesRepository } from '../styles-repository';\nimport { type StyleProviderMeta } from '../utils/create-styles-repository';\n\nexport function useAllStylesByProvider( meta: StyleProviderMeta = {} ) {\n\tconst [ , rerender ] = useReducer( ( prev ) => ! prev, false );\n\n\tuseEffect( () => stylesRepository.subscribe( rerender ), [] );\n\n\treturn stylesRepository.allByProvider( meta );\n}\n","import { getElements } from '@elementor/editor-elements';\nimport { __privateListenTo as listenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type StylesProvider } from './utils/create-styles-repository';\n\nexport const ELEMENTS_STYLES_PROVIDER_KEY = 'elements';\n\nexport const elementsStylesProvider: StylesProvider = {\n\tkey: ELEMENTS_STYLES_PROVIDER_KEY,\n\tpriority: 50,\n\tget: ( meta = {} ) => {\n\t\tlet elements = getElements();\n\n\t\tif ( 'elementId' in meta && meta.elementId ) {\n\t\t\telements = elements.filter( ( element ) => element.id === meta.elementId );\n\t\t}\n\n\t\treturn elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );\n\t},\n\tsubscribe: ( cb ) => {\n\t\treturn listenTo(\n\t\t\t[\n\t\t\t\tcommandEndEvent( 'editor/documents/attach-preview' ),\n\t\t\t\tcommandEndEvent( 'document/atomic-widgets/styles' ),\n\t\t\t],\n\t\t\tcb\n\t\t);\n\t},\n};\n","import { elementsStylesProvider } from './elements-styles-provider';\nimport { stylesRepository } from './styles-repository';\n\nexport function init() {\n\tstylesRepository.register( elementsStylesProvider );\n}\n","export { type StylesProvider } from './utils/create-styles-repository';\n\nexport { stylesRepository } from './styles-repository';\nexport { useAllStylesByProvider } from './hooks/use-all-styles-by-provider';\n\nexport { ELEMENTS_STYLES_PROVIDER_KEY } from './elements-styles-provider';\n\nimport { init } from './init';\n\ninit();\n"],"mappings":";AAWO,IAAM,yBAAyB,MAAM;AAC3C,QAAM,YAA8B,CAAC;AAErC,QAAM,yBAAyB,MAAM;AACpC,WAAO,UAAU,MAAO,CAAE,EAAE,KAAM,CAAE,GAAG,MAAS,EAAE,WAAW,EAAE,WAAW,KAAK,CAAI;AAAA,EACpF;AAEA,QAAM,WAAW,CAAE,aAA8B;AAChD,cAAU,KAAM,QAAS;AAAA,EAC1B;AAEA,QAAM,gBAAgB,CAAE,OAA0B,CAAC,MAAO;AACzD,WAAO,uBAAuB,EAAE,IAAK,CAAE,aAAc,CAAE,SAAS,KAAK,SAAS,IAAK,IAAK,CAAE,CAAW;AAAA,EACtG;AAEA,QAAM,MAAM,CAAE,OAA0B,CAAC,MAAO;AAC/C,WAAO,uBAAuB,EAAE,QAAS,CAAE,aAAc,SAAS,IAAK,IAAK,CAAE;AAAA,EAC/E;AAEA,QAAM,YAAY,CAAE,OAAoB;AACvC,UAAM,eAAe,UAAU,IAAK,CAAE,aAAc;AACnD,aAAO,SAAS,UAAW,EAAG;AAAA,IAC/B,CAAE;AAEF,WAAO,MAAM;AACZ,mBAAa,QAAS,CAAE,gBAAiB,YAAY,CAAE;AAAA,IACxD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AC5CO,IAAM,mBAAmB,uBAAuB;;;ACFvD,SAAS,WAAW,kBAAkB;AAK/B,SAAS,uBAAwB,OAA0B,CAAC,GAAI;AACtE,QAAM,CAAE,EAAE,QAAS,IAAI,WAAY,CAAE,SAAU,CAAE,MAAM,KAAM;AAE7D,YAAW,MAAM,iBAAiB,UAAW,QAAS,GAAG,CAAC,CAAE;AAE5D,SAAO,iBAAiB,cAAe,IAAK;AAC7C;;;ACXA,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB,UAAU,uBAAuB;AAIxD,IAAM,+BAA+B;AAErC,IAAM,yBAAyC;AAAA,EACrD,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK,CAAE,OAAO,CAAC,MAAO;AACrB,QAAI,WAAW,YAAY;AAE3B,QAAK,eAAe,QAAQ,KAAK,WAAY;AAC5C,iBAAW,SAAS,OAAQ,CAAE,YAAa,QAAQ,OAAO,KAAK,SAAU;AAAA,IAC1E;AAEA,WAAO,SAAS,QAAS,CAAE,YAAa,OAAO,OAAQ,QAAQ,MAAM,IAAK,QAAS,KAAK,CAAC,CAAE,CAAE;AAAA,EAC9F;AAAA,EACA,WAAW,CAAE,OAAQ;AACpB,WAAO;AAAA,MACN;AAAA,QACC,gBAAiB,iCAAkC;AAAA,QACnD,gBAAiB,gCAAiC;AAAA,MACnD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;;;ACzBO,SAAS,OAAO;AACtB,mBAAiB,SAAU,sBAAuB;AACnD;;;ACIA,KAAK;","names":[]}
1
+ {"version":3,"sources":["../src/utils/create-styles-repository.ts","../src/styles-repository.ts","../src/hooks/use-all-styles-by-provider.ts","../src/elements-styles-provider.ts","../src/init.ts","../src/index.ts"],"sourcesContent":["import { type StyleDefinition } from '@elementor/editor-styles';\n\nexport type MakeOptional< T, K extends keyof T > = Omit< T, K > & Partial< T >;\n\nexport type GetActionPayload = Record< string, unknown >;\nexport type CreateActionPayload = MakeOptional< StyleDefinition, 'id' | 'type' | 'variants' >;\n\nexport type StylesProvider = {\n\tkey: string;\n\tpriority: number;\n\tactions: {\n\t\tget: ( meta?: GetActionPayload ) => StyleDefinition[];\n\t\tcreate?: ( data: CreateActionPayload ) => Promise< StyleDefinition >;\n\t};\n\tsubscribe: ( callback: () => void ) => () => void;\n};\n\nexport const createStylesRepository = () => {\n\tconst providers: StylesProvider[] = [];\n\n\tconst getProvidersByPriority = () => {\n\t\treturn providers.slice( 0 ).sort( ( a, b ) => ( a.priority > b.priority ? -1 : 1 ) );\n\t};\n\n\tconst register = ( provider: StylesProvider ) => {\n\t\tproviders.push( provider );\n\t};\n\n\tconst allByProvider = ( meta: GetActionPayload = {} ) => {\n\t\treturn getProvidersByPriority().map( ( provider ) => [ provider.key, provider.actions.get( meta ) ] as const );\n\t};\n\n\tconst all = ( meta: GetActionPayload = {} ) => {\n\t\treturn getProvidersByPriority().flatMap( ( provider ) => provider.actions.get( meta ) );\n\t};\n\n\tconst subscribe = ( cb: () => void ) => {\n\t\tconst unsubscribes = providers.map( ( provider ) => {\n\t\t\treturn provider.subscribe( cb );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribes.forEach( ( unsubscribe ) => unsubscribe() );\n\t\t};\n\t};\n\n\treturn {\n\t\tall,\n\t\tallByProvider,\n\t\tregister,\n\t\tsubscribe,\n\t};\n};\n","import { createStylesRepository } from './utils/create-styles-repository';\n\nexport const stylesRepository = createStylesRepository();\n","import { useEffect, useReducer } from 'react';\n\nimport { stylesRepository } from '../styles-repository';\nimport { type GetActionPayload } from '../utils/create-styles-repository';\n\nexport function useAllStylesByProvider( meta: GetActionPayload = {} ) {\n\tconst [ , rerender ] = useReducer( ( prev ) => ! prev, false );\n\n\tuseEffect( () => stylesRepository.subscribe( rerender ), [] );\n\n\treturn stylesRepository.allByProvider( meta );\n}\n","import { getElements } from '@elementor/editor-elements';\nimport { __privateListenTo as listenTo, commandEndEvent } from '@elementor/editor-v1-adapters';\n\nimport { type StylesProvider } from './utils/create-styles-repository';\n\nexport const ELEMENTS_STYLES_PROVIDER_KEY = 'elements';\n\nexport const elementsStylesProvider: StylesProvider = {\n\tkey: ELEMENTS_STYLES_PROVIDER_KEY,\n\tpriority: 50,\n\tactions: {\n\t\tget: ( meta = {} ) => {\n\t\t\tlet elements = getElements();\n\n\t\t\tif ( 'elementId' in meta && meta.elementId ) {\n\t\t\t\telements = elements.filter( ( element ) => element.id === meta.elementId );\n\t\t\t}\n\n\t\t\treturn elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );\n\t\t},\n\t},\n\tsubscribe: ( cb ) => {\n\t\treturn listenTo(\n\t\t\t[\n\t\t\t\tcommandEndEvent( 'editor/documents/attach-preview' ),\n\t\t\t\tcommandEndEvent( 'document/atomic-widgets/styles' ),\n\t\t\t],\n\t\t\tcb\n\t\t);\n\t},\n};\n","import { elementsStylesProvider } from './elements-styles-provider';\nimport { stylesRepository } from './styles-repository';\n\nexport function init() {\n\tstylesRepository.register( elementsStylesProvider );\n}\n","export { type StylesProvider, type CreateActionPayload, type GetActionPayload } from './utils/create-styles-repository';\n\nexport { stylesRepository } from './styles-repository';\nexport { useAllStylesByProvider } from './hooks/use-all-styles-by-provider';\n\nexport { ELEMENTS_STYLES_PROVIDER_KEY } from './elements-styles-provider';\n\nimport { init } from './init';\n\ninit();\n"],"mappings":";AAiBO,IAAM,yBAAyB,MAAM;AAC3C,QAAM,YAA8B,CAAC;AAErC,QAAM,yBAAyB,MAAM;AACpC,WAAO,UAAU,MAAO,CAAE,EAAE,KAAM,CAAE,GAAG,MAAS,EAAE,WAAW,EAAE,WAAW,KAAK,CAAI;AAAA,EACpF;AAEA,QAAM,WAAW,CAAE,aAA8B;AAChD,cAAU,KAAM,QAAS;AAAA,EAC1B;AAEA,QAAM,gBAAgB,CAAE,OAAyB,CAAC,MAAO;AACxD,WAAO,uBAAuB,EAAE,IAAK,CAAE,aAAc,CAAE,SAAS,KAAK,SAAS,QAAQ,IAAK,IAAK,CAAE,CAAW;AAAA,EAC9G;AAEA,QAAM,MAAM,CAAE,OAAyB,CAAC,MAAO;AAC9C,WAAO,uBAAuB,EAAE,QAAS,CAAE,aAAc,SAAS,QAAQ,IAAK,IAAK,CAAE;AAAA,EACvF;AAEA,QAAM,YAAY,CAAE,OAAoB;AACvC,UAAM,eAAe,UAAU,IAAK,CAAE,aAAc;AACnD,aAAO,SAAS,UAAW,EAAG;AAAA,IAC/B,CAAE;AAEF,WAAO,MAAM;AACZ,mBAAa,QAAS,CAAE,gBAAiB,YAAY,CAAE;AAAA,IACxD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;;;AClDO,IAAM,mBAAmB,uBAAuB;;;ACFvD,SAAS,WAAW,kBAAkB;AAK/B,SAAS,uBAAwB,OAAyB,CAAC,GAAI;AACrE,QAAM,CAAE,EAAE,QAAS,IAAI,WAAY,CAAE,SAAU,CAAE,MAAM,KAAM;AAE7D,YAAW,MAAM,iBAAiB,UAAW,QAAS,GAAG,CAAC,CAAE;AAE5D,SAAO,iBAAiB,cAAe,IAAK;AAC7C;;;ACXA,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB,UAAU,uBAAuB;AAIxD,IAAM,+BAA+B;AAErC,IAAM,yBAAyC;AAAA,EACrD,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACR,KAAK,CAAE,OAAO,CAAC,MAAO;AACrB,UAAI,WAAW,YAAY;AAE3B,UAAK,eAAe,QAAQ,KAAK,WAAY;AAC5C,mBAAW,SAAS,OAAQ,CAAE,YAAa,QAAQ,OAAO,KAAK,SAAU;AAAA,MAC1E;AAEA,aAAO,SAAS,QAAS,CAAE,YAAa,OAAO,OAAQ,QAAQ,MAAM,IAAK,QAAS,KAAK,CAAC,CAAE,CAAE;AAAA,IAC9F;AAAA,EACD;AAAA,EACA,WAAW,CAAE,OAAQ;AACpB,WAAO;AAAA,MACN;AAAA,QACC,gBAAiB,iCAAkC;AAAA,QACnD,gBAAiB,gCAAiC;AAAA,MACnD;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;;;AC3BO,SAAS,OAAO;AACtB,mBAAiB,SAAU,sBAAuB;AACnD;;;ACIA,KAAK;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/editor-styles-repository",
3
3
  "description": "Elementor Editor Styles Repository",
4
- "version": "0.3.0",
4
+ "version": "0.3.2",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -33,8 +33,8 @@
33
33
  "dev": "tsup --config=../../tsup.dev.ts"
34
34
  },
35
35
  "dependencies": {
36
- "@elementor/editor-elements": "0.3.3",
37
- "@elementor/editor-styles": "0.3.2",
36
+ "@elementor/editor-elements": "0.3.5",
37
+ "@elementor/editor-styles": "0.4.0",
38
38
  "@elementor/editor-v1-adapters": "0.8.5"
39
39
  },
40
40
  "peerDependencies": {
@@ -30,7 +30,7 @@ describe( 'elementsStylesProvider', () => {
30
30
 
31
31
  it( 'should return all the styles attached to all the document elements', () => {
32
32
  // Act.
33
- const styles = elementsStylesProvider.get();
33
+ const styles = elementsStylesProvider.actions.get();
34
34
 
35
35
  // Assert.
36
36
  expect( styles ).toEqual( [
@@ -42,7 +42,7 @@ describe( 'elementsStylesProvider', () => {
42
42
 
43
43
  it( 'should return all styles filtered by element', () => {
44
44
  // Act.
45
- const styles = elementsStylesProvider.get( { elementId: '1' } );
45
+ const styles = elementsStylesProvider.actions.get( { elementId: '1' } );
46
46
 
47
47
  // Assert.
48
48
  expect( styles ).toEqual( [
@@ -8,14 +8,16 @@ export const ELEMENTS_STYLES_PROVIDER_KEY = 'elements';
8
8
  export const elementsStylesProvider: StylesProvider = {
9
9
  key: ELEMENTS_STYLES_PROVIDER_KEY,
10
10
  priority: 50,
11
- get: ( meta = {} ) => {
12
- let elements = getElements();
11
+ actions: {
12
+ get: ( meta = {} ) => {
13
+ let elements = getElements();
13
14
 
14
- if ( 'elementId' in meta && meta.elementId ) {
15
- elements = elements.filter( ( element ) => element.id === meta.elementId );
16
- }
15
+ if ( 'elementId' in meta && meta.elementId ) {
16
+ elements = elements.filter( ( element ) => element.id === meta.elementId );
17
+ }
17
18
 
18
- return elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );
19
+ return elements.flatMap( ( element ) => Object.values( element.model.get( 'styles' ) ?? {} ) );
20
+ },
19
21
  },
20
22
  subscribe: ( cb ) => {
21
23
  return listenTo(
@@ -1,9 +1,9 @@
1
1
  import { useEffect, useReducer } from 'react';
2
2
 
3
3
  import { stylesRepository } from '../styles-repository';
4
- import { type StyleProviderMeta } from '../utils/create-styles-repository';
4
+ import { type GetActionPayload } from '../utils/create-styles-repository';
5
5
 
6
- export function useAllStylesByProvider( meta: StyleProviderMeta = {} ) {
6
+ export function useAllStylesByProvider( meta: GetActionPayload = {} ) {
7
7
  const [ , rerender ] = useReducer( ( prev ) => ! prev, false );
8
8
 
9
9
  useEffect( () => stylesRepository.subscribe( rerender ), [] );
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { type StylesProvider } from './utils/create-styles-repository';
1
+ export { type StylesProvider, type CreateActionPayload, type GetActionPayload } from './utils/create-styles-repository';
2
2
 
3
3
  export { stylesRepository } from './styles-repository';
4
4
  export { useAllStylesByProvider } from './hooks/use-all-styles-by-provider';
@@ -80,7 +80,9 @@ const createMockProvider = ( key: string, priority: number, styleDefinitions: St
80
80
  const provider: StylesProvider = {
81
81
  key,
82
82
  priority,
83
- get: () => styleDefinitions,
83
+ actions: {
84
+ get: () => styleDefinitions,
85
+ },
84
86
  subscribe: ( cb ) => {
85
87
  subscribers.add( cb );
86
88
 
@@ -1,11 +1,17 @@
1
1
  import { type StyleDefinition } from '@elementor/editor-styles';
2
2
 
3
- export type StyleProviderMeta = Record< string, unknown >;
3
+ export type MakeOptional< T, K extends keyof T > = Omit< T, K > & Partial< T >;
4
+
5
+ export type GetActionPayload = Record< string, unknown >;
6
+ export type CreateActionPayload = MakeOptional< StyleDefinition, 'id' | 'type' | 'variants' >;
4
7
 
5
8
  export type StylesProvider = {
6
9
  key: string;
7
10
  priority: number;
8
- get: ( meta?: StyleProviderMeta ) => StyleDefinition[];
11
+ actions: {
12
+ get: ( meta?: GetActionPayload ) => StyleDefinition[];
13
+ create?: ( data: CreateActionPayload ) => Promise< StyleDefinition >;
14
+ };
9
15
  subscribe: ( callback: () => void ) => () => void;
10
16
  };
11
17
 
@@ -20,12 +26,12 @@ export const createStylesRepository = () => {
20
26
  providers.push( provider );
21
27
  };
22
28
 
23
- const allByProvider = ( meta: StyleProviderMeta = {} ) => {
24
- return getProvidersByPriority().map( ( provider ) => [ provider.key, provider.get( meta ) ] as const );
29
+ const allByProvider = ( meta: GetActionPayload = {} ) => {
30
+ return getProvidersByPriority().map( ( provider ) => [ provider.key, provider.actions.get( meta ) ] as const );
25
31
  };
26
32
 
27
- const all = ( meta: StyleProviderMeta = {} ) => {
28
- return getProvidersByPriority().flatMap( ( provider ) => provider.get( meta ) );
33
+ const all = ( meta: GetActionPayload = {} ) => {
34
+ return getProvidersByPriority().flatMap( ( provider ) => provider.actions.get( meta ) );
29
35
  };
30
36
 
31
37
  const subscribe = ( cb: () => void ) => {