@elementor/editor-canvas 0.2.0 → 0.3.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.
- package/.turbo/turbo-build.log +8 -8
- package/CHANGELOG.md +19 -0
- package/dist/index.js +29 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -9
- package/src/styles-renderer/transformers/index.ts +5 -1
- package/src/styles-renderer/transformers/number-transformer.ts +11 -0
- package/src/styles-renderer/transformers/string-transformer.ts +11 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @elementor/editor-canvas@0.
|
|
2
|
+
> @elementor/editor-canvas@0.3.0 build
|
|
3
3
|
> tsup --config=../../tsup.build.ts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
-
[32mESM[39m [1mdist/index.mjs [22m[
|
|
14
|
-
[32mESM[39m [1mdist/index.mjs.map [22m[
|
|
15
|
-
[32mESM[39m ⚡️ Build success in
|
|
16
|
-
[32mCJS[39m [1mdist/index.js [22m[32m16.
|
|
17
|
-
[32mCJS[39m [1mdist/index.js.map [22m[
|
|
18
|
-
[32mCJS[39m ⚡️ Build success in
|
|
13
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m15.13 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m28.40 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 147ms
|
|
16
|
+
[32mCJS[39m [1mdist/index.js [22m[32m16.91 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m28.61 KB[39m
|
|
18
|
+
[32mCJS[39m ⚡️ Build success in 148ms
|
|
19
19
|
[34mDTS[39m Build start
|
|
20
|
-
[32mDTS[39m ⚡️ Build success in
|
|
20
|
+
[32mDTS[39m ⚡️ Build success in 18242ms
|
|
21
21
|
[32mDTS[39m [1mdist/index.d.mts [22m[32m13.00 B[39m
|
|
22
22
|
[32mDTS[39m [1mdist/index.d.ts [22m[32m13.00 B[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @elementor/editor-canvas
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c393288: Remove support for shorthand prop values.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 91453b3: Update and lock dependencies versions
|
|
12
|
+
- Updated dependencies [c393288]
|
|
13
|
+
- Updated dependencies [bc728b7]
|
|
14
|
+
- Updated dependencies [91453b3]
|
|
15
|
+
- @elementor/editor-props@0.4.0
|
|
16
|
+
- @elementor/editor-styles-repository@0.1.1
|
|
17
|
+
- @elementor/editor-v1-adapters@0.8.5
|
|
18
|
+
- @elementor/editor-responsive@0.12.4
|
|
19
|
+
- @elementor/editor-elements@0.3.2
|
|
20
|
+
- @elementor/editor@0.17.2
|
|
21
|
+
|
|
3
22
|
## 0.2.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/dist/index.js
CHANGED
|
@@ -221,10 +221,19 @@ var linkedDimensionsTransformer = (propValue, { transform }) => {
|
|
|
221
221
|
};
|
|
222
222
|
var linked_dimensions_transformer_default = linkedDimensionsTransformer;
|
|
223
223
|
|
|
224
|
-
// src/styles-renderer/transformers/
|
|
224
|
+
// src/styles-renderer/transformers/number-transformer.ts
|
|
225
225
|
var import_editor_props6 = require("@elementor/editor-props");
|
|
226
|
+
var numberTransformer = (propValue) => {
|
|
227
|
+
if (import_editor_props6.numberPropTypeUtil.isValid(propValue)) {
|
|
228
|
+
return propValue.value;
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
var number_transformer_default = numberTransformer;
|
|
232
|
+
|
|
233
|
+
// src/styles-renderer/transformers/shadow-transformer.ts
|
|
234
|
+
var import_editor_props7 = require("@elementor/editor-props");
|
|
226
235
|
var shadowTransformer = (propValue, { transform }) => {
|
|
227
|
-
if (
|
|
236
|
+
if (import_editor_props7.shadowPropTypeUtil.isValid(propValue)) {
|
|
228
237
|
const { position, hOffset, vOffset, blur, spread, color } = propValue.value || {};
|
|
229
238
|
return [
|
|
230
239
|
transform(hOffset),
|
|
@@ -239,18 +248,27 @@ var shadowTransformer = (propValue, { transform }) => {
|
|
|
239
248
|
var shadow_transformer_default = shadowTransformer;
|
|
240
249
|
|
|
241
250
|
// src/styles-renderer/transformers/size-transformer.ts
|
|
242
|
-
var
|
|
251
|
+
var import_editor_props8 = require("@elementor/editor-props");
|
|
243
252
|
var sizeTransformer = (propValue) => {
|
|
244
|
-
if (
|
|
253
|
+
if (import_editor_props8.sizePropTypeUtil.isValid(propValue)) {
|
|
245
254
|
return propValue.value && propValue.value.size + propValue.value.unit;
|
|
246
255
|
}
|
|
247
256
|
};
|
|
248
257
|
var size_transformer_default = sizeTransformer;
|
|
249
258
|
|
|
259
|
+
// src/styles-renderer/transformers/string-transformer.ts
|
|
260
|
+
var import_editor_props9 = require("@elementor/editor-props");
|
|
261
|
+
var stringTransformer = (propValue) => {
|
|
262
|
+
if (import_editor_props9.stringPropTypeUtil.isValid(propValue)) {
|
|
263
|
+
return propValue.value;
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
var string_transformer_default = stringTransformer;
|
|
267
|
+
|
|
250
268
|
// src/styles-renderer/transformers/stroke-transformer.ts
|
|
251
|
-
var
|
|
269
|
+
var import_editor_props10 = require("@elementor/editor-props");
|
|
252
270
|
var strokeTransformer = (propValue, { transform }) => {
|
|
253
|
-
if (
|
|
271
|
+
if (import_editor_props10.strokePropTypeUtil.isValid(propValue)) {
|
|
254
272
|
return `${transform(propValue.value?.width)} ${transform(propValue.value?.color)}`;
|
|
255
273
|
}
|
|
256
274
|
};
|
|
@@ -259,14 +277,16 @@ var stroke_transformer_default = strokeTransformer;
|
|
|
259
277
|
// src/styles-renderer/transformers/index.ts
|
|
260
278
|
var transformers_default = {
|
|
261
279
|
color: color_transformer_default,
|
|
280
|
+
number: number_transformer_default,
|
|
262
281
|
size: size_transformer_default,
|
|
263
282
|
shadow: shadow_transformer_default,
|
|
283
|
+
string: string_transformer_default,
|
|
284
|
+
stroke: stroke_transformer_default,
|
|
264
285
|
"border-radius": border_radius_transformer_default,
|
|
265
286
|
"border-width": border_width_transformer_default,
|
|
266
287
|
"box-shadow": create_combine_array_transformer_default(", "),
|
|
267
288
|
"background-image": create_combine_array_transformer_default(", "),
|
|
268
289
|
"linked-dimensions": linked_dimensions_transformer_default,
|
|
269
|
-
stroke: stroke_transformer_default,
|
|
270
290
|
"background-overlay": background_overlay_transformer_default
|
|
271
291
|
};
|
|
272
292
|
|
|
@@ -274,10 +294,10 @@ var transformers_default = {
|
|
|
274
294
|
var import_utils = require("@elementor/utils");
|
|
275
295
|
|
|
276
296
|
// src/styles-renderer/transform.ts
|
|
277
|
-
var
|
|
297
|
+
var import_editor_props11 = require("@elementor/editor-props");
|
|
278
298
|
var FALLBACK_VALUE = "unset";
|
|
279
299
|
function transformValue(value, transformers) {
|
|
280
|
-
if (!(0,
|
|
300
|
+
if (!(0, import_editor_props11.isTransformable)(value)) {
|
|
281
301
|
return value;
|
|
282
302
|
}
|
|
283
303
|
const transformer = transformers[value.$$type];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/init.tsx","../src/components/elements-overlays.tsx","../src/components/element-overlay.tsx","../src/hooks/use-bind-react-props-to-element.ts","../src/hooks/use-floating-on-element.ts","../src/init-styles-renderer.ts","../src/styles-renderer/transformers/background-overlay-transformer.ts","../src/styles-renderer/transformers/border-radius-transformer.ts","../src/styles-renderer/transformers/border-width-transformer.ts","../src/styles-renderer/transformers/color-transformer.ts","../src/styles-renderer/transformers/create-combine-array-transformer.ts","../src/styles-renderer/transformers/linked-dimensions-transformer.ts","../src/styles-renderer/transformers/shadow-transformer.ts","../src/styles-renderer/transformers/size-transformer.ts","../src/styles-renderer/transformers/stroke-transformer.ts","../src/styles-renderer/transformers/index.ts","../src/styles-renderer/render.ts","../src/styles-renderer/transform.ts","../src/styles-renderer/enqueue-used-fonts.ts","../src/sync/enqueue-font.ts","../src/sync/get-canvas-iframe-body.ts","../src/index.ts"],"sourcesContent":["import { injectIntoTop } from '@elementor/editor';\n\nimport { ElementsOverlays } from './components/elements-overlays';\nimport { initStylesRenderer } from './init-styles-renderer';\n\nexport function init() {\n\tinitStylesRenderer();\n\n\tinjectIntoTop( {\n\t\tid: 'elements-overlays',\n\t\tcomponent: ElementsOverlays,\n\t} );\n}\n","import * as React from 'react';\nimport { useElementsDomRef, useSelectedElement } from '@elementor/editor-elements';\nimport {\n\t__privateUseIsPreviewMode as useIsPreviewMode,\n\t__privateUseIsRouteActive as useIsRouteActive,\n} from '@elementor/editor-v1-adapters';\n\nimport { ElementOverlay } from './element-overlay';\n\nexport function ElementsOverlays() {\n\tconst selected = useSelectedElement();\n\tconst domElements = useElementsDomRef();\n\n\tconst isPreviewMode = useIsPreviewMode();\n\tconst isKitRouteActive = useIsRouteActive( 'panel/global' );\n\n\tconst isActive = ! isPreviewMode && ! isKitRouteActive;\n\n\treturn (\n\t\tisActive &&\n\t\tdomElements.map( ( el ) => (\n\t\t\t<ElementOverlay\n\t\t\t\telement={ el }\n\t\t\t\tkey={ el.dataset.id }\n\t\t\t\tisSelected={ selected.element?.id === el.dataset.id }\n\t\t\t/>\n\t\t) )\n\t);\n}\n","import * as React from 'react';\nimport { Box, styled } from '@elementor/ui';\nimport { FloatingPortal, useHover, useInteractions } from '@floating-ui/react';\n\nimport { useBindReactPropsToElement } from '../hooks/use-bind-react-props-to-element';\nimport { useFloatingOnElement } from '../hooks/use-floating-on-element';\n\nexport const CANVAS_WRAPPER_ID = 'elementor-preview-responsive-wrapper';\n\ntype Props = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nconst OverlayBox = styled( Box, { shouldForwardProp: ( prop ) => prop !== 'isSelected' } )<\n\tPick< Props, 'isSelected' >\n>( ( { theme, isSelected } ) => ( {\n\toutline: `${ isSelected ? '2px' : '1px' } solid ${ theme.palette.primary.light }`,\n\toutlineOffset: isSelected ? '-2px' : '-1px',\n\tpointerEvents: 'none',\n} ) );\n\nexport function ElementOverlay( { element, isSelected }: Props ) {\n\tconst { context, floating, isVisible } = useFloatingOnElement( { element, isSelected } );\n\tconst { getFloatingProps, getReferenceProps } = useInteractions( [ useHover( context ) ] );\n\n\tuseBindReactPropsToElement( element, getReferenceProps );\n\n\treturn (\n\t\tisVisible && (\n\t\t\t<FloatingPortal id={ CANVAS_WRAPPER_ID }>\n\t\t\t\t<OverlayBox\n\t\t\t\t\tref={ floating.setRef }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tstyle={ floating.styles }\n\t\t\t\t\tdata-element-overlay={ element.dataset.id }\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t{ ...getFloatingProps() }\n\t\t\t\t/>\n\t\t\t</FloatingPortal>\n\t\t)\n\t);\n}\n","import { useEffect } from 'react';\n\ntype Props = Record< string, unknown >;\n\nexport function useBindReactPropsToElement( element: HTMLElement, getProps: () => Props ) {\n\tuseEffect( () => {\n\t\tconst el = element;\n\n\t\tconst { events, attrs } = groupProps( getProps() );\n\n\t\tevents.forEach( ( [ eventName, listener ] ) => el.addEventListener( eventName, listener ) );\n\t\tattrs.forEach( ( [ attrName, attrValue ] ) => el.setAttribute( attrName, attrValue ) );\n\n\t\treturn () => {\n\t\t\tevents.forEach( ( [ eventName, listener ] ) => el.removeEventListener( eventName, listener ) );\n\t\t\tattrs.forEach( ( [ attrName ] ) => el.removeAttribute( attrName ) );\n\t\t};\n\t}, [ getProps, element ] );\n}\n\ntype GroupedProps = {\n\tevents: Array< [ string, () => void ] >;\n\tattrs: Array< [ string, string ] >;\n};\n\nfunction groupProps( props: Props ) {\n\tconst eventRegex = /^on(?=[A-Z])/;\n\n\treturn Object.entries( props ).reduce< GroupedProps >(\n\t\t( acc, [ propName, propValue ] ) => {\n\t\t\tif ( ! eventRegex.test( propName ) ) {\n\t\t\t\tacc.attrs.push( [ propName, propValue as string ] );\n\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tconst eventName = propName.replace( eventRegex, '' ).toLowerCase();\n\t\t\tconst listener = propValue as () => void;\n\n\t\t\tacc.events.push( [ eventName, listener ] );\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tevents: [],\n\t\t\tattrs: [],\n\t\t}\n\t);\n}\n","import { useState } from 'react';\nimport { autoUpdate, offset, size, useFloating } from '@floating-ui/react';\n\ntype Options = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nexport function useFloatingOnElement( { element, isSelected }: Options ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst { refs, floatingStyles, context } = useFloating( {\n\t\t// Must be controlled for interactions (like hover) to work.\n\t\topen: isOpen || isSelected,\n\t\tonOpenChange: setIsOpen,\n\n\t\t// Add an animation frame to support scroll events (without it the floating element will stay in the same position).\n\t\twhileElementsMounted: ( ...args ) => autoUpdate( ...args, { animationFrame: true } ),\n\n\t\t// The first element in the canvas is `display: contents` so we need to use the first child.\n\t\telements: { reference: element.firstElementChild },\n\n\t\tmiddleware: [\n\t\t\t// Match the floating element's size to the reference element.\n\t\t\tsize( {\n\t\t\t\tapply( { elements, rects } ) {\n\t\t\t\t\tObject.assign( elements.floating.style, {\n\t\t\t\t\t\twidth: `${ rects.reference.width }px`,\n\t\t\t\t\t\theight: `${ rects.reference.height }px`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\n\t\t\t// Center the floating element on the reference element.\n\t\t\toffset( ( { rects } ) => -rects.reference.height / 2 - rects.floating.height / 2 ),\n\t\t],\n\t} );\n\n\treturn {\n\t\tisVisible: isOpen || isSelected,\n\t\tcontext,\n\t\tfloating: {\n\t\t\tsetRef: refs.setFloating,\n\t\t\tref: refs.floating,\n\t\t\tstyles: floatingStyles,\n\t\t},\n\t};\n}\n","import { getBreakpointsMap } from '@elementor/editor-responsive';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { render, transformers } from './styles-renderer';\nimport enqueueUsedFonts from './styles-renderer/enqueue-used-fonts';\nimport { getCanvasIframeBody } from './sync/get-canvas-iframe-body';\n\nconst WRAPPER_DATA_ATTR = 'data-styles-container';\n\nexport function initStylesRenderer() {\n\tstylesRepository.subscribe( () => {\n\t\tconst styleContainer = getStylesContainer();\n\t\tconst styles = Object.values( stylesRepository.all() );\n\t\tconst breakpoints = getBreakpointsMap();\n\n\t\tstyleContainer.innerHTML = render( { transformers, styles, breakpoints } );\n\n\t\tenqueueUsedFonts( styles );\n\t} );\n}\n\nfunction getStylesContainer() {\n\tconst preview = getCanvasIframeBody();\n\tconst stylesContainer = preview?.querySelector( `[${ WRAPPER_DATA_ATTR }]` );\n\n\tif ( stylesContainer ) {\n\t\treturn stylesContainer;\n\t}\n\n\tconst el = createStylesContainer();\n\n\tpreview?.prepend( el );\n\n\treturn el;\n}\n\nfunction createStylesContainer() {\n\tconst el = document.createElement( 'div' );\n\tel.style.display = 'none';\n\tel.setAttribute( WRAPPER_DATA_ATTR, '' );\n\n\treturn el;\n}\n","import { colorGradientPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst backgroundOverlayTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( colorGradientPropTypeUtil.isValid( propValue ) ) {\n\t\treturn `linear-gradient( ${ [ transform( propValue.value.color ) ] }, ${ [\n\t\t\ttransform( propValue.value.color ),\n\t\t] } )`;\n\t}\n};\n\nexport default backgroundOverlayTransformer;\n","import { borderRadiusPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderRadiusTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderRadiusPropTypeUtil.isValid( propValue ) ) {\n\t\tconst {\n\t\t\t'top-left': topLeft,\n\t\t\t'top-right': topRight,\n\t\t\t'bottom-right': bottomRight,\n\t\t\t'bottom-left': bottomLeft,\n\t\t} = propValue.value || {};\n\n\t\treturn `${ transform( topLeft ) || 'unset' } ${ transform( topRight ) || 'unset' } ${\n\t\t\ttransform( bottomRight ) || 'unset'\n\t\t} ${ transform( bottomLeft ) || 'unset' }`;\n\t}\n};\n\nexport default borderRadiusTransformer;\n","import { borderWidthPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderWidthTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderWidthPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default borderWidthTransformer;\n","import { colorPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst colorTransformer: Transformer = ( propValue ) => {\n\tif ( colorPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default colorTransformer;\n","import { z } from '@elementor/schema';\n\nimport { type Transformer } from '../types';\n\nexport const schema = z.object( {\n\t$$type: z.string(),\n\tvalue: z.array( z.any() ),\n} );\n\nconst createCombineArrayTransformer =\n\t( delimiter: string ): Transformer =>\n\t( propValue, { transform } ) => {\n\t\tconst { success, data } = schema.safeParse( propValue );\n\n\t\tif ( success ) {\n\t\t\treturn data.value.map( ( item ) => transform( item ) ).join( delimiter );\n\t\t}\n\t};\n\nexport default createCombineArrayTransformer;\n","import { linkedDimensionsPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst linkedDimensionsTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( linkedDimensionsPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default linkedDimensionsTransformer;\n","import { shadowPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst shadowTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( shadowPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { position, hOffset, vOffset, blur, spread, color } = propValue.value || {};\n\n\t\treturn [\n\t\t\ttransform( hOffset ),\n\t\t\ttransform( vOffset ),\n\t\t\ttransform( blur ),\n\t\t\ttransform( spread ),\n\t\t\ttransform( color ),\n\t\t\tposition,\n\t\t]\n\t\t\t.filter( Boolean )\n\t\t\t.join( ' ' );\n\t}\n};\n\nexport default shadowTransformer;\n","import { sizePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst sizeTransformer: Transformer = ( propValue ) => {\n\tif ( sizePropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value && propValue.value.size + propValue.value.unit;\n\t}\n};\n\nexport default sizeTransformer;\n","import { strokePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst strokeTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( strokePropTypeUtil.isValid( propValue ) ) {\n\t\treturn `${ transform( propValue.value?.width ) } ${ transform( propValue.value?.color ) }`;\n\t}\n};\n\nexport default strokeTransformer;\n","import { default as backgroundOverlay } from './background-overlay-transformer';\nimport { default as borderRadius } from './border-radius-transformer';\nimport { default as borderWidth } from './border-width-transformer';\nimport { default as color } from './color-transformer';\nimport { default as createCombineArrayTransformer } from './create-combine-array-transformer';\nimport { default as linkedDimensions } from './linked-dimensions-transformer';\nimport { default as shadow } from './shadow-transformer';\nimport { default as size } from './size-transformer';\nimport { default as stroke } from './stroke-transformer';\n\nexport default {\n\tcolor,\n\tsize,\n\tshadow,\n\t'border-radius': borderRadius,\n\t'border-width': borderWidth,\n\t'box-shadow': createCombineArrayTransformer( ', ' ),\n\t'background-image': createCombineArrayTransformer( ', ' ),\n\t'linked-dimensions': linkedDimensions,\n\tstroke,\n\t'background-overlay': backgroundOverlay,\n};\n","import { type Props } from '@elementor/editor-props';\nimport { type Breakpoint, type BreakpointId, type BreakpointsMap } from '@elementor/editor-responsive';\nimport { type StyleDefinition, type StyleVariant } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { transformValue } from './transform';\nimport { type TransformersMap } from './types';\n\ntype RenderParams = {\n\ttransformers: TransformersMap;\n\tstyles: StyleDefinition[];\n\tbreakpoints: BreakpointsMap;\n};\n\nexport default function render( { transformers, styles, breakpoints }: RenderParams ) {\n\tconst cssStyle: string[] = [];\n\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tconst style = renderStyle( styleDef, transformers, breakpoints );\n\n\t\t\tcssStyle.push( wrapWithStyleElement( styleDef.id, style ) );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot render style': ${ ensureError( error ).message }` );\n\t}\n\n\treturn cssStyle.join( '' );\n}\n\nfunction renderStyle( style: StyleDefinition, transformers: TransformersMap, breakpoints: BreakpointsMap ) {\n\tconst baseSelector = getBaseSelector( style );\n\n\tif ( ! baseSelector ) {\n\t\treturn '';\n\t}\n\n\tconst stylesheet: string[] = [];\n\n\tObject.values( style.variants ).forEach( ( variant ) => {\n\t\tconst styleDeclaration = variantToStyleDeclaration( baseSelector, variant, transformers, breakpoints );\n\n\t\tif ( styleDeclaration ) {\n\t\t\tstylesheet.push( styleDeclaration );\n\t\t}\n\t} );\n\n\treturn stylesheet.join( '' );\n}\n\nfunction getBaseSelector( styleDef: StyleDefinition ) {\n\tconst map = {\n\t\tclass: '.',\n\t};\n\n\treturn `${ map[ styleDef.type ] }${ styleDef.id }`;\n}\n\nfunction variantToStyleDeclaration(\n\tbaseSelector: string,\n\tvariant: StyleVariant,\n\ttransformers: TransformersMap,\n\tbreakpoints: BreakpointsMap\n) {\n\tconst css = propsToCss( variant.props, transformers );\n\n\tif ( ! css ) {\n\t\treturn '';\n\t}\n\n\tconst state = variant.meta.state ? `:${ variant.meta.state }` : '';\n\tconst selector = `${ baseSelector }${ state }`;\n\n\tlet styleDeclaration = `${ selector }{${ css }}`;\n\n\tif ( variant.meta.breakpoint ) {\n\t\tstyleDeclaration = wrapWithMediaQuery( breakpoints, variant.meta.breakpoint, styleDeclaration );\n\t}\n\n\treturn styleDeclaration;\n}\n\nfunction propsToCss( props: Props, transformers: TransformersMap ) {\n\treturn Object.entries( props )\n\t\t.reduce< string[] >( ( acc, [ cssProp, cssValue ] ) => {\n\t\t\tconst prop = camelCaseToDash( cssProp );\n\t\t\tconst value = transformValue( cssValue, transformers );\n\n\t\t\tacc.push( prop + ':' + value );\n\n\t\t\treturn acc;\n\t\t}, [] )\n\t\t.join( ';' );\n}\n\nfunction camelCaseToDash( str: string ) {\n\treturn str.replace( /([a-zA-Z])(?=[A-Z])/g, '$1-' ).toLowerCase();\n}\n\nfunction wrapWithMediaQuery( breakpoints: BreakpointsMap, breakpoint: BreakpointId, css: string ) {\n\tconst size = getBreakpointSize( breakpoints[ breakpoint ] );\n\treturn size ? `@media(${ size }){${ css }}` : css;\n}\n\nfunction getBreakpointSize( breakpoint: Breakpoint ) {\n\treturn breakpoint.type ? `${ breakpoint.type }:${ breakpoint.width }px` : null;\n}\n\nfunction wrapWithStyleElement( id: string, content: string ) {\n\treturn `<style data-style-id=\"${ id }\">${ content }</style>`;\n}\n","import { isTransformable, type PropValue } from '@elementor/editor-props';\n\nimport { type TransformersMap } from './types';\n\nconst FALLBACK_VALUE = 'unset';\n\nexport function transformValue( value: PropValue | undefined, transformers: TransformersMap ): PropValue {\n\tif ( ! isTransformable( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst transformer = transformers[ value.$$type ];\n\n\tif ( ! transformer ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer not found for prop type '${ value.$$type }'` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\tconst transformedValue = transformer( value, {\n\t\ttransform: ( v ) => transformValue( v, transformers ),\n\t} );\n\n\tif ( transformedValue === undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer '${ value.$$type }' received unsupported value` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\t// Transform recursively to support transformers that return transformable values.\n\treturn transformValue( transformedValue, transformers );\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { enqueueFont } from '../sync/enqueue-font';\n\nexport default function enqueueUsedFonts( styles: StyleDefinition[] ) {\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tObject.values( styleDef.variants ).forEach( ( variant ) => {\n\t\t\t\tconst fontFamily = variant.props[ 'font-family' ] ?? null;\n\n\t\t\t\tif ( fontFamily && typeof fontFamily === 'string' ) {\n\t\t\t\t\tenqueueFont( fontFamily );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot enqueue font': ${ ensureError( error ).message }` );\n\t}\n}\n","import { type CanvasExtendedWindow, type EnqueueFont } from './types';\n\nexport const enqueueFont: EnqueueFont = ( fontFamily, context = 'preview' ) => {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.helpers?.enqueueFont?.( fontFamily, context ) ?? null;\n};\n","import type { CanvasExtendedWindow } from './types';\n\nexport function getCanvasIframeBody() {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.$preview?.[ 0 ]?.contentDocument?.body;\n}\n","import { init } from './init';\n\ninit();\n"],"mappings":"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","names":["React","import_react","import_react","useIsPreviewMode","useIsRouteActive","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","size","import_utils"]}
|
|
1
|
+
{"version":3,"sources":["../src/init.tsx","../src/components/elements-overlays.tsx","../src/components/element-overlay.tsx","../src/hooks/use-bind-react-props-to-element.ts","../src/hooks/use-floating-on-element.ts","../src/init-styles-renderer.ts","../src/styles-renderer/transformers/background-overlay-transformer.ts","../src/styles-renderer/transformers/border-radius-transformer.ts","../src/styles-renderer/transformers/border-width-transformer.ts","../src/styles-renderer/transformers/color-transformer.ts","../src/styles-renderer/transformers/create-combine-array-transformer.ts","../src/styles-renderer/transformers/linked-dimensions-transformer.ts","../src/styles-renderer/transformers/number-transformer.ts","../src/styles-renderer/transformers/shadow-transformer.ts","../src/styles-renderer/transformers/size-transformer.ts","../src/styles-renderer/transformers/string-transformer.ts","../src/styles-renderer/transformers/stroke-transformer.ts","../src/styles-renderer/transformers/index.ts","../src/styles-renderer/render.ts","../src/styles-renderer/transform.ts","../src/styles-renderer/enqueue-used-fonts.ts","../src/sync/enqueue-font.ts","../src/sync/get-canvas-iframe-body.ts","../src/index.ts"],"sourcesContent":["import { injectIntoTop } from '@elementor/editor';\n\nimport { ElementsOverlays } from './components/elements-overlays';\nimport { initStylesRenderer } from './init-styles-renderer';\n\nexport function init() {\n\tinitStylesRenderer();\n\n\tinjectIntoTop( {\n\t\tid: 'elements-overlays',\n\t\tcomponent: ElementsOverlays,\n\t} );\n}\n","import * as React from 'react';\nimport { useElementsDomRef, useSelectedElement } from '@elementor/editor-elements';\nimport {\n\t__privateUseIsPreviewMode as useIsPreviewMode,\n\t__privateUseIsRouteActive as useIsRouteActive,\n} from '@elementor/editor-v1-adapters';\n\nimport { ElementOverlay } from './element-overlay';\n\nexport function ElementsOverlays() {\n\tconst selected = useSelectedElement();\n\tconst domElements = useElementsDomRef();\n\n\tconst isPreviewMode = useIsPreviewMode();\n\tconst isKitRouteActive = useIsRouteActive( 'panel/global' );\n\n\tconst isActive = ! isPreviewMode && ! isKitRouteActive;\n\n\treturn (\n\t\tisActive &&\n\t\tdomElements.map( ( el ) => (\n\t\t\t<ElementOverlay\n\t\t\t\telement={ el }\n\t\t\t\tkey={ el.dataset.id }\n\t\t\t\tisSelected={ selected.element?.id === el.dataset.id }\n\t\t\t/>\n\t\t) )\n\t);\n}\n","import * as React from 'react';\nimport { Box, styled } from '@elementor/ui';\nimport { FloatingPortal, useHover, useInteractions } from '@floating-ui/react';\n\nimport { useBindReactPropsToElement } from '../hooks/use-bind-react-props-to-element';\nimport { useFloatingOnElement } from '../hooks/use-floating-on-element';\n\nexport const CANVAS_WRAPPER_ID = 'elementor-preview-responsive-wrapper';\n\ntype Props = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nconst OverlayBox = styled( Box, { shouldForwardProp: ( prop ) => prop !== 'isSelected' } )<\n\tPick< Props, 'isSelected' >\n>( ( { theme, isSelected } ) => ( {\n\toutline: `${ isSelected ? '2px' : '1px' } solid ${ theme.palette.primary.light }`,\n\toutlineOffset: isSelected ? '-2px' : '-1px',\n\tpointerEvents: 'none',\n} ) );\n\nexport function ElementOverlay( { element, isSelected }: Props ) {\n\tconst { context, floating, isVisible } = useFloatingOnElement( { element, isSelected } );\n\tconst { getFloatingProps, getReferenceProps } = useInteractions( [ useHover( context ) ] );\n\n\tuseBindReactPropsToElement( element, getReferenceProps );\n\n\treturn (\n\t\tisVisible && (\n\t\t\t<FloatingPortal id={ CANVAS_WRAPPER_ID }>\n\t\t\t\t<OverlayBox\n\t\t\t\t\tref={ floating.setRef }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tstyle={ floating.styles }\n\t\t\t\t\tdata-element-overlay={ element.dataset.id }\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t{ ...getFloatingProps() }\n\t\t\t\t/>\n\t\t\t</FloatingPortal>\n\t\t)\n\t);\n}\n","import { useEffect } from 'react';\n\ntype Props = Record< string, unknown >;\n\nexport function useBindReactPropsToElement( element: HTMLElement, getProps: () => Props ) {\n\tuseEffect( () => {\n\t\tconst el = element;\n\n\t\tconst { events, attrs } = groupProps( getProps() );\n\n\t\tevents.forEach( ( [ eventName, listener ] ) => el.addEventListener( eventName, listener ) );\n\t\tattrs.forEach( ( [ attrName, attrValue ] ) => el.setAttribute( attrName, attrValue ) );\n\n\t\treturn () => {\n\t\t\tevents.forEach( ( [ eventName, listener ] ) => el.removeEventListener( eventName, listener ) );\n\t\t\tattrs.forEach( ( [ attrName ] ) => el.removeAttribute( attrName ) );\n\t\t};\n\t}, [ getProps, element ] );\n}\n\ntype GroupedProps = {\n\tevents: Array< [ string, () => void ] >;\n\tattrs: Array< [ string, string ] >;\n};\n\nfunction groupProps( props: Props ) {\n\tconst eventRegex = /^on(?=[A-Z])/;\n\n\treturn Object.entries( props ).reduce< GroupedProps >(\n\t\t( acc, [ propName, propValue ] ) => {\n\t\t\tif ( ! eventRegex.test( propName ) ) {\n\t\t\t\tacc.attrs.push( [ propName, propValue as string ] );\n\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tconst eventName = propName.replace( eventRegex, '' ).toLowerCase();\n\t\t\tconst listener = propValue as () => void;\n\n\t\t\tacc.events.push( [ eventName, listener ] );\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tevents: [],\n\t\t\tattrs: [],\n\t\t}\n\t);\n}\n","import { useState } from 'react';\nimport { autoUpdate, offset, size, useFloating } from '@floating-ui/react';\n\ntype Options = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nexport function useFloatingOnElement( { element, isSelected }: Options ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst { refs, floatingStyles, context } = useFloating( {\n\t\t// Must be controlled for interactions (like hover) to work.\n\t\topen: isOpen || isSelected,\n\t\tonOpenChange: setIsOpen,\n\n\t\t// Add an animation frame to support scroll events (without it the floating element will stay in the same position).\n\t\twhileElementsMounted: ( ...args ) => autoUpdate( ...args, { animationFrame: true } ),\n\n\t\t// The first element in the canvas is `display: contents` so we need to use the first child.\n\t\telements: { reference: element.firstElementChild },\n\n\t\tmiddleware: [\n\t\t\t// Match the floating element's size to the reference element.\n\t\t\tsize( {\n\t\t\t\tapply( { elements, rects } ) {\n\t\t\t\t\tObject.assign( elements.floating.style, {\n\t\t\t\t\t\twidth: `${ rects.reference.width }px`,\n\t\t\t\t\t\theight: `${ rects.reference.height }px`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\n\t\t\t// Center the floating element on the reference element.\n\t\t\toffset( ( { rects } ) => -rects.reference.height / 2 - rects.floating.height / 2 ),\n\t\t],\n\t} );\n\n\treturn {\n\t\tisVisible: isOpen || isSelected,\n\t\tcontext,\n\t\tfloating: {\n\t\t\tsetRef: refs.setFloating,\n\t\t\tref: refs.floating,\n\t\t\tstyles: floatingStyles,\n\t\t},\n\t};\n}\n","import { getBreakpointsMap } from '@elementor/editor-responsive';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { render, transformers } from './styles-renderer';\nimport enqueueUsedFonts from './styles-renderer/enqueue-used-fonts';\nimport { getCanvasIframeBody } from './sync/get-canvas-iframe-body';\n\nconst WRAPPER_DATA_ATTR = 'data-styles-container';\n\nexport function initStylesRenderer() {\n\tstylesRepository.subscribe( () => {\n\t\tconst styleContainer = getStylesContainer();\n\t\tconst styles = Object.values( stylesRepository.all() );\n\t\tconst breakpoints = getBreakpointsMap();\n\n\t\tstyleContainer.innerHTML = render( { transformers, styles, breakpoints } );\n\n\t\tenqueueUsedFonts( styles );\n\t} );\n}\n\nfunction getStylesContainer() {\n\tconst preview = getCanvasIframeBody();\n\tconst stylesContainer = preview?.querySelector( `[${ WRAPPER_DATA_ATTR }]` );\n\n\tif ( stylesContainer ) {\n\t\treturn stylesContainer;\n\t}\n\n\tconst el = createStylesContainer();\n\n\tpreview?.prepend( el );\n\n\treturn el;\n}\n\nfunction createStylesContainer() {\n\tconst el = document.createElement( 'div' );\n\tel.style.display = 'none';\n\tel.setAttribute( WRAPPER_DATA_ATTR, '' );\n\n\treturn el;\n}\n","import { colorGradientPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst backgroundOverlayTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( colorGradientPropTypeUtil.isValid( propValue ) ) {\n\t\treturn `linear-gradient( ${ [ transform( propValue.value.color ) ] }, ${ [\n\t\t\ttransform( propValue.value.color ),\n\t\t] } )`;\n\t}\n};\n\nexport default backgroundOverlayTransformer;\n","import { borderRadiusPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderRadiusTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderRadiusPropTypeUtil.isValid( propValue ) ) {\n\t\tconst {\n\t\t\t'top-left': topLeft,\n\t\t\t'top-right': topRight,\n\t\t\t'bottom-right': bottomRight,\n\t\t\t'bottom-left': bottomLeft,\n\t\t} = propValue.value || {};\n\n\t\treturn `${ transform( topLeft ) || 'unset' } ${ transform( topRight ) || 'unset' } ${\n\t\t\ttransform( bottomRight ) || 'unset'\n\t\t} ${ transform( bottomLeft ) || 'unset' }`;\n\t}\n};\n\nexport default borderRadiusTransformer;\n","import { borderWidthPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderWidthTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderWidthPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default borderWidthTransformer;\n","import { colorPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst colorTransformer: Transformer = ( propValue ) => {\n\tif ( colorPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default colorTransformer;\n","import { z } from '@elementor/schema';\n\nimport { type Transformer } from '../types';\n\nexport const schema = z.object( {\n\t$$type: z.string(),\n\tvalue: z.array( z.any() ),\n} );\n\nconst createCombineArrayTransformer =\n\t( delimiter: string ): Transformer =>\n\t( propValue, { transform } ) => {\n\t\tconst { success, data } = schema.safeParse( propValue );\n\n\t\tif ( success ) {\n\t\t\treturn data.value.map( ( item ) => transform( item ) ).join( delimiter );\n\t\t}\n\t};\n\nexport default createCombineArrayTransformer;\n","import { linkedDimensionsPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst linkedDimensionsTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( linkedDimensionsPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default linkedDimensionsTransformer;\n","import { numberPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst numberTransformer: Transformer = ( propValue ) => {\n\tif ( numberPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default numberTransformer;\n","import { shadowPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst shadowTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( shadowPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { position, hOffset, vOffset, blur, spread, color } = propValue.value || {};\n\n\t\treturn [\n\t\t\ttransform( hOffset ),\n\t\t\ttransform( vOffset ),\n\t\t\ttransform( blur ),\n\t\t\ttransform( spread ),\n\t\t\ttransform( color ),\n\t\t\tposition,\n\t\t]\n\t\t\t.filter( Boolean )\n\t\t\t.join( ' ' );\n\t}\n};\n\nexport default shadowTransformer;\n","import { sizePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst sizeTransformer: Transformer = ( propValue ) => {\n\tif ( sizePropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value && propValue.value.size + propValue.value.unit;\n\t}\n};\n\nexport default sizeTransformer;\n","import { stringPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst stringTransformer: Transformer = ( propValue ) => {\n\tif ( stringPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default stringTransformer;\n","import { strokePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst strokeTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( strokePropTypeUtil.isValid( propValue ) ) {\n\t\treturn `${ transform( propValue.value?.width ) } ${ transform( propValue.value?.color ) }`;\n\t}\n};\n\nexport default strokeTransformer;\n","import { default as backgroundOverlay } from './background-overlay-transformer';\nimport { default as borderRadius } from './border-radius-transformer';\nimport { default as borderWidth } from './border-width-transformer';\nimport { default as color } from './color-transformer';\nimport { default as createCombineArrayTransformer } from './create-combine-array-transformer';\nimport { default as linkedDimensions } from './linked-dimensions-transformer';\nimport { default as number } from './number-transformer';\nimport { default as shadow } from './shadow-transformer';\nimport { default as size } from './size-transformer';\nimport { default as string } from './string-transformer';\nimport { default as stroke } from './stroke-transformer';\n\nexport default {\n\tcolor,\n\tnumber,\n\tsize,\n\tshadow,\n\tstring,\n\tstroke,\n\t'border-radius': borderRadius,\n\t'border-width': borderWidth,\n\t'box-shadow': createCombineArrayTransformer( ', ' ),\n\t'background-image': createCombineArrayTransformer( ', ' ),\n\t'linked-dimensions': linkedDimensions,\n\t'background-overlay': backgroundOverlay,\n};\n","import { type Props } from '@elementor/editor-props';\nimport { type Breakpoint, type BreakpointId, type BreakpointsMap } from '@elementor/editor-responsive';\nimport { type StyleDefinition, type StyleVariant } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { transformValue } from './transform';\nimport { type TransformersMap } from './types';\n\ntype RenderParams = {\n\ttransformers: TransformersMap;\n\tstyles: StyleDefinition[];\n\tbreakpoints: BreakpointsMap;\n};\n\nexport default function render( { transformers, styles, breakpoints }: RenderParams ) {\n\tconst cssStyle: string[] = [];\n\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tconst style = renderStyle( styleDef, transformers, breakpoints );\n\n\t\t\tcssStyle.push( wrapWithStyleElement( styleDef.id, style ) );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot render style': ${ ensureError( error ).message }` );\n\t}\n\n\treturn cssStyle.join( '' );\n}\n\nfunction renderStyle( style: StyleDefinition, transformers: TransformersMap, breakpoints: BreakpointsMap ) {\n\tconst baseSelector = getBaseSelector( style );\n\n\tif ( ! baseSelector ) {\n\t\treturn '';\n\t}\n\n\tconst stylesheet: string[] = [];\n\n\tObject.values( style.variants ).forEach( ( variant ) => {\n\t\tconst styleDeclaration = variantToStyleDeclaration( baseSelector, variant, transformers, breakpoints );\n\n\t\tif ( styleDeclaration ) {\n\t\t\tstylesheet.push( styleDeclaration );\n\t\t}\n\t} );\n\n\treturn stylesheet.join( '' );\n}\n\nfunction getBaseSelector( styleDef: StyleDefinition ) {\n\tconst map = {\n\t\tclass: '.',\n\t};\n\n\treturn `${ map[ styleDef.type ] }${ styleDef.id }`;\n}\n\nfunction variantToStyleDeclaration(\n\tbaseSelector: string,\n\tvariant: StyleVariant,\n\ttransformers: TransformersMap,\n\tbreakpoints: BreakpointsMap\n) {\n\tconst css = propsToCss( variant.props, transformers );\n\n\tif ( ! css ) {\n\t\treturn '';\n\t}\n\n\tconst state = variant.meta.state ? `:${ variant.meta.state }` : '';\n\tconst selector = `${ baseSelector }${ state }`;\n\n\tlet styleDeclaration = `${ selector }{${ css }}`;\n\n\tif ( variant.meta.breakpoint ) {\n\t\tstyleDeclaration = wrapWithMediaQuery( breakpoints, variant.meta.breakpoint, styleDeclaration );\n\t}\n\n\treturn styleDeclaration;\n}\n\nfunction propsToCss( props: Props, transformers: TransformersMap ) {\n\treturn Object.entries( props )\n\t\t.reduce< string[] >( ( acc, [ cssProp, cssValue ] ) => {\n\t\t\tconst prop = camelCaseToDash( cssProp );\n\t\t\tconst value = transformValue( cssValue, transformers );\n\n\t\t\tacc.push( prop + ':' + value );\n\n\t\t\treturn acc;\n\t\t}, [] )\n\t\t.join( ';' );\n}\n\nfunction camelCaseToDash( str: string ) {\n\treturn str.replace( /([a-zA-Z])(?=[A-Z])/g, '$1-' ).toLowerCase();\n}\n\nfunction wrapWithMediaQuery( breakpoints: BreakpointsMap, breakpoint: BreakpointId, css: string ) {\n\tconst size = getBreakpointSize( breakpoints[ breakpoint ] );\n\treturn size ? `@media(${ size }){${ css }}` : css;\n}\n\nfunction getBreakpointSize( breakpoint: Breakpoint ) {\n\treturn breakpoint.type ? `${ breakpoint.type }:${ breakpoint.width }px` : null;\n}\n\nfunction wrapWithStyleElement( id: string, content: string ) {\n\treturn `<style data-style-id=\"${ id }\">${ content }</style>`;\n}\n","import { isTransformable, type PropValue } from '@elementor/editor-props';\n\nimport { type TransformersMap } from './types';\n\nconst FALLBACK_VALUE = 'unset';\n\nexport function transformValue( value: PropValue | undefined, transformers: TransformersMap ): PropValue {\n\tif ( ! isTransformable( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst transformer = transformers[ value.$$type ];\n\n\tif ( ! transformer ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer not found for prop type '${ value.$$type }'` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\tconst transformedValue = transformer( value, {\n\t\ttransform: ( v ) => transformValue( v, transformers ),\n\t} );\n\n\tif ( transformedValue === undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer '${ value.$$type }' received unsupported value` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\t// Transform recursively to support transformers that return transformable values.\n\treturn transformValue( transformedValue, transformers );\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { enqueueFont } from '../sync/enqueue-font';\n\nexport default function enqueueUsedFonts( styles: StyleDefinition[] ) {\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tObject.values( styleDef.variants ).forEach( ( variant ) => {\n\t\t\t\tconst fontFamily = variant.props[ 'font-family' ] ?? null;\n\n\t\t\t\tif ( fontFamily && typeof fontFamily === 'string' ) {\n\t\t\t\t\tenqueueFont( fontFamily );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot enqueue font': ${ ensureError( error ).message }` );\n\t}\n}\n","import { type CanvasExtendedWindow, type EnqueueFont } from './types';\n\nexport const enqueueFont: EnqueueFont = ( fontFamily, context = 'preview' ) => {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.helpers?.enqueueFont?.( fontFamily, context ) ?? null;\n};\n","import type { CanvasExtendedWindow } from './types';\n\nexport function getCanvasIframeBody() {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.$preview?.[ 0 ]?.contentDocument?.body;\n}\n","import { init } from './init';\n\ninit();\n"],"mappings":"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","names":["React","import_react","import_react","useIsPreviewMode","useIsRouteActive","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","import_editor_props","size","import_utils"]}
|
package/dist/index.mjs
CHANGED
|
@@ -200,6 +200,15 @@ var linkedDimensionsTransformer = (propValue, { transform }) => {
|
|
|
200
200
|
};
|
|
201
201
|
var linked_dimensions_transformer_default = linkedDimensionsTransformer;
|
|
202
202
|
|
|
203
|
+
// src/styles-renderer/transformers/number-transformer.ts
|
|
204
|
+
import { numberPropTypeUtil } from "@elementor/editor-props";
|
|
205
|
+
var numberTransformer = (propValue) => {
|
|
206
|
+
if (numberPropTypeUtil.isValid(propValue)) {
|
|
207
|
+
return propValue.value;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
var number_transformer_default = numberTransformer;
|
|
211
|
+
|
|
203
212
|
// src/styles-renderer/transformers/shadow-transformer.ts
|
|
204
213
|
import { shadowPropTypeUtil } from "@elementor/editor-props";
|
|
205
214
|
var shadowTransformer = (propValue, { transform }) => {
|
|
@@ -226,6 +235,15 @@ var sizeTransformer = (propValue) => {
|
|
|
226
235
|
};
|
|
227
236
|
var size_transformer_default = sizeTransformer;
|
|
228
237
|
|
|
238
|
+
// src/styles-renderer/transformers/string-transformer.ts
|
|
239
|
+
import { stringPropTypeUtil } from "@elementor/editor-props";
|
|
240
|
+
var stringTransformer = (propValue) => {
|
|
241
|
+
if (stringPropTypeUtil.isValid(propValue)) {
|
|
242
|
+
return propValue.value;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
var string_transformer_default = stringTransformer;
|
|
246
|
+
|
|
229
247
|
// src/styles-renderer/transformers/stroke-transformer.ts
|
|
230
248
|
import { strokePropTypeUtil } from "@elementor/editor-props";
|
|
231
249
|
var strokeTransformer = (propValue, { transform }) => {
|
|
@@ -238,14 +256,16 @@ var stroke_transformer_default = strokeTransformer;
|
|
|
238
256
|
// src/styles-renderer/transformers/index.ts
|
|
239
257
|
var transformers_default = {
|
|
240
258
|
color: color_transformer_default,
|
|
259
|
+
number: number_transformer_default,
|
|
241
260
|
size: size_transformer_default,
|
|
242
261
|
shadow: shadow_transformer_default,
|
|
262
|
+
string: string_transformer_default,
|
|
263
|
+
stroke: stroke_transformer_default,
|
|
243
264
|
"border-radius": border_radius_transformer_default,
|
|
244
265
|
"border-width": border_width_transformer_default,
|
|
245
266
|
"box-shadow": create_combine_array_transformer_default(", "),
|
|
246
267
|
"background-image": create_combine_array_transformer_default(", "),
|
|
247
268
|
"linked-dimensions": linked_dimensions_transformer_default,
|
|
248
|
-
stroke: stroke_transformer_default,
|
|
249
269
|
"background-overlay": background_overlay_transformer_default
|
|
250
270
|
};
|
|
251
271
|
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/init.tsx","../src/components/elements-overlays.tsx","../src/components/element-overlay.tsx","../src/hooks/use-bind-react-props-to-element.ts","../src/hooks/use-floating-on-element.ts","../src/init-styles-renderer.ts","../src/styles-renderer/transformers/background-overlay-transformer.ts","../src/styles-renderer/transformers/border-radius-transformer.ts","../src/styles-renderer/transformers/border-width-transformer.ts","../src/styles-renderer/transformers/color-transformer.ts","../src/styles-renderer/transformers/create-combine-array-transformer.ts","../src/styles-renderer/transformers/linked-dimensions-transformer.ts","../src/styles-renderer/transformers/shadow-transformer.ts","../src/styles-renderer/transformers/size-transformer.ts","../src/styles-renderer/transformers/stroke-transformer.ts","../src/styles-renderer/transformers/index.ts","../src/styles-renderer/render.ts","../src/styles-renderer/transform.ts","../src/styles-renderer/enqueue-used-fonts.ts","../src/sync/enqueue-font.ts","../src/sync/get-canvas-iframe-body.ts","../src/index.ts"],"sourcesContent":["import { injectIntoTop } from '@elementor/editor';\n\nimport { ElementsOverlays } from './components/elements-overlays';\nimport { initStylesRenderer } from './init-styles-renderer';\n\nexport function init() {\n\tinitStylesRenderer();\n\n\tinjectIntoTop( {\n\t\tid: 'elements-overlays',\n\t\tcomponent: ElementsOverlays,\n\t} );\n}\n","import * as React from 'react';\nimport { useElementsDomRef, useSelectedElement } from '@elementor/editor-elements';\nimport {\n\t__privateUseIsPreviewMode as useIsPreviewMode,\n\t__privateUseIsRouteActive as useIsRouteActive,\n} from '@elementor/editor-v1-adapters';\n\nimport { ElementOverlay } from './element-overlay';\n\nexport function ElementsOverlays() {\n\tconst selected = useSelectedElement();\n\tconst domElements = useElementsDomRef();\n\n\tconst isPreviewMode = useIsPreviewMode();\n\tconst isKitRouteActive = useIsRouteActive( 'panel/global' );\n\n\tconst isActive = ! isPreviewMode && ! isKitRouteActive;\n\n\treturn (\n\t\tisActive &&\n\t\tdomElements.map( ( el ) => (\n\t\t\t<ElementOverlay\n\t\t\t\telement={ el }\n\t\t\t\tkey={ el.dataset.id }\n\t\t\t\tisSelected={ selected.element?.id === el.dataset.id }\n\t\t\t/>\n\t\t) )\n\t);\n}\n","import * as React from 'react';\nimport { Box, styled } from '@elementor/ui';\nimport { FloatingPortal, useHover, useInteractions } from '@floating-ui/react';\n\nimport { useBindReactPropsToElement } from '../hooks/use-bind-react-props-to-element';\nimport { useFloatingOnElement } from '../hooks/use-floating-on-element';\n\nexport const CANVAS_WRAPPER_ID = 'elementor-preview-responsive-wrapper';\n\ntype Props = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nconst OverlayBox = styled( Box, { shouldForwardProp: ( prop ) => prop !== 'isSelected' } )<\n\tPick< Props, 'isSelected' >\n>( ( { theme, isSelected } ) => ( {\n\toutline: `${ isSelected ? '2px' : '1px' } solid ${ theme.palette.primary.light }`,\n\toutlineOffset: isSelected ? '-2px' : '-1px',\n\tpointerEvents: 'none',\n} ) );\n\nexport function ElementOverlay( { element, isSelected }: Props ) {\n\tconst { context, floating, isVisible } = useFloatingOnElement( { element, isSelected } );\n\tconst { getFloatingProps, getReferenceProps } = useInteractions( [ useHover( context ) ] );\n\n\tuseBindReactPropsToElement( element, getReferenceProps );\n\n\treturn (\n\t\tisVisible && (\n\t\t\t<FloatingPortal id={ CANVAS_WRAPPER_ID }>\n\t\t\t\t<OverlayBox\n\t\t\t\t\tref={ floating.setRef }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tstyle={ floating.styles }\n\t\t\t\t\tdata-element-overlay={ element.dataset.id }\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t{ ...getFloatingProps() }\n\t\t\t\t/>\n\t\t\t</FloatingPortal>\n\t\t)\n\t);\n}\n","import { useEffect } from 'react';\n\ntype Props = Record< string, unknown >;\n\nexport function useBindReactPropsToElement( element: HTMLElement, getProps: () => Props ) {\n\tuseEffect( () => {\n\t\tconst el = element;\n\n\t\tconst { events, attrs } = groupProps( getProps() );\n\n\t\tevents.forEach( ( [ eventName, listener ] ) => el.addEventListener( eventName, listener ) );\n\t\tattrs.forEach( ( [ attrName, attrValue ] ) => el.setAttribute( attrName, attrValue ) );\n\n\t\treturn () => {\n\t\t\tevents.forEach( ( [ eventName, listener ] ) => el.removeEventListener( eventName, listener ) );\n\t\t\tattrs.forEach( ( [ attrName ] ) => el.removeAttribute( attrName ) );\n\t\t};\n\t}, [ getProps, element ] );\n}\n\ntype GroupedProps = {\n\tevents: Array< [ string, () => void ] >;\n\tattrs: Array< [ string, string ] >;\n};\n\nfunction groupProps( props: Props ) {\n\tconst eventRegex = /^on(?=[A-Z])/;\n\n\treturn Object.entries( props ).reduce< GroupedProps >(\n\t\t( acc, [ propName, propValue ] ) => {\n\t\t\tif ( ! eventRegex.test( propName ) ) {\n\t\t\t\tacc.attrs.push( [ propName, propValue as string ] );\n\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tconst eventName = propName.replace( eventRegex, '' ).toLowerCase();\n\t\t\tconst listener = propValue as () => void;\n\n\t\t\tacc.events.push( [ eventName, listener ] );\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tevents: [],\n\t\t\tattrs: [],\n\t\t}\n\t);\n}\n","import { useState } from 'react';\nimport { autoUpdate, offset, size, useFloating } from '@floating-ui/react';\n\ntype Options = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nexport function useFloatingOnElement( { element, isSelected }: Options ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst { refs, floatingStyles, context } = useFloating( {\n\t\t// Must be controlled for interactions (like hover) to work.\n\t\topen: isOpen || isSelected,\n\t\tonOpenChange: setIsOpen,\n\n\t\t// Add an animation frame to support scroll events (without it the floating element will stay in the same position).\n\t\twhileElementsMounted: ( ...args ) => autoUpdate( ...args, { animationFrame: true } ),\n\n\t\t// The first element in the canvas is `display: contents` so we need to use the first child.\n\t\telements: { reference: element.firstElementChild },\n\n\t\tmiddleware: [\n\t\t\t// Match the floating element's size to the reference element.\n\t\t\tsize( {\n\t\t\t\tapply( { elements, rects } ) {\n\t\t\t\t\tObject.assign( elements.floating.style, {\n\t\t\t\t\t\twidth: `${ rects.reference.width }px`,\n\t\t\t\t\t\theight: `${ rects.reference.height }px`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\n\t\t\t// Center the floating element on the reference element.\n\t\t\toffset( ( { rects } ) => -rects.reference.height / 2 - rects.floating.height / 2 ),\n\t\t],\n\t} );\n\n\treturn {\n\t\tisVisible: isOpen || isSelected,\n\t\tcontext,\n\t\tfloating: {\n\t\t\tsetRef: refs.setFloating,\n\t\t\tref: refs.floating,\n\t\t\tstyles: floatingStyles,\n\t\t},\n\t};\n}\n","import { getBreakpointsMap } from '@elementor/editor-responsive';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { render, transformers } from './styles-renderer';\nimport enqueueUsedFonts from './styles-renderer/enqueue-used-fonts';\nimport { getCanvasIframeBody } from './sync/get-canvas-iframe-body';\n\nconst WRAPPER_DATA_ATTR = 'data-styles-container';\n\nexport function initStylesRenderer() {\n\tstylesRepository.subscribe( () => {\n\t\tconst styleContainer = getStylesContainer();\n\t\tconst styles = Object.values( stylesRepository.all() );\n\t\tconst breakpoints = getBreakpointsMap();\n\n\t\tstyleContainer.innerHTML = render( { transformers, styles, breakpoints } );\n\n\t\tenqueueUsedFonts( styles );\n\t} );\n}\n\nfunction getStylesContainer() {\n\tconst preview = getCanvasIframeBody();\n\tconst stylesContainer = preview?.querySelector( `[${ WRAPPER_DATA_ATTR }]` );\n\n\tif ( stylesContainer ) {\n\t\treturn stylesContainer;\n\t}\n\n\tconst el = createStylesContainer();\n\n\tpreview?.prepend( el );\n\n\treturn el;\n}\n\nfunction createStylesContainer() {\n\tconst el = document.createElement( 'div' );\n\tel.style.display = 'none';\n\tel.setAttribute( WRAPPER_DATA_ATTR, '' );\n\n\treturn el;\n}\n","import { colorGradientPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst backgroundOverlayTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( colorGradientPropTypeUtil.isValid( propValue ) ) {\n\t\treturn `linear-gradient( ${ [ transform( propValue.value.color ) ] }, ${ [\n\t\t\ttransform( propValue.value.color ),\n\t\t] } )`;\n\t}\n};\n\nexport default backgroundOverlayTransformer;\n","import { borderRadiusPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderRadiusTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderRadiusPropTypeUtil.isValid( propValue ) ) {\n\t\tconst {\n\t\t\t'top-left': topLeft,\n\t\t\t'top-right': topRight,\n\t\t\t'bottom-right': bottomRight,\n\t\t\t'bottom-left': bottomLeft,\n\t\t} = propValue.value || {};\n\n\t\treturn `${ transform( topLeft ) || 'unset' } ${ transform( topRight ) || 'unset' } ${\n\t\t\ttransform( bottomRight ) || 'unset'\n\t\t} ${ transform( bottomLeft ) || 'unset' }`;\n\t}\n};\n\nexport default borderRadiusTransformer;\n","import { borderWidthPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderWidthTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderWidthPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default borderWidthTransformer;\n","import { colorPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst colorTransformer: Transformer = ( propValue ) => {\n\tif ( colorPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default colorTransformer;\n","import { z } from '@elementor/schema';\n\nimport { type Transformer } from '../types';\n\nexport const schema = z.object( {\n\t$$type: z.string(),\n\tvalue: z.array( z.any() ),\n} );\n\nconst createCombineArrayTransformer =\n\t( delimiter: string ): Transformer =>\n\t( propValue, { transform } ) => {\n\t\tconst { success, data } = schema.safeParse( propValue );\n\n\t\tif ( success ) {\n\t\t\treturn data.value.map( ( item ) => transform( item ) ).join( delimiter );\n\t\t}\n\t};\n\nexport default createCombineArrayTransformer;\n","import { linkedDimensionsPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst linkedDimensionsTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( linkedDimensionsPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default linkedDimensionsTransformer;\n","import { shadowPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst shadowTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( shadowPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { position, hOffset, vOffset, blur, spread, color } = propValue.value || {};\n\n\t\treturn [\n\t\t\ttransform( hOffset ),\n\t\t\ttransform( vOffset ),\n\t\t\ttransform( blur ),\n\t\t\ttransform( spread ),\n\t\t\ttransform( color ),\n\t\t\tposition,\n\t\t]\n\t\t\t.filter( Boolean )\n\t\t\t.join( ' ' );\n\t}\n};\n\nexport default shadowTransformer;\n","import { sizePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst sizeTransformer: Transformer = ( propValue ) => {\n\tif ( sizePropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value && propValue.value.size + propValue.value.unit;\n\t}\n};\n\nexport default sizeTransformer;\n","import { strokePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst strokeTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( strokePropTypeUtil.isValid( propValue ) ) {\n\t\treturn `${ transform( propValue.value?.width ) } ${ transform( propValue.value?.color ) }`;\n\t}\n};\n\nexport default strokeTransformer;\n","import { default as backgroundOverlay } from './background-overlay-transformer';\nimport { default as borderRadius } from './border-radius-transformer';\nimport { default as borderWidth } from './border-width-transformer';\nimport { default as color } from './color-transformer';\nimport { default as createCombineArrayTransformer } from './create-combine-array-transformer';\nimport { default as linkedDimensions } from './linked-dimensions-transformer';\nimport { default as shadow } from './shadow-transformer';\nimport { default as size } from './size-transformer';\nimport { default as stroke } from './stroke-transformer';\n\nexport default {\n\tcolor,\n\tsize,\n\tshadow,\n\t'border-radius': borderRadius,\n\t'border-width': borderWidth,\n\t'box-shadow': createCombineArrayTransformer( ', ' ),\n\t'background-image': createCombineArrayTransformer( ', ' ),\n\t'linked-dimensions': linkedDimensions,\n\tstroke,\n\t'background-overlay': backgroundOverlay,\n};\n","import { type Props } from '@elementor/editor-props';\nimport { type Breakpoint, type BreakpointId, type BreakpointsMap } from '@elementor/editor-responsive';\nimport { type StyleDefinition, type StyleVariant } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { transformValue } from './transform';\nimport { type TransformersMap } from './types';\n\ntype RenderParams = {\n\ttransformers: TransformersMap;\n\tstyles: StyleDefinition[];\n\tbreakpoints: BreakpointsMap;\n};\n\nexport default function render( { transformers, styles, breakpoints }: RenderParams ) {\n\tconst cssStyle: string[] = [];\n\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tconst style = renderStyle( styleDef, transformers, breakpoints );\n\n\t\t\tcssStyle.push( wrapWithStyleElement( styleDef.id, style ) );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot render style': ${ ensureError( error ).message }` );\n\t}\n\n\treturn cssStyle.join( '' );\n}\n\nfunction renderStyle( style: StyleDefinition, transformers: TransformersMap, breakpoints: BreakpointsMap ) {\n\tconst baseSelector = getBaseSelector( style );\n\n\tif ( ! baseSelector ) {\n\t\treturn '';\n\t}\n\n\tconst stylesheet: string[] = [];\n\n\tObject.values( style.variants ).forEach( ( variant ) => {\n\t\tconst styleDeclaration = variantToStyleDeclaration( baseSelector, variant, transformers, breakpoints );\n\n\t\tif ( styleDeclaration ) {\n\t\t\tstylesheet.push( styleDeclaration );\n\t\t}\n\t} );\n\n\treturn stylesheet.join( '' );\n}\n\nfunction getBaseSelector( styleDef: StyleDefinition ) {\n\tconst map = {\n\t\tclass: '.',\n\t};\n\n\treturn `${ map[ styleDef.type ] }${ styleDef.id }`;\n}\n\nfunction variantToStyleDeclaration(\n\tbaseSelector: string,\n\tvariant: StyleVariant,\n\ttransformers: TransformersMap,\n\tbreakpoints: BreakpointsMap\n) {\n\tconst css = propsToCss( variant.props, transformers );\n\n\tif ( ! css ) {\n\t\treturn '';\n\t}\n\n\tconst state = variant.meta.state ? `:${ variant.meta.state }` : '';\n\tconst selector = `${ baseSelector }${ state }`;\n\n\tlet styleDeclaration = `${ selector }{${ css }}`;\n\n\tif ( variant.meta.breakpoint ) {\n\t\tstyleDeclaration = wrapWithMediaQuery( breakpoints, variant.meta.breakpoint, styleDeclaration );\n\t}\n\n\treturn styleDeclaration;\n}\n\nfunction propsToCss( props: Props, transformers: TransformersMap ) {\n\treturn Object.entries( props )\n\t\t.reduce< string[] >( ( acc, [ cssProp, cssValue ] ) => {\n\t\t\tconst prop = camelCaseToDash( cssProp );\n\t\t\tconst value = transformValue( cssValue, transformers );\n\n\t\t\tacc.push( prop + ':' + value );\n\n\t\t\treturn acc;\n\t\t}, [] )\n\t\t.join( ';' );\n}\n\nfunction camelCaseToDash( str: string ) {\n\treturn str.replace( /([a-zA-Z])(?=[A-Z])/g, '$1-' ).toLowerCase();\n}\n\nfunction wrapWithMediaQuery( breakpoints: BreakpointsMap, breakpoint: BreakpointId, css: string ) {\n\tconst size = getBreakpointSize( breakpoints[ breakpoint ] );\n\treturn size ? `@media(${ size }){${ css }}` : css;\n}\n\nfunction getBreakpointSize( breakpoint: Breakpoint ) {\n\treturn breakpoint.type ? `${ breakpoint.type }:${ breakpoint.width }px` : null;\n}\n\nfunction wrapWithStyleElement( id: string, content: string ) {\n\treturn `<style data-style-id=\"${ id }\">${ content }</style>`;\n}\n","import { isTransformable, type PropValue } from '@elementor/editor-props';\n\nimport { type TransformersMap } from './types';\n\nconst FALLBACK_VALUE = 'unset';\n\nexport function transformValue( value: PropValue | undefined, transformers: TransformersMap ): PropValue {\n\tif ( ! isTransformable( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst transformer = transformers[ value.$$type ];\n\n\tif ( ! transformer ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer not found for prop type '${ value.$$type }'` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\tconst transformedValue = transformer( value, {\n\t\ttransform: ( v ) => transformValue( v, transformers ),\n\t} );\n\n\tif ( transformedValue === undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer '${ value.$$type }' received unsupported value` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\t// Transform recursively to support transformers that return transformable values.\n\treturn transformValue( transformedValue, transformers );\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { enqueueFont } from '../sync/enqueue-font';\n\nexport default function enqueueUsedFonts( styles: StyleDefinition[] ) {\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tObject.values( styleDef.variants ).forEach( ( variant ) => {\n\t\t\t\tconst fontFamily = variant.props[ 'font-family' ] ?? null;\n\n\t\t\t\tif ( fontFamily && typeof fontFamily === 'string' ) {\n\t\t\t\t\tenqueueFont( fontFamily );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot enqueue font': ${ ensureError( error ).message }` );\n\t}\n}\n","import { type CanvasExtendedWindow, type EnqueueFont } from './types';\n\nexport const enqueueFont: EnqueueFont = ( fontFamily, context = 'preview' ) => {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.helpers?.enqueueFont?.( fontFamily, context ) ?? null;\n};\n","import type { CanvasExtendedWindow } from './types';\n\nexport function getCanvasIframeBody() {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.$preview?.[ 0 ]?.contentDocument?.body;\n}\n","import { init } from './init';\n\ninit();\n"],"mappings":"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","names":["React","size","ensureError","ensureError"]}
|
|
1
|
+
{"version":3,"sources":["../src/init.tsx","../src/components/elements-overlays.tsx","../src/components/element-overlay.tsx","../src/hooks/use-bind-react-props-to-element.ts","../src/hooks/use-floating-on-element.ts","../src/init-styles-renderer.ts","../src/styles-renderer/transformers/background-overlay-transformer.ts","../src/styles-renderer/transformers/border-radius-transformer.ts","../src/styles-renderer/transformers/border-width-transformer.ts","../src/styles-renderer/transformers/color-transformer.ts","../src/styles-renderer/transformers/create-combine-array-transformer.ts","../src/styles-renderer/transformers/linked-dimensions-transformer.ts","../src/styles-renderer/transformers/number-transformer.ts","../src/styles-renderer/transformers/shadow-transformer.ts","../src/styles-renderer/transformers/size-transformer.ts","../src/styles-renderer/transformers/string-transformer.ts","../src/styles-renderer/transformers/stroke-transformer.ts","../src/styles-renderer/transformers/index.ts","../src/styles-renderer/render.ts","../src/styles-renderer/transform.ts","../src/styles-renderer/enqueue-used-fonts.ts","../src/sync/enqueue-font.ts","../src/sync/get-canvas-iframe-body.ts","../src/index.ts"],"sourcesContent":["import { injectIntoTop } from '@elementor/editor';\n\nimport { ElementsOverlays } from './components/elements-overlays';\nimport { initStylesRenderer } from './init-styles-renderer';\n\nexport function init() {\n\tinitStylesRenderer();\n\n\tinjectIntoTop( {\n\t\tid: 'elements-overlays',\n\t\tcomponent: ElementsOverlays,\n\t} );\n}\n","import * as React from 'react';\nimport { useElementsDomRef, useSelectedElement } from '@elementor/editor-elements';\nimport {\n\t__privateUseIsPreviewMode as useIsPreviewMode,\n\t__privateUseIsRouteActive as useIsRouteActive,\n} from '@elementor/editor-v1-adapters';\n\nimport { ElementOverlay } from './element-overlay';\n\nexport function ElementsOverlays() {\n\tconst selected = useSelectedElement();\n\tconst domElements = useElementsDomRef();\n\n\tconst isPreviewMode = useIsPreviewMode();\n\tconst isKitRouteActive = useIsRouteActive( 'panel/global' );\n\n\tconst isActive = ! isPreviewMode && ! isKitRouteActive;\n\n\treturn (\n\t\tisActive &&\n\t\tdomElements.map( ( el ) => (\n\t\t\t<ElementOverlay\n\t\t\t\telement={ el }\n\t\t\t\tkey={ el.dataset.id }\n\t\t\t\tisSelected={ selected.element?.id === el.dataset.id }\n\t\t\t/>\n\t\t) )\n\t);\n}\n","import * as React from 'react';\nimport { Box, styled } from '@elementor/ui';\nimport { FloatingPortal, useHover, useInteractions } from '@floating-ui/react';\n\nimport { useBindReactPropsToElement } from '../hooks/use-bind-react-props-to-element';\nimport { useFloatingOnElement } from '../hooks/use-floating-on-element';\n\nexport const CANVAS_WRAPPER_ID = 'elementor-preview-responsive-wrapper';\n\ntype Props = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nconst OverlayBox = styled( Box, { shouldForwardProp: ( prop ) => prop !== 'isSelected' } )<\n\tPick< Props, 'isSelected' >\n>( ( { theme, isSelected } ) => ( {\n\toutline: `${ isSelected ? '2px' : '1px' } solid ${ theme.palette.primary.light }`,\n\toutlineOffset: isSelected ? '-2px' : '-1px',\n\tpointerEvents: 'none',\n} ) );\n\nexport function ElementOverlay( { element, isSelected }: Props ) {\n\tconst { context, floating, isVisible } = useFloatingOnElement( { element, isSelected } );\n\tconst { getFloatingProps, getReferenceProps } = useInteractions( [ useHover( context ) ] );\n\n\tuseBindReactPropsToElement( element, getReferenceProps );\n\n\treturn (\n\t\tisVisible && (\n\t\t\t<FloatingPortal id={ CANVAS_WRAPPER_ID }>\n\t\t\t\t<OverlayBox\n\t\t\t\t\tref={ floating.setRef }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tstyle={ floating.styles }\n\t\t\t\t\tdata-element-overlay={ element.dataset.id }\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t{ ...getFloatingProps() }\n\t\t\t\t/>\n\t\t\t</FloatingPortal>\n\t\t)\n\t);\n}\n","import { useEffect } from 'react';\n\ntype Props = Record< string, unknown >;\n\nexport function useBindReactPropsToElement( element: HTMLElement, getProps: () => Props ) {\n\tuseEffect( () => {\n\t\tconst el = element;\n\n\t\tconst { events, attrs } = groupProps( getProps() );\n\n\t\tevents.forEach( ( [ eventName, listener ] ) => el.addEventListener( eventName, listener ) );\n\t\tattrs.forEach( ( [ attrName, attrValue ] ) => el.setAttribute( attrName, attrValue ) );\n\n\t\treturn () => {\n\t\t\tevents.forEach( ( [ eventName, listener ] ) => el.removeEventListener( eventName, listener ) );\n\t\t\tattrs.forEach( ( [ attrName ] ) => el.removeAttribute( attrName ) );\n\t\t};\n\t}, [ getProps, element ] );\n}\n\ntype GroupedProps = {\n\tevents: Array< [ string, () => void ] >;\n\tattrs: Array< [ string, string ] >;\n};\n\nfunction groupProps( props: Props ) {\n\tconst eventRegex = /^on(?=[A-Z])/;\n\n\treturn Object.entries( props ).reduce< GroupedProps >(\n\t\t( acc, [ propName, propValue ] ) => {\n\t\t\tif ( ! eventRegex.test( propName ) ) {\n\t\t\t\tacc.attrs.push( [ propName, propValue as string ] );\n\n\t\t\t\treturn acc;\n\t\t\t}\n\n\t\t\tconst eventName = propName.replace( eventRegex, '' ).toLowerCase();\n\t\t\tconst listener = propValue as () => void;\n\n\t\t\tacc.events.push( [ eventName, listener ] );\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tevents: [],\n\t\t\tattrs: [],\n\t\t}\n\t);\n}\n","import { useState } from 'react';\nimport { autoUpdate, offset, size, useFloating } from '@floating-ui/react';\n\ntype Options = {\n\telement: HTMLElement;\n\tisSelected: boolean;\n};\n\nexport function useFloatingOnElement( { element, isSelected }: Options ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst { refs, floatingStyles, context } = useFloating( {\n\t\t// Must be controlled for interactions (like hover) to work.\n\t\topen: isOpen || isSelected,\n\t\tonOpenChange: setIsOpen,\n\n\t\t// Add an animation frame to support scroll events (without it the floating element will stay in the same position).\n\t\twhileElementsMounted: ( ...args ) => autoUpdate( ...args, { animationFrame: true } ),\n\n\t\t// The first element in the canvas is `display: contents` so we need to use the first child.\n\t\telements: { reference: element.firstElementChild },\n\n\t\tmiddleware: [\n\t\t\t// Match the floating element's size to the reference element.\n\t\t\tsize( {\n\t\t\t\tapply( { elements, rects } ) {\n\t\t\t\t\tObject.assign( elements.floating.style, {\n\t\t\t\t\t\twidth: `${ rects.reference.width }px`,\n\t\t\t\t\t\theight: `${ rects.reference.height }px`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\n\t\t\t// Center the floating element on the reference element.\n\t\t\toffset( ( { rects } ) => -rects.reference.height / 2 - rects.floating.height / 2 ),\n\t\t],\n\t} );\n\n\treturn {\n\t\tisVisible: isOpen || isSelected,\n\t\tcontext,\n\t\tfloating: {\n\t\t\tsetRef: refs.setFloating,\n\t\t\tref: refs.floating,\n\t\t\tstyles: floatingStyles,\n\t\t},\n\t};\n}\n","import { getBreakpointsMap } from '@elementor/editor-responsive';\nimport { stylesRepository } from '@elementor/editor-styles-repository';\n\nimport { render, transformers } from './styles-renderer';\nimport enqueueUsedFonts from './styles-renderer/enqueue-used-fonts';\nimport { getCanvasIframeBody } from './sync/get-canvas-iframe-body';\n\nconst WRAPPER_DATA_ATTR = 'data-styles-container';\n\nexport function initStylesRenderer() {\n\tstylesRepository.subscribe( () => {\n\t\tconst styleContainer = getStylesContainer();\n\t\tconst styles = Object.values( stylesRepository.all() );\n\t\tconst breakpoints = getBreakpointsMap();\n\n\t\tstyleContainer.innerHTML = render( { transformers, styles, breakpoints } );\n\n\t\tenqueueUsedFonts( styles );\n\t} );\n}\n\nfunction getStylesContainer() {\n\tconst preview = getCanvasIframeBody();\n\tconst stylesContainer = preview?.querySelector( `[${ WRAPPER_DATA_ATTR }]` );\n\n\tif ( stylesContainer ) {\n\t\treturn stylesContainer;\n\t}\n\n\tconst el = createStylesContainer();\n\n\tpreview?.prepend( el );\n\n\treturn el;\n}\n\nfunction createStylesContainer() {\n\tconst el = document.createElement( 'div' );\n\tel.style.display = 'none';\n\tel.setAttribute( WRAPPER_DATA_ATTR, '' );\n\n\treturn el;\n}\n","import { colorGradientPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst backgroundOverlayTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( colorGradientPropTypeUtil.isValid( propValue ) ) {\n\t\treturn `linear-gradient( ${ [ transform( propValue.value.color ) ] }, ${ [\n\t\t\ttransform( propValue.value.color ),\n\t\t] } )`;\n\t}\n};\n\nexport default backgroundOverlayTransformer;\n","import { borderRadiusPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderRadiusTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderRadiusPropTypeUtil.isValid( propValue ) ) {\n\t\tconst {\n\t\t\t'top-left': topLeft,\n\t\t\t'top-right': topRight,\n\t\t\t'bottom-right': bottomRight,\n\t\t\t'bottom-left': bottomLeft,\n\t\t} = propValue.value || {};\n\n\t\treturn `${ transform( topLeft ) || 'unset' } ${ transform( topRight ) || 'unset' } ${\n\t\t\ttransform( bottomRight ) || 'unset'\n\t\t} ${ transform( bottomLeft ) || 'unset' }`;\n\t}\n};\n\nexport default borderRadiusTransformer;\n","import { borderWidthPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst borderWidthTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( borderWidthPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default borderWidthTransformer;\n","import { colorPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst colorTransformer: Transformer = ( propValue ) => {\n\tif ( colorPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default colorTransformer;\n","import { z } from '@elementor/schema';\n\nimport { type Transformer } from '../types';\n\nexport const schema = z.object( {\n\t$$type: z.string(),\n\tvalue: z.array( z.any() ),\n} );\n\nconst createCombineArrayTransformer =\n\t( delimiter: string ): Transformer =>\n\t( propValue, { transform } ) => {\n\t\tconst { success, data } = schema.safeParse( propValue );\n\n\t\tif ( success ) {\n\t\t\treturn data.value.map( ( item ) => transform( item ) ).join( delimiter );\n\t\t}\n\t};\n\nexport default createCombineArrayTransformer;\n","import { linkedDimensionsPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst linkedDimensionsTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( linkedDimensionsPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { top, right, bottom, left } = propValue.value || {};\n\n\t\treturn `${ transform( top ) || 'unset' } ${ transform( right ) || 'unset' } ${\n\t\t\ttransform( bottom ) || 'unset'\n\t\t} ${ transform( left ) || 'unset' }`;\n\t}\n};\n\nexport default linkedDimensionsTransformer;\n","import { numberPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst numberTransformer: Transformer = ( propValue ) => {\n\tif ( numberPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default numberTransformer;\n","import { shadowPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst shadowTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( shadowPropTypeUtil.isValid( propValue ) ) {\n\t\tconst { position, hOffset, vOffset, blur, spread, color } = propValue.value || {};\n\n\t\treturn [\n\t\t\ttransform( hOffset ),\n\t\t\ttransform( vOffset ),\n\t\t\ttransform( blur ),\n\t\t\ttransform( spread ),\n\t\t\ttransform( color ),\n\t\t\tposition,\n\t\t]\n\t\t\t.filter( Boolean )\n\t\t\t.join( ' ' );\n\t}\n};\n\nexport default shadowTransformer;\n","import { sizePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst sizeTransformer: Transformer = ( propValue ) => {\n\tif ( sizePropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value && propValue.value.size + propValue.value.unit;\n\t}\n};\n\nexport default sizeTransformer;\n","import { stringPropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst stringTransformer: Transformer = ( propValue ) => {\n\tif ( stringPropTypeUtil.isValid( propValue ) ) {\n\t\treturn propValue.value;\n\t}\n};\n\nexport default stringTransformer;\n","import { strokePropTypeUtil } from '@elementor/editor-props';\n\nimport { type Transformer } from '../types';\n\nconst strokeTransformer: Transformer = ( propValue, { transform } ) => {\n\tif ( strokePropTypeUtil.isValid( propValue ) ) {\n\t\treturn `${ transform( propValue.value?.width ) } ${ transform( propValue.value?.color ) }`;\n\t}\n};\n\nexport default strokeTransformer;\n","import { default as backgroundOverlay } from './background-overlay-transformer';\nimport { default as borderRadius } from './border-radius-transformer';\nimport { default as borderWidth } from './border-width-transformer';\nimport { default as color } from './color-transformer';\nimport { default as createCombineArrayTransformer } from './create-combine-array-transformer';\nimport { default as linkedDimensions } from './linked-dimensions-transformer';\nimport { default as number } from './number-transformer';\nimport { default as shadow } from './shadow-transformer';\nimport { default as size } from './size-transformer';\nimport { default as string } from './string-transformer';\nimport { default as stroke } from './stroke-transformer';\n\nexport default {\n\tcolor,\n\tnumber,\n\tsize,\n\tshadow,\n\tstring,\n\tstroke,\n\t'border-radius': borderRadius,\n\t'border-width': borderWidth,\n\t'box-shadow': createCombineArrayTransformer( ', ' ),\n\t'background-image': createCombineArrayTransformer( ', ' ),\n\t'linked-dimensions': linkedDimensions,\n\t'background-overlay': backgroundOverlay,\n};\n","import { type Props } from '@elementor/editor-props';\nimport { type Breakpoint, type BreakpointId, type BreakpointsMap } from '@elementor/editor-responsive';\nimport { type StyleDefinition, type StyleVariant } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { transformValue } from './transform';\nimport { type TransformersMap } from './types';\n\ntype RenderParams = {\n\ttransformers: TransformersMap;\n\tstyles: StyleDefinition[];\n\tbreakpoints: BreakpointsMap;\n};\n\nexport default function render( { transformers, styles, breakpoints }: RenderParams ) {\n\tconst cssStyle: string[] = [];\n\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tconst style = renderStyle( styleDef, transformers, breakpoints );\n\n\t\t\tcssStyle.push( wrapWithStyleElement( styleDef.id, style ) );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot render style': ${ ensureError( error ).message }` );\n\t}\n\n\treturn cssStyle.join( '' );\n}\n\nfunction renderStyle( style: StyleDefinition, transformers: TransformersMap, breakpoints: BreakpointsMap ) {\n\tconst baseSelector = getBaseSelector( style );\n\n\tif ( ! baseSelector ) {\n\t\treturn '';\n\t}\n\n\tconst stylesheet: string[] = [];\n\n\tObject.values( style.variants ).forEach( ( variant ) => {\n\t\tconst styleDeclaration = variantToStyleDeclaration( baseSelector, variant, transformers, breakpoints );\n\n\t\tif ( styleDeclaration ) {\n\t\t\tstylesheet.push( styleDeclaration );\n\t\t}\n\t} );\n\n\treturn stylesheet.join( '' );\n}\n\nfunction getBaseSelector( styleDef: StyleDefinition ) {\n\tconst map = {\n\t\tclass: '.',\n\t};\n\n\treturn `${ map[ styleDef.type ] }${ styleDef.id }`;\n}\n\nfunction variantToStyleDeclaration(\n\tbaseSelector: string,\n\tvariant: StyleVariant,\n\ttransformers: TransformersMap,\n\tbreakpoints: BreakpointsMap\n) {\n\tconst css = propsToCss( variant.props, transformers );\n\n\tif ( ! css ) {\n\t\treturn '';\n\t}\n\n\tconst state = variant.meta.state ? `:${ variant.meta.state }` : '';\n\tconst selector = `${ baseSelector }${ state }`;\n\n\tlet styleDeclaration = `${ selector }{${ css }}`;\n\n\tif ( variant.meta.breakpoint ) {\n\t\tstyleDeclaration = wrapWithMediaQuery( breakpoints, variant.meta.breakpoint, styleDeclaration );\n\t}\n\n\treturn styleDeclaration;\n}\n\nfunction propsToCss( props: Props, transformers: TransformersMap ) {\n\treturn Object.entries( props )\n\t\t.reduce< string[] >( ( acc, [ cssProp, cssValue ] ) => {\n\t\t\tconst prop = camelCaseToDash( cssProp );\n\t\t\tconst value = transformValue( cssValue, transformers );\n\n\t\t\tacc.push( prop + ':' + value );\n\n\t\t\treturn acc;\n\t\t}, [] )\n\t\t.join( ';' );\n}\n\nfunction camelCaseToDash( str: string ) {\n\treturn str.replace( /([a-zA-Z])(?=[A-Z])/g, '$1-' ).toLowerCase();\n}\n\nfunction wrapWithMediaQuery( breakpoints: BreakpointsMap, breakpoint: BreakpointId, css: string ) {\n\tconst size = getBreakpointSize( breakpoints[ breakpoint ] );\n\treturn size ? `@media(${ size }){${ css }}` : css;\n}\n\nfunction getBreakpointSize( breakpoint: Breakpoint ) {\n\treturn breakpoint.type ? `${ breakpoint.type }:${ breakpoint.width }px` : null;\n}\n\nfunction wrapWithStyleElement( id: string, content: string ) {\n\treturn `<style data-style-id=\"${ id }\">${ content }</style>`;\n}\n","import { isTransformable, type PropValue } from '@elementor/editor-props';\n\nimport { type TransformersMap } from './types';\n\nconst FALLBACK_VALUE = 'unset';\n\nexport function transformValue( value: PropValue | undefined, transformers: TransformersMap ): PropValue {\n\tif ( ! isTransformable( value ) ) {\n\t\treturn value;\n\t}\n\n\tconst transformer = transformers[ value.$$type ];\n\n\tif ( ! transformer ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer not found for prop type '${ value.$$type }'` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\tconst transformedValue = transformer( value, {\n\t\ttransform: ( v ) => transformValue( v, transformers ),\n\t} );\n\n\tif ( transformedValue === undefined ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Transformer '${ value.$$type }' received unsupported value` );\n\n\t\treturn FALLBACK_VALUE;\n\t}\n\n\t// Transform recursively to support transformers that return transformable values.\n\treturn transformValue( transformedValue, transformers );\n}\n","import { type StyleDefinition } from '@elementor/editor-styles';\nimport { ensureError } from '@elementor/utils';\n\nimport { enqueueFont } from '../sync/enqueue-font';\n\nexport default function enqueueUsedFonts( styles: StyleDefinition[] ) {\n\ttry {\n\t\tstyles.forEach( ( styleDef ) => {\n\t\t\tObject.values( styleDef.variants ).forEach( ( variant ) => {\n\t\t\t\tconst fontFamily = variant.props[ 'font-family' ] ?? null;\n\n\t\t\t\tif ( fontFamily && typeof fontFamily === 'string' ) {\n\t\t\t\t\tenqueueFont( fontFamily );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} catch ( error: unknown ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error( `Cannot enqueue font': ${ ensureError( error ).message }` );\n\t}\n}\n","import { type CanvasExtendedWindow, type EnqueueFont } from './types';\n\nexport const enqueueFont: EnqueueFont = ( fontFamily, context = 'preview' ) => {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.helpers?.enqueueFont?.( fontFamily, context ) ?? null;\n};\n","import type { CanvasExtendedWindow } from './types';\n\nexport function getCanvasIframeBody() {\n\tconst extendedWindow = window as unknown as CanvasExtendedWindow;\n\n\treturn extendedWindow.elementor?.$preview?.[ 0 ]?.contentDocument?.body;\n}\n","import { init } from './init';\n\ninit();\n"],"mappings":"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","names":["React","size","ensureError","ensureError"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor-canvas",
|
|
3
3
|
"description": "Elementor Editor Canvas",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
"react": "^18.3.1"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@elementor/editor": "
|
|
39
|
+
"@elementor/editor": "0.17.2",
|
|
40
40
|
"@elementor/ui": "^1.22.0",
|
|
41
41
|
"@floating-ui/react": "^0.26.28",
|
|
42
|
-
"@elementor/editor-elements": "
|
|
43
|
-
"@elementor/editor-v1-adapters": "
|
|
44
|
-
"@elementor/editor-props": "
|
|
45
|
-
"@elementor/schema": "
|
|
46
|
-
"@elementor/utils": "
|
|
47
|
-
"@elementor/editor-styles-repository": "
|
|
48
|
-
"@elementor/editor-responsive": "
|
|
42
|
+
"@elementor/editor-elements": "0.3.2",
|
|
43
|
+
"@elementor/editor-v1-adapters": "0.8.5",
|
|
44
|
+
"@elementor/editor-props": "0.4.0",
|
|
45
|
+
"@elementor/schema": "0.1.2",
|
|
46
|
+
"@elementor/utils": "0.3.0",
|
|
47
|
+
"@elementor/editor-styles-repository": "0.1.1",
|
|
48
|
+
"@elementor/editor-responsive": "0.12.4"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -4,19 +4,23 @@ import { default as borderWidth } from './border-width-transformer';
|
|
|
4
4
|
import { default as color } from './color-transformer';
|
|
5
5
|
import { default as createCombineArrayTransformer } from './create-combine-array-transformer';
|
|
6
6
|
import { default as linkedDimensions } from './linked-dimensions-transformer';
|
|
7
|
+
import { default as number } from './number-transformer';
|
|
7
8
|
import { default as shadow } from './shadow-transformer';
|
|
8
9
|
import { default as size } from './size-transformer';
|
|
10
|
+
import { default as string } from './string-transformer';
|
|
9
11
|
import { default as stroke } from './stroke-transformer';
|
|
10
12
|
|
|
11
13
|
export default {
|
|
12
14
|
color,
|
|
15
|
+
number,
|
|
13
16
|
size,
|
|
14
17
|
shadow,
|
|
18
|
+
string,
|
|
19
|
+
stroke,
|
|
15
20
|
'border-radius': borderRadius,
|
|
16
21
|
'border-width': borderWidth,
|
|
17
22
|
'box-shadow': createCombineArrayTransformer( ', ' ),
|
|
18
23
|
'background-image': createCombineArrayTransformer( ', ' ),
|
|
19
24
|
'linked-dimensions': linkedDimensions,
|
|
20
|
-
stroke,
|
|
21
25
|
'background-overlay': backgroundOverlay,
|
|
22
26
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { numberPropTypeUtil } from '@elementor/editor-props';
|
|
2
|
+
|
|
3
|
+
import { type Transformer } from '../types';
|
|
4
|
+
|
|
5
|
+
const numberTransformer: Transformer = ( propValue ) => {
|
|
6
|
+
if ( numberPropTypeUtil.isValid( propValue ) ) {
|
|
7
|
+
return propValue.value;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default numberTransformer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { stringPropTypeUtil } from '@elementor/editor-props';
|
|
2
|
+
|
|
3
|
+
import { type Transformer } from '../types';
|
|
4
|
+
|
|
5
|
+
const stringTransformer: Transformer = ( propValue ) => {
|
|
6
|
+
if ( stringPropTypeUtil.isValid( propValue ) ) {
|
|
7
|
+
return propValue.value;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default stringTransformer;
|