@elementor/editor-editing-panel 4.4.0-1086 → 4.4.0-1088

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/dist/index.js CHANGED
@@ -2461,7 +2461,8 @@ var controlTypes = {
2461
2461
  layout: "custom",
2462
2462
  propTypeUtil: import_editor_props6.timeRangePropTypeUtil
2463
2463
  },
2464
- "attachment-type": { component: import_editor_controls2.AttachmentTypeControl, layout: "custom", propTypeUtil: import_editor_props6.stringPropTypeUtil }
2464
+ "attachment-type": { component: import_editor_controls2.AttachmentTypeControl, layout: "custom", propTypeUtil: import_editor_props6.stringPropTypeUtil },
2465
+ notice: { component: import_editor_controls2.NoticeControl, layout: "full", propTypeUtil: import_editor_props6.stringPropTypeUtil }
2465
2466
  };
2466
2467
  var ControlsRegistry = class {
2467
2468
  constructor(controlsRegistry2) {
@@ -2547,9 +2548,27 @@ var import_react18 = require("react");
2547
2548
  var import_editor_controls3 = require("@elementor/editor-controls");
2548
2549
  var import_editor_documents2 = require("@elementor/editor-documents");
2549
2550
  var import_editor_elements6 = require("@elementor/editor-elements");
2551
+ var import_editor_props7 = require("@elementor/editor-props");
2552
+ var import_editor_responsive2 = require("@elementor/editor-responsive");
2550
2553
  var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
2551
2554
  var import_i18n10 = require("@wordpress/i18n");
2552
2555
 
2556
+ // src/utils/is-responsive-prop-type.ts
2557
+ function isResponsivePropType(propType) {
2558
+ if (!propType) {
2559
+ return false;
2560
+ }
2561
+ if ("key" in propType && propType.key === "responsive") {
2562
+ return true;
2563
+ }
2564
+ if (propType.kind === "union") {
2565
+ return Object.values(propType.prop_types).some(
2566
+ (inner) => isResponsivePropType(inner)
2567
+ );
2568
+ }
2569
+ return false;
2570
+ }
2571
+
2553
2572
  // src/controls-registry/create-top-level-object-type.ts
2554
2573
  var createTopLevelObjectType = ({ schema }) => {
2555
2574
  const schemaPropType = {
@@ -2565,6 +2584,7 @@ var createTopLevelObjectType = ({ schema }) => {
2565
2584
 
2566
2585
  // src/controls-registry/settings-field.tsx
2567
2586
  var HISTORY_DEBOUNCE_WAIT2 = 800;
2587
+ var DESKTOP_BREAKPOINT = "desktop";
2568
2588
  var SettingsField = ({ bind, children, propDisplayName }) => {
2569
2589
  const {
2570
2590
  element: { id: elementId },
@@ -2592,7 +2612,24 @@ var SettingsField = ({ bind, children, propDisplayName }) => {
2592
2612
  (0, import_editor_elements6.updateElementSettings)({ id: elementId, props: settings, withHistory: false });
2593
2613
  }
2594
2614
  };
2595
- return /* @__PURE__ */ React23.createElement(import_editor_controls3.PropProvider, { propType, value, setValue, isDisabled }, /* @__PURE__ */ React23.createElement(import_editor_controls3.PropKeyProvider, { bind }, children));
2615
+ return /* @__PURE__ */ React23.createElement(import_editor_controls3.PropProvider, { propType, value, setValue, isDisabled }, /* @__PURE__ */ React23.createElement(import_editor_controls3.PropKeyProvider, { bind }, isResponsivePropType(propsSchema[bind]) ? /* @__PURE__ */ React23.createElement(ResponsiveBinding, null, children) : children));
2616
+ };
2617
+ var ResponsiveBinding = ({ children }) => {
2618
+ const { value, setValue, propType, disabled } = (0, import_editor_controls3.useBoundProp)(import_editor_props7.responsivePropTypeUtil);
2619
+ const breakpoint = (0, import_editor_responsive2.useActiveBreakpoint)() ?? DESKTOP_BREAKPOINT;
2620
+ const activeBreakpoints = ((0, import_editor_responsive2.useBreakpoints)() ?? []).map(({ id }) => id);
2621
+ const inherited = (0, import_editor_props7.responsiveFallbackChain)(breakpoint).filter((key) => key !== breakpoint && activeBreakpoints.includes(key)).map((key) => value?.[key]).find((entry) => entry !== null && entry !== void 0);
2622
+ return /* @__PURE__ */ React23.createElement(
2623
+ import_editor_controls3.PropProvider,
2624
+ {
2625
+ propType,
2626
+ value,
2627
+ setValue,
2628
+ placeholder: { [breakpoint]: inherited },
2629
+ isDisabled: () => disabled
2630
+ },
2631
+ /* @__PURE__ */ React23.createElement(import_editor_controls3.PropKeyProvider, { bind: breakpoint }, children)
2632
+ );
2596
2633
  };
2597
2634
  function useUndoableUpdateElementProp({
2598
2635
  elementId,
@@ -2750,8 +2787,8 @@ function isControlHiddenByDependencies(control, propsSchema, settings) {
2750
2787
  // src/components/style-tab.tsx
2751
2788
  var React90 = __toESM(require("react"));
2752
2789
  var import_react36 = require("react");
2753
- var import_editor_props16 = require("@elementor/editor-props");
2754
- var import_editor_responsive3 = require("@elementor/editor-responsive");
2790
+ var import_editor_props17 = require("@elementor/editor-props");
2791
+ var import_editor_responsive4 = require("@elementor/editor-responsive");
2755
2792
  var import_locations4 = require("@elementor/locations");
2756
2793
  var import_session8 = require("@elementor/session");
2757
2794
  var import_ui43 = require("@elementor/ui");
@@ -2760,8 +2797,8 @@ var import_ui43 = require("@elementor/ui");
2760
2797
  var React26 = __toESM(require("react"));
2761
2798
  var import_react19 = require("react");
2762
2799
  var import_editor_elements8 = require("@elementor/editor-elements");
2763
- var import_editor_props9 = require("@elementor/editor-props");
2764
- var import_editor_responsive2 = require("@elementor/editor-responsive");
2800
+ var import_editor_props10 = require("@elementor/editor-props");
2801
+ var import_editor_responsive3 = require("@elementor/editor-responsive");
2765
2802
  var import_editor_styles5 = require("@elementor/editor-styles");
2766
2803
  var import_editor_styles_repository15 = require("@elementor/editor-styles-repository");
2767
2804
 
@@ -2781,10 +2818,10 @@ function useDefaultStyleTagFromPreview(elementId) {
2781
2818
  }
2782
2819
 
2783
2820
  // src/styles-inheritance/create-styles-inheritance.ts
2784
- var import_editor_props8 = require("@elementor/editor-props");
2821
+ var import_editor_props9 = require("@elementor/editor-props");
2785
2822
 
2786
2823
  // src/styles-inheritance/create-snapshots-manager.ts
2787
- var import_editor_props7 = require("@elementor/editor-props");
2824
+ var import_editor_props8 = require("@elementor/editor-props");
2788
2825
  var import_editor_variables = require("@elementor/editor-variables");
2789
2826
 
2790
2827
  // src/styles-inheritance/utils.ts
@@ -2885,7 +2922,7 @@ function buildInitialSnapshotFromStyles(styles) {
2885
2922
  variant: { props }
2886
2923
  } = styleData;
2887
2924
  Object.entries(props).forEach(([key, value]) => {
2888
- const filteredValue = (0, import_editor_props7.filterEmptyValues)(value);
2925
+ const filteredValue = (0, import_editor_props8.filterEmptyValues)(value);
2889
2926
  const filteredVariableValue = filteredValue?.$$type?.includes("variable") && !(0, import_editor_variables.hasVariable)(filteredValue?.value) ? null : filteredValue;
2890
2927
  if (filteredVariableValue === null) {
2891
2928
  return;
@@ -2932,7 +2969,7 @@ function createStylesInheritance(styleDefs, breakpointsRoot) {
2932
2969
  inheritanceChain = inheritanceChain.map(({ value: styleValue, ...rest }) => ({
2933
2970
  ...rest,
2934
2971
  value: getValueByPath(styleValue, nextFields, filterPropType)
2935
- })).filter(({ value: styleValue }) => !(0, import_editor_props8.isEmpty)(styleValue));
2972
+ })).filter(({ value: styleValue }) => !(0, import_editor_props9.isEmpty)(styleValue));
2936
2973
  }
2937
2974
  return inheritanceChain;
2938
2975
  }
@@ -2974,7 +3011,7 @@ function getValueByPath(value, path, filterPropType) {
2974
3011
  if (!currentScope) {
2975
3012
  return null;
2976
3013
  }
2977
- if ((0, import_editor_props8.isTransformable)(currentScope)) {
3014
+ if ((0, import_editor_props9.isTransformable)(currentScope)) {
2978
3015
  return currentScope.value?.[key] ?? null;
2979
3016
  }
2980
3017
  if (typeof currentScope === "object") {
@@ -2984,7 +3021,7 @@ function getValueByPath(value, path, filterPropType) {
2984
3021
  }, value);
2985
3022
  }
2986
3023
  function shouldUseOriginalValue(filterPropType, value) {
2987
- return !!filterPropType && (0, import_editor_props8.isTransformable)(value) && filterPropType.key !== value.$$type;
3024
+ return !!filterPropType && (0, import_editor_props9.isTransformable)(value) && filterPropType.key !== value.$$type;
2988
3025
  }
2989
3026
  var getFilterPropType = (propType, path) => {
2990
3027
  if (!propType || propType.kind !== "union") {
@@ -3008,7 +3045,7 @@ var getFilterPropType = (propType, path) => {
3008
3045
  var Context4 = (0, import_react19.createContext)(null);
3009
3046
  function StyleInheritanceProvider({ children }) {
3010
3047
  const styleDefs = useAppliedStyles();
3011
- const breakpointsTree = (0, import_editor_responsive2.getBreakpointsTree)();
3048
+ const breakpointsTree = (0, import_editor_responsive3.getBreakpointsTree)();
3012
3049
  const { getSnapshot, getInheritanceChain } = createStylesInheritance(styleDefs, breakpointsTree);
3013
3050
  return /* @__PURE__ */ React26.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
3014
3051
  }
@@ -3053,7 +3090,7 @@ var useAppliedStyles = () => {
3053
3090
  const { id: activeStyleId } = useStyle();
3054
3091
  useStylesRerender();
3055
3092
  const classesProp = usePanelElementSetting(currentClassesProp);
3056
- const appliedStyles = import_editor_props9.classesPropTypeUtil.extract(classesProp) ?? [];
3093
+ const appliedStyles = import_editor_props10.classesPropTypeUtil.extract(classesProp) ?? [];
3057
3094
  const applicableIds = [
3058
3095
  ...baseStyles,
3059
3096
  ...appliedStyles,
@@ -3118,7 +3155,7 @@ var import_i18n11 = require("@wordpress/i18n");
3118
3155
  // src/controls-registry/styles-field.tsx
3119
3156
  var React27 = __toESM(require("react"));
3120
3157
  var import_editor_controls6 = require("@elementor/editor-controls");
3121
- var import_editor_props11 = require("@elementor/editor-props");
3158
+ var import_editor_props12 = require("@elementor/editor-props");
3122
3159
  var import_editor_styles6 = require("@elementor/editor-styles");
3123
3160
 
3124
3161
  // src/hooks/use-styles-field.ts
@@ -3134,14 +3171,14 @@ function useStylesField(propName, meta) {
3134
3171
  // src/controls-registry/conditional-field.tsx
3135
3172
  var import_react20 = require("react");
3136
3173
  var import_editor_controls5 = require("@elementor/editor-controls");
3137
- var import_editor_props10 = require("@elementor/editor-props");
3174
+ var import_editor_props11 = require("@elementor/editor-props");
3138
3175
  var ConditionalField = ({ children }) => {
3139
3176
  const { propType, value, resetValue } = (0, import_editor_controls5.useBoundProp)();
3140
3177
  const depList = getDependencies(propType);
3141
3178
  const { values: depValues, setValues: setDepValues } = useStylesFields(depList);
3142
3179
  const inheritedValues = useInheritedValues(depList);
3143
3180
  const resolvedValues = resolveWithInherited(depValues, inheritedValues);
3144
- const isHidden = !(0, import_editor_props10.isDependencyMet)(propType?.dependencies, resolvedValues).isMet;
3181
+ const isHidden = !(0, import_editor_props11.isDependencyMet)(propType?.dependencies, resolvedValues).isMet;
3145
3182
  useSyncDepsWithInherited({ isHidden, depValues, value, inheritedValues, setDepValues, resetValue });
3146
3183
  return isHidden ? null : children;
3147
3184
  };
@@ -3197,7 +3234,7 @@ function getDependencies(propType) {
3197
3234
  if (!propType?.dependencies?.terms.length) {
3198
3235
  return [];
3199
3236
  }
3200
- return propType.dependencies.terms.flatMap((term) => !(0, import_editor_props10.isDependency)(term) ? term.path : []);
3237
+ return propType.dependencies.terms.flatMap((term) => !(0, import_editor_props11.isDependency)(term) ? term.path : []);
3201
3238
  }
3202
3239
 
3203
3240
  // src/controls-registry/styles-field.tsx
@@ -3208,10 +3245,10 @@ function buildResolvedPlaceholder(chain, startIndex) {
3208
3245
  return void 0;
3209
3246
  }
3210
3247
  const firstValue = firstEntry.value;
3211
- if (!import_editor_props11.dimensionsPropTypeUtil.isValid(firstValue)) {
3248
+ if (!import_editor_props12.dimensionsPropTypeUtil.isValid(firstValue)) {
3212
3249
  return firstValue;
3213
3250
  }
3214
- const firstDims = import_editor_props11.dimensionsPropTypeUtil.extract(firstValue);
3251
+ const firstDims = import_editor_props12.dimensionsPropTypeUtil.extract(firstValue);
3215
3252
  if (DIMENSION_SIDES.every((side) => firstDims?.[side] !== null && firstDims?.[side] !== void 0)) {
3216
3253
  return firstValue;
3217
3254
  }
@@ -3223,15 +3260,15 @@ function buildResolvedPlaceholder(chain, startIndex) {
3223
3260
  });
3224
3261
  for (let i = startIndex + 1; i < chain.length; i++) {
3225
3262
  const val = chain[i].value;
3226
- if (import_editor_props11.sizePropTypeUtil.isValid(val)) {
3263
+ if (import_editor_props12.sizePropTypeUtil.isValid(val)) {
3227
3264
  DIMENSION_SIDES.forEach((side) => {
3228
3265
  if (merged[side] === null || merged[side] === void 0) {
3229
3266
  merged[side] = val;
3230
3267
  }
3231
3268
  });
3232
3269
  break;
3233
- } else if (import_editor_props11.dimensionsPropTypeUtil.isValid(val)) {
3234
- const dims = import_editor_props11.dimensionsPropTypeUtil.extract(val);
3270
+ } else if (import_editor_props12.dimensionsPropTypeUtil.isValid(val)) {
3271
+ const dims = import_editor_props12.dimensionsPropTypeUtil.extract(val);
3235
3272
  DIMENSION_SIDES.forEach((side) => {
3236
3273
  if ((merged[side] === null || merged[side] === void 0) && dims?.[side] !== null && dims?.[side] !== void 0) {
3237
3274
  merged[side] = dims[side];
@@ -3242,7 +3279,7 @@ function buildResolvedPlaceholder(chain, startIndex) {
3242
3279
  break;
3243
3280
  }
3244
3281
  }
3245
- return import_editor_props11.dimensionsPropTypeUtil.create({
3282
+ return import_editor_props12.dimensionsPropTypeUtil.create({
3246
3283
  "block-start": merged["block-start"] ?? null,
3247
3284
  "block-end": merged["block-end"] ?? null,
3248
3285
  "inline-start": merged["inline-start"] ?? null,
@@ -3331,7 +3368,7 @@ var BorderColorField = () => /* @__PURE__ */ React31.createElement(StylesField,
3331
3368
  // src/components/style-sections/border-section/border-radius-field.tsx
3332
3369
  var React33 = __toESM(require("react"));
3333
3370
  var import_editor_controls9 = require("@elementor/editor-controls");
3334
- var import_editor_props12 = require("@elementor/editor-props");
3371
+ var import_editor_props13 = require("@elementor/editor-props");
3335
3372
  var import_icons5 = require("@elementor/icons");
3336
3373
  var import_ui20 = require("@elementor/ui");
3337
3374
  var import_i18n13 = require("@wordpress/i18n");
@@ -3402,7 +3439,7 @@ var BorderRadiusField = () => {
3402
3439
  label: BORDER_RADIUS_LABEL,
3403
3440
  icon: /* @__PURE__ */ React33.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
3404
3441
  tooltipLabel: (0, import_i18n13.__)("Adjust corners", "elementor"),
3405
- multiSizePropTypeUtil: import_editor_props12.borderRadiusPropTypeUtil
3442
+ multiSizePropTypeUtil: import_editor_props13.borderRadiusPropTypeUtil
3406
3443
  }
3407
3444
  )));
3408
3445
  };
@@ -3428,7 +3465,7 @@ var BorderStyleField = () => /* @__PURE__ */ React34.createElement(StylesField,
3428
3465
  // src/components/style-sections/border-section/border-width-field.tsx
3429
3466
  var React35 = __toESM(require("react"));
3430
3467
  var import_editor_controls11 = require("@elementor/editor-controls");
3431
- var import_editor_props13 = require("@elementor/editor-props");
3468
+ var import_editor_props14 = require("@elementor/editor-props");
3432
3469
  var import_icons6 = require("@elementor/icons");
3433
3470
  var import_ui21 = require("@elementor/ui");
3434
3471
  var import_i18n15 = require("@wordpress/i18n");
@@ -3470,7 +3507,7 @@ var BorderWidthField = () => {
3470
3507
  label: BORDER_WIDTH_LABEL,
3471
3508
  icon: /* @__PURE__ */ React35.createElement(import_icons6.SideAllIcon, { fontSize: "tiny" }),
3472
3509
  tooltipLabel: (0, import_i18n15.__)("Adjust borders", "elementor"),
3473
- multiSizePropTypeUtil: import_editor_props13.borderWidthPropTypeUtil
3510
+ multiSizePropTypeUtil: import_editor_props14.borderWidthPropTypeUtil
3474
3511
  }
3475
3512
  ));
3476
3513
  };
@@ -4177,7 +4214,7 @@ var getGroupControlValue = (order) => {
4177
4214
  var React51 = __toESM(require("react"));
4178
4215
  var import_react24 = require("react");
4179
4216
  var import_editor_controls22 = require("@elementor/editor-controls");
4180
- var import_editor_props14 = require("@elementor/editor-props");
4217
+ var import_editor_props15 = require("@elementor/editor-props");
4181
4218
  var import_icons13 = require("@elementor/icons");
4182
4219
  var import_i18n28 = require("@wordpress/i18n");
4183
4220
  var FLEX_SIZE_LABEL = (0, import_i18n28.__)("Flex Size", "elementor");
@@ -4256,24 +4293,24 @@ var createFlexValueForGroup = (group, flexValue) => {
4256
4293
  return null;
4257
4294
  }
4258
4295
  if (group === "flex-grow") {
4259
- return import_editor_props14.flexPropTypeUtil.create({
4260
- flexGrow: import_editor_props14.numberPropTypeUtil.create(DEFAULT),
4261
- flexShrink: import_editor_props14.numberPropTypeUtil.create(0),
4262
- flexBasis: import_editor_props14.sizePropTypeUtil.create({ unit: "auto", size: "" })
4296
+ return import_editor_props15.flexPropTypeUtil.create({
4297
+ flexGrow: import_editor_props15.numberPropTypeUtil.create(DEFAULT),
4298
+ flexShrink: import_editor_props15.numberPropTypeUtil.create(0),
4299
+ flexBasis: import_editor_props15.sizePropTypeUtil.create({ unit: "auto", size: "" })
4263
4300
  });
4264
4301
  }
4265
4302
  if (group === "flex-shrink") {
4266
- return import_editor_props14.flexPropTypeUtil.create({
4267
- flexGrow: import_editor_props14.numberPropTypeUtil.create(0),
4268
- flexShrink: import_editor_props14.numberPropTypeUtil.create(DEFAULT),
4269
- flexBasis: import_editor_props14.sizePropTypeUtil.create({ unit: "auto", size: "" })
4303
+ return import_editor_props15.flexPropTypeUtil.create({
4304
+ flexGrow: import_editor_props15.numberPropTypeUtil.create(0),
4305
+ flexShrink: import_editor_props15.numberPropTypeUtil.create(DEFAULT),
4306
+ flexBasis: import_editor_props15.sizePropTypeUtil.create({ unit: "auto", size: "" })
4270
4307
  });
4271
4308
  }
4272
4309
  if (group === "custom") {
4273
4310
  if (flexValue) {
4274
4311
  return flexValue;
4275
4312
  }
4276
- return import_editor_props14.flexPropTypeUtil.create({
4313
+ return import_editor_props15.flexPropTypeUtil.create({
4277
4314
  flexGrow: null,
4278
4315
  flexShrink: null,
4279
4316
  flexBasis: null
@@ -4283,7 +4320,7 @@ var createFlexValueForGroup = (group, flexValue) => {
4283
4320
  };
4284
4321
  var FlexCustomField = () => {
4285
4322
  const flexBasisRowRef = (0, import_react24.useRef)(null);
4286
- const context = (0, import_editor_controls22.useBoundProp)(import_editor_props14.flexPropTypeUtil);
4323
+ const context = (0, import_editor_controls22.useBoundProp)(import_editor_props15.flexPropTypeUtil);
4287
4324
  return /* @__PURE__ */ React51.createElement(import_editor_controls22.PropProvider, { ...context }, /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(StylesFieldLayout, { label: (0, import_i18n28.__)("Grow", "elementor") }, /* @__PURE__ */ React51.createElement(import_editor_controls22.PropKeyProvider, { bind: "flexGrow" }, /* @__PURE__ */ React51.createElement(import_editor_controls22.NumberControl, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React51.createElement(StylesFieldLayout, { label: (0, import_i18n28.__)("Shrink", "elementor") }, /* @__PURE__ */ React51.createElement(import_editor_controls22.PropKeyProvider, { bind: "flexShrink" }, /* @__PURE__ */ React51.createElement(import_editor_controls22.NumberControl, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React51.createElement(StylesFieldLayout, { label: (0, import_i18n28.__)("Basis", "elementor"), ref: flexBasisRowRef }, /* @__PURE__ */ React51.createElement(import_editor_controls22.PropKeyProvider, { bind: "flexBasis" }, /* @__PURE__ */ React51.createElement(import_editor_controls22.SizeControl, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef })))));
4288
4325
  };
4289
4326
  var getActiveGroup = ({
@@ -4511,7 +4548,7 @@ var import_ui34 = require("@elementor/ui");
4511
4548
  var import_i18n34 = require("@wordpress/i18n");
4512
4549
 
4513
4550
  // src/components/style-sections/layout-section/utils/grid-track-value.ts
4514
- var import_editor_props15 = require("@elementor/editor-props");
4551
+ var import_editor_props16 = require("@elementor/editor-props");
4515
4552
  var FR = "fr";
4516
4553
  var CUSTOM2 = "custom";
4517
4554
  var UNITS = [FR, CUSTOM2];
@@ -4543,11 +4580,11 @@ var parseValue = (value) => {
4543
4580
  if (!value) {
4544
4581
  return EMPTY;
4545
4582
  }
4546
- if (import_editor_props15.gridTrackSizePropTypeUtil.isValid(value)) {
4547
- return parseGridTrackSize(import_editor_props15.gridTrackSizePropTypeUtil.extract(value));
4583
+ if (import_editor_props16.gridTrackSizePropTypeUtil.isValid(value)) {
4584
+ return parseGridTrackSize(import_editor_props16.gridTrackSizePropTypeUtil.extract(value));
4548
4585
  }
4549
- if (import_editor_props15.stringPropTypeUtil.isValid(value)) {
4550
- return parseString(import_editor_props15.stringPropTypeUtil.extract(value));
4586
+ if (import_editor_props16.stringPropTypeUtil.isValid(value)) {
4587
+ return parseString(import_editor_props16.stringPropTypeUtil.extract(value));
4551
4588
  }
4552
4589
  return EMPTY;
4553
4590
  };
@@ -4566,9 +4603,9 @@ var toPropValue = (v) => {
4566
4603
  case "empty":
4567
4604
  return null;
4568
4605
  case "fr":
4569
- return import_editor_props15.gridTrackSizePropTypeUtil.create({ size: v.count, unit: FR });
4606
+ return import_editor_props16.gridTrackSizePropTypeUtil.create({ size: v.count, unit: FR });
4570
4607
  case "custom":
4571
- return import_editor_props15.gridTrackSizePropTypeUtil.create({ size: v.raw, unit: CUSTOM2 });
4608
+ return import_editor_props16.gridTrackSizePropTypeUtil.create({ size: v.raw, unit: CUSTOM2 });
4572
4609
  }
4573
4610
  };
4574
4611
  var toSizeInput = (v, fallbackUnit = FR) => {
@@ -5610,7 +5647,7 @@ var StyleTab = () => {
5610
5647
  const currentClassesProp = useCurrentClassesProp();
5611
5648
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp ?? "");
5612
5649
  const [activeStyleState, setActiveStyleState] = (0, import_react36.useState)(null);
5613
- const breakpoint = (0, import_editor_responsive3.useActiveBreakpoint)();
5650
+ const breakpoint = (0, import_editor_responsive4.useActiveBreakpoint)();
5614
5651
  if (!currentClassesProp) {
5615
5652
  return null;
5616
5653
  }
@@ -5644,7 +5681,7 @@ function ClassesHeader({ children }) {
5644
5681
  function useCurrentClassesProp() {
5645
5682
  const { elementType } = useElement();
5646
5683
  const prop = Object.entries(elementType.propsSchema).find(
5647
- ([, propType]) => propType.kind === "plain" && propType.key === import_editor_props16.CLASSES_PROP_KEY
5684
+ ([, propType]) => propType.kind === "plain" && propType.key === import_editor_props17.CLASSES_PROP_KEY
5648
5685
  );
5649
5686
  if (!prop) {
5650
5687
  return null;
@@ -5826,13 +5863,13 @@ var init = () => {
5826
5863
  var React95 = __toESM(require("react"));
5827
5864
  var import_editor_controls58 = require("@elementor/editor-controls");
5828
5865
  var import_editor_elements19 = require("@elementor/editor-elements");
5829
- var import_editor_props19 = require("@elementor/editor-props");
5866
+ var import_editor_props20 = require("@elementor/editor-props");
5830
5867
  var import_ui47 = require("@elementor/ui");
5831
5868
  var import_i18n70 = require("@wordpress/i18n");
5832
5869
 
5833
5870
  // src/controls-registry/element-controls/accordion-items-control/use-actions.ts
5834
5871
  var import_editor_elements17 = require("@elementor/editor-elements");
5835
- var import_editor_props17 = require("@elementor/editor-props");
5872
+ var import_editor_props18 = require("@elementor/editor-props");
5836
5873
  var import_i18n68 = require("@wordpress/i18n");
5837
5874
  var ACCORDION_ELEMENT_TYPE = "e-accordion";
5838
5875
  var ACCORDION_ITEM_ELEMENT_TYPE = "e-accordion-item";
@@ -5874,7 +5911,7 @@ var buildItemModel = (position, showIcon) => {
5874
5911
  // has already turned Show Icon off, a newly added item must start with its icon hidden
5875
5912
  // too, not re-show one just because the item itself is brand new. See the comment on
5876
5913
  // the mirrored prop in `Atomic_Accordion_Item_Header` for why this duplication exists.
5877
- settings: { show_icon: import_editor_props17.booleanPropTypeUtil.create(showIcon) },
5914
+ settings: { show_icon: import_editor_props18.booleanPropTypeUtil.create(showIcon) },
5878
5915
  elements: [
5879
5916
  {
5880
5917
  elType: ACCORDION_ITEM_TITLE_ELEMENT_TYPE,
@@ -5890,7 +5927,7 @@ var buildItemModel = (position, showIcon) => {
5890
5927
  // subtree (`deselectRecursive()` on delete) calls `.forEach()` on it unguarded.
5891
5928
  elements: [],
5892
5929
  settings: {
5893
- paragraph: import_editor_props17.escapedHtmlPropTypeUtil.create(numberedTitle),
5930
+ paragraph: import_editor_props18.escapedHtmlPropTypeUtil.create(numberedTitle),
5894
5931
  tag: { $$type: "string", value: "span" }
5895
5932
  }
5896
5933
  }
@@ -5993,7 +6030,7 @@ var useActions = () => {
5993
6030
  // src/controls-registry/element-controls/accordion-items-control/use-show-icon-write-through.ts
5994
6031
  var import_react40 = require("react");
5995
6032
  var import_editor_elements18 = require("@elementor/editor-elements");
5996
- var import_editor_props18 = require("@elementor/editor-props");
6033
+ var import_editor_props19 = require("@elementor/editor-props");
5997
6034
  var import_editor_v1_adapters9 = require("@elementor/editor-v1-adapters");
5998
6035
  var import_i18n69 = require("@wordpress/i18n");
5999
6036
  var ACCORDION_ITEM_HEADER_ELEMENT_TYPE2 = "e-accordion-item-header";
@@ -6014,7 +6051,7 @@ var cascadeShowIconToHeaders = (0, import_editor_v1_adapters9.undoable)(
6014
6051
  headerIds.forEach((headerId) => {
6015
6052
  (0, import_editor_elements18.updateElementSettings)({
6016
6053
  id: headerId,
6017
- props: { show_icon: import_editor_props18.booleanPropTypeUtil.create(showIcon) },
6054
+ props: { show_icon: import_editor_props19.booleanPropTypeUtil.create(showIcon) },
6018
6055
  withHistory: false
6019
6056
  });
6020
6057
  });
@@ -6078,7 +6115,7 @@ var AccordionItemsControl = ({ label }) => {
6078
6115
  { [ACCORDION_ELEMENT_TYPE]: ACCORDION_ITEM_ELEMENT_TYPE },
6079
6116
  { includeSelfAsParent: true }
6080
6117
  );
6081
- const showIcon = import_editor_props19.booleanPropTypeUtil.extract(settings.show_icon) ?? true;
6118
+ const showIcon = import_editor_props20.booleanPropTypeUtil.extract(settings.show_icon) ?? true;
6082
6119
  useShowIconWriteThrough(element.id, showIcon);
6083
6120
  const repeaterValues = items3.map((item, index) => {
6084
6121
  return {
@@ -6163,13 +6200,13 @@ var ItemNameControl = ({ elementId }) => {
6163
6200
  var React96 = __toESM(require("react"));
6164
6201
  var import_editor_controls59 = require("@elementor/editor-controls");
6165
6202
  var import_editor_elements22 = require("@elementor/editor-elements");
6166
- var import_editor_props22 = require("@elementor/editor-props");
6203
+ var import_editor_props23 = require("@elementor/editor-props");
6167
6204
  var import_ui48 = require("@elementor/ui");
6168
6205
  var import_i18n73 = require("@wordpress/i18n");
6169
6206
 
6170
6207
  // src/controls-registry/element-controls/list-items-control/list-actions.ts
6171
6208
  var import_editor_elements20 = require("@elementor/editor-elements");
6172
- var import_editor_props20 = require("@elementor/editor-props");
6209
+ var import_editor_props21 = require("@elementor/editor-props");
6173
6210
  var import_i18n71 = require("@wordpress/i18n");
6174
6211
  var LIST_ITEM_ELEMENT_TYPE = "e-list-item";
6175
6212
  var LIST_ITEM_MARKER_ELEMENT_TYPE = "e-list-item-marker";
@@ -6196,7 +6233,7 @@ var buildItemModel2 = (position, showMarkers) => {
6196
6233
  elType: LIST_ITEM_ELEMENT_TYPE,
6197
6234
  id: (0, import_editor_elements20.generateElementId)(),
6198
6235
  settings: {
6199
- show_markers: import_editor_props20.booleanPropTypeUtil.create(showMarkers)
6236
+ show_markers: import_editor_props21.booleanPropTypeUtil.create(showMarkers)
6200
6237
  },
6201
6238
  editor_settings: {
6202
6239
  title: itemTitle,
@@ -6217,7 +6254,7 @@ var buildItemModel2 = (position, showMarkers) => {
6217
6254
  elements: [],
6218
6255
  settings: {
6219
6256
  tag: { $$type: "string", value: "span" },
6220
- paragraph: import_editor_props20.escapedHtmlPropTypeUtil.create("&bull;")
6257
+ paragraph: import_editor_props21.escapedHtmlPropTypeUtil.create("&bull;")
6221
6258
  }
6222
6259
  }
6223
6260
  ]
@@ -6235,7 +6272,7 @@ var buildItemModel2 = (position, showMarkers) => {
6235
6272
  id: (0, import_editor_elements20.generateElementId)(),
6236
6273
  elements: [],
6237
6274
  settings: {
6238
- paragraph: import_editor_props20.escapedHtmlPropTypeUtil.create(itemTitle)
6275
+ paragraph: import_editor_props21.escapedHtmlPropTypeUtil.create(itemTitle)
6239
6276
  }
6240
6277
  }
6241
6278
  ]
@@ -6306,7 +6343,7 @@ var addItem = ({
6306
6343
  // src/controls-registry/element-controls/list-items-control/use-show-markers-write-through.ts
6307
6344
  var import_react41 = require("react");
6308
6345
  var import_editor_elements21 = require("@elementor/editor-elements");
6309
- var import_editor_props21 = require("@elementor/editor-props");
6346
+ var import_editor_props22 = require("@elementor/editor-props");
6310
6347
  var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
6311
6348
  var import_i18n72 = require("@wordpress/i18n");
6312
6349
  var cascadeShowMarkersToItems = (0, import_editor_v1_adapters10.undoable)(
@@ -6326,7 +6363,7 @@ var cascadeShowMarkersToItems = (0, import_editor_v1_adapters10.undoable)(
6326
6363
  itemIds.forEach((itemId) => {
6327
6364
  (0, import_editor_elements21.updateElementSettings)({
6328
6365
  id: itemId,
6329
- props: { show_markers: import_editor_props21.booleanPropTypeUtil.create(showMarkers) },
6366
+ props: { show_markers: import_editor_props22.booleanPropTypeUtil.create(showMarkers) },
6330
6367
  withHistory: false
6331
6368
  });
6332
6369
  });
@@ -6385,7 +6422,7 @@ var ListItemsControlContent = ({ label }) => {
6385
6422
  { [LIST_ELEMENT_TYPE]: LIST_ITEM_ELEMENT_TYPE },
6386
6423
  { includeSelfAsParent: true }
6387
6424
  );
6388
- const showMarkers = import_editor_props22.booleanPropTypeUtil.extract(settings.show_markers) ?? true;
6425
+ const showMarkers = import_editor_props23.booleanPropTypeUtil.extract(settings.show_markers) ?? true;
6389
6426
  useShowMarkersWriteThrough(element.id, showMarkers);
6390
6427
  const repeaterValues = listItems.map((item, index) => ({
6391
6428
  id: item.id,
@@ -6472,7 +6509,7 @@ var ListItemLabelControl = ({ elementId, fallbackLabel }) => {
6472
6509
  var React97 = __toESM(require("react"));
6473
6510
  var import_editor_controls61 = require("@elementor/editor-controls");
6474
6511
  var import_editor_elements25 = require("@elementor/editor-elements");
6475
- var import_editor_props24 = require("@elementor/editor-props");
6512
+ var import_editor_props25 = require("@elementor/editor-props");
6476
6513
  var import_icons28 = require("@elementor/icons");
6477
6514
  var import_ui49 = require("@elementor/ui");
6478
6515
  var import_i18n75 = require("@wordpress/i18n");
@@ -6493,12 +6530,12 @@ var getElementByType = (elementId, type) => {
6493
6530
  // src/controls-registry/element-controls/tabs-control/use-actions.ts
6494
6531
  var import_editor_controls60 = require("@elementor/editor-controls");
6495
6532
  var import_editor_elements24 = require("@elementor/editor-elements");
6496
- var import_editor_props23 = require("@elementor/editor-props");
6533
+ var import_editor_props24 = require("@elementor/editor-props");
6497
6534
  var import_i18n74 = require("@wordpress/i18n");
6498
6535
  var TAB_ELEMENT_TYPE = "e-tab";
6499
6536
  var TAB_CONTENT_ELEMENT_TYPE = "e-tab-content";
6500
6537
  var useActions2 = () => {
6501
- const { value, setValue: setDefaultActiveTab } = (0, import_editor_controls60.useBoundProp)(import_editor_props23.numberPropTypeUtil);
6538
+ const { value, setValue: setDefaultActiveTab } = (0, import_editor_controls60.useBoundProp)(import_editor_props24.numberPropTypeUtil);
6502
6539
  const defaultActiveTab = value ?? 0;
6503
6540
  const duplicateItem2 = ({
6504
6541
  items: items3,
@@ -6759,7 +6796,7 @@ var ItemLabel3 = ({ value, index }) => {
6759
6796
  return /* @__PURE__ */ React97.createElement(import_ui49.Stack, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React97.createElement("span", null, elementTitle), /* @__PURE__ */ React97.createElement(ItemDefaultTab, { index }));
6760
6797
  };
6761
6798
  var ItemDefaultTab = ({ index }) => {
6762
- const { value: defaultItem } = (0, import_editor_controls61.useBoundProp)(import_editor_props24.numberPropTypeUtil);
6799
+ const { value: defaultItem } = (0, import_editor_controls61.useBoundProp)(import_editor_props25.numberPropTypeUtil);
6763
6800
  const isDefault = defaultItem === index;
6764
6801
  if (!isDefault) {
6765
6802
  return null;
@@ -6773,7 +6810,7 @@ var ItemContent3 = ({ value, index }) => {
6773
6810
  return /* @__PURE__ */ React97.createElement(import_ui49.Stack, { p: 2, gap: 1.5 }, /* @__PURE__ */ React97.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React97.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: (0, import_i18n75.__)("Tabs", "elementor") }, /* @__PURE__ */ React97.createElement(DefaultTabControl, { tabIndex: index })));
6774
6811
  };
6775
6812
  var DefaultTabControl = ({ tabIndex }) => {
6776
- const { value, setValue } = (0, import_editor_controls61.useBoundProp)(import_editor_props24.numberPropTypeUtil);
6813
+ const { value, setValue } = (0, import_editor_controls61.useBoundProp)(import_editor_props25.numberPropTypeUtil);
6777
6814
  const isDefault = value === tabIndex;
6778
6815
  return /* @__PURE__ */ React97.createElement(import_ui49.Stack, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React97.createElement(import_editor_controls61.ControlFormLabel, null, (0, import_i18n75.__)("Set as default tab", "elementor")), /* @__PURE__ */ React97.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React97.createElement(
6779
6816
  import_ui49.Switch,
@@ -6855,7 +6892,7 @@ var import_menus2 = require("@elementor/menus");
6855
6892
  // src/dynamics/components/background-control-dynamic-tag.tsx
6856
6893
  var React98 = __toESM(require("react"));
6857
6894
  var import_editor_controls63 = require("@elementor/editor-controls");
6858
- var import_editor_props26 = require("@elementor/editor-props");
6895
+ var import_editor_props27 = require("@elementor/editor-props");
6859
6896
  var import_icons29 = require("@elementor/icons");
6860
6897
 
6861
6898
  // src/dynamics/hooks/use-dynamic-tag.ts
@@ -6911,11 +6948,11 @@ var filterByLicense = (tags) => {
6911
6948
  };
6912
6949
 
6913
6950
  // src/dynamics/utils.ts
6914
- var import_editor_props25 = require("@elementor/editor-props");
6951
+ var import_editor_props26 = require("@elementor/editor-props");
6915
6952
  var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
6916
6953
  var import_schema = require("@elementor/schema");
6917
6954
  var DYNAMIC_PROP_TYPE_KEY = "dynamic";
6918
- var dynamicPropTypeUtil = (0, import_editor_props25.createPropUtils)(
6955
+ var dynamicPropTypeUtil = (0, import_editor_props26.createPropUtils)(
6919
6956
  DYNAMIC_PROP_TYPE_KEY,
6920
6957
  import_schema.z.strictObject({
6921
6958
  name: import_schema.z.string(),
@@ -6932,7 +6969,7 @@ var getDynamicPropType = (propType) => {
6932
6969
  return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
6933
6970
  };
6934
6971
  var isDynamicPropValue = (prop) => {
6935
- return (0, import_editor_props25.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
6972
+ return (0, import_editor_props26.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
6936
6973
  };
6937
6974
  var supportsDynamic = (propType) => {
6938
6975
  return !!getDynamicPropType(propType);
@@ -6993,7 +7030,7 @@ var useDynamicTag = (tagName) => {
6993
7030
  // src/dynamics/components/background-control-dynamic-tag.tsx
6994
7031
  var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React98.createElement(import_icons29.DatabaseIcon, { fontSize: "tiny" });
6995
7032
  var BackgroundControlDynamicTagLabel = ({ value }) => {
6996
- const context = (0, import_editor_controls63.useBoundProp)(import_editor_props26.backgroundImageOverlayPropTypeUtil);
7033
+ const context = (0, import_editor_controls63.useBoundProp)(import_editor_props27.backgroundImageOverlayPropTypeUtil);
6997
7034
  return /* @__PURE__ */ React98.createElement(import_editor_controls63.PropProvider, { ...context, value: value.value }, /* @__PURE__ */ React98.createElement(import_editor_controls63.PropKeyProvider, { bind: "image" }, /* @__PURE__ */ React98.createElement(Wrapper2, { rawValue: value.value })));
6998
7035
  };
6999
7036
  var Wrapper2 = ({ rawValue }) => {
@@ -7030,7 +7067,7 @@ var import_editor_controls64 = require("@elementor/editor-controls");
7030
7067
  // src/dynamics/components/dynamic-conditional-control.tsx
7031
7068
  var React99 = __toESM(require("react"));
7032
7069
  var import_react45 = require("react");
7033
- var import_editor_props27 = require("@elementor/editor-props");
7070
+ var import_editor_props28 = require("@elementor/editor-props");
7034
7071
  var DynamicConditionalControl = ({
7035
7072
  children,
7036
7073
  propType,
@@ -7072,7 +7109,7 @@ var DynamicConditionalControl = ({
7072
7109
  if (!propType?.dependencies?.terms.length) {
7073
7110
  return /* @__PURE__ */ React99.createElement(React99.Fragment, null, children);
7074
7111
  }
7075
- const isHidden = !(0, import_editor_props27.isDependencyMet)(propType?.dependencies, effectiveSettings).isMet;
7112
+ const isHidden = !(0, import_editor_props28.isDependencyMet)(propType?.dependencies, effectiveSettings).isMet;
7076
7113
  return isHidden ? null : /* @__PURE__ */ React99.createElement(React99.Fragment, null, children);
7077
7114
  };
7078
7115
 
@@ -7450,7 +7487,7 @@ function ControlsItemsStack({ items: items3 }) {
7450
7487
 
7451
7488
  // src/dynamics/dynamic-transformer.ts
7452
7489
  var import_editor_canvas2 = require("@elementor/editor-canvas");
7453
- var import_editor_props28 = require("@elementor/editor-props");
7490
+ var import_editor_props29 = require("@elementor/editor-props");
7454
7491
 
7455
7492
  // src/dynamics/errors.ts
7456
7493
  var import_utils9 = require("@elementor/utils");
@@ -7469,7 +7506,7 @@ var dynamicTransformer = (0, import_editor_canvas2.createTransformer)((value, {
7469
7506
  });
7470
7507
  function simpleTransform(props) {
7471
7508
  const transformed = Object.entries(props).map(([settingKey, settingValue]) => {
7472
- const value = (0, import_editor_props28.isTransformable)(settingValue) ? settingValue.value : settingValue;
7509
+ const value = (0, import_editor_props29.isTransformable)(settingValue) ? settingValue.value : settingValue;
7473
7510
  return [settingKey, value];
7474
7511
  });
7475
7512
  return Object.fromEntries(transformed);
@@ -7632,7 +7669,7 @@ function useResetStyleValueProps() {
7632
7669
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
7633
7670
  var React109 = __toESM(require("react"));
7634
7671
  var import_editor_controls70 = require("@elementor/editor-controls");
7635
- var import_editor_props29 = require("@elementor/editor-props");
7672
+ var import_editor_props30 = require("@elementor/editor-props");
7636
7673
  var import_editor_styles_repository20 = require("@elementor/editor-styles-repository");
7637
7674
  var import_i18n83 = require("@wordpress/i18n");
7638
7675
 
@@ -7718,7 +7755,7 @@ var getTransformedValue = async (item, bind, resolve) => {
7718
7755
 
7719
7756
  // src/styles-inheritance/components/infotip/breakpoint-icon.tsx
7720
7757
  var React104 = __toESM(require("react"));
7721
- var import_editor_responsive4 = require("@elementor/editor-responsive");
7758
+ var import_editor_responsive5 = require("@elementor/editor-responsive");
7722
7759
  var import_icons34 = require("@elementor/icons");
7723
7760
  var import_ui52 = require("@elementor/ui");
7724
7761
  var SIZE4 = "tiny";
@@ -7733,7 +7770,7 @@ var breakpointIconMap = {
7733
7770
  mobile: import_icons34.MobilePortraitIcon
7734
7771
  };
7735
7772
  var BreakpointIcon = ({ breakpoint }) => {
7736
- const breakpoints = (0, import_editor_responsive4.useBreakpoints)();
7773
+ const breakpoints = (0, import_editor_responsive5.useBreakpoints)();
7737
7774
  const currentBreakpoint = breakpoint || DEFAULT_BREAKPOINT3;
7738
7775
  const IconComponent = breakpointIconMap[currentBreakpoint];
7739
7776
  if (!IconComponent) {
@@ -7984,7 +8021,7 @@ var StylesInheritanceIndicator = ({
7984
8021
  var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
7985
8022
  const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
7986
8023
  const currentItem = currentStyleId ? getValueFromInheritanceChain(inheritanceChain, currentStyleId, currentStyleMeta) : null;
7987
- const hasValue = !(0, import_editor_props29.isEmpty)(currentItem?.value);
8024
+ const hasValue = !(0, import_editor_props30.isEmpty)(currentItem?.value);
7988
8025
  const [actualStyle] = inheritanceChain;
7989
8026
  if (actualStyle.provider === import_editor_styles_repository20.ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
7990
8027
  return null;