This commit is contained in:
proelements
2025-12-29 10:01:13 +02:00
parent ce77bab1a1
commit 9bdad9d028
319 changed files with 1925 additions and 658 deletions

View File

@@ -9,7 +9,10 @@ return [
'handle' => 'elementor-v2-editor-controls-extended',
'deps' => [
'elementor-v2-editor-controls',
'elementor-v2-editor-props',
'elementor-v2-http-client',
'elementor-v2-icons',
'elementor-v2-schema',
'elementor-v2-ui',
'react',
'wp-i18n',

View File

@@ -118,12 +118,12 @@ __webpack_require__.r(__webpack_exports__);
const createEditorDidMountHandler = (editorRef, monacoRef, onUserContentChange, setIsValid) => {
const createEditorDidMountHandler = (editorRef, monacoRef, onUserContentChange, setIsValid, syntaxRuleOptions) => {
return (editor, monaco) => {
editorRef.current = editor;
monacoRef.current = monaco;
(0,_visual_content_change_protection__WEBPACK_IMPORTED_MODULE_8__.preventChangeOnVisualContent)(editor);
(0,_css_validation__WEBPACK_IMPORTED_MODULE_6__.setCustomSyntaxRules)(editor, monaco);
(0,_css_validation__WEBPACK_IMPORTED_MODULE_6__.setCustomSyntaxRules)(editor, monaco, syntaxRuleOptions);
const initialCode = editor.getModel()?.getValue() ?? '';
const initialUserContent = (0,_visual_content_change_protection__WEBPACK_IMPORTED_MODULE_8__.getActual)(initialCode);
onUserContentChange(initialUserContent);
@@ -178,7 +178,8 @@ function disableFoldingFirstRow(editor) {
}
const CssEditor = ({
value,
onChange
onChange,
syntaxRuleOptions
}) => {
const theme = (0,_elementor_ui__WEBPACK_IMPORTED_MODULE_2__.useTheme)();
const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
@@ -209,7 +210,7 @@ const CssEditor = ({
if (!editorRef.current || !monacoRef.current) {
return;
}
(0,_css_validation__WEBPACK_IMPORTED_MODULE_6__.setCustomSyntaxRules)(editorRef?.current, monacoRef.current);
(0,_css_validation__WEBPACK_IMPORTED_MODULE_6__.setCustomSyntaxRules)(editorRef?.current, monacoRef.current, syntaxRuleOptions);
if (debounceTimer.current) {
clearTimeout(debounceTimer.current);
}
@@ -217,7 +218,7 @@ const CssEditor = ({
setContentVersion(prev => prev + 1);
}, 500);
};
const handleEditorDidMount = createEditorDidMountHandler(editorRef, monacoRef, handleUserContentChange, setIsValid);
const handleEditorDidMount = createEditorDidMountHandler(editorRef, monacoRef, handleUserContentChange, setIsValid, syntaxRuleOptions);
const handleReset = () => editorRef.current?.getModel()?.setValue((0,_visual_content_change_protection__WEBPACK_IMPORTED_MODULE_8__.setVisualContent)(''));
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const timerRef = debounceTimer;
@@ -300,22 +301,28 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
const forbiddenPatterns = [{
pattern: '^\\s*[&]{0,1}\\s*(?::hover|:active|:focus)',
regex: true,
message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The use of pseudo-states is not permitted. Instead, switch to the desired pseudo state and add your custom code there.', 'elementor-pro')
}, {
pattern: '@media\\s+[^{]*\\b(?:min-width|max-width|width)\\b',
regex: true,
message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The use of @media width queries is not permitted. Instead, switch to the desired breakpoint and add your custom code there.', 'elementor-pro')
}];
function setCustomSyntaxRules(editor, monaco) {
const syntaxRules = {
pseudoState: {
pattern: '^\\s*[&]{0,1}\\s*(?::hover|:active|:focus)',
regex: true,
message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The use of pseudo-states is not permitted. Instead, switch to the desired pseudo state and add your custom code there.', 'elementor-pro')
},
mediaQuery: {
pattern: '@media\\s+[^{]*\\b(?:min-width|max-width|width)\\b',
regex: true,
message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The use of @media width queries is not permitted. Instead, switch to the desired breakpoint and add your custom code there.', 'elementor-pro')
}
};
function setCustomSyntaxRules(editor, monaco, options) {
const model = editor.getModel();
if (!model) {
return true;
}
const customMarkers = [];
forbiddenPatterns.forEach(rule => {
Object.entries(syntaxRules).forEach(([id, rule]) => {
if (options?.rules?.[id] === false) {
return;
}
const matches = model.findMatches(rule.pattern, true, rule.regex ?? false, true, null, true);
matches.forEach(match => {
customMarkers.push({
@@ -575,6 +582,155 @@ const AttributesControl = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE
/***/ }),
/***/ "./packages/packages/pro/editor-controls-extended/src/controls/display-conditions-control.tsx":
/*!****************************************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/controls/display-conditions-control.tsx ***!
\****************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ DisplayConditionsControl: function() { return /* binding */ DisplayConditionsControl; }
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls */ "@elementor/editor-controls");
/* harmony import */ var _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
/* harmony import */ var _elementor_icons__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _prop_types_display_conditions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../prop-types/display-conditions */ "./packages/packages/pro/editor-controls-extended/src/prop-types/display-conditions.ts");
const OPEN_MODAL_EVENT = 'elementor/display-conditions/open';
const CLOSE_MODAL_EVENT = 'elementor/display-conditions/close';
const SET_CACHE_NOTICE_STATUS_EVENT = 'elementor/display-conditions/set-cache-notice-status';
// Value must be falsy for navigator indication to work properly
function transformV3ToV4(displayConditions) {
if (!Array.isArray(displayConditions) || !displayConditions?.length) {
return null;
}
const transformed = displayConditions.filter(conditionGroup => !!conditionGroup?.length).map(conditionGroup => ({
$$type: 'condition-group',
value: conditionGroup.map(condition => _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.stringPropTypeUtil.create(JSON.stringify(condition)))
}));
return transformed.length ? transformed : null;
}
function transformV4ToV3(value) {
const conditionGroups = value;
const transformed = conditionGroups?.map(group => group.value.map(conditions => {
return JSON.parse(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.stringPropTypeUtil.extract(conditions) ?? '[]');
})) ?? null;
return getStructuredConditions(transformed);
}
function shouldConvertConditionsStructure(conditions) {
return !!conditions?.length && !Array.isArray(conditions?.[0]);
}
function getStructuredConditions(conditions) {
return shouldConvertConditionsStructure(conditions) ? [conditions] : conditions;
}
const ariaLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Display Conditions', 'elementor-pro');
async function setCacheNoticeStatus() {
return new Promise((resolve, reject) => {
window.dispatchEvent(new CustomEvent(SET_CACHE_NOTICE_STATUS_EVENT, {
detail: {
resolve,
reject
}
}));
});
}
const DisplayConditionsControl = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.createControl)(({
disabled = false
}) => {
const {
setValue,
value: displayConditionsValue
} = (0,_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.useBoundProp)(_prop_types_display_conditions__WEBPACK_IMPORTED_MODULE_6__.displayConditionsPropTypeUtil);
const [isModalOpen, setIsModalOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
const isToggleButtonSelected = !!displayConditionsValue?.length;
const setControlValue = value => setValue(transformV3ToV4(JSON.parse(value ?? '[]')));
const getControlValue = () => transformV4ToV3(displayConditionsValue) ?? [];
const onClose = () => {
setIsModalOpen(false);
window.dispatchEvent(new CustomEvent(CLOSE_MODAL_EVENT));
};
const conditions = getControlValue();
const openConditionsModal = () => {
setIsModalOpen(true);
window.dispatchEvent(new CustomEvent(OPEN_MODAL_EVENT, {
detail: {
props: {
getControlValue,
setControlValue,
onClose,
setCacheNoticeStatus
}
}
}));
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
direction: "row",
spacing: 2,
sx: {
justifyContent: 'flex-end',
alignItems: 'center'
}
}, disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Chip, {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.CrownFilledIcon, {
fontSize: "tiny"
}),
size: "tiny",
color: "promotion",
variant: "standard",
sx: {
width: '20px',
'& .MuiChip-label': {
display: 'none'
}
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Tooltip, {
title: ariaLabel,
placement: "top"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Box, {
sx: {
cursor: disabled ? 'not-allowed' : 'pointer',
display: 'inline-flex'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.ToggleButton, {
value: JSON.stringify(conditions),
size: "tiny",
variant: "outline",
"aria-pressed": isModalOpen,
"aria-expanded": isModalOpen,
selected: isToggleButtonSelected,
"aria-haspopup": "dialog",
"aria-label": ariaLabel,
onClick: openConditionsModal,
disabled: disabled,
sx: {
pointerEvents: disabled ? 'none' : 'auto'
},
"data-behavior": "display-conditions"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_icons__WEBPACK_IMPORTED_MODULE_3__.SitemapIcon, {
fontSize: "tiny"
}))))));
});
/***/ }),
/***/ "./packages/packages/pro/editor-controls-extended/src/extend-transition-properties.ts":
/*!********************************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/extend-transition-properties.ts ***!
@@ -593,7 +749,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
function extendTransitionProperties() {
const getIsSiteRtl = () => {
return !!window?.elementorFrontend?.config?.is_rtl;
};
function extendTransitionProperties(isDisabled = false) {
const isSiteRtl = getIsSiteRtl();
// Core transition properties are limited to 'All Properties' option, so we need to extend it.
if (_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionProperties && _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionProperties.length === 1) {
const commonProperties = _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionProperties.find(category => category.label === (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Common', 'elementor-pro'));
@@ -605,168 +766,210 @@ function extendTransitionProperties() {
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin (all)', 'elementor-pro'),
value: 'margin'
value: 'margin',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin bottom', 'elementor-pro'),
value: 'margin-block-end'
value: 'margin-block-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin left', 'elementor-pro'),
value: 'margin-inline-start'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin right', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin left', 'elementor-pro'),
value: 'margin-inline-start',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin right', 'elementor-pro'),
value: 'margin-inline-end'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin left', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin right', 'elementor-pro'),
value: 'margin-inline-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Margin top', 'elementor-pro'),
value: 'margin-block-start'
value: 'margin-block-start',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding (all)', 'elementor-pro'),
value: 'padding'
value: 'padding',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding bottom', 'elementor-pro'),
value: 'padding-block-end'
value: 'padding-block-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding left', 'elementor-pro'),
value: 'padding-inline-start'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding right', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding left', 'elementor-pro'),
value: 'padding-inline-start',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding right', 'elementor-pro'),
value: 'padding-inline-end'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding left', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding right', 'elementor-pro'),
value: 'padding-inline-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Padding top', 'elementor-pro'),
value: 'padding-block-start'
value: 'padding-block-start',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Flex', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Flex (all)', 'elementor-pro'),
value: 'flex'
value: 'flex',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Flex grow', 'elementor-pro'),
value: 'flex-grow'
value: 'flex-grow',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Flex shrink', 'elementor-pro'),
value: 'flex-shrink'
value: 'flex-shrink',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Flex basis', 'elementor-pro'),
value: 'flex-basis'
value: 'flex-basis',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Size', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Width', 'elementor-pro'),
value: 'width'
value: 'width',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Height', 'elementor-pro'),
value: 'height'
value: 'height',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Max height', 'elementor-pro'),
value: 'max-height'
value: 'max-height',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Max width', 'elementor-pro'),
value: 'max-width'
value: 'max-width',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Min height', 'elementor-pro'),
value: 'min-height'
value: 'min-height',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Min width', 'elementor-pro'),
value: 'min-width'
value: 'min-width',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Position', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Top', 'elementor-pro'),
value: 'top'
value: 'inset-block-start',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Left', 'elementor-pro'),
value: 'left'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Right', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Left', 'elementor-pro'),
value: 'inset-inline-start',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Bottom', 'elementor-pro'),
value: 'bottom'
value: 'inset-block-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Right', 'elementor-pro'),
value: 'right'
label: isSiteRtl ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Left', 'elementor-pro') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Right', 'elementor-pro'),
value: 'inset-inline-end',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Z-Index', 'elementor-pro'),
value: 'z-index'
value: 'z-index',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Typography', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Font color', 'elementor-pro'),
value: 'color'
value: 'color',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Font size', 'elementor-pro'),
value: 'font-size'
value: 'font-size',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Line height', 'elementor-pro'),
value: 'line-height'
value: 'line-height',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Letter spacing', 'elementor-pro'),
value: 'letter-spacing'
value: 'letter-spacing',
isDisabled
},
// { label: __('Text indent', 'elementor-pro'), value: 'text-indent' },
// { label: __('Text shadow', 'elementor-pro'), value: 'text-shadow' },
// { label: __('Text indent', 'elementor-pro'), value: 'text-indent', isDisabled },
// { label: __('Text shadow', 'elementor-pro'), value: 'text-shadow', isDisabled },
{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Word spacing', 'elementor-pro'),
value: 'word-spacing'
value: 'word-spacing',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Font variations', 'elementor-pro'),
value: 'font-variation-settings'
value: 'font-variation-settings',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Text stroke color', 'elementor-pro'),
value: '-webkit-text-stroke-color'
value: '-webkit-text-stroke-color',
isDisabled
}
// { label: __('Text underline offset', 'elementor-pro'), value: 'text-underline-offset' },
// { label: __('Text decoration color', 'elementor-pro'), value: 'text-decoration-color' },
// { label: __('Text underline offset', 'elementor-pro'), value: 'text-underline-offset', isDisabled },
// { label: __('Text decoration color', 'elementor-pro'), value: 'text-decoration-color', isDisabled },
]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Background', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Background color', 'elementor-pro'),
value: 'background-color'
value: 'background-color',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Background position', 'elementor-pro'),
value: 'background-position'
value: 'background-position',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Box shadow', 'elementor-pro'),
value: 'box-shadow'
value: 'box-shadow',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Border', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Border (all)', 'elementor-pro'),
value: 'border'
value: 'border',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Border radius', 'elementor-pro'),
value: 'border-radius'
value: 'border-radius',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Border color', 'elementor-pro'),
value: 'border-color'
value: 'border-color',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Border width', 'elementor-pro'),
value: 'border-width'
value: 'border-width',
isDisabled
}]
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Effects', 'elementor-pro'),
type: 'category',
properties: [{
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Opacity', 'elementor-pro'),
value: 'opacity'
value: 'opacity',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Transform (all)', 'elementor-pro'),
value: 'transform'
value: 'transform',
isDisabled
}, {
label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Filter (all)', 'elementor-pro'),
value: 'filter'
value: 'filter',
isDisabled
}]
});
_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionsItemsList.splice(0, _elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionsItemsList.length, ..._elementor_editor_controls__WEBPACK_IMPORTED_MODULE_0__.transitionProperties.map(category => ({
@@ -790,42 +993,97 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ init: function() { return /* binding */ init; }
/* harmony export */ });
/* harmony import */ var _extend_transition_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./extend-transition-properties */ "./packages/packages/pro/editor-controls-extended/src/extend-transition-properties.ts");
/* harmony import */ var _is_feature_active__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-feature-active */ "./packages/packages/pro/editor-controls-extended/src/is-feature-active.ts");
/* harmony import */ var _license_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./license-api */ "./packages/packages/pro/editor-controls-extended/src/license-api.ts");
async function init() {
if (await (0,_is_feature_active__WEBPACK_IMPORTED_MODULE_1__.isFeatureActive)('transitions')) {
(0,_extend_transition_properties__WEBPACK_IMPORTED_MODULE_0__.extendTransitionProperties)();
const isExpired = await (0,_license_api__WEBPACK_IMPORTED_MODULE_1__.getIsLicenseExpired)();
if (await (0,_license_api__WEBPACK_IMPORTED_MODULE_1__.licenseApi)('transitions')) {
(0,_extend_transition_properties__WEBPACK_IMPORTED_MODULE_0__.extendTransitionProperties)(isExpired);
}
}
/***/ }),
/***/ "./packages/packages/pro/editor-controls-extended/src/is-feature-active.ts":
/*!*********************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/is-feature-active.ts ***!
\*********************************************************************************/
/***/ "./packages/packages/pro/editor-controls-extended/src/license-api.ts":
/*!***************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/license-api.ts ***!
\***************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ isFeatureActive: function() { return /* binding */ isFeatureActive; }
/* harmony export */ getIsLicenseExpired: function() { return /* binding */ getIsLicenseExpired; },
/* harmony export */ licenseApi: function() { return /* binding */ licenseApi; }
/* harmony export */ });
/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/http-client */ "@elementor/http-client");
/* harmony import */ var _elementor_http_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__);
const RESOURCE_URL = 'elementor-pro/v1/license/tier-features';
const TIER_FEATURES_URL = 'elementor-pro/v1/license/tier-features';
const ACTIVE_LICENSE_RESOURCE_URL = 'elementor-pro/v1/license/get-license-status';
let features = [];
async function isFeatureActive(featureName) {
let isLicenseExpired = null;
async function licenseApi(featureName) {
if (features.includes(featureName)) {
return true;
}
try {
const response = await (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(RESOURCE_URL);
const response = await (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(TIER_FEATURES_URL);
features = response.data?.features || [];
} catch {}
return features.includes(featureName);
}
async function getIsLicenseExpired(force = false) {
try {
if (isLicenseExpired === null || force) {
const response = await (0,_elementor_http_client__WEBPACK_IMPORTED_MODULE_0__.httpService)().get(ACTIVE_LICENSE_RESOURCE_URL);
isLicenseExpired = !!response.data?.isExpired;
}
} catch {}
return !!isLicenseExpired;
}
/***/ }),
/***/ "./packages/packages/pro/editor-controls-extended/src/prop-types/condition-group.ts":
/*!******************************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/prop-types/condition-group.ts ***!
\******************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ conditionGroupPropTypeUtil: function() { return /* binding */ conditionGroupPropTypeUtil; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
const unknownChildrenSchema = _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.any().nullable();
const conditionGroupPropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('condition-group', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.array(unknownChildrenSchema));
/***/ }),
/***/ "./packages/packages/pro/editor-controls-extended/src/prop-types/display-conditions.ts":
/*!*********************************************************************************************!*\
!*** ./packages/packages/pro/editor-controls-extended/src/prop-types/display-conditions.ts ***!
\*********************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ displayConditionsPropTypeUtil: function() { return /* binding */ displayConditionsPropTypeUtil; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/schema */ "@elementor/schema");
/* harmony import */ var _elementor_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_schema__WEBPACK_IMPORTED_MODULE_1__);
const unknownChildrenSchema = _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.any().nullable();
const displayConditionsPropTypeUtil = (0,_elementor_editor_props__WEBPACK_IMPORTED_MODULE_0__.createPropUtils)('display-conditions', _elementor_schema__WEBPACK_IMPORTED_MODULE_1__.z.array(unknownChildrenSchema));
/***/ }),
@@ -1657,6 +1915,16 @@ module.exports = window["elementorV2"]["editorControls"];
/***/ }),
/***/ "@elementor/editor-props":
/*!**********************************************!*\
!*** external ["elementorV2","editorProps"] ***!
\**********************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editorProps"];
/***/ }),
/***/ "@elementor/http-client":
/*!*********************************************!*\
!*** external ["elementorV2","httpClient"] ***!
@@ -1667,6 +1935,26 @@ module.exports = window["elementorV2"]["httpClient"];
/***/ }),
/***/ "@elementor/icons":
/*!****************************************!*\
!*** external ["elementorV2","icons"] ***!
\****************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["icons"];
/***/ }),
/***/ "@elementor/schema":
/*!*****************************************!*\
!*** external ["elementorV2","schema"] ***!
\*****************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["schema"];
/***/ }),
/***/ "@elementor/ui":
/*!*************************************!*\
!*** external ["elementorV2","ui"] ***!
@@ -1785,13 +2073,23 @@ var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ AttributesControl: function() { return /* reexport safe */ _controls_attributes_control__WEBPACK_IMPORTED_MODULE_1__.AttributesControl; },
/* harmony export */ CssEditor: function() { return /* reexport safe */ _components_css_code_editor_css_editor__WEBPACK_IMPORTED_MODULE_2__.CssEditor; },
/* harmony export */ isFeatureActive: function() { return /* reexport safe */ _is_feature_active__WEBPACK_IMPORTED_MODULE_3__.isFeatureActive; }
/* harmony export */ CssEditor: function() { return /* reexport safe */ _components_css_code_editor_css_editor__WEBPACK_IMPORTED_MODULE_5__.CssEditor; },
/* harmony export */ DisplayConditionsControl: function() { return /* reexport safe */ _controls_display_conditions_control__WEBPACK_IMPORTED_MODULE_2__.DisplayConditionsControl; },
/* harmony export */ conditionGroupPropTypeUtil: function() { return /* reexport safe */ _prop_types_condition_group__WEBPACK_IMPORTED_MODULE_4__.conditionGroupPropTypeUtil; },
/* harmony export */ displayConditionsPropTypeUtil: function() { return /* reexport safe */ _prop_types_display_conditions__WEBPACK_IMPORTED_MODULE_3__.displayConditionsPropTypeUtil; },
/* harmony export */ getIsLicenseExpired: function() { return /* reexport safe */ _license_api__WEBPACK_IMPORTED_MODULE_6__.getIsLicenseExpired; },
/* harmony export */ licenseApi: function() { return /* reexport safe */ _license_api__WEBPACK_IMPORTED_MODULE_6__.licenseApi; }
/* harmony export */ });
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init */ "./packages/packages/pro/editor-controls-extended/src/init.ts");
/* harmony import */ var _controls_attributes_control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./controls/attributes-control */ "./packages/packages/pro/editor-controls-extended/src/controls/attributes-control.tsx");
/* harmony import */ var _components_css_code_editor_css_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/css-code-editor/css-editor */ "./packages/packages/pro/editor-controls-extended/src/components/css-code-editor/css-editor.tsx");
/* harmony import */ var _is_feature_active__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./is-feature-active */ "./packages/packages/pro/editor-controls-extended/src/is-feature-active.ts");
/* harmony import */ var _controls_display_conditions_control__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./controls/display-conditions-control */ "./packages/packages/pro/editor-controls-extended/src/controls/display-conditions-control.tsx");
/* harmony import */ var _prop_types_display_conditions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop-types/display-conditions */ "./packages/packages/pro/editor-controls-extended/src/prop-types/display-conditions.ts");
/* harmony import */ var _prop_types_condition_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./prop-types/condition-group */ "./packages/packages/pro/editor-controls-extended/src/prop-types/condition-group.ts");
/* harmony import */ var _components_css_code_editor_css_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/css-code-editor/css-editor */ "./packages/packages/pro/editor-controls-extended/src/components/css-code-editor/css-editor.tsx");
/* harmony import */ var _license_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./license-api */ "./packages/packages/pro/editor-controls-extended/src/license-api.ts");

File diff suppressed because one or more lines are too long

View File

@@ -3,12 +3,16 @@ __( 'Default', 'elementor-pro' );
__( 'Margin', 'elementor-pro' );
__( 'Margin (all)', 'elementor-pro' );
__( 'Margin bottom', 'elementor-pro' );
__( 'Margin right', 'elementor-pro' );
__( 'Margin left', 'elementor-pro' );
__( 'Margin left', 'elementor-pro' );
__( 'Margin right', 'elementor-pro' );
__( 'Margin top', 'elementor-pro' );
__( 'Padding', 'elementor-pro' );
__( 'Padding (all)', 'elementor-pro' );
__( 'Padding bottom', 'elementor-pro' );
__( 'Padding right', 'elementor-pro' );
__( 'Padding left', 'elementor-pro' );
__( 'Padding left', 'elementor-pro' );
__( 'Padding right', 'elementor-pro' );
__( 'Padding top', 'elementor-pro' );
@@ -26,8 +30,10 @@ __( 'Min height', 'elementor-pro' );
__( 'Min width', 'elementor-pro' );
__( 'Position', 'elementor-pro' );
__( 'Top', 'elementor-pro' );
__( 'Right', 'elementor-pro' );
__( 'Left', 'elementor-pro' );
__( 'Bottom', 'elementor-pro' );
__( 'Left', 'elementor-pro' );
__( 'Right', 'elementor-pro' );
__( 'Z-Index', 'elementor-pro' );
__( 'Typography', 'elementor-pro' );
@@ -55,6 +61,7 @@ __( 'Effects', 'elementor-pro' );
__( 'Opacity', 'elementor-pro' );
__( 'Transform (all)', 'elementor-pro' );
__( 'Filter (all)', 'elementor-pro' );
__( 'Display Conditions', 'elementor-pro' );
__( "Empty attribute names aren't valid and won't render on the page.", 'elementor-pro' );
__( 'Name', 'elementor-pro' );
__( 'Value', 'elementor-pro' );

View File

@@ -8,6 +8,7 @@ if ( ! defined( 'ABSPATH' ) ) {
return [
'handle' => 'elementor-v2-editor-editing-panel-extended',
'deps' => [
'elementor-v2-editor-canvas',
'elementor-v2-editor-controls',
'elementor-v2-editor-controls-extended',
'elementor-v2-editor-editing-panel',

View File

@@ -145,6 +145,16 @@ const CustomCss = () => {
});
}
};
const syntaxRuleOptions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (!meta.breakpoint || meta.breakpoint === 'desktop') {
return {
rules: {
mediaQuery: false
}
};
}
return undefined;
}, [meta.breakpoint]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_3__.SectionContent, {
gap: 1
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_custom_css_field__WEBPACK_IMPORTED_MODULE_6__.CustomCssField, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_4__.Stack, {
@@ -153,7 +163,8 @@ const CustomCss = () => {
gap: 1
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.ControlFormLabel, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('CSS code', 'elementor-pro')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls__WEBPACK_IMPORTED_MODULE_1__.ControlAdornments, null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_2__.CssEditor, {
value: currentLocalState.value,
onChange: handleChange
onChange: handleChange,
syntaxRuleOptions: syntaxRuleOptions
}));
};
@@ -169,27 +180,53 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ init: function() { return /* binding */ init; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-controls-extended */ "@elementor/editor-controls-extended");
/* harmony import */ var _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-editing-panel */ "@elementor/editor-editing-panel");
/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _components_custom_css_section__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/custom-css-section */ "./packages/packages/pro/editor-editing-panel-extended/src/components/custom-css-section.tsx");
/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-controls-extended */ "@elementor/editor-controls-extended");
/* harmony import */ var _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-editing-panel */ "@elementor/editor-editing-panel");
/* harmony import */ var _elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/editor-props */ "@elementor/editor-props");
/* harmony import */ var _elementor_editor_props__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _components_custom_css_section__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/custom-css-section */ "./packages/packages/pro/editor-editing-panel-extended/src/components/custom-css-section.tsx");
/* harmony import */ var _transformers_settings_attributes_transformer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transformers/settings/attributes-transformer */ "./packages/packages/pro/editor-editing-panel-extended/src/transformers/settings/attributes-transformer.ts");
async function init() {
_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__.controlsRegistry.register('attributes', _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_0__.AttributesControl, 'full', _elementor_editor_props__WEBPACK_IMPORTED_MODULE_2__.keyValuePropTypeUtil);
(0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_1__.injectIntoStyleTab)({
_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.settingsTransformersRegistry.register('attributes', _transformers_settings_attributes_transformer__WEBPACK_IMPORTED_MODULE_5__.proAttributesTransformer);
_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2__.controlsRegistry.register('attributes', _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1__.AttributesControl, 'full', _elementor_editor_props__WEBPACK_IMPORTED_MODULE_3__.keyValuePropTypeUtil);
(0,_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2__.injectIntoStyleTab)({
id: 'custom-css',
component: _components_custom_css_section__WEBPACK_IMPORTED_MODULE_3__.CustomCssStyleSection
component: _components_custom_css_section__WEBPACK_IMPORTED_MODULE_4__.CustomCssStyleSection
});
_elementor_editor_editing_panel__WEBPACK_IMPORTED_MODULE_2__.controlsRegistry.register('display-conditions', _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1__.DisplayConditionsControl, 'two-columns', _elementor_editor_controls_extended__WEBPACK_IMPORTED_MODULE_1__.displayConditionsPropTypeUtil);
}
/***/ }),
/***/ "./packages/packages/pro/editor-editing-panel-extended/src/transformers/settings/attributes-transformer.ts":
/*!*****************************************************************************************************************!*\
!*** ./packages/packages/pro/editor-editing-panel-extended/src/transformers/settings/attributes-transformer.ts ***!
\*****************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ proAttributesTransformer: function() { return /* binding */ proAttributesTransformer; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-canvas */ "@elementor/editor-canvas");
/* harmony import */ var _elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__);
const proAttributesTransformer = (0,_elementor_editor_canvas__WEBPACK_IMPORTED_MODULE_0__.createTransformer)(values => {
return values.map(value => value.key && value.value ? `${value.key}="${value.value}"` : '').join(' ');
});
/***/ }),
/***/ "react":
/*!**************************!*\
!*** external ["React"] ***!
@@ -200,6 +237,16 @@ module.exports = window["React"];
/***/ }),
/***/ "@elementor/editor-canvas":
/*!***********************************************!*\
!*** external ["elementorV2","editorCanvas"] ***!
\***********************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editorCanvas"];
/***/ }),
/***/ "@elementor/editor-controls":
/*!*************************************************!*\
!*** external ["elementorV2","editorControls"] ***!

View File

@@ -1 +1 @@
!function(){"use strict";var e=window.elementorV2.editorControlsExtended,t=window.elementorV2.editorEditingPanel,n=window.elementorV2.editorProps,o=window.React,i=window.wp.i18n,r=window.elementorV2.editorControls,s=window.elementorV2.ui;const l=({children:e})=>o.createElement(r.ControlAdornmentsProvider,{items:[{id:"custom-css-indicator",Adornment:t.CustomCssIndicator}]},e),a=()=>{const{id:n,meta:a}=(0,t.useStyle)(),{customCss:d,setCustomCss:m}=(0,t.useCustomCss)(),c=`${a.breakpoint||"desktop"}-${a.state||"default"}-${n}`,[u,w]=(0,o.useState)({});(0,o.useEffect)((()=>{u[c]||w((e=>({...e,[c]:{value:d?.raw||"",isValid:!0}})))}),[c]);const C=(0,o.useMemo)((()=>u[c]||{value:d?.raw||"",isValid:!0}),[u,c,d?.raw]);return o.createElement(t.SectionContent,{gap:1},o.createElement(l,null,o.createElement(s.Stack,{direction:"row",alignItems:"center",gap:1},o.createElement(r.ControlFormLabel,null,(0,i.__)("CSS code","elementor-pro")),o.createElement(r.ControlAdornments,null))),o.createElement(e.CssEditor,{value:C.value,onChange:(e,t)=>{w((n=>({...n,[c]:{value:e,isValid:t}}))),t&&m(e,{history:{propDisplayName:"Custom CSS"}})}}))},d=()=>o.createElement(t.StyleTabSection,{section:{component:a,name:"Custom CSS",title:(0,i.__)("Custom CSS","elementor-pro")},fields:["custom_css"],unmountOnExit:!1});(async()=>{await async function(){t.controlsRegistry.register("attributes",e.AttributesControl,"full",n.keyValuePropTypeUtil),(0,t.injectIntoStyleTab)({id:"custom-css",component:d})}()})(),(window.elementorV2=window.elementorV2||{}).editorEditingPanelExtended={}}(),window.elementorV2.editorEditingPanelExtended?.init?.();
!function(){"use strict";var e=window.elementorV2.editorCanvas,t=window.elementorV2.editorControlsExtended,n=window.elementorV2.editorEditingPanel,o=window.elementorV2.editorProps,i=window.React,r=window.wp.i18n,s=window.elementorV2.editorControls,l=window.elementorV2.ui;const a=({children:e})=>i.createElement(s.ControlAdornmentsProvider,{items:[{id:"custom-css-indicator",Adornment:n.CustomCssIndicator}]},e),d=()=>{const{id:e,meta:o}=(0,n.useStyle)(),{customCss:d,setCustomCss:m}=(0,n.useCustomCss)(),u=`${o.breakpoint||"desktop"}-${o.state||"default"}-${e}`,[c,w]=(0,i.useState)({});(0,i.useEffect)((()=>{c[u]||w((e=>({...e,[u]:{value:d?.raw||"",isValid:!0}})))}),[u]);const C=(0,i.useMemo)((()=>c[u]||{value:d?.raw||"",isValid:!0}),[c,u,d?.raw]),p=(0,i.useMemo)((()=>{if(!o.breakpoint||"desktop"===o.breakpoint)return{rules:{mediaQuery:!1}}}),[o.breakpoint]);return i.createElement(n.SectionContent,{gap:1},i.createElement(a,null,i.createElement(l.Stack,{direction:"row",alignItems:"center",gap:1},i.createElement(s.ControlFormLabel,null,(0,r.__)("CSS code","elementor-pro")),i.createElement(s.ControlAdornments,null))),i.createElement(t.CssEditor,{value:C.value,onChange:(e,t)=>{w((n=>({...n,[u]:{value:e,isValid:t}}))),t&&m(e,{history:{propDisplayName:"Custom CSS"}})},syntaxRuleOptions:p}))},m=()=>i.createElement(n.StyleTabSection,{section:{component:d,name:"Custom CSS",title:(0,r.__)("Custom CSS","elementor-pro")},fields:["custom_css"],unmountOnExit:!1}),u=(0,e.createTransformer)((e=>e.map((e=>e.key&&e.value?`${e.key}="${e.value}"`:"")).join(" ")));(async()=>{await async function(){e.settingsTransformersRegistry.register("attributes",u),n.controlsRegistry.register("attributes",t.AttributesControl,"full",o.keyValuePropTypeUtil),(0,n.injectIntoStyleTab)({id:"custom-css",component:m}),n.controlsRegistry.register("display-conditions",t.DisplayConditionsControl,"two-columns",t.displayConditionsPropTypeUtil)}()})(),(window.elementorV2=window.elementorV2||{}).editorEditingPanelExtended={}}(),window.elementorV2.editorEditingPanelExtended?.init?.();

View File

@@ -24,6 +24,7 @@ __webpack_require__.r(__webpack_exports__);
const RESTRICTED_KEYBOARD_SHORTCUT_UNITS = ['auto'];
const RESTRICTED_INPUT_KEYS = ['e', 'E', '+', '-'];
function notAnEmptySize(value) {
return null !== value && undefined !== value && !isNaN(Number(value));
@@ -93,7 +94,7 @@ const SizeField = ({
const newChar = key.toLowerCase();
const updatedBuffer = (unitInputBufferRef.current + newChar).slice(-3);
unitInputBufferRef.current = updatedBuffer;
const matchedUnit = units.find(u => u.includes(updatedBuffer)) || units.find(u => u.startsWith(newChar)) || units.find(u => u.includes(newChar));
const matchedUnit = units.find(u => !RESTRICTED_KEYBOARD_SHORTCUT_UNITS.includes(u) && u.includes(updatedBuffer)) || units.find(u => !RESTRICTED_KEYBOARD_SHORTCUT_UNITS.includes(u) && u.startsWith(newChar)) || units.find(u => !RESTRICTED_KEYBOARD_SHORTCUT_UNITS.includes(u) && u.includes(newChar));
if (matchedUnit) {
handleUnitChange(matchedUnit);
}

View File

@@ -1 +1 @@
!function(){"use strict";var e={d:function(t,n){for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{init:function(){return V}});var n=window.elementorV2.editorProps,i=window.elementorV2.editorVariables,r=window.elementorV2.icons,o=window.React;const u="px",a=["px","%","em","rem","vw","vh","auto"],l=e=>{if(!e)return a;const t=s(e);return Array.isArray(t.available_units)&&0!==t.available_units.length?t.available_units.filter((e=>"custom"!==e)):a},s=e=>"union"===e?.kind?e.prop_types[n.sizePropTypeUtil.key].settings:{},c=(e,t,n)=>{if("string"!=typeof e)return"custom"===e?.unit?{size:null,unit:u}:"auto"===e.unit?{size:null,unit:e.unit}:e;const i={size:null,unit:t??u},r=n??(()=>{const e=window;return e.elementor?.config?.supported_size_units??[]})();if("auto"===e)return r.includes(e)?{size:"",unit:e}:i;const o=e.match(/^(-?\d*\.?\d+)([a-z%]+)$/i);if(o){const e=parseFloat(o[1]),t=o[2];if(r.includes(t))return{size:e,unit:t}}return i};var p=window.elementorV2.ui;const d=({value:e,onChange:t,endAdornment:n,onKeyUp:i,onKeyDown:r,type:u})=>o.createElement(p.TextField,{size:"tiny",type:u,fullWidth:!0,value:e,onKeyUp:i,onKeyDown:r,onChange:e=>t(e.target.value),InputProps:{endAdornment:n}});var m=window.elementorV2.editorUi;function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},y.apply(null,arguments)}const f=({options:e,value:t,onClick:n,showPrimaryColor:i})=>{const r=(0,p.usePopupState)({variant:"popover",popupId:(0,o.useId)()});return o.createElement(p.InputAdornment,{position:"end"},o.createElement(v,y({isPrimaryColor:i,size:"small"},(0,p.bindTrigger)(r)),t),o.createElement(p.Menu,y({MenuListProps:{dense:!0}},(0,p.bindMenu)(r)),e.map(((t,i)=>o.createElement(m.MenuListItem,{key:t,onClick:()=>(t=>{n(e[t]),r.close()})(i)},t.toUpperCase())))))},v=(0,p.styled)(p.Button,{shouldForwardProp:e=>"isPrimaryColor"!==e})((({isPrimaryColor:e,theme:t})=>({color:e?t.palette.text.primary:t.palette.text.tertiary,font:"inherit",minWidth:"initial",textTransform:"uppercase"}))),w=["e","E","+","-"];function b(e){return null!=e&&!isNaN(Number(e))}const g=({value:e,onChange:t,propType:n})=>{const i=(e=>e?s(e)?.default_unit??u:u)(n),r=l(n),a=c(e,i??u,r),[p,m]=(0,o.useState)(a);(0,o.useEffect)((()=>{const{size:e,unit:n}=p;t("auto"!==n?null!==e?(({size:e,unit:t})=>"auto"===t?"auto":`${e??""}${t}`)(p):"":"auto")}),[p,t]);const y=e=>{m((t=>"auto"===e?{unit:e,size:null}:{...t,unit:e}))},v=(0,o.useRef)("");return o.createElement(d,{type:"number",value:p.size??"",onChange:e=>{const t=z(e);m((e=>t&&"auto"===e.unit?{size:t,unit:i??u}:{...e,size:t}))},onKeyUp:e=>{const{key:t}=e;if(!/^[a-zA-Z%]$/.test(t))return;e.preventDefault();const n=t.toLowerCase(),i=(v.current+n).slice(-3);v.current=i;const o=r.find((e=>e.includes(i)))||r.find((e=>e.startsWith(n)))||r.find((e=>e.includes(n)));o&&y(o)},onKeyDown:e=>{w.includes(e.key)&&e.preventDefault()},endAdornment:o.createElement(f,{showPrimaryColor:b(p.size)||"auto"===p.unit,options:r,value:p.unit,onClick:y})})},z=e=>""===e.trim()?null:Number(e);var h=window.elementorV2.schema;const P=(0,n.createPropUtils)("global-size-variable",h.z.string());function C(e,t){const n=l(e),{unit:i}=c(t.value);return n.includes(i)}function V(){(0,i.registerVariableType)({valueField:g,icon:r.ExpandDiagonalIcon,propTypeUtil:P,fallbackPropTypeUtil:n.sizePropTypeUtil,variableType:"size",defaultValue:"0px",selectionFilter:(e,t)=>{const n=l(t);return e.filter((e=>{const{unit:t}=c(e.value);return n.includes(t)}))},isCompatible:C,valueTransformer:c})}(window.elementorV2=window.elementorV2||{}).editorVariablesExtended=t}(),window.elementorV2.editorVariablesExtended?.init?.();
!function(){"use strict";var e={d:function(t,n){for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{init:function(){return T}});var n=window.elementorV2.editorProps,i=window.elementorV2.editorVariables,r=window.elementorV2.icons,o=window.React;const u="px",l=["px","%","em","rem","vw","vh","auto"],a=e=>{if(!e)return l;const t=s(e);return Array.isArray(t.available_units)&&0!==t.available_units.length?t.available_units.filter((e=>"custom"!==e)):l},s=e=>"union"===e?.kind?e.prop_types[n.sizePropTypeUtil.key].settings:{},c=(e,t,n)=>{if("string"!=typeof e)return"custom"===e?.unit?{size:null,unit:u}:"auto"===e.unit?{size:null,unit:e.unit}:e;const i={size:null,unit:t??u},r=n??(()=>{const e=window;return e.elementor?.config?.supported_size_units??[]})();if("auto"===e)return r.includes(e)?{size:"",unit:e}:i;const o=e.match(/^(-?\d*\.?\d+)([a-z%]+)$/i);if(o){const e=parseFloat(o[1]),t=o[2];if(r.includes(t))return{size:e,unit:t}}return i};var d=window.elementorV2.ui;const p=({value:e,onChange:t,endAdornment:n,onKeyUp:i,onKeyDown:r,type:u})=>o.createElement(d.TextField,{size:"tiny",type:u,fullWidth:!0,value:e,onKeyUp:i,onKeyDown:r,onChange:e=>t(e.target.value),InputProps:{endAdornment:n}});var m=window.elementorV2.editorUi;function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},y.apply(null,arguments)}const f=({options:e,value:t,onClick:n,showPrimaryColor:i})=>{const r=(0,d.usePopupState)({variant:"popover",popupId:(0,o.useId)()});return o.createElement(d.InputAdornment,{position:"end"},o.createElement(v,y({isPrimaryColor:i,size:"small"},(0,d.bindTrigger)(r)),t),o.createElement(d.Menu,y({MenuListProps:{dense:!0}},(0,d.bindMenu)(r)),e.map(((t,i)=>o.createElement(m.MenuListItem,{key:t,onClick:()=>(t=>{n(e[t]),r.close()})(i)},t.toUpperCase())))))},v=(0,d.styled)(d.Button,{shouldForwardProp:e=>"isPrimaryColor"!==e})((({isPrimaryColor:e,theme:t})=>({color:e?t.palette.text.primary:t.palette.text.tertiary,font:"inherit",minWidth:"initial",textTransform:"uppercase"}))),w=["auto"],b=["e","E","+","-"];function g(e){return null!=e&&!isNaN(Number(e))}const z=({value:e,onChange:t,propType:n})=>{const i=(e=>e?s(e)?.default_unit??u:u)(n),r=a(n),l=c(e,i??u,r),[d,m]=(0,o.useState)(l);(0,o.useEffect)((()=>{const{size:e,unit:n}=d;t("auto"!==n?null!==e?(({size:e,unit:t})=>"auto"===t?"auto":`${e??""}${t}`)(d):"":"auto")}),[d,t]);const y=e=>{m((t=>"auto"===e?{unit:e,size:null}:{...t,unit:e}))},v=(0,o.useRef)("");return o.createElement(p,{type:"number",value:d.size??"",onChange:e=>{const t=h(e);m((e=>t&&"auto"===e.unit?{size:t,unit:i??u}:{...e,size:t}))},onKeyUp:e=>{const{key:t}=e;if(!/^[a-zA-Z%]$/.test(t))return;e.preventDefault();const n=t.toLowerCase(),i=(v.current+n).slice(-3);v.current=i;const o=r.find((e=>!w.includes(e)&&e.includes(i)))||r.find((e=>!w.includes(e)&&e.startsWith(n)))||r.find((e=>!w.includes(e)&&e.includes(n)));o&&y(o)},onKeyDown:e=>{b.includes(e.key)&&e.preventDefault()},endAdornment:o.createElement(f,{showPrimaryColor:g(d.size)||"auto"===d.unit,options:r,value:d.unit,onClick:y})})},h=e=>""===e.trim()?null:Number(e);var P=window.elementorV2.schema;const C=(0,n.createPropUtils)("global-size-variable",P.z.string());function V(e,t){const n=a(e),{unit:i}=c(t.value);return n.includes(i)}function T(){(0,i.registerVariableType)({valueField:z,icon:r.ExpandDiagonalIcon,propTypeUtil:C,fallbackPropTypeUtil:n.sizePropTypeUtil,variableType:"size",defaultValue:"0px",selectionFilter:(e,t)=>{const n=a(t);return e.filter((e=>{const{unit:t}=c(e.value);return n.includes(t)}))},isCompatible:V,valueTransformer:c})}(window.elementorV2=window.elementorV2||{}).editorVariablesExtended=t}(),window.elementorV2.editorVariablesExtended?.init?.();