@elementor/editor-canvas 0.9.0 → 0.11.0

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 (57) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/CHANGELOG.md +36 -0
  3. package/dist/index.d.mts +17 -1
  4. package/dist/index.d.ts +17 -1
  5. package/dist/index.js +203 -225
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +192 -227
  8. package/dist/index.mjs.map +1 -1
  9. package/package.json +10 -10
  10. package/src/{renderers/__tests__ → __tests__}/__mocks__/styles-schema.ts +258 -131
  11. package/src/__tests__/init-styles-renderer.test.ts +8 -3
  12. package/src/{renderers/__tests__/create-props-resolver.transformers.test.ts → __tests__/styles-prop-resolver.test.ts} +19 -27
  13. package/src/index.ts +2 -0
  14. package/src/init-style-transformers.ts +58 -0
  15. package/src/init-styles-renderer.ts +8 -6
  16. package/src/init.tsx +2 -0
  17. package/src/renderers/__tests__/create-props-resolver.test.ts +44 -34
  18. package/src/renderers/__tests__/render-styles.test.ts +3 -15
  19. package/src/renderers/create-props-resolver.ts +32 -31
  20. package/src/renderers/render-styles.ts +4 -7
  21. package/src/style-transformers-registry.ts +3 -0
  22. package/src/transformers/create-transformer.ts +13 -0
  23. package/src/transformers/create-transformers-registry.ts +16 -0
  24. package/src/transformers/styles/background-color-overlay-transformer.ts +5 -0
  25. package/src/transformers/styles/background-image-overlay-transformer.ts +28 -0
  26. package/src/transformers/styles/background-image-position-offset-transformer.ts +10 -0
  27. package/src/transformers/styles/background-image-size-scale-transformer.ts +10 -0
  28. package/src/transformers/styles/background-transformer.ts +13 -0
  29. package/src/transformers/styles/create-combine-array-transformer.ts +5 -0
  30. package/src/transformers/styles/create-multi-props-transformer.ts +14 -0
  31. package/src/transformers/styles/image-attachment-transformer.ts +15 -0
  32. package/src/transformers/styles/image-src-transformer.ts +11 -0
  33. package/src/transformers/styles/image-transformer.ts +34 -0
  34. package/src/transformers/styles/primitive-transformer.ts +3 -0
  35. package/src/transformers/styles/shadow-transformer.ts +16 -0
  36. package/src/transformers/styles/size-transformer.ts +10 -0
  37. package/src/transformers/styles/stroke-transformer.ts +17 -0
  38. package/src/transformers/types.ts +20 -0
  39. package/src/renderers/style-transformers/background-color-overlay-transformer.ts +0 -9
  40. package/src/renderers/style-transformers/background-image-overlay-transformer.ts +0 -24
  41. package/src/renderers/style-transformers/background-image-position-offset-transformer.ts +0 -10
  42. package/src/renderers/style-transformers/background-image-size-scale-transformer.ts +0 -10
  43. package/src/renderers/style-transformers/background-transformer.ts +0 -12
  44. package/src/renderers/style-transformers/create-combine-array-transformer.ts +0 -9
  45. package/src/renderers/style-transformers/create-corner-sizes-transformer.ts +0 -31
  46. package/src/renderers/style-transformers/create-edge-sizes-transformer.ts +0 -31
  47. package/src/renderers/style-transformers/dimensions.ts +0 -20
  48. package/src/renderers/style-transformers/image-attachment.ts +0 -14
  49. package/src/renderers/style-transformers/image-src.ts +0 -8
  50. package/src/renderers/style-transformers/image.ts +0 -25
  51. package/src/renderers/style-transformers/index.ts +0 -48
  52. package/src/renderers/style-transformers/layout-direction-transformer.ts +0 -20
  53. package/src/renderers/style-transformers/primitive-transformer.ts +0 -7
  54. package/src/renderers/style-transformers/shadow-transformer.ts +0 -11
  55. package/src/renderers/style-transformers/size-transformer.ts +0 -9
  56. package/src/renderers/style-transformers/stroke-transformer.ts +0 -16
  57. package/src/renderers/types.ts +0 -12
@@ -0,0 +1,16 @@
1
+ import { type AnyTransformer, type TransformerName, type TransformersMap } from './types';
2
+
3
+ export function createTransformersRegistry() {
4
+ const transformers: TransformersMap = {};
5
+
6
+ return {
7
+ register( name: TransformerName, transformer: AnyTransformer ) {
8
+ transformers[ name ] = transformer;
9
+
10
+ return this;
11
+ },
12
+ all() {
13
+ return transformers;
14
+ },
15
+ };
16
+ }
@@ -0,0 +1,5 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ export const backgroundColorOverlayTransformer = createTransformer(
4
+ ( value: string ) => `linear-gradient(${ value }, ${ value })`
5
+ );
@@ -0,0 +1,28 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ const DEFAULT_POSITION_VALUE = '0% 0%';
4
+
5
+ type BackgroundImageOverlay = {
6
+ image?: string;
7
+ size?: string;
8
+ position?: string;
9
+ repeat?: string;
10
+ attachment?: string;
11
+ };
12
+
13
+ export const backgroundImageOverlayTransformer = createTransformer( ( value: BackgroundImageOverlay ) => {
14
+ const { image, size = null, position = null, repeat = null, attachment = null } = value;
15
+
16
+ if ( ! image ) {
17
+ return null;
18
+ }
19
+
20
+ const backgroundStyles = [
21
+ image,
22
+ repeat,
23
+ attachment,
24
+ size ? `${ position || DEFAULT_POSITION_VALUE } / ${ size }` : position,
25
+ ].filter( Boolean );
26
+
27
+ return backgroundStyles.join( ' ' );
28
+ } );
@@ -0,0 +1,10 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type BackgroundImagePositionOffset = {
4
+ x?: string;
5
+ y?: string;
6
+ };
7
+
8
+ export const backgroundImagePositionOffsetTransformer = createTransformer(
9
+ ( { x = '0px', y = '0px' }: BackgroundImagePositionOffset ) => `${ x } ${ y }`
10
+ );
@@ -0,0 +1,10 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type BackgroundImageSizeScale = {
4
+ width?: string;
5
+ height?: string;
6
+ };
7
+
8
+ export const backgroundImageSizeScaleTransformer = createTransformer(
9
+ ( { width = 'auto', height = 'auto' }: BackgroundImageSizeScale ) => `${ width } ${ height }`
10
+ );
@@ -0,0 +1,13 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type Background = {
4
+ 'background-overlay'?: string;
5
+ color?: string;
6
+ };
7
+
8
+ export const backgroundTransformer = createTransformer( ( value: Background ) => {
9
+ const overlays = value[ 'background-overlay' ] ?? '';
10
+ const color = value.color ?? '';
11
+
12
+ return `${ overlays } ${ color }`.trim();
13
+ } );
@@ -0,0 +1,5 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ export const createCombineArrayTransformer = ( delimiter: string ) => {
4
+ return createTransformer( ( value: Array< string | number > ) => value.filter( Boolean ).join( delimiter ) );
5
+ };
@@ -0,0 +1,14 @@
1
+ import { createMultiPropsValue } from '../../renderers/multi-props';
2
+ import { createTransformer } from '../create-transformer';
3
+
4
+ type KeyGenerator = ( { propKey, key }: { propKey: string; key: string } ) => string;
5
+
6
+ export const createMultiPropsTransformer = ( keys: string[], keyGenerator: KeyGenerator ) => {
7
+ return createTransformer< Record< string, string > >( ( value, { key: propKey } ) => {
8
+ const entries = keys
9
+ .filter( ( key ) => value[ key ] )
10
+ .map( ( key ) => [ keyGenerator( { propKey, key } ), value[ key ] ] );
11
+
12
+ return createMultiPropsValue( Object.fromEntries( entries ) );
13
+ } );
14
+ };
@@ -0,0 +1,15 @@
1
+ import { getMediaAttachment } from '@elementor/wp-media';
2
+
3
+ import { createTransformer } from '../create-transformer';
4
+
5
+ type ImageAttachmentId = number;
6
+
7
+ export const imageAttachmentTransformer = createTransformer( async ( value: ImageAttachmentId ) => {
8
+ const attachment = await getMediaAttachment( { id: value } );
9
+
10
+ if ( ! attachment ) {
11
+ return null;
12
+ }
13
+
14
+ return attachment;
15
+ } );
@@ -0,0 +1,11 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type ImageSrc = {
4
+ id?: unknown;
5
+ url?: unknown;
6
+ };
7
+
8
+ export const imageSrcTransformer = createTransformer( ( value: ImageSrc ) => ( {
9
+ attachment: value.id,
10
+ url: value.url,
11
+ } ) );
@@ -0,0 +1,34 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type Image = {
4
+ src?: {
5
+ url?: string;
6
+ attachment?: {
7
+ url?: string;
8
+ sizes?: Record< string, { url: string } >;
9
+ };
10
+ };
11
+ size?: string;
12
+ };
13
+
14
+ export const imageTransformer = createTransformer( ( value: Image ) => {
15
+ const { src, size } = value;
16
+
17
+ if ( src?.url ) {
18
+ return `url(${ src.url })`;
19
+ }
20
+
21
+ const sizeUrl = src?.attachment?.sizes?.[ size ?? '' ]?.url;
22
+
23
+ if ( sizeUrl ) {
24
+ return `url(${ sizeUrl })`;
25
+ }
26
+
27
+ const attachmentUrl = src?.attachment?.url;
28
+
29
+ if ( attachmentUrl ) {
30
+ return `url(${ attachmentUrl })`;
31
+ }
32
+
33
+ return null;
34
+ } );
@@ -0,0 +1,3 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ export const primitiveTransformer = createTransformer( ( value: unknown ) => value );
@@ -0,0 +1,16 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type Shadow = {
4
+ hOffset?: string;
5
+ vOffset?: string;
6
+ blur?: string;
7
+ spread?: string;
8
+ color?: string;
9
+ position?: string;
10
+ };
11
+
12
+ export const shadowTransformer = createTransformer( ( value: Shadow ) => {
13
+ return [ value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position ]
14
+ .filter( Boolean )
15
+ .join( ' ' );
16
+ } );
@@ -0,0 +1,10 @@
1
+ import { createTransformer } from '../create-transformer';
2
+
3
+ type Size = {
4
+ size?: number;
5
+ unit?: string;
6
+ };
7
+
8
+ export const sizeTransformer = createTransformer( ( value: Size ) => {
9
+ return `${ value.size }${ value.unit }`;
10
+ } );
@@ -0,0 +1,17 @@
1
+ import { createMultiPropsValue } from '../../renderers/multi-props';
2
+ import { createTransformer } from '../create-transformer';
3
+
4
+ type Stroke = {
5
+ width?: string;
6
+ color?: string;
7
+ };
8
+
9
+ export const strokeTransformer = createTransformer( ( value: Stroke ) => {
10
+ const parsed = {
11
+ '-webkit-text-stroke': `${ value.width } ${ value.color }`,
12
+ stroke: `${ value.color }`,
13
+ 'stroke-width': `${ value.width }`,
14
+ };
15
+
16
+ return createMultiPropsValue( parsed );
17
+ } );
@@ -0,0 +1,20 @@
1
+ export type UnbrandedTransformer< TValue > = (
2
+ value: TValue,
3
+ options: {
4
+ key: string;
5
+ signal?: AbortSignal;
6
+ }
7
+ ) => unknown;
8
+
9
+ const brand = Symbol( 'transformer-brand' );
10
+
11
+ export type Transformer< TValue > = UnbrandedTransformer< TValue > & {
12
+ [ brand ]: true;
13
+ };
14
+
15
+ export type TransformerName = string;
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ export type AnyTransformer = Transformer< any >;
19
+
20
+ export type TransformersMap = Record< string, AnyTransformer >;
@@ -1,9 +0,0 @@
1
- import { type BackgroundColorOverlayPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const backgroundColorOverlayTransformer: Transformer< BackgroundColorOverlayPropValue[ 'value' ] > = ( value ) => {
6
- return `linear-gradient(${ value }, ${ value })`;
7
- };
8
-
9
- export default backgroundColorOverlayTransformer;
@@ -1,24 +0,0 @@
1
- import { type BackgroundImageOverlayPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const DEFAULT_POSITION_VALUE = '0% 0%';
6
-
7
- const backgroundImageOverlayTransformer: Transformer< BackgroundImageOverlayPropValue[ 'value' ] > = ( value ) => {
8
- const { image: imageSrc, size = null, position = null, repeat = null, attachment = null } = value;
9
-
10
- if ( ! imageSrc ) {
11
- return null;
12
- }
13
-
14
- const backgroundStyles = [
15
- imageSrc,
16
- repeat,
17
- attachment,
18
- size ? `${ position || DEFAULT_POSITION_VALUE } / ${ size }` : position,
19
- ].filter( Boolean );
20
-
21
- return backgroundStyles.join( ' ' );
22
- };
23
-
24
- export default backgroundImageOverlayTransformer;
@@ -1,10 +0,0 @@
1
- import type { BackgroundImagePositionOffsetPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const backgroundImagePositionOffsetTransformer: Transformer< BackgroundImagePositionOffsetPropValue[ 'value' ] > = ( {
6
- x = '0px',
7
- y = '0px',
8
- } ) => `${ x } ${ y }`;
9
-
10
- export default backgroundImagePositionOffsetTransformer;
@@ -1,10 +0,0 @@
1
- import type { BackgroundImageSizeScalePropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const backgroundImageSizeScaleTransformer: Transformer< BackgroundImageSizeScalePropValue[ 'value' ] > = ( {
6
- width = 'auto',
7
- height = 'auto',
8
- } ) => `${ width } ${ height }`;
9
-
10
- export default backgroundImageSizeScaleTransformer;
@@ -1,12 +0,0 @@
1
- import { type BackgroundPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const backgroundTransformer: Transformer< BackgroundPropValue[ 'value' ] > = ( value ) => {
6
- const overlays = value[ 'background-overlay' ] ?? '';
7
- const color = value.color ?? '';
8
-
9
- return `${ overlays } ${ color }`.trim();
10
- };
11
-
12
- export default backgroundTransformer;
@@ -1,9 +0,0 @@
1
- import { type Transformer } from '../types';
2
-
3
- type CreateCombineArrayTransformer = ( delimiter: string ) => Transformer< Array< string | number > >;
4
-
5
- const createCombineArrayTransformer: CreateCombineArrayTransformer = ( delimiter ) => {
6
- return ( value ) => value.filter( Boolean ).join( delimiter );
7
- };
8
-
9
- export default createCombineArrayTransformer;
@@ -1,31 +0,0 @@
1
- import { type Props, type PropValue } from '@elementor/editor-props';
2
-
3
- import { createMultiPropsValue } from '../multi-props';
4
- import { type Transformer } from '../types';
5
-
6
- type CornerSizes = {
7
- 'start-start'?: PropValue;
8
- 'start-end'?: PropValue;
9
- 'end-start'?: PropValue;
10
- 'end-end'?: PropValue;
11
- };
12
-
13
- type CreateCornerSizesTransformer = ( keyGenerator: ( cornerKey: string ) => string ) => Transformer< CornerSizes >;
14
-
15
- const validCorners = [ 'start-start', 'start-end', 'end-start', 'end-end' ];
16
-
17
- const createCornerSizesTransformer: CreateCornerSizesTransformer = ( keyGenerator ) => ( value ) => {
18
- const props = Object.entries( value ).reduce< Props >( ( acc, [ corner, cornerValue ] ) => {
19
- if ( validCorners.includes( corner ) ) {
20
- const key = keyGenerator( corner );
21
-
22
- acc[ key ] = cornerValue;
23
- }
24
-
25
- return acc;
26
- }, {} );
27
-
28
- return createMultiPropsValue( props );
29
- };
30
-
31
- export default createCornerSizesTransformer;
@@ -1,31 +0,0 @@
1
- import { type Props, type PropValue } from '@elementor/editor-props';
2
-
3
- import { createMultiPropsValue } from '../multi-props';
4
- import { type Transformer } from '../types';
5
-
6
- type EdgeSizes = {
7
- top?: PropValue;
8
- right?: PropValue;
9
- bottom?: PropValue;
10
- left?: PropValue;
11
- };
12
-
13
- type CreateEdgeSizesTransformer = ( keyGenerator: ( edgeKey: string ) => string ) => Transformer< EdgeSizes >;
14
-
15
- const validEdges = [ 'top', 'right', 'bottom', 'left' ];
16
-
17
- const createEdgeSizesTransformer: CreateEdgeSizesTransformer = ( keyGenerator ) => ( value ) => {
18
- const props = Object.entries( value ).reduce< Props >( ( acc, [ edge, edgeValue ] ) => {
19
- if ( validEdges.includes( edge ) ) {
20
- const key = keyGenerator( edge );
21
-
22
- acc[ key ] = edgeValue;
23
- }
24
-
25
- return acc;
26
- }, {} );
27
-
28
- return createMultiPropsValue( props );
29
- };
30
-
31
- export default createEdgeSizesTransformer;
@@ -1,20 +0,0 @@
1
- import { type DimensionsPropValue, type Props } from '@elementor/editor-props';
2
-
3
- import { createMultiPropsValue } from '../multi-props';
4
- import { type Transformer } from '../types';
5
-
6
- const validKeys = [ 'top', 'right', 'bottom', 'left' ];
7
-
8
- const dimensions: Transformer< DimensionsPropValue[ 'value' ] > = ( value, { key } ) => {
9
- const parsed = Object.entries( value ).reduce< Props >( ( acc, [ dimensionKey, dimensionValue ] ) => {
10
- if ( dimensionValue && validKeys.includes( dimensionKey ) ) {
11
- acc[ `${ key }-${ dimensionKey }` ] = dimensionValue;
12
- }
13
-
14
- return acc;
15
- }, {} );
16
-
17
- return createMultiPropsValue( parsed );
18
- };
19
-
20
- export default dimensions;
@@ -1,14 +0,0 @@
1
- import { type ImageSrcPropValue } from '@elementor/editor-props';
2
- import { getMediaAttachment } from '@elementor/wp-media';
3
-
4
- import { type Transformer } from '../types';
5
-
6
- export const imageAttachmentTransformer: Transformer< ImageSrcPropValue[ 'value' ][ 'id' ] > = async ( value ) => {
7
- const attachment = await getMediaAttachment( { id: value } );
8
-
9
- if ( ! attachment ) {
10
- return null;
11
- }
12
-
13
- return attachment;
14
- };
@@ -1,8 +0,0 @@
1
- import { type ImageSrcPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- export const imageSrcTransformer: Transformer< ImageSrcPropValue[ 'value' ] > = ( value ) => ( {
6
- attachment: value.id,
7
- url: value.url,
8
- } );
@@ -1,25 +0,0 @@
1
- import { type ImagePropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- export const imageTransformer: Transformer< ImagePropValue[ 'value' ] > = ( value ) => {
6
- const { src, size } = value;
7
-
8
- if ( src.url ) {
9
- return `url(${ src.url })`;
10
- }
11
-
12
- const sizeUrl = src.attachment?.sizes[ size ]?.url;
13
-
14
- if ( sizeUrl ) {
15
- return `url(${ sizeUrl })`;
16
- }
17
-
18
- const attachmentUrl = src.attachment?.url;
19
-
20
- if ( attachmentUrl ) {
21
- return `url(${ attachmentUrl })`;
22
- }
23
-
24
- return null;
25
- };
@@ -1,48 +0,0 @@
1
- import { type TransformersMap } from '../types';
2
- import backgroundColorOverlayTransformer from './background-color-overlay-transformer';
3
- import backgroundImageOverlayTransformer from './background-image-overlay-transformer';
4
- import backgroundImagePositionOffsetTransformer from './background-image-position-offset-transformer';
5
- import backgroundImageSizeScaleTransformer from './background-image-size-scale-transformer';
6
- import { default as background } from './background-transformer';
7
- import { default as createCombineArrayTransformer } from './create-combine-array-transformer';
8
- import createCornerSizesTransformer from './create-corner-sizes-transformer';
9
- import createEdgeSizesTransformer from './create-edge-sizes-transformer';
10
- import { default as dimensions } from './dimensions';
11
- import { imageTransformer } from './image';
12
- import { imageAttachmentTransformer } from './image-attachment';
13
- import { imageSrcTransformer } from './image-src';
14
- import { default as layoutDirection } from './layout-direction-transformer';
15
- import { primitiveTransformer } from './primitive-transformer';
16
- import { default as shadow } from './shadow-transformer';
17
- import { default as size } from './size-transformer';
18
- import { default as stroke } from './stroke-transformer';
19
-
20
- export const styleTransformers: TransformersMap = {
21
- size,
22
- shadow,
23
- stroke,
24
- background,
25
-
26
- color: primitiveTransformer,
27
- number: primitiveTransformer,
28
- string: primitiveTransformer,
29
- url: primitiveTransformer,
30
-
31
- dimensions,
32
- 'background-color-overlay': backgroundColorOverlayTransformer,
33
- 'background-image-overlay': backgroundImageOverlayTransformer,
34
- 'background-image-position-offset': backgroundImagePositionOffsetTransformer,
35
- 'background-image-size-scale': backgroundImageSizeScaleTransformer,
36
- 'background-overlay': createCombineArrayTransformer( ',' ),
37
-
38
- 'box-shadow': createCombineArrayTransformer( ',' ),
39
-
40
- 'border-width': createEdgeSizesTransformer( ( edgeKey ) => `border-${ edgeKey }-width` ),
41
- 'border-radius': createCornerSizesTransformer( ( cornerKey ) => `border-${ cornerKey }-radius` ),
42
-
43
- 'image-attachment-id': imageAttachmentTransformer,
44
- 'image-src': imageSrcTransformer,
45
- image: imageTransformer,
46
-
47
- 'layout-direction': layoutDirection,
48
- };
@@ -1,20 +0,0 @@
1
- import { type LayoutDirectionPropValue, type Props } from '@elementor/editor-props';
2
-
3
- import { createMultiPropsValue } from '../multi-props';
4
- import { type Transformer } from '../types';
5
-
6
- const validKeys = [ 'row', 'column' ];
7
-
8
- const layoutDirectionTransformer: Transformer< LayoutDirectionPropValue[ 'value' ] > = ( value, { key } ) => {
9
- const parsed = Object.entries( value ).reduce< Props >( ( acc, [ dimensionKey, dimensionValue ] ) => {
10
- if ( dimensionValue && validKeys.includes( dimensionKey ) ) {
11
- acc[ `${ dimensionKey }-${ key }` ] = dimensionValue;
12
- }
13
-
14
- return acc;
15
- }, {} );
16
-
17
- return createMultiPropsValue( parsed );
18
- };
19
-
20
- export default layoutDirectionTransformer;
@@ -1,7 +0,0 @@
1
- import { type Transformer } from '../types';
2
-
3
- type Primitive = string | number | boolean;
4
-
5
- export const primitiveTransformer: Transformer< Primitive > = ( value ) => {
6
- return value;
7
- };
@@ -1,11 +0,0 @@
1
- import { type ShadowPropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const shadowTransformer: Transformer< ShadowPropValue[ 'value' ] > = ( value ) => {
6
- return [ value.hOffset, value.vOffset, value.blur, value.spread, value.color, value.position ]
7
- .filter( Boolean )
8
- .join( ' ' );
9
- };
10
-
11
- export default shadowTransformer;
@@ -1,9 +0,0 @@
1
- import { type SizePropValue } from '@elementor/editor-props';
2
-
3
- import { type Transformer } from '../types';
4
-
5
- const sizeTransformer: Transformer< SizePropValue[ 'value' ] > = ( value ) => {
6
- return `${ value.size }${ value.unit }`;
7
- };
8
-
9
- export default sizeTransformer;
@@ -1,16 +0,0 @@
1
- import { type StrokePropValue } from '@elementor/editor-props';
2
-
3
- import { createMultiPropsValue } from '../multi-props';
4
- import { type Transformer } from '../types';
5
-
6
- const strokeTransformer: Transformer< StrokePropValue[ 'value' ] > = ( value ) => {
7
- const parsed = {
8
- '-webkit-text-stroke': `${ value.width } ${ value.color }`,
9
- stroke: `${ value.color }`,
10
- 'stroke-width': `${ value.width }`,
11
- };
12
-
13
- return createMultiPropsValue( parsed );
14
- };
15
-
16
- export default strokeTransformer;
@@ -1,12 +0,0 @@
1
- import type { PropValue } from '@elementor/editor-props';
2
-
3
- export type Transformer< TValue extends PropValue > = (
4
- value: TValue,
5
- options: {
6
- key: string;
7
- signal?: AbortSignal;
8
- }
9
- ) => unknown;
10
-
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- export type TransformersMap = Record< string, Transformer< any > >;