@elementor/editor-editing-panel 4.1.0 → 4.2.0-839

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/index.d.mts +169 -1
  2. package/dist/index.d.ts +169 -1
  3. package/dist/index.js +1301 -857
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1145 -683
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +25 -22
  8. package/src/components/css-classes/use-apply-and-unapply-class.ts +10 -0
  9. package/src/components/design-system-import/components/conflict-options.tsx +67 -0
  10. package/src/components/design-system-import/components/trigger-button.tsx +33 -0
  11. package/src/components/design-system-import/hooks/use-dialog-state.ts +24 -0
  12. package/src/components/design-system-import/hooks/use-import-request.ts +38 -0
  13. package/src/components/design-system-import/import-design-system-dialog.tsx +89 -0
  14. package/src/components/design-system-import/import-notifications.tsx +57 -0
  15. package/src/components/design-system-import/types.ts +1 -0
  16. package/src/components/promotions/init.tsx +6 -7
  17. package/src/components/section-content.tsx +9 -2
  18. package/src/components/style-sections/layout-section/align-self-grid-child-field.tsx +74 -0
  19. package/src/components/style-sections/layout-section/display-field.tsx +21 -8
  20. package/src/components/style-sections/layout-section/grid-auto-flow-field.tsx +102 -0
  21. package/src/components/style-sections/layout-section/grid-justify-items-field.tsx +58 -0
  22. package/src/components/style-sections/layout-section/grid-size-field.tsx +96 -0
  23. package/src/components/style-sections/layout-section/grid-span-field.tsx +78 -0
  24. package/src/components/style-sections/layout-section/layout-section.tsx +50 -2
  25. package/src/components/style-sections/position-section/position-field.tsx +2 -6
  26. package/src/components/style-sections/position-section/position-section.tsx +82 -85
  27. package/src/components/style-sections/position-section/z-index-field.tsx +29 -3
  28. package/src/components/style-tab.tsx +3 -0
  29. package/src/contexts/styles-inheritance-context.tsx +16 -2
  30. package/src/controls-registry/conditional-field.tsx +84 -7
  31. package/src/controls-registry/controls-registry.tsx +16 -0
  32. package/src/hooks/use-styles-fields.ts +1 -1
  33. package/src/utils/prop-dependency-utils.ts +88 -12
package/dist/index.mjs CHANGED
@@ -230,8 +230,8 @@ import {
230
230
  } from "@elementor/ui";
231
231
 
232
232
  // src/components/creatable-autocomplete/autocomplete-option-internal-properties.ts
233
- function addGroupToOptions(options12, pluralEntityName) {
234
- return options12.map((option) => {
233
+ function addGroupToOptions(options13, pluralEntityName) {
234
+ return options13.map((option) => {
235
235
  return {
236
236
  ...option,
237
237
  _group: `Existing ${pluralEntityName ?? "options"}`
@@ -245,7 +245,7 @@ function removeInternalKeys(option) {
245
245
 
246
246
  // src/components/creatable-autocomplete/use-autocomplete-change.ts
247
247
  function useAutocompleteChange(params) {
248
- const { options: options12, onSelect, createOption, setInputValue, closeDropdown } = params;
248
+ const { options: options13, onSelect, createOption, setInputValue, closeDropdown } = params;
249
249
  if (!onSelect && !createOption) {
250
250
  return;
251
251
  }
@@ -273,7 +273,7 @@ function useAutocompleteChange(params) {
273
273
  // User pressed "Enter" after typing input. The input is either matching existing option or a new option to create.
274
274
  case "createOption": {
275
275
  const inputValue = changedOption;
276
- const matchingOption = options12.find(
276
+ const matchingOption = options13.find(
277
277
  (option) => option.label.toLocaleLowerCase() === inputValue.toLocaleLowerCase()
278
278
  );
279
279
  if (matchingOption) {
@@ -375,7 +375,7 @@ function useCreateOption(params) {
375
375
  // src/components/creatable-autocomplete/use-filter-options.ts
376
376
  import { createFilterOptions } from "@elementor/ui";
377
377
  function useFilterOptions(parameters) {
378
- const { options: options12, selected, onCreate, entityName } = parameters;
378
+ const { options: options13, selected, onCreate, entityName } = parameters;
379
379
  const filter = createFilterOptions();
380
380
  const filterOptions = (optionList, params) => {
381
381
  const selectedValues = selected.map((option) => option.value);
@@ -383,7 +383,7 @@ function useFilterOptions(parameters) {
383
383
  optionList.filter((option) => !selectedValues.includes(option.value)),
384
384
  params
385
385
  );
386
- const isExisting = options12.some((option) => params.inputValue === option.label);
386
+ const isExisting = options13.some((option) => params.inputValue === option.label);
387
387
  const allowCreate = Boolean(onCreate) && params.inputValue !== "" && !selectedValues.includes(params.inputValue) && !isExisting;
388
388
  if (allowCreate) {
389
389
  filteredOptions.unshift({
@@ -404,7 +404,7 @@ var MIN_INPUT_LENGTH = 2;
404
404
  var CreatableAutocomplete = React5.forwardRef(CreatableAutocompleteInner);
405
405
  function CreatableAutocompleteInner({
406
406
  selected,
407
- options: options12,
407
+ options: options13,
408
408
  entityName,
409
409
  onSelect,
410
410
  placeholder,
@@ -417,8 +417,8 @@ function CreatableAutocompleteInner({
417
417
  const { open, openDropdown, closeDropdown } = useOpenState(props.open);
418
418
  const { createOption, loading } = useCreateOption({ onCreate, validate, setInputValue, setError, closeDropdown });
419
419
  const [internalOptions, internalSelected] = useMemo(
420
- () => [options12, selected].map((optionsArr) => addGroupToOptions(optionsArr, entityName?.plural)),
421
- [options12, selected, entityName?.plural]
420
+ () => [options13, selected].map((optionsArr) => addGroupToOptions(optionsArr, entityName?.plural)),
421
+ [options13, selected, entityName?.plural]
422
422
  );
423
423
  const handleChange = useAutocompleteChange({
424
424
  options: internalOptions,
@@ -427,7 +427,7 @@ function CreatableAutocompleteInner({
427
427
  setInputValue,
428
428
  closeDropdown
429
429
  });
430
- const filterOptions = useFilterOptions({ options: options12, selected, onCreate, entityName });
430
+ const filterOptions = useFilterOptions({ options: options13, selected, onCreate, entityName });
431
431
  const isCreatable = Boolean(onCreate);
432
432
  const freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || void 0;
433
433
  return /* @__PURE__ */ React5.createElement(
@@ -728,6 +728,12 @@ function useCreateAndApplyClass() {
728
728
  unapplyClass(createdId);
729
729
  deleteAction?.(createdId);
730
730
  setActiveId(prevActiveId);
731
+ },
732
+ redo: ({ classLabel }, { createdId }) => {
733
+ const prevActiveId = activeId;
734
+ createAction(classLabel, [], createdId);
735
+ applyClass(createdId);
736
+ return { prevActiveId, createdId };
731
737
  }
732
738
  },
733
739
  {
@@ -1232,13 +1238,13 @@ var EMPTY_OPTION = {
1232
1238
  };
1233
1239
  var { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation2();
1234
1240
  function CssClassSelector() {
1235
- const options12 = useOptions();
1241
+ const options13 = useOptions();
1236
1242
  const { id: activeId, setId: setActiveId } = useStyle();
1237
1243
  const autocompleteRef = useRef(null);
1238
1244
  const [renameError, setRenameError] = useState4(null);
1239
1245
  const handleSelect = useHandleSelect();
1240
1246
  const { create, validate, entityName } = useCreateAction();
1241
- const appliedOptions = useAppliedOptions(options12);
1247
+ const appliedOptions = useAppliedOptions(options13);
1242
1248
  const active = appliedOptions.find((option) => option.value === activeId) ?? EMPTY_OPTION;
1243
1249
  const showPlaceholder = appliedOptions.every(({ fixed }) => fixed);
1244
1250
  const { userCan } = useUserStylesCapability5();
@@ -1259,7 +1265,7 @@ function CssClassSelector() {
1259
1265
  ref: autocompleteRef,
1260
1266
  size: "tiny",
1261
1267
  placeholder: showPlaceholder ? __6("Type class name", "elementor") : void 0,
1262
- options: options12,
1268
+ options: options13,
1263
1269
  selected: appliedOptions,
1264
1270
  entityName,
1265
1271
  onSelect: handleSelect,
@@ -1388,10 +1394,10 @@ function useCreateAction() {
1388
1394
  function hasReachedLimit(provider) {
1389
1395
  return provider.actions.all().length >= provider.limit;
1390
1396
  }
1391
- function useAppliedOptions(options12) {
1397
+ function useAppliedOptions(options13) {
1392
1398
  const currentClassesProp = useClassesProp();
1393
1399
  const appliedIds = usePanelElementSetting(currentClassesProp)?.value ?? [];
1394
- const appliedOptions = options12.filter((option) => option.value && appliedIds.includes(option.value));
1400
+ const appliedOptions = options13.filter((option) => option.value && appliedIds.includes(option.value));
1395
1401
  const hasElementsProviderStyleApplied = appliedOptions.some(
1396
1402
  (option) => option.provider && isElementsStylesProvider4(option.provider)
1397
1403
  );
@@ -1557,7 +1563,7 @@ function useUndoableActions({
1557
1563
  return { styleId, provider, prevProps };
1558
1564
  }
1559
1565
  function undo(_, { styleId, provider, prevProps }) {
1560
- provider.actions.updateProps?.({ id: styleId, meta, props: prevProps }, { elementId });
1566
+ provider.actions.updateProps?.({ id: styleId, meta, props: prevProps, mode: "replace" }, { elementId });
1561
1567
  }
1562
1568
  }, [elementId, breakpoint, state, classesProp]);
1563
1569
  }
@@ -1775,7 +1781,7 @@ var hasInheritedCustomCss = (style, meta) => {
1775
1781
  };
1776
1782
 
1777
1783
  // src/components/editing-panel.tsx
1778
- import * as React82 from "react";
1784
+ import * as React87 from "react";
1779
1785
  import {
1780
1786
  ControlActionsProvider,
1781
1787
  ControlReplacementsProvider,
@@ -1789,7 +1795,7 @@ import { createLocation as createLocation4 } from "@elementor/locations";
1789
1795
  import { controlActionsMenu } from "@elementor/menus";
1790
1796
  import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
1791
1797
  import { ErrorBoundary } from "@elementor/ui";
1792
- import { __ as __56 } from "@wordpress/i18n";
1798
+ import { __ as __61 } from "@wordpress/i18n";
1793
1799
 
1794
1800
  // src/editing-panel-replacement-registry.tsx
1795
1801
  var registry = /* @__PURE__ */ new Map();
@@ -1812,11 +1818,11 @@ function EditorPanelErrorFallback() {
1812
1818
 
1813
1819
  // src/components/editing-panel-tabs.tsx
1814
1820
  import { Fragment as Fragment9 } from "react";
1815
- import * as React81 from "react";
1821
+ import * as React86 from "react";
1816
1822
  import { getWidgetsCache as getWidgetsCache2 } from "@elementor/editor-elements";
1817
- import { isExperimentActive } from "@elementor/editor-v1-adapters";
1823
+ import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
1818
1824
  import { Divider as Divider6, Stack as Stack13, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
1819
- import { __ as __55 } from "@wordpress/i18n";
1825
+ import { __ as __60 } from "@wordpress/i18n";
1820
1826
 
1821
1827
  // src/contexts/scroll-context.tsx
1822
1828
  import * as React14 from "react";
@@ -1992,7 +1998,9 @@ import * as React18 from "react";
1992
1998
 
1993
1999
  // src/controls-registry/controls-registry.tsx
1994
2000
  import {
2001
+ AttachmentTypeControl,
1995
2002
  ChipsControl,
2003
+ DateRangeControl,
1996
2004
  DateTimeControl,
1997
2005
  EmailFormActionControl,
1998
2006
  HtmlTagControl,
@@ -2009,12 +2017,14 @@ import {
2009
2017
  SwitchControl,
2010
2018
  TextAreaControl,
2011
2019
  TextControl,
2020
+ TimeRangeControl,
2012
2021
  ToggleControl,
2013
2022
  UrlControl,
2014
2023
  VideoMediaControl
2015
2024
  } from "@elementor/editor-controls";
2016
2025
  import {
2017
2026
  booleanPropTypeUtil,
2027
+ dateRangePropTypeUtil,
2018
2028
  DateTimePropTypeUtil,
2019
2029
  emailPropTypeUtil,
2020
2030
  htmlV3PropTypeUtil,
@@ -2027,6 +2037,7 @@ import {
2027
2037
  stringArrayPropTypeUtil,
2028
2038
  stringPropTypeUtil as stringPropTypeUtil2,
2029
2039
  svgSrcPropTypeUtil,
2040
+ timeRangePropTypeUtil,
2030
2041
  videoSrcPropTypeUtil
2031
2042
  } from "@elementor/editor-props";
2032
2043
  var controlTypes = {
@@ -2049,7 +2060,18 @@ var controlTypes = {
2049
2060
  "date-time": { component: DateTimeControl, layout: "full", propTypeUtil: DateTimePropTypeUtil },
2050
2061
  video: { component: VideoMediaControl, layout: "full", propTypeUtil: videoSrcPropTypeUtil },
2051
2062
  "inline-editing": { component: InlineEditingControl, layout: "full", propTypeUtil: htmlV3PropTypeUtil },
2052
- email: { component: EmailFormActionControl, layout: "custom", propTypeUtil: emailPropTypeUtil }
2063
+ email: { component: EmailFormActionControl, layout: "custom", propTypeUtil: emailPropTypeUtil },
2064
+ "date-range": {
2065
+ component: DateRangeControl,
2066
+ layout: "custom",
2067
+ propTypeUtil: dateRangePropTypeUtil
2068
+ },
2069
+ "time-range": {
2070
+ component: TimeRangeControl,
2071
+ layout: "custom",
2072
+ propTypeUtil: timeRangePropTypeUtil
2073
+ },
2074
+ "attachment-type": { component: AttachmentTypeControl, layout: "custom", propTypeUtil: stringPropTypeUtil2 }
2053
2075
  };
2054
2076
  var ControlsRegistry = class {
2055
2077
  constructor(controlsRegistry2) {
@@ -2142,7 +2164,10 @@ import { __ as __8 } from "@wordpress/i18n";
2142
2164
  import {
2143
2165
  extractValue,
2144
2166
  isDependency,
2145
- isDependencyMet
2167
+ isDependencyMet,
2168
+ isOverridable,
2169
+ isTransformable,
2170
+ rewrapOverridableValue
2146
2171
  } from "@elementor/editor-props";
2147
2172
  import { getSessionStorageItem as getSessionStorageItem2, removeSessionStorageItem, setSessionStorageItem as setSessionStorageItem2 } from "@elementor/session";
2148
2173
  function getElementSettingsWithDefaults(propsSchema, elementSettings) {
@@ -2199,10 +2224,14 @@ function getUpdatedValues(values, dependencies, propsSchema, elementValues, elem
2199
2224
  }
2200
2225
  if (!testDependencies.previousValues.isMet) {
2201
2226
  const savedValue = retrievePreviousValueFromStorage({ path: dependency, elementId });
2227
+ const currentValue = extractValue(path, combinedValues, [], {
2228
+ unwrapOverridableLeaf: false
2229
+ });
2202
2230
  removePreviousValueFromStorage({ path: dependency, elementId });
2231
+ const restored = isCompatibleSavedValue(savedValue, currentValue) ? savedValue : propType.default;
2203
2232
  return {
2204
2233
  ...newValues,
2205
- ...updateValue(path, savedValue ?? propType.default, combinedValues)
2234
+ ...updateValue(path, restored, combinedValues)
2206
2235
  };
2207
2236
  }
2208
2237
  return newValues;
@@ -2248,18 +2277,67 @@ function evaluatePropType(props) {
2248
2277
  }
2249
2278
  function updateValue(path, value, values) {
2250
2279
  const topPropKey = path[0];
2251
- const newValue = { ...values };
2252
- path.reduce((carry, key, index) => {
2253
- if (!carry) {
2254
- return null;
2280
+ const root = { ...values };
2281
+ let carry = root;
2282
+ for (let index = 0; index < path.length; index++) {
2283
+ const key = path[index];
2284
+ const isLeaf = index === path.length - 1;
2285
+ if (isLeaf) {
2286
+ carry[key] = mergeLeafValue(carry[key], value);
2287
+ break;
2255
2288
  }
2256
- if (index === path.length - 1) {
2257
- carry[key] = value ?? null;
2258
- return carry[key]?.value ?? carry.value;
2289
+ const next = cloneDescent(carry[key]);
2290
+ if (!next) {
2291
+ break;
2259
2292
  }
2260
- return carry[key]?.value ?? carry.value;
2261
- }, newValue);
2262
- return { [topPropKey]: newValue[topPropKey] ?? null };
2293
+ carry[key] = next.replacement;
2294
+ carry = next.descended;
2295
+ }
2296
+ return { [topPropKey]: root[topPropKey] ?? null };
2297
+ }
2298
+ function cloneDescent(child) {
2299
+ if (!child) {
2300
+ return null;
2301
+ }
2302
+ if (isOverridable(child)) {
2303
+ const origin = child.value.origin_value;
2304
+ if (!origin || !isTransformable(origin)) {
2305
+ return null;
2306
+ }
2307
+ const descended = { ...origin.value };
2308
+ const replacement = {
2309
+ ...child,
2310
+ value: {
2311
+ ...child.value,
2312
+ origin_value: { ...origin, value: descended }
2313
+ }
2314
+ };
2315
+ return { replacement, descended };
2316
+ }
2317
+ if (isTransformable(child)) {
2318
+ const descended = { ...child.value };
2319
+ const replacement = { ...child, value: descended };
2320
+ return { replacement, descended };
2321
+ }
2322
+ return null;
2323
+ }
2324
+ function isCompatibleSavedValue(saved, current) {
2325
+ if (!saved) {
2326
+ return false;
2327
+ }
2328
+ return isOverridable(saved) === isOverridable(current);
2329
+ }
2330
+ function mergeLeafValue(existing, incoming) {
2331
+ if (incoming === null) {
2332
+ return null;
2333
+ }
2334
+ if (incoming && isOverridable(incoming)) {
2335
+ return incoming;
2336
+ }
2337
+ if (existing && isOverridable(existing) && incoming) {
2338
+ return rewrapOverridableValue(existing, incoming);
2339
+ }
2340
+ return incoming;
2263
2341
  }
2264
2342
  function handleUnmetCondition(props) {
2265
2343
  const { failingDependencies, dependency, elementValues, defaultValue, elementId } = props;
@@ -2267,7 +2345,7 @@ function handleUnmetCondition(props) {
2267
2345
  (term) => "newValue" in term && !!term.newValue
2268
2346
  );
2269
2347
  const newValue = termWithNewValue?.newValue ?? null;
2270
- const currentValue = extractValue(dependency.split("."), elementValues) ?? defaultValue;
2348
+ const currentValue = extractValue(dependency.split("."), elementValues, [], { unwrapOverridableLeaf: false }) ?? defaultValue;
2271
2349
  savePreviousValueToStorage({
2272
2350
  path: dependency,
2273
2351
  elementId,
@@ -2476,18 +2554,18 @@ function isControl(control) {
2476
2554
  }
2477
2555
 
2478
2556
  // src/components/style-tab.tsx
2479
- import * as React80 from "react";
2557
+ import * as React85 from "react";
2480
2558
  import { useState as useState9 } from "react";
2481
2559
  import { CLASSES_PROP_KEY } from "@elementor/editor-props";
2482
2560
  import { useActiveBreakpoint } from "@elementor/editor-responsive";
2483
2561
  import { createLocation as createLocation3 } from "@elementor/locations";
2484
2562
  import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
2485
- import { Box as Box5, Divider as Divider5, Stack as Stack12 } from "@elementor/ui";
2486
- import { __ as __54 } from "@wordpress/i18n";
2563
+ import { Box as Box6, Divider as Divider5, Stack as Stack12 } from "@elementor/ui";
2564
+ import { __ as __59 } from "@wordpress/i18n";
2487
2565
 
2488
2566
  // src/contexts/styles-inheritance-context.tsx
2489
2567
  import * as React24 from "react";
2490
- import { createContext as createContext7, useContext as useContext7 } from "react";
2568
+ import { createContext as createContext7, useContext as useContext7, useMemo as useMemo8 } from "react";
2491
2569
  import { getWidgetsCache } from "@elementor/editor-elements";
2492
2570
  import { classesPropTypeUtil as classesPropTypeUtil3 } from "@elementor/editor-props";
2493
2571
  import { getBreakpointsTree as getBreakpointsTree2 } from "@elementor/editor-responsive";
@@ -2497,7 +2575,7 @@ import { stylesRepository as stylesRepository7 } from "@elementor/editor-styles-
2497
2575
  // src/styles-inheritance/create-styles-inheritance.ts
2498
2576
  import {
2499
2577
  isEmpty,
2500
- isTransformable
2578
+ isTransformable as isTransformable2
2501
2579
  } from "@elementor/editor-props";
2502
2580
 
2503
2581
  // src/styles-inheritance/create-snapshots-manager.ts
@@ -2691,7 +2769,7 @@ function getValueByPath(value, path, filterPropType) {
2691
2769
  if (!currentScope) {
2692
2770
  return null;
2693
2771
  }
2694
- if (isTransformable(currentScope)) {
2772
+ if (isTransformable2(currentScope)) {
2695
2773
  return currentScope.value?.[key] ?? null;
2696
2774
  }
2697
2775
  if (typeof currentScope === "object") {
@@ -2701,7 +2779,7 @@ function getValueByPath(value, path, filterPropType) {
2701
2779
  }, value);
2702
2780
  }
2703
2781
  function shouldUseOriginalValue(filterPropType, value) {
2704
- return !!filterPropType && isTransformable(value) && filterPropType.key !== value.$$type;
2782
+ return !!filterPropType && isTransformable2(value) && filterPropType.key !== value.$$type;
2705
2783
  }
2706
2784
  var getFilterPropType = (propType, path) => {
2707
2785
  if (!propType || propType.kind !== "union") {
@@ -2753,6 +2831,16 @@ function useStylesInheritanceChain(path) {
2753
2831
  }
2754
2832
  return context.getInheritanceChain(snapshot, path, topLevelPropType);
2755
2833
  }
2834
+ var EMPTY_INHERITED_VALUES = {};
2835
+ function useInheritedValues(propKeys) {
2836
+ const snapshot = useStylesInheritanceSnapshot();
2837
+ return useMemo8(() => {
2838
+ if (!snapshot || propKeys.length === 0) {
2839
+ return EMPTY_INHERITED_VALUES;
2840
+ }
2841
+ return Object.fromEntries(propKeys.map((key) => [key, snapshot[key]?.[0]?.value ?? null]));
2842
+ }, [snapshot, propKeys]);
2843
+ }
2756
2844
  var useAppliedStyles = () => {
2757
2845
  const currentClassesProp = useClassesProp();
2758
2846
  const baseStyles = useBaseStyles();
@@ -2812,15 +2900,67 @@ function useStylesField(propName, meta) {
2812
2900
  }
2813
2901
 
2814
2902
  // src/controls-registry/conditional-field.tsx
2903
+ import { useEffect as useEffect4, useRef as useRef4 } from "react";
2815
2904
  import { useBoundProp } from "@elementor/editor-controls";
2816
2905
  import { isDependency as isDependency2, isDependencyMet as isDependencyMet2 } from "@elementor/editor-props";
2817
2906
  var ConditionalField = ({ children }) => {
2818
- const { propType } = useBoundProp();
2907
+ const { propType, value, resetValue } = useBoundProp();
2819
2908
  const depList = getDependencies(propType);
2820
- const { values: depValues } = useStylesFields(depList);
2821
- const isHidden = !isDependencyMet2(propType?.dependencies, depValues).isMet;
2909
+ const { values: depValues, setValues: setDepValues } = useStylesFields(depList);
2910
+ const inheritedValues = useInheritedValues(depList);
2911
+ const resolvedValues = resolveWithInherited(depValues, inheritedValues);
2912
+ const isHidden = !isDependencyMet2(propType?.dependencies, resolvedValues).isMet;
2913
+ useSyncDepsWithInherited({ isHidden, depValues, value, inheritedValues, setDepValues, resetValue });
2822
2914
  return isHidden ? null : children;
2823
2915
  };
2916
+ function wasDepsCleared(prevDepValues, depValues) {
2917
+ if (!prevDepValues) {
2918
+ return false;
2919
+ }
2920
+ return Object.keys(prevDepValues).some(
2921
+ (key) => prevDepValues[key] && (!depValues || !depValues[key])
2922
+ );
2923
+ }
2924
+ function useSyncDepsWithInherited({
2925
+ isHidden,
2926
+ depValues,
2927
+ value,
2928
+ inheritedValues,
2929
+ setDepValues,
2930
+ resetValue
2931
+ }) {
2932
+ const syncRef = useRef4({ hasSynced: false, prevDepValues: depValues });
2933
+ useEffect4(() => {
2934
+ const { hasSynced, prevDepValues } = syncRef.current;
2935
+ if (hasSynced && value && wasDepsCleared(prevDepValues, depValues) || isHidden && depValues && value) {
2936
+ resetValue();
2937
+ }
2938
+ if (isHidden || !value || !depValues) {
2939
+ syncRef.current = { hasSynced: false, prevDepValues: depValues };
2940
+ return;
2941
+ }
2942
+ if (hasSynced) {
2943
+ syncRef.current.prevDepValues = depValues;
2944
+ return;
2945
+ }
2946
+ syncRef.current = { hasSynced: true, prevDepValues: depValues };
2947
+ Object.entries(depValues).forEach(([key, depValue]) => {
2948
+ const inherited = inheritedValues[key];
2949
+ if (!depValue && inherited) {
2950
+ setDepValues({ [key]: inherited }, { history: { propDisplayName: key } });
2951
+ }
2952
+ });
2953
+ }, [isHidden, depValues, value, inheritedValues, setDepValues, resetValue]);
2954
+ }
2955
+ function resolveWithInherited(localValues, inheritedValues) {
2956
+ if (!localValues) {
2957
+ const hasInherited = Object.keys(inheritedValues).length > 0;
2958
+ return hasInherited ? { ...inheritedValues } : null;
2959
+ }
2960
+ return Object.fromEntries(
2961
+ Object.entries(localValues).map(([key, val]) => [key, val ?? inheritedValues[key] ?? null])
2962
+ );
2963
+ }
2824
2964
  function getDependencies(propType) {
2825
2965
  if (!propType?.dependencies?.terms.length) {
2826
2966
  return [];
@@ -2905,7 +3045,13 @@ var StylesField = ({ bind, propDisplayName, children }) => {
2905
3045
  // src/components/section-content.tsx
2906
3046
  import * as React26 from "react";
2907
3047
  import { Stack as Stack6 } from "@elementor/ui";
2908
- var SectionContent = ({ gap = 2, sx, children, "aria-label": ariaLabel }) => /* @__PURE__ */ React26.createElement(Stack6, { gap, sx: { ...sx }, "aria-label": ariaLabel }, children);
3048
+ var SectionContent = ({
3049
+ gap = 2,
3050
+ sx,
3051
+ children,
3052
+ "aria-label": ariaLabel,
3053
+ className
3054
+ }) => /* @__PURE__ */ React26.createElement(Stack6, { gap, sx: { ...sx }, "aria-label": ariaLabel, className }, children);
2909
3055
 
2910
3056
  // src/components/style-sections/background-section/background-section.tsx
2911
3057
  var BACKGROUND_LABEL = __9("Background", "elementor");
@@ -3204,12 +3350,12 @@ var BlendModeField = () => {
3204
3350
 
3205
3351
  // src/components/style-sections/effects-section/opacity-control-field.tsx
3206
3352
  import * as React37 from "react";
3207
- import { useRef as useRef4 } from "react";
3353
+ import { useRef as useRef5 } from "react";
3208
3354
  import { SizeControl as SizeControl2 } from "@elementor/editor-controls";
3209
3355
  import { __ as __15 } from "@wordpress/i18n";
3210
3356
  var OPACITY_LABEL = __15("Opacity", "elementor");
3211
3357
  var OpacityControlField = () => {
3212
- const rowRef = useRef4(null);
3358
+ const rowRef = useRef5(null);
3213
3359
  return /* @__PURE__ */ React37.createElement(StylesField, { bind: "opacity", propDisplayName: OPACITY_LABEL }, /* @__PURE__ */ React37.createElement(StylesFieldLayout, { ref: rowRef, label: OPACITY_LABEL }, /* @__PURE__ */ React37.createElement(SizeControl2, { units: ["%"], anchorRef: rowRef, defaultUnit: "%" })));
3214
3360
  };
3215
3361
 
@@ -3233,10 +3379,11 @@ var EffectsSection = () => {
3233
3379
  };
3234
3380
 
3235
3381
  // src/components/style-sections/layout-section/layout-section.tsx
3236
- import * as React50 from "react";
3382
+ import * as React55 from "react";
3237
3383
  import { ControlFormLabel as ControlFormLabel2 } from "@elementor/editor-controls";
3238
3384
  import { useParentElement } from "@elementor/editor-elements";
3239
- import { __ as __28 } from "@wordpress/i18n";
3385
+ import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
3386
+ import { __ as __33 } from "@wordpress/i18n";
3240
3387
 
3241
3388
  // src/hooks/use-computed-style.ts
3242
3389
  import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
@@ -3278,7 +3425,7 @@ import { __ as __18 } from "@wordpress/i18n";
3278
3425
 
3279
3426
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
3280
3427
  import * as React39 from "react";
3281
- import { useRef as useRef5 } from "react";
3428
+ import { useRef as useRef6 } from "react";
3282
3429
  import { useTheme as useTheme2 } from "@elementor/ui";
3283
3430
  import { __ as __17 } from "@wordpress/i18n";
3284
3431
  var FLEX_DIRECTION_LABEL = __17("Flex direction", "elementor");
@@ -3301,7 +3448,7 @@ var RotatedIcon = ({
3301
3448
  offset = 0,
3302
3449
  disableRotationForReversed = false
3303
3450
  }) => {
3304
- const rotate = useRef5(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
3451
+ const rotate = useRef6(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
3305
3452
  rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
3306
3453
  return /* @__PURE__ */ React39.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
3307
3454
  };
@@ -3503,95 +3650,159 @@ var getOptions = (parentStyleDirection) => [
3503
3650
  ];
3504
3651
  var AlignSelfChild = ({ parentStyleDirection }) => /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-self", propDisplayName: ALIGN_SELF_LABEL }, /* @__PURE__ */ React42.createElement(UiProviders, null, /* @__PURE__ */ React42.createElement(StylesFieldLayout, { label: ALIGN_SELF_LABEL }, /* @__PURE__ */ React42.createElement(ToggleControl4, { options: getOptions(parentStyleDirection) }))));
3505
3652
 
3506
- // src/components/style-sections/layout-section/display-field.tsx
3653
+ // src/components/style-sections/layout-section/align-self-grid-child-field.tsx
3507
3654
  import * as React43 from "react";
3508
3655
  import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
3656
+ import {
3657
+ JustifyBottomIcon as JustifyBottomIcon2,
3658
+ JustifyCenterIcon,
3659
+ JustifyTopIcon as JustifyTopIcon2,
3660
+ LayoutDistributeVerticalIcon as JustifyIcon3
3661
+ } from "@elementor/icons";
3509
3662
  import { __ as __21 } from "@wordpress/i18n";
3510
- var DISPLAY_LABEL = __21("Display", "elementor");
3663
+ var ALIGN_SELF_LABEL2 = __21("Align self", "elementor");
3664
+ var ALIGN_SELF_CHILD_OFFSET_MAP2 = {
3665
+ row: 0,
3666
+ column: -90
3667
+ };
3668
+ var AlignSelfGridChild = ({ parentStyleDirection }) => /* @__PURE__ */ React43.createElement(StylesField, { bind: "align-self", propDisplayName: ALIGN_SELF_LABEL2 }, /* @__PURE__ */ React43.createElement(UiProviders, null, /* @__PURE__ */ React43.createElement(StylesFieldLayout, { label: ALIGN_SELF_LABEL2 }, /* @__PURE__ */ React43.createElement(ToggleControl5, { options: getOptions2(parentStyleDirection ?? "row") }))));
3669
+ var RotatedIcon2 = ({
3670
+ icon: Icon,
3671
+ size,
3672
+ offset
3673
+ }) => /* @__PURE__ */ React43.createElement(Icon, { fontSize: size, sx: { rotate: `${offset}deg` } });
3674
+ var getOptions2 = (parentStyleDirection) => {
3675
+ const offset = ALIGN_SELF_CHILD_OFFSET_MAP2[parentStyleDirection.replace("dense", "").trim()];
3676
+ return [
3677
+ {
3678
+ value: "start",
3679
+ label: __21("Start", "elementor"),
3680
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon2, { icon: JustifyTopIcon2, size, offset }),
3681
+ showTooltip: true
3682
+ },
3683
+ {
3684
+ value: "center",
3685
+ label: __21("Center", "elementor"),
3686
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon2, { icon: JustifyCenterIcon, size, offset }),
3687
+ showTooltip: true
3688
+ },
3689
+ {
3690
+ value: "end",
3691
+ label: __21("End", "elementor"),
3692
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon2, { icon: JustifyBottomIcon2, size, offset }),
3693
+ showTooltip: true
3694
+ },
3695
+ {
3696
+ value: "stretch",
3697
+ label: __21("Stretch", "elementor"),
3698
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon2, { icon: JustifyIcon3, size, offset }),
3699
+ showTooltip: true
3700
+ }
3701
+ ];
3702
+ };
3703
+
3704
+ // src/components/style-sections/layout-section/display-field.tsx
3705
+ import * as React44 from "react";
3706
+ import { useMemo as useMemo9 } from "react";
3707
+ import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
3708
+ import { isExperimentActive } from "@elementor/editor-v1-adapters";
3709
+ import { __ as __22 } from "@wordpress/i18n";
3710
+ var DISPLAY_LABEL = __22("Display", "elementor");
3511
3711
  var displayFieldItems = [
3512
3712
  {
3513
3713
  value: "block",
3514
- renderContent: () => __21("Block", "elementor"),
3515
- label: __21("Block", "elementor"),
3714
+ renderContent: () => __22("Block", "elementor"),
3715
+ label: __22("Block", "elementor"),
3516
3716
  showTooltip: true
3517
3717
  },
3518
3718
  {
3519
3719
  value: "flex",
3520
- renderContent: () => __21("Flex", "elementor"),
3521
- label: __21("Flex", "elementor"),
3720
+ renderContent: () => __22("Flex", "elementor"),
3721
+ label: __22("Flex", "elementor"),
3522
3722
  showTooltip: true
3523
3723
  },
3524
3724
  {
3525
- value: "inline-block",
3526
- renderContent: () => __21("In-blk", "elementor"),
3527
- label: __21("Inline-block", "elementor"),
3725
+ value: "grid",
3726
+ renderContent: () => __22("Grid", "elementor"),
3727
+ label: __22("Grid", "elementor"),
3528
3728
  showTooltip: true
3529
3729
  },
3530
3730
  {
3531
- value: "none",
3532
- renderContent: () => __21("None", "elementor"),
3533
- label: __21("None", "elementor"),
3731
+ value: "inline-block",
3732
+ renderContent: () => __22("In-blk", "elementor"),
3733
+ label: __22("Inline-block", "elementor"),
3534
3734
  showTooltip: true
3535
3735
  },
3536
3736
  {
3537
3737
  value: "inline-flex",
3538
- renderContent: () => __21("In-flx", "elementor"),
3539
- label: __21("Inline-flex", "elementor"),
3738
+ renderContent: () => __22("In-flx", "elementor"),
3739
+ label: __22("Inline-flex", "elementor"),
3740
+ showTooltip: true
3741
+ },
3742
+ {
3743
+ value: "none",
3744
+ renderContent: () => __22("None", "elementor"),
3745
+ label: __22("None", "elementor"),
3540
3746
  showTooltip: true
3541
3747
  }
3542
3748
  ];
3543
3749
  var DisplayField = () => {
3544
3750
  const placeholder = useDisplayPlaceholderValue();
3545
- return /* @__PURE__ */ React43.createElement(StylesField, { bind: "display", propDisplayName: DISPLAY_LABEL, placeholder }, /* @__PURE__ */ React43.createElement(StylesFieldLayout, { label: DISPLAY_LABEL, direction: "column" }, /* @__PURE__ */ React43.createElement(ToggleControl5, { options: displayFieldItems, maxItems: 4, fullWidth: true })));
3751
+ const isGridActive = isExperimentActive("e_css_grid");
3752
+ const items3 = useMemo9(
3753
+ () => isGridActive ? displayFieldItems : displayFieldItems.filter((item) => item.value !== "grid"),
3754
+ [isGridActive]
3755
+ );
3756
+ return /* @__PURE__ */ React44.createElement(StylesField, { bind: "display", propDisplayName: DISPLAY_LABEL, placeholder }, /* @__PURE__ */ React44.createElement(StylesFieldLayout, { label: DISPLAY_LABEL, direction: "column" }, /* @__PURE__ */ React44.createElement(ToggleControl6, { options: items3, maxItems: 4, fullWidth: true })));
3546
3757
  };
3547
3758
  var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
3548
3759
 
3549
3760
  // src/components/style-sections/layout-section/flex-direction-field.tsx
3550
- import * as React44 from "react";
3551
- import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
3761
+ import * as React45 from "react";
3762
+ import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
3552
3763
  import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
3553
3764
  import { withDirection as withDirection6 } from "@elementor/ui";
3554
- import { __ as __22 } from "@wordpress/i18n";
3555
- var FLEX_DIRECTION_LABEL2 = __22("Direction", "elementor");
3765
+ import { __ as __23 } from "@wordpress/i18n";
3766
+ var FLEX_DIRECTION_LABEL2 = __23("Direction", "elementor");
3556
3767
  var options3 = [
3557
3768
  {
3558
3769
  value: "row",
3559
- label: __22("Row", "elementor"),
3770
+ label: __23("Row", "elementor"),
3560
3771
  renderContent: ({ size }) => {
3561
- const StartIcon5 = withDirection6(ArrowRightIcon);
3562
- return /* @__PURE__ */ React44.createElement(StartIcon5, { fontSize: size });
3772
+ const StartIcon7 = withDirection6(ArrowRightIcon);
3773
+ return /* @__PURE__ */ React45.createElement(StartIcon7, { fontSize: size });
3563
3774
  },
3564
3775
  showTooltip: true
3565
3776
  },
3566
3777
  {
3567
3778
  value: "column",
3568
- label: __22("Column", "elementor"),
3569
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowDownSmallIcon, { fontSize: size }),
3779
+ label: __23("Column", "elementor"),
3780
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowDownSmallIcon, { fontSize: size }),
3570
3781
  showTooltip: true
3571
3782
  },
3572
3783
  {
3573
3784
  value: "row-reverse",
3574
- label: __22("Reversed row", "elementor"),
3785
+ label: __23("Reversed row", "elementor"),
3575
3786
  renderContent: ({ size }) => {
3576
- const EndIcon5 = withDirection6(ArrowLeftIcon);
3577
- return /* @__PURE__ */ React44.createElement(EndIcon5, { fontSize: size });
3787
+ const EndIcon6 = withDirection6(ArrowLeftIcon);
3788
+ return /* @__PURE__ */ React45.createElement(EndIcon6, { fontSize: size });
3578
3789
  },
3579
3790
  showTooltip: true
3580
3791
  },
3581
3792
  {
3582
3793
  value: "column-reverse",
3583
- label: __22("Reversed column", "elementor"),
3584
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowUpSmallIcon, { fontSize: size }),
3794
+ label: __23("Reversed column", "elementor"),
3795
+ renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowUpSmallIcon, { fontSize: size }),
3585
3796
  showTooltip: true
3586
3797
  }
3587
3798
  ];
3588
3799
  var FlexDirectionField = () => {
3589
- return /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-direction", propDisplayName: FLEX_DIRECTION_LABEL2 }, /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesFieldLayout, { label: FLEX_DIRECTION_LABEL2 }, /* @__PURE__ */ React44.createElement(ToggleControl6, { options: options3 }))));
3800
+ return /* @__PURE__ */ React45.createElement(StylesField, { bind: "flex-direction", propDisplayName: FLEX_DIRECTION_LABEL2 }, /* @__PURE__ */ React45.createElement(UiProviders, null, /* @__PURE__ */ React45.createElement(StylesFieldLayout, { label: FLEX_DIRECTION_LABEL2 }, /* @__PURE__ */ React45.createElement(ToggleControl7, { options: options3 }))));
3590
3801
  };
3591
3802
 
3592
3803
  // src/components/style-sections/layout-section/flex-order-field.tsx
3593
- import * as React45 from "react";
3594
- import { useEffect as useEffect4, useMemo as useMemo8, useState as useState7 } from "react";
3804
+ import * as React46 from "react";
3805
+ import { useEffect as useEffect5, useMemo as useMemo10, useState as useState7 } from "react";
3595
3806
  import {
3596
3807
  ControlToggleButtonGroup,
3597
3808
  NumberControl as NumberControl2,
@@ -3599,8 +3810,8 @@ import {
3599
3810
  } from "@elementor/editor-controls";
3600
3811
  import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
3601
3812
  import { Grid as Grid2 } from "@elementor/ui";
3602
- import { __ as __23 } from "@wordpress/i18n";
3603
- var ORDER_LABEL = __23("Order", "elementor");
3813
+ import { __ as __24 } from "@wordpress/i18n";
3814
+ var ORDER_LABEL = __24("Order", "elementor");
3604
3815
  var FIRST_DEFAULT_VALUE = -99999;
3605
3816
  var LAST_DEFAULT_VALUE = 99999;
3606
3817
  var FIRST = "first";
@@ -3613,25 +3824,25 @@ var orderValueMap = {
3613
3824
  var items = [
3614
3825
  {
3615
3826
  value: FIRST,
3616
- label: __23("First", "elementor"),
3617
- renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowUpSmallIcon2, { fontSize: size }),
3827
+ label: __24("First", "elementor"),
3828
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ArrowUpSmallIcon2, { fontSize: size }),
3618
3829
  showTooltip: true
3619
3830
  },
3620
3831
  {
3621
3832
  value: LAST,
3622
- label: __23("Last", "elementor"),
3623
- renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(ArrowDownSmallIcon2, { fontSize: size }),
3833
+ label: __24("Last", "elementor"),
3834
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ArrowDownSmallIcon2, { fontSize: size }),
3624
3835
  showTooltip: true
3625
3836
  },
3626
3837
  {
3627
3838
  value: CUSTOM,
3628
- label: __23("Custom", "elementor"),
3629
- renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(PencilIcon, { fontSize: size }),
3839
+ label: __24("Custom", "elementor"),
3840
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PencilIcon, { fontSize: size }),
3630
3841
  showTooltip: true
3631
3842
  }
3632
3843
  ];
3633
3844
  var FlexOrderField = () => {
3634
- return /* @__PURE__ */ React45.createElement(StylesField, { bind: "order", propDisplayName: ORDER_LABEL }, /* @__PURE__ */ React45.createElement(UiProviders, null, /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(FlexOrderFieldContent, null))));
3845
+ return /* @__PURE__ */ React46.createElement(StylesField, { bind: "order", propDisplayName: ORDER_LABEL }, /* @__PURE__ */ React46.createElement(UiProviders, null, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(FlexOrderFieldContent, null))));
3635
3846
  };
3636
3847
  function FlexOrderFieldContent() {
3637
3848
  const {
@@ -3643,15 +3854,15 @@ function FlexOrderFieldContent() {
3643
3854
  });
3644
3855
  const { placeholder } = useBoundProp2();
3645
3856
  const placeholderValue = placeholder;
3646
- const currentGroup = useMemo8(() => getGroupControlValue(order?.value ?? null), [order]);
3857
+ const currentGroup = useMemo10(() => getGroupControlValue(order?.value ?? null), [order]);
3647
3858
  const [activeGroup, setActiveGroup] = useState7(currentGroup);
3648
3859
  const [customLocked, setCustomLocked] = useState7(false);
3649
- useEffect4(() => {
3860
+ useEffect5(() => {
3650
3861
  if (!customLocked) {
3651
3862
  setActiveGroup(currentGroup);
3652
3863
  }
3653
3864
  }, [currentGroup, customLocked]);
3654
- useEffect4(() => {
3865
+ useEffect5(() => {
3655
3866
  if (order === null) {
3656
3867
  setCustomLocked(false);
3657
3868
  }
@@ -3676,7 +3887,7 @@ function FlexOrderFieldContent() {
3676
3887
  };
3677
3888
  const isCustomVisible = CUSTOM === activeGroup || CUSTOM === groupPlaceholder;
3678
3889
  const orderPlaceholder = CUSTOM === groupPlaceholder ? String(placeholderValue?.value ?? null) : "";
3679
- return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(StylesFieldLayout, { label: ORDER_LABEL }, /* @__PURE__ */ React45.createElement(
3890
+ return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: ORDER_LABEL }, /* @__PURE__ */ React46.createElement(
3680
3891
  ControlToggleButtonGroup,
3681
3892
  {
3682
3893
  items,
@@ -3686,7 +3897,7 @@ function FlexOrderFieldContent() {
3686
3897
  placeholder: groupPlaceholder,
3687
3898
  disabled: !canEdit
3688
3899
  }
3689
- )), isCustomVisible && /* @__PURE__ */ React45.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, __23("Custom order", "elementor"))), /* @__PURE__ */ React45.createElement(Grid2, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React45.createElement(
3900
+ )), isCustomVisible && /* @__PURE__ */ React46.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __24("Custom order", "elementor"))), /* @__PURE__ */ React46.createElement(Grid2, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React46.createElement(
3690
3901
  NumberControl2,
3691
3902
  {
3692
3903
  min: FIRST_DEFAULT_VALUE + 1,
@@ -3710,8 +3921,8 @@ var getGroupControlValue = (order) => {
3710
3921
  };
3711
3922
 
3712
3923
  // src/components/style-sections/layout-section/flex-size-field.tsx
3713
- import * as React46 from "react";
3714
- import { useEffect as useEffect5, useMemo as useMemo9, useRef as useRef6, useState as useState8 } from "react";
3924
+ import * as React47 from "react";
3925
+ import { useEffect as useEffect6, useMemo as useMemo11, useRef as useRef7, useState as useState8 } from "react";
3715
3926
  import {
3716
3927
  ControlToggleButtonGroup as ControlToggleButtonGroup2,
3717
3928
  NumberControl as NumberControl3,
@@ -3722,31 +3933,31 @@ import {
3722
3933
  } from "@elementor/editor-controls";
3723
3934
  import { flexPropTypeUtil, numberPropTypeUtil as numberPropTypeUtil2, sizePropTypeUtil as sizePropTypeUtil3 } from "@elementor/editor-props";
3724
3935
  import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
3725
- import { __ as __24 } from "@wordpress/i18n";
3726
- var FLEX_SIZE_LABEL = __24("Flex Size", "elementor");
3936
+ import { __ as __25 } from "@wordpress/i18n";
3937
+ var FLEX_SIZE_LABEL = __25("Flex Size", "elementor");
3727
3938
  var DEFAULT = 1;
3728
3939
  var items2 = [
3729
3940
  {
3730
3941
  value: "flex-grow",
3731
- label: __24("Grow", "elementor"),
3732
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ExpandIcon, { fontSize: size }),
3942
+ label: __25("Grow", "elementor"),
3943
+ renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ExpandIcon, { fontSize: size }),
3733
3944
  showTooltip: true
3734
3945
  },
3735
3946
  {
3736
3947
  value: "flex-shrink",
3737
- label: __24("Shrink", "elementor"),
3738
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(ShrinkIcon, { fontSize: size }),
3948
+ label: __25("Shrink", "elementor"),
3949
+ renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(ShrinkIcon, { fontSize: size }),
3739
3950
  showTooltip: true
3740
3951
  },
3741
3952
  {
3742
3953
  value: "custom",
3743
- label: __24("Custom", "elementor"),
3744
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(PencilIcon2, { fontSize: size }),
3954
+ label: __25("Custom", "elementor"),
3955
+ renderContent: ({ size }) => /* @__PURE__ */ React47.createElement(PencilIcon2, { fontSize: size }),
3745
3956
  showTooltip: true
3746
3957
  }
3747
3958
  ];
3748
3959
  var FlexSizeField = () => {
3749
- return /* @__PURE__ */ React46.createElement(UiProviders, null, /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "flex", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React46.createElement(FlexSizeFieldContent, null))));
3960
+ return /* @__PURE__ */ React47.createElement(UiProviders, null, /* @__PURE__ */ React47.createElement(SectionContent, null, /* @__PURE__ */ React47.createElement(StylesField, { bind: "flex", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React47.createElement(FlexSizeFieldContent, null))));
3750
3961
  };
3751
3962
  var FlexSizeFieldContent = () => {
3752
3963
  const { value, setValue, canEdit } = useStylesField("flex", {
@@ -3754,15 +3965,15 @@ var FlexSizeFieldContent = () => {
3754
3965
  });
3755
3966
  const { placeholder } = useBoundProp3();
3756
3967
  const flexValues = extractFlexValues(value);
3757
- const currentGroup = useMemo9(() => getActiveGroup(flexValues), [flexValues]);
3968
+ const currentGroup = useMemo11(() => getActiveGroup(flexValues), [flexValues]);
3758
3969
  const [activeGroup, setActiveGroup] = useState8(currentGroup);
3759
3970
  const [customLocked, setCustomLocked] = useState8(false);
3760
- useEffect5(() => {
3971
+ useEffect6(() => {
3761
3972
  if (!customLocked) {
3762
3973
  setActiveGroup(currentGroup);
3763
3974
  }
3764
3975
  }, [currentGroup, customLocked]);
3765
- useEffect5(() => {
3976
+ useEffect6(() => {
3766
3977
  if (value === null) {
3767
3978
  setCustomLocked(false);
3768
3979
  }
@@ -3775,7 +3986,7 @@ var FlexSizeFieldContent = () => {
3775
3986
  };
3776
3987
  const groupPlaceholder = getActiveGroup(extractFlexValues(placeholder));
3777
3988
  const isCustomVisible = "custom" === activeGroup || "custom" === groupPlaceholder;
3778
- return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: FLEX_SIZE_LABEL }, /* @__PURE__ */ React46.createElement(
3989
+ return /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: FLEX_SIZE_LABEL }, /* @__PURE__ */ React47.createElement(
3779
3990
  ControlToggleButtonGroup2,
3780
3991
  {
3781
3992
  value: activeGroup ?? null,
@@ -3785,7 +3996,7 @@ var FlexSizeFieldContent = () => {
3785
3996
  items: items2,
3786
3997
  exclusive: true
3787
3998
  }
3788
- )), isCustomVisible && /* @__PURE__ */ React46.createElement(FlexCustomField, null));
3999
+ )), isCustomVisible && /* @__PURE__ */ React47.createElement(FlexCustomField, null));
3789
4000
  };
3790
4001
  function extractFlexValues(source) {
3791
4002
  return {
@@ -3825,9 +4036,9 @@ var createFlexValueForGroup = (group, flexValue) => {
3825
4036
  return null;
3826
4037
  };
3827
4038
  var FlexCustomField = () => {
3828
- const flexBasisRowRef = useRef6(null);
4039
+ const flexBasisRowRef = useRef7(null);
3829
4040
  const context = useBoundProp3(flexPropTypeUtil);
3830
- return /* @__PURE__ */ React46.createElement(PropProvider3, { ...context }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: __24("Grow", "elementor") }, /* @__PURE__ */ React46.createElement(PropKeyProvider3, { bind: "flexGrow" }, /* @__PURE__ */ React46.createElement(NumberControl3, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: __24("Shrink", "elementor") }, /* @__PURE__ */ React46.createElement(PropKeyProvider3, { bind: "flexShrink" }, /* @__PURE__ */ React46.createElement(NumberControl3, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: __24("Basis", "elementor"), ref: flexBasisRowRef }, /* @__PURE__ */ React46.createElement(PropKeyProvider3, { bind: "flexBasis" }, /* @__PURE__ */ React46.createElement(SizeControl3, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef })))));
4041
+ return /* @__PURE__ */ React47.createElement(PropProvider3, { ...context }, /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: __25("Grow", "elementor") }, /* @__PURE__ */ React47.createElement(PropKeyProvider3, { bind: "flexGrow" }, /* @__PURE__ */ React47.createElement(NumberControl3, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: __25("Shrink", "elementor") }, /* @__PURE__ */ React47.createElement(PropKeyProvider3, { bind: "flexShrink" }, /* @__PURE__ */ React47.createElement(NumberControl3, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: __25("Basis", "elementor"), ref: flexBasisRowRef }, /* @__PURE__ */ React47.createElement(PropKeyProvider3, { bind: "flexBasis" }, /* @__PURE__ */ React47.createElement(SizeControl3, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef })))));
3831
4042
  };
3832
4043
  var getActiveGroup = ({
3833
4044
  grow,
@@ -3851,126 +4062,348 @@ var getActiveGroup = ({
3851
4062
  };
3852
4063
 
3853
4064
  // src/components/style-sections/layout-section/gap-control-field.tsx
3854
- import * as React47 from "react";
4065
+ import * as React48 from "react";
3855
4066
  import { GapControl } from "@elementor/editor-controls";
3856
- import { __ as __25 } from "@wordpress/i18n";
3857
- var GAPS_LABEL = __25("Gaps", "elementor");
4067
+ import { __ as __26 } from "@wordpress/i18n";
4068
+ var GAPS_LABEL = __26("Gaps", "elementor");
3858
4069
  var GapControlField = () => {
3859
- return /* @__PURE__ */ React47.createElement(StylesField, { bind: "gap", propDisplayName: GAPS_LABEL }, /* @__PURE__ */ React47.createElement(GapControl, { label: GAPS_LABEL }));
4070
+ return /* @__PURE__ */ React48.createElement(StylesField, { bind: "gap", propDisplayName: GAPS_LABEL }, /* @__PURE__ */ React48.createElement(GapControl, { label: GAPS_LABEL }));
3860
4071
  };
3861
4072
 
4073
+ // src/components/style-sections/layout-section/grid-auto-flow-field.tsx
4074
+ import * as React49 from "react";
4075
+ import { ControlToggleButtonGroup as ControlToggleButtonGroup3 } from "@elementor/editor-controls";
4076
+ import { ArrowDownSmallIcon as ArrowDownSmallIcon3, ArrowRightIcon as ArrowRightIcon2, LayoutDashboardIcon } from "@elementor/icons";
4077
+ import { Grid as Grid3, ToggleButton, Tooltip, withDirection as withDirection7 } from "@elementor/ui";
4078
+ import { __ as __27 } from "@wordpress/i18n";
4079
+ var AUTO_FLOW_LABEL = __27("Auto flow", "elementor");
4080
+ var DENSE_LABEL = __27("Dense", "elementor");
4081
+ var StartIcon4 = withDirection7(ArrowRightIcon2);
4082
+ var directionOptions = [
4083
+ {
4084
+ value: "row",
4085
+ label: __27("Row", "elementor"),
4086
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(StartIcon4, { fontSize: size }),
4087
+ showTooltip: true
4088
+ },
4089
+ {
4090
+ value: "column",
4091
+ label: __27("Column", "elementor"),
4092
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowDownSmallIcon3, { fontSize: size }),
4093
+ showTooltip: true
4094
+ }
4095
+ ];
4096
+ var parseAutoFlow = (value) => {
4097
+ if (!value) {
4098
+ return { direction: "row", dense: false };
4099
+ }
4100
+ const dense = value.includes("dense");
4101
+ const direction = value.replace(/\s*dense\s*/, "").trim();
4102
+ return { direction: direction || "row", dense };
4103
+ };
4104
+ var composeAutoFlow = (direction, dense) => {
4105
+ return dense ? `${direction} dense` : direction;
4106
+ };
4107
+ var GridAutoFlowFieldContent = () => {
4108
+ const { value, setValue } = useStylesField("grid-auto-flow", {
4109
+ history: { propDisplayName: AUTO_FLOW_LABEL }
4110
+ });
4111
+ const { direction, dense } = parseAutoFlow(value?.value ?? null);
4112
+ const handleDirectionChange = (newDirection) => {
4113
+ if (!newDirection) {
4114
+ return;
4115
+ }
4116
+ setValue({ $$type: "string", value: composeAutoFlow(newDirection, dense) });
4117
+ };
4118
+ const handleDenseToggle = () => {
4119
+ setValue({ $$type: "string", value: composeAutoFlow(direction, !dense) });
4120
+ };
4121
+ return /* @__PURE__ */ React49.createElement(StylesFieldLayout, { label: AUTO_FLOW_LABEL }, /* @__PURE__ */ React49.createElement(Grid3, { container: true, gap: 1, flexWrap: "nowrap", alignItems: "center", justifyContent: "flex-end" }, /* @__PURE__ */ React49.createElement(Grid3, { item: true, sx: { width: 64, maxWidth: "100%" } }, /* @__PURE__ */ React49.createElement(
4122
+ ControlToggleButtonGroup3,
4123
+ {
4124
+ items: directionOptions,
4125
+ value: direction,
4126
+ onChange: handleDirectionChange,
4127
+ exclusive: true,
4128
+ fullWidth: true
4129
+ }
4130
+ )), /* @__PURE__ */ React49.createElement(Grid3, { item: true }, /* @__PURE__ */ React49.createElement(Tooltip, { title: DENSE_LABEL }, /* @__PURE__ */ React49.createElement(
4131
+ ToggleButton,
4132
+ {
4133
+ value: "dense",
4134
+ selected: dense,
4135
+ onChange: handleDenseToggle,
4136
+ size: "tiny",
4137
+ "aria-label": DENSE_LABEL
4138
+ },
4139
+ /* @__PURE__ */ React49.createElement(LayoutDashboardIcon, { fontSize: "tiny" })
4140
+ )))));
4141
+ };
4142
+ var GridAutoFlowField = () => /* @__PURE__ */ React49.createElement(StylesField, { bind: "grid-auto-flow", propDisplayName: AUTO_FLOW_LABEL }, /* @__PURE__ */ React49.createElement(UiProviders, null, /* @__PURE__ */ React49.createElement(GridAutoFlowFieldContent, null)));
4143
+
4144
+ // src/components/style-sections/layout-section/grid-justify-items-field.tsx
4145
+ import * as React50 from "react";
4146
+ import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
4147
+ import {
4148
+ LayoutAlignCenterIcon as CenterIcon4,
4149
+ LayoutAlignLeftIcon as LayoutAlignLeftIcon3,
4150
+ LayoutAlignRightIcon as LayoutAlignRightIcon3,
4151
+ LayoutDistributeVerticalIcon as StretchIcon
4152
+ } from "@elementor/icons";
4153
+ import { withDirection as withDirection8 } from "@elementor/ui";
4154
+ import { __ as __28 } from "@wordpress/i18n";
4155
+ var JUSTIFY_ITEMS_LABEL = __28("Justify items", "elementor");
4156
+ var StartIcon5 = withDirection8(LayoutAlignLeftIcon3);
4157
+ var EndIcon4 = withDirection8(LayoutAlignRightIcon3);
4158
+ var options4 = [
4159
+ {
4160
+ value: "start",
4161
+ label: __28("Start", "elementor"),
4162
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(StartIcon5, { fontSize: size }),
4163
+ showTooltip: true
4164
+ },
4165
+ {
4166
+ value: "center",
4167
+ label: __28("Center", "elementor"),
4168
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(CenterIcon4, { fontSize: size }),
4169
+ showTooltip: true
4170
+ },
4171
+ {
4172
+ value: "end",
4173
+ label: __28("End", "elementor"),
4174
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(EndIcon4, { fontSize: size }),
4175
+ showTooltip: true
4176
+ },
4177
+ {
4178
+ value: "stretch",
4179
+ label: __28("Stretch", "elementor"),
4180
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(StretchIcon, { fontSize: size }),
4181
+ showTooltip: true
4182
+ }
4183
+ ];
4184
+ var GridJustifyItemsField = () => /* @__PURE__ */ React50.createElement(StylesField, { bind: "justify-items", propDisplayName: JUSTIFY_ITEMS_LABEL }, /* @__PURE__ */ React50.createElement(UiProviders, null, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: JUSTIFY_ITEMS_LABEL }, /* @__PURE__ */ React50.createElement(ToggleControl8, { options: options4 }))));
4185
+
4186
+ // src/components/style-sections/layout-section/grid-size-field.tsx
4187
+ import * as React51 from "react";
4188
+ import { useRef as useRef8 } from "react";
4189
+ import { SizeComponent } from "@elementor/editor-controls";
4190
+ import { Grid as Grid4 } from "@elementor/ui";
4191
+ import { __ as __29 } from "@wordpress/i18n";
4192
+ var FR = "fr";
4193
+ var CUSTOM2 = "custom";
4194
+ var UNITS = [FR, CUSTOM2];
4195
+ var REPEAT_FR_PATTERN = /^repeat\(\s*(\d+)\s*,\s*1fr\s*\)$/;
4196
+ var cssToTrackValue = (css) => {
4197
+ if (!css) {
4198
+ return null;
4199
+ }
4200
+ const match = css.match(REPEAT_FR_PATTERN);
4201
+ if (match) {
4202
+ return { size: parseInt(match[1], 10), unit: FR };
4203
+ }
4204
+ return { size: css, unit: CUSTOM2 };
4205
+ };
4206
+ var trackValueToCss = (trackValue) => {
4207
+ if (!trackValue || trackValue.size === "" || trackValue.size === null) {
4208
+ return null;
4209
+ }
4210
+ if (trackValue.unit === FR) {
4211
+ return `repeat(${trackValue.size}, 1fr)`;
4212
+ }
4213
+ return String(trackValue.size);
4214
+ };
4215
+ var GridTrackField = ({ cssProp, label }) => /* @__PURE__ */ React51.createElement(StylesField, { bind: cssProp, propDisplayName: label }, /* @__PURE__ */ React51.createElement(GridTrackFieldContent, { cssProp, label }));
4216
+ var GridTrackFieldContent = ({ cssProp, label }) => {
4217
+ const { value, setValue } = useStylesField(cssProp, {
4218
+ history: { propDisplayName: label }
4219
+ });
4220
+ const anchorRef = useRef8(null);
4221
+ const trackValue = cssToTrackValue(value?.value ?? null);
4222
+ const handleChange = (newValue) => {
4223
+ const css = trackValueToCss(newValue);
4224
+ setValue(css ? { $$type: "string", value: css } : null);
4225
+ };
4226
+ return /* @__PURE__ */ React51.createElement(StylesFieldLayout, { label, direction: "column" }, /* @__PURE__ */ React51.createElement("div", { ref: anchorRef }, /* @__PURE__ */ React51.createElement(
4227
+ SizeComponent,
4228
+ {
4229
+ units: UNITS,
4230
+ value: trackValue ?? { size: NaN, unit: FR },
4231
+ defaultUnit: FR,
4232
+ setValue: handleChange,
4233
+ onBlur: () => {
4234
+ },
4235
+ min: 1,
4236
+ anchorRef
4237
+ }
4238
+ )));
4239
+ };
4240
+ var GridSizeFields = () => /* @__PURE__ */ React51.createElement(Grid4, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(GridTrackField, { cssProp: "grid-template-columns", label: __29("Columns", "elementor") })), /* @__PURE__ */ React51.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(GridTrackField, { cssProp: "grid-template-rows", label: __29("Rows", "elementor") })));
4241
+
4242
+ // src/components/style-sections/layout-section/grid-span-field.tsx
4243
+ import * as React52 from "react";
4244
+ import { NumberInput } from "@elementor/editor-controls";
4245
+ import { Grid as Grid5 } from "@elementor/ui";
4246
+ import { __ as __30 } from "@wordpress/i18n";
4247
+ var MIN_SPAN = 1;
4248
+ var GridSpanFieldContent = ({ cssProp, label }) => {
4249
+ const { value, setValue, canEdit } = useStylesField(cssProp, {
4250
+ history: { propDisplayName: label }
4251
+ });
4252
+ const spanValue = value?.value ?? null;
4253
+ const handleChange = (event) => {
4254
+ const raw = event.target.value;
4255
+ if (raw === "") {
4256
+ setValue(null);
4257
+ return;
4258
+ }
4259
+ const num = parseInt(raw, 10);
4260
+ if (Number.isNaN(num)) {
4261
+ return;
4262
+ }
4263
+ const clamped = Math.max(num, MIN_SPAN);
4264
+ setValue({ $$type: "span", value: clamped });
4265
+ };
4266
+ return /* @__PURE__ */ React52.createElement(StylesFieldLayout, { label, direction: "column" }, /* @__PURE__ */ React52.createElement(
4267
+ NumberInput,
4268
+ {
4269
+ size: "tiny",
4270
+ type: "number",
4271
+ fullWidth: true,
4272
+ disabled: !canEdit,
4273
+ value: spanValue ?? "",
4274
+ onInput: handleChange,
4275
+ inputProps: { min: MIN_SPAN }
4276
+ }
4277
+ ));
4278
+ };
4279
+ var GridSpanField = ({ cssProp, label }) => /* @__PURE__ */ React52.createElement(StylesField, { bind: cssProp, propDisplayName: label }, /* @__PURE__ */ React52.createElement(UiProviders, null, /* @__PURE__ */ React52.createElement(GridSpanFieldContent, { cssProp, label })));
4280
+ var GridSpanFields = () => /* @__PURE__ */ React52.createElement(Grid5, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(GridSpanField, { cssProp: "grid-column", label: __30("Column Span", "elementor") })), /* @__PURE__ */ React52.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(GridSpanField, { cssProp: "grid-row", label: __30("Row Span", "elementor") })));
4281
+
3862
4282
  // src/components/style-sections/layout-section/justify-content-field.tsx
3863
- import * as React48 from "react";
3864
- import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
4283
+ import * as React53 from "react";
4284
+ import { ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
3865
4285
  import {
3866
- JustifyBottomIcon as JustifyBottomIcon2,
3867
- JustifyCenterIcon as CenterIcon4,
4286
+ JustifyBottomIcon as JustifyBottomIcon3,
4287
+ JustifyCenterIcon as CenterIcon5,
3868
4288
  JustifyDistributeVerticalIcon as EvenlyIcon2,
3869
4289
  JustifySpaceAroundVerticalIcon as AroundIcon2,
3870
4290
  JustifySpaceBetweenVerticalIcon as BetweenIcon2,
3871
- JustifyTopIcon as JustifyTopIcon2
4291
+ JustifyTopIcon as JustifyTopIcon3
3872
4292
  } from "@elementor/icons";
3873
- import { withDirection as withDirection7 } from "@elementor/ui";
3874
- import { __ as __26 } from "@wordpress/i18n";
3875
- var JUSTIFY_CONTENT_LABEL = __26("Justify content", "elementor");
3876
- var StartIcon4 = withDirection7(JustifyTopIcon2);
3877
- var EndIcon4 = withDirection7(JustifyBottomIcon2);
4293
+ import { withDirection as withDirection9 } from "@elementor/ui";
4294
+ import { __ as __31 } from "@wordpress/i18n";
4295
+ var JUSTIFY_CONTENT_LABEL = __31("Justify content", "elementor");
4296
+ var StartIcon6 = withDirection9(JustifyTopIcon3);
4297
+ var EndIcon5 = withDirection9(JustifyBottomIcon3);
3878
4298
  var iconProps4 = {
3879
4299
  isClockwise: true,
3880
4300
  offset: -90
3881
4301
  };
3882
- var options4 = [
4302
+ var options5 = [
3883
4303
  {
3884
4304
  value: "flex-start",
3885
- label: __26("Start", "elementor"),
3886
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
4305
+ label: __31("Start", "elementor"),
4306
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: StartIcon6, size, ...iconProps4 }),
3887
4307
  showTooltip: true
3888
4308
  },
3889
4309
  {
3890
4310
  value: "center",
3891
- label: __26("Center", "elementor"),
3892
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
4311
+ label: __31("Center", "elementor"),
4312
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: CenterIcon5, size, ...iconProps4 }),
3893
4313
  showTooltip: true
3894
4314
  },
3895
4315
  {
3896
4316
  value: "flex-end",
3897
- label: __26("End", "elementor"),
3898
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
4317
+ label: __31("End", "elementor"),
4318
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: EndIcon5, size, ...iconProps4 }),
3899
4319
  showTooltip: true
3900
4320
  },
3901
4321
  {
3902
4322
  value: "space-between",
3903
- label: __26("Space between", "elementor"),
3904
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
4323
+ label: __31("Space between", "elementor"),
4324
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
3905
4325
  showTooltip: true
3906
4326
  },
3907
4327
  {
3908
4328
  value: "space-around",
3909
- label: __26("Space around", "elementor"),
3910
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
4329
+ label: __31("Space around", "elementor"),
4330
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
3911
4331
  showTooltip: true
3912
4332
  },
3913
4333
  {
3914
4334
  value: "space-evenly",
3915
- label: __26("Space evenly", "elementor"),
3916
- renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
4335
+ label: __31("Space evenly", "elementor"),
4336
+ renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
3917
4337
  showTooltip: true
3918
4338
  }
3919
4339
  ];
3920
- var JustifyContentField = () => /* @__PURE__ */ React48.createElement(StylesField, { bind: "justify-content", propDisplayName: JUSTIFY_CONTENT_LABEL }, /* @__PURE__ */ React48.createElement(UiProviders, null, /* @__PURE__ */ React48.createElement(StylesFieldLayout, { label: JUSTIFY_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React48.createElement(ToggleControl7, { options: options4, fullWidth: true }))));
4340
+ var JustifyContentField = () => /* @__PURE__ */ React53.createElement(StylesField, { bind: "justify-content", propDisplayName: JUSTIFY_CONTENT_LABEL }, /* @__PURE__ */ React53.createElement(UiProviders, null, /* @__PURE__ */ React53.createElement(StylesFieldLayout, { label: JUSTIFY_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React53.createElement(ToggleControl9, { options: options5, fullWidth: true }))));
3921
4341
 
3922
4342
  // src/components/style-sections/layout-section/wrap-field.tsx
3923
- import * as React49 from "react";
3924
- import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
3925
- import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
3926
- import { __ as __27 } from "@wordpress/i18n";
3927
- var FLEX_WRAP_LABEL = __27("Wrap", "elementor");
3928
- var options5 = [
4343
+ import * as React54 from "react";
4344
+ import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
4345
+ import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon3 } from "@elementor/icons";
4346
+ import { __ as __32 } from "@wordpress/i18n";
4347
+ var FLEX_WRAP_LABEL = __32("Wrap", "elementor");
4348
+ var options6 = [
3929
4349
  {
3930
4350
  value: "nowrap",
3931
- label: __27("No wrap", "elementor"),
3932
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowRightIcon2, { fontSize: size }),
4351
+ label: __32("No wrap", "elementor"),
4352
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(ArrowRightIcon3, { fontSize: size }),
3933
4353
  showTooltip: true
3934
4354
  },
3935
4355
  {
3936
4356
  value: "wrap",
3937
- label: __27("Wrap", "elementor"),
3938
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowBackIcon, { fontSize: size }),
4357
+ label: __32("Wrap", "elementor"),
4358
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(ArrowBackIcon, { fontSize: size }),
3939
4359
  showTooltip: true
3940
4360
  },
3941
4361
  {
3942
4362
  value: "wrap-reverse",
3943
- label: __27("Reversed wrap", "elementor"),
3944
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowForwardIcon, { fontSize: size }),
4363
+ label: __32("Reversed wrap", "elementor"),
4364
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(ArrowForwardIcon, { fontSize: size }),
3945
4365
  showTooltip: true
3946
4366
  }
3947
4367
  ];
3948
4368
  var WrapField = () => {
3949
- return /* @__PURE__ */ React49.createElement(StylesField, { bind: "flex-wrap", propDisplayName: FLEX_WRAP_LABEL }, /* @__PURE__ */ React49.createElement(UiProviders, null, /* @__PURE__ */ React49.createElement(StylesFieldLayout, { label: FLEX_WRAP_LABEL }, /* @__PURE__ */ React49.createElement(ToggleControl8, { options: options5 }))));
4369
+ return /* @__PURE__ */ React54.createElement(StylesField, { bind: "flex-wrap", propDisplayName: FLEX_WRAP_LABEL }, /* @__PURE__ */ React54.createElement(UiProviders, null, /* @__PURE__ */ React54.createElement(StylesFieldLayout, { label: FLEX_WRAP_LABEL }, /* @__PURE__ */ React54.createElement(ToggleControl10, { options: options6 }))));
3950
4370
  };
3951
4371
 
3952
4372
  // src/components/style-sections/layout-section/layout-section.tsx
3953
- var DISPLAY_LABEL2 = __28("Display", "elementor");
3954
- var FLEX_WRAP_LABEL2 = __28("Flex wrap", "elementor");
4373
+ var DISPLAY_LABEL2 = __33("Display", "elementor");
4374
+ var FLEX_WRAP_LABEL2 = __33("Flex wrap", "elementor");
4375
+ var DEFAULT_PARENT_FLOW_DIRECTION = "row";
3955
4376
  var LayoutSection = () => {
3956
4377
  const { value: display } = useStylesField("display", {
3957
4378
  history: { propDisplayName: DISPLAY_LABEL2 }
3958
4379
  });
3959
4380
  const displayPlaceholder = useDisplayPlaceholderValue();
4381
+ const isGridExperimentActive = isExperimentActive2("e_css_grid");
3960
4382
  const isDisplayFlex = shouldDisplayFlexFields(display, displayPlaceholder);
4383
+ const isDisplayGrid = "grid" === (display?.value ?? displayPlaceholder?.value);
3961
4384
  const { element } = useElement();
3962
4385
  const parent = useParentElement(element.id);
3963
4386
  const parentStyle = useComputedStyle(parent?.id || null);
3964
- const parentStyleDirection = parentStyle?.flexDirection ?? "row";
3965
- return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React50.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React50.createElement(FlexChildFields, { parentStyleDirection }));
4387
+ const getParentStyleDirection = () => {
4388
+ if ("flex" === parentStyle?.display) {
4389
+ return parentStyle?.flexDirection ?? DEFAULT_PARENT_FLOW_DIRECTION;
4390
+ }
4391
+ if ("grid" === parentStyle?.display) {
4392
+ return parentStyle?.gridAutoFlow ?? DEFAULT_PARENT_FLOW_DIRECTION;
4393
+ }
4394
+ return DEFAULT_PARENT_FLOW_DIRECTION;
4395
+ };
4396
+ return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React55.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React55.createElement(FlexChildFields, { parentStyleDirection: getParentStyleDirection() }), isGridExperimentActive && isDisplayGrid && /* @__PURE__ */ React55.createElement(GridFields, null), isGridExperimentActive && "grid" === parentStyle?.display && /* @__PURE__ */ React55.createElement(GridChildFields, { parentStyleDirection: getParentStyleDirection() }));
3966
4397
  };
3967
4398
  var FlexFields = () => {
3968
4399
  const { value: flexWrap } = useStylesField("flex-wrap", {
3969
4400
  history: { propDisplayName: FLEX_WRAP_LABEL2 }
3970
4401
  });
3971
- return /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(FlexDirectionField, null), /* @__PURE__ */ React50.createElement(JustifyContentField, null), /* @__PURE__ */ React50.createElement(AlignItemsField, null), /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(GapControlField, null), /* @__PURE__ */ React50.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React50.createElement(AlignContentField, null));
4402
+ return /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(FlexDirectionField, null), /* @__PURE__ */ React55.createElement(JustifyContentField, null), /* @__PURE__ */ React55.createElement(AlignItemsField, null), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(GapControlField, null), /* @__PURE__ */ React55.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React55.createElement(AlignContentField, null));
3972
4403
  };
3973
- var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(ControlFormLabel2, null, __28("Flex child", "elementor")), /* @__PURE__ */ React50.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React50.createElement(FlexOrderField, null), /* @__PURE__ */ React50.createElement(FlexSizeField, null));
4404
+ var GridFields = () => /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(GridSizeFields, null), /* @__PURE__ */ React55.createElement(GridAutoFlowField, null), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(GapControlField, null), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(GridJustifyItemsField, null), /* @__PURE__ */ React55.createElement(AlignItemsField, null));
4405
+ var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(ControlFormLabel2, null, __33("Flex child", "elementor")), /* @__PURE__ */ React55.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React55.createElement(FlexOrderField, null), /* @__PURE__ */ React55.createElement(FlexSizeField, null));
4406
+ var GridChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(ControlFormLabel2, null, __33("Grid Child", "elementor")), /* @__PURE__ */ React55.createElement(GridSpanFields, null), /* @__PURE__ */ React55.createElement(AlignSelfGridChild, { parentStyleDirection }), /* @__PURE__ */ React55.createElement(FlexOrderField, null));
3974
4407
  var shouldDisplayFlexFields = (display, local) => {
3975
4408
  const value = display?.value ?? local?.value;
3976
4409
  if (!value) {
@@ -3980,39 +4413,40 @@ var shouldDisplayFlexFields = (display, local) => {
3980
4413
  };
3981
4414
 
3982
4415
  // src/components/style-sections/position-section/position-section.tsx
3983
- import * as React55 from "react";
3984
- import { useCallback as useCallback2, useEffect as useEffect6, useRef as useRef9 } from "react";
4416
+ import * as React60 from "react";
4417
+ import { useEffect as useEffect7, useRef as useRef11 } from "react";
3985
4418
  import { useSessionStorage as useSessionStorage4 } from "@elementor/session";
3986
- import { __ as __33 } from "@wordpress/i18n";
4419
+ import { styled as styled6 } from "@elementor/ui";
4420
+ import { __ as __38 } from "@wordpress/i18n";
3987
4421
 
3988
4422
  // src/components/style-sections/position-section/dimensions-field.tsx
3989
- import * as React51 from "react";
3990
- import { useRef as useRef7 } from "react";
4423
+ import * as React56 from "react";
4424
+ import { useRef as useRef9 } from "react";
3991
4425
  import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
3992
4426
  import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
3993
- import { Grid as Grid3, Stack as Stack8, withDirection as withDirection8 } from "@elementor/ui";
3994
- import { __ as __29 } from "@wordpress/i18n";
3995
- var InlineStartIcon2 = withDirection8(SideLeftIcon2);
3996
- var InlineEndIcon2 = withDirection8(SideRightIcon2);
4427
+ import { Grid as Grid6, Stack as Stack8, withDirection as withDirection10 } from "@elementor/ui";
4428
+ import { __ as __34 } from "@wordpress/i18n";
4429
+ var InlineStartIcon2 = withDirection10(SideLeftIcon2);
4430
+ var InlineEndIcon2 = withDirection10(SideRightIcon2);
3997
4431
  var sideIcons = {
3998
- "inset-block-start": /* @__PURE__ */ React51.createElement(SideTopIcon2, { fontSize: "tiny" }),
3999
- "inset-block-end": /* @__PURE__ */ React51.createElement(SideBottomIcon2, { fontSize: "tiny" }),
4000
- "inset-inline-start": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
4001
- "inset-inline-end": /* @__PURE__ */ React51.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
4432
+ "inset-block-start": /* @__PURE__ */ React56.createElement(SideTopIcon2, { fontSize: "tiny" }),
4433
+ "inset-block-end": /* @__PURE__ */ React56.createElement(SideBottomIcon2, { fontSize: "tiny" }),
4434
+ "inset-inline-start": /* @__PURE__ */ React56.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
4435
+ "inset-inline-end": /* @__PURE__ */ React56.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
4002
4436
  };
4003
- var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __29("Right", "elementor") : __29("Left", "elementor");
4004
- var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __29("Left", "elementor") : __29("Right", "elementor");
4437
+ var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __34("Right", "elementor") : __34("Left", "elementor");
4438
+ var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __34("Left", "elementor") : __34("Right", "elementor");
4005
4439
  var DimensionsField = () => {
4006
4440
  const { isSiteRtl } = useDirection();
4007
- const rowRefs = [useRef7(null), useRef7(null)];
4008
- return /* @__PURE__ */ React51.createElement(UiProviders, null, /* @__PURE__ */ React51.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-start", label: __29("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React51.createElement(
4441
+ const rowRefs = [useRef9(null), useRef9(null)];
4442
+ return /* @__PURE__ */ React56.createElement(UiProviders, null, /* @__PURE__ */ React56.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React56.createElement(DimensionField, { side: "inset-block-start", label: __34("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React56.createElement(
4009
4443
  DimensionField,
4010
4444
  {
4011
4445
  side: "inset-inline-end",
4012
4446
  label: getInlineEndLabel(isSiteRtl),
4013
4447
  rowRef: rowRefs[0]
4014
4448
  }
4015
- )), /* @__PURE__ */ React51.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React51.createElement(DimensionField, { side: "inset-block-end", label: __29("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React51.createElement(
4449
+ )), /* @__PURE__ */ React56.createElement(Stack8, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React56.createElement(DimensionField, { side: "inset-block-end", label: __34("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React56.createElement(
4016
4450
  DimensionField,
4017
4451
  {
4018
4452
  side: "inset-inline-start",
@@ -4025,7 +4459,7 @@ var DimensionField = ({
4025
4459
  side,
4026
4460
  label,
4027
4461
  rowRef
4028
- }) => /* @__PURE__ */ React51.createElement(StylesField, { bind: side, propDisplayName: label }, /* @__PURE__ */ React51.createElement(Grid3, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React51.createElement(Grid3, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, label)), /* @__PURE__ */ React51.createElement(Grid3, { item: true, xs: 12 }, /* @__PURE__ */ React51.createElement(
4462
+ }) => /* @__PURE__ */ React56.createElement(StylesField, { bind: side, propDisplayName: label }, /* @__PURE__ */ React56.createElement(Grid6, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React56.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React56.createElement(ControlLabel, null, label)), /* @__PURE__ */ React56.createElement(Grid6, { item: true, xs: 12 }, /* @__PURE__ */ React56.createElement(
4029
4463
  SizeControl4,
4030
4464
  {
4031
4465
  startIcon: sideIcons[side],
@@ -4036,103 +4470,88 @@ var DimensionField = ({
4036
4470
  ))));
4037
4471
 
4038
4472
  // src/components/style-sections/position-section/offset-field.tsx
4039
- import * as React52 from "react";
4040
- import { useRef as useRef8 } from "react";
4473
+ import * as React57 from "react";
4474
+ import { useRef as useRef10 } from "react";
4041
4475
  import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
4042
- import { __ as __30 } from "@wordpress/i18n";
4043
- var OFFSET_LABEL = __30("Anchor offset", "elementor");
4044
- var UNITS = ["px", "em", "rem", "vw", "vh"];
4476
+ import { __ as __35 } from "@wordpress/i18n";
4477
+ var OFFSET_LABEL = __35("Anchor offset", "elementor");
4478
+ var UNITS2 = ["px", "em", "rem", "vw", "vh"];
4045
4479
  var OffsetField = () => {
4046
- const rowRef = useRef8(null);
4047
- return /* @__PURE__ */ React52.createElement(StylesField, { bind: "scroll-margin-top", propDisplayName: OFFSET_LABEL }, /* @__PURE__ */ React52.createElement(StylesFieldLayout, { label: OFFSET_LABEL, ref: rowRef }, /* @__PURE__ */ React52.createElement(SizeControl5, { units: UNITS, anchorRef: rowRef })));
4480
+ const rowRef = useRef10(null);
4481
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "scroll-margin-top", propDisplayName: OFFSET_LABEL }, /* @__PURE__ */ React57.createElement(StylesFieldLayout, { label: OFFSET_LABEL, ref: rowRef }, /* @__PURE__ */ React57.createElement(SizeControl5, { units: UNITS2, anchorRef: rowRef })));
4048
4482
  };
4049
4483
 
4050
4484
  // src/components/style-sections/position-section/position-field.tsx
4051
- import * as React53 from "react";
4485
+ import * as React58 from "react";
4052
4486
  import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
4053
- import { __ as __31 } from "@wordpress/i18n";
4054
- var POSITION_LABEL = __31("Position", "elementor");
4487
+ import { __ as __36 } from "@wordpress/i18n";
4488
+ var POSITION_LABEL = __36("Position", "elementor");
4055
4489
  var positionOptions = [
4056
- { label: __31("Static", "elementor"), value: "static" },
4057
- { label: __31("Relative", "elementor"), value: "relative" },
4058
- { label: __31("Absolute", "elementor"), value: "absolute" },
4059
- { label: __31("Fixed", "elementor"), value: "fixed" },
4060
- { label: __31("Sticky", "elementor"), value: "sticky" }
4490
+ { label: __36("Static", "elementor"), value: "static" },
4491
+ { label: __36("Relative", "elementor"), value: "relative" },
4492
+ { label: __36("Absolute", "elementor"), value: "absolute" },
4493
+ { label: __36("Fixed", "elementor"), value: "fixed" },
4494
+ { label: __36("Sticky", "elementor"), value: "sticky" }
4061
4495
  ];
4062
- var PositionField = ({ onChange }) => {
4063
- return /* @__PURE__ */ React53.createElement(StylesField, { bind: "position", propDisplayName: POSITION_LABEL }, /* @__PURE__ */ React53.createElement(StylesFieldLayout, { label: POSITION_LABEL }, /* @__PURE__ */ React53.createElement(SelectControl3, { options: positionOptions, onChange })));
4496
+ var PositionField = () => {
4497
+ return /* @__PURE__ */ React58.createElement(StylesField, { bind: "position", propDisplayName: POSITION_LABEL }, /* @__PURE__ */ React58.createElement(StylesFieldLayout, { label: POSITION_LABEL }, /* @__PURE__ */ React58.createElement(SelectControl3, { options: positionOptions })));
4064
4498
  };
4065
4499
 
4066
4500
  // src/components/style-sections/position-section/z-index-field.tsx
4067
- import * as React54 from "react";
4501
+ import * as React59 from "react";
4068
4502
  import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
4069
- import { __ as __32 } from "@wordpress/i18n";
4070
- var Z_INDEX_LABEL = __32("Z-index", "elementor");
4071
- var ZIndexField = () => {
4072
- return /* @__PURE__ */ React54.createElement(StylesField, { bind: "z-index", propDisplayName: Z_INDEX_LABEL }, /* @__PURE__ */ React54.createElement(StylesFieldLayout, { label: Z_INDEX_LABEL }, /* @__PURE__ */ React54.createElement(NumberControl4, null)));
4503
+ import { InfoCircleFilledIcon } from "@elementor/icons";
4504
+ import { Alert as Alert2, AlertTitle, Box as Box5, Infotip } from "@elementor/ui";
4505
+ import { __ as __37 } from "@wordpress/i18n";
4506
+ var Z_INDEX_LABEL = __37("Z-index", "elementor");
4507
+ var ZIndexField = ({ disabled }) => {
4508
+ const StyleField = /* @__PURE__ */ React59.createElement(StylesField, { bind: "z-index", propDisplayName: Z_INDEX_LABEL }, /* @__PURE__ */ React59.createElement(StylesFieldLayout, { label: Z_INDEX_LABEL }, /* @__PURE__ */ React59.createElement(NumberControl4, { disabled })));
4509
+ const content = /* @__PURE__ */ React59.createElement(Alert2, { color: "secondary", icon: /* @__PURE__ */ React59.createElement(InfoCircleFilledIcon, null), size: "small" }, /* @__PURE__ */ React59.createElement(AlertTitle, null, __37("Z-index", "elementor")), /* @__PURE__ */ React59.createElement(Box5, { component: "span" }, __37(
4510
+ "z-index only works on positioned elements. Change position to relative, absolute, or fixed to enable layering.",
4511
+ "elementor"
4512
+ )));
4513
+ return disabled ? /* @__PURE__ */ React59.createElement(
4514
+ Infotip,
4515
+ {
4516
+ placement: "right",
4517
+ content,
4518
+ color: "secondary",
4519
+ slotProps: { popper: { sx: { width: 300 } } }
4520
+ },
4521
+ /* @__PURE__ */ React59.createElement(Box5, null, StyleField)
4522
+ ) : /* @__PURE__ */ React59.createElement(React59.Fragment, null, StyleField);
4073
4523
  };
4074
4524
 
4075
4525
  // src/components/style-sections/position-section/position-section.tsx
4076
4526
  var POSITION_STATIC = "static";
4077
- var POSITION_LABEL2 = __33("Position", "elementor");
4078
- var DIMENSIONS_LABEL = __33("Dimensions", "elementor");
4079
- var POSITION_DEPENDENT_PROP_NAMES = [
4527
+ var POSITION_LABEL2 = __38("Position", "elementor");
4528
+ var DIMENSIONS_LABEL = __38("Dimensions", "elementor");
4529
+ var DEPENDENT_PROP_NAMES = [
4080
4530
  "inset-block-start",
4081
4531
  "inset-block-end",
4082
4532
  "inset-inline-start",
4083
4533
  "inset-inline-end",
4084
4534
  "z-index"
4085
4535
  ];
4086
- var CLEARED_POSITION_DEPENDENT_VALUES = {
4087
- "inset-block-start": null,
4088
- "inset-block-end": null,
4089
- "inset-inline-start": null,
4090
- "inset-inline-end": null,
4091
- "z-index": null
4092
- };
4093
4536
  var PositionSection = () => {
4094
- const { value: positionValue } = useStylesField("position", {
4095
- history: { propDisplayName: POSITION_LABEL2 }
4096
- });
4097
- const { values: positionDependentValues, setValues: setPositionDependentValues } = useStylesFields([...POSITION_DEPENDENT_PROP_NAMES]);
4098
- const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
4099
- const clearPositionDependentProps = useCallback2(() => {
4100
- const dimensions = {
4101
- "inset-block-start": positionDependentValues?.["inset-block-start"],
4102
- "inset-block-end": positionDependentValues?.["inset-block-end"],
4103
- "inset-inline-start": positionDependentValues?.["inset-inline-start"],
4104
- "inset-inline-end": positionDependentValues?.["inset-inline-end"]
4105
- };
4106
- const meta = { history: { propDisplayName: DIMENSIONS_LABEL } };
4107
- const hasValuesToClear = Object.values(dimensions).some((v) => v !== null) || positionDependentValues?.["z-index"] !== null;
4108
- if (hasValuesToClear) {
4109
- updateDimensionsHistory(dimensions);
4110
- setPositionDependentValues(CLEARED_POSITION_DEPENDENT_VALUES, meta);
4111
- }
4112
- }, [positionDependentValues, updateDimensionsHistory, setPositionDependentValues]);
4113
- const clearPositionDependentPropsRef = useRef9(clearPositionDependentProps);
4114
- clearPositionDependentPropsRef.current = clearPositionDependentProps;
4115
- useEffect6(() => {
4116
- if (positionValue?.value === POSITION_STATIC || positionValue === null) {
4117
- clearPositionDependentPropsRef.current();
4118
- }
4119
- }, [positionValue]);
4120
- const onPositionChange = (newPosition, previousPosition) => {
4121
- const meta = { history: { propDisplayName: DIMENSIONS_LABEL } };
4122
- if (newPosition === POSITION_STATIC) {
4123
- clearPositionDependentProps();
4124
- } else if (previousPosition === POSITION_STATIC) {
4125
- if (dimensionsValuesFromHistory) {
4126
- setPositionDependentValues(
4127
- { ...dimensionsValuesFromHistory, "z-index": void 0 },
4128
- meta
4129
- );
4130
- clearDimensionsHistory();
4131
- }
4537
+ const { value: position } = useStylesField("position", withHistoryLabel(POSITION_LABEL2));
4538
+ const positionPrevRef = useRef11(position);
4539
+ const { values: dependentValues, setValues: setDependentValues } = useStylesFields(DEPENDENT_PROP_NAMES);
4540
+ const [savedDependentValues, saveToHistory, clearHistory] = usePersistDimensions();
4541
+ useEffect7(() => {
4542
+ if (position && position?.value === POSITION_STATIC && hasDependentValues(dependentValues)) {
4543
+ saveToHistory(extractDimensions(dependentValues));
4132
4544
  }
4133
- };
4134
- const isNotStatic = positionValue && positionValue?.value !== POSITION_STATIC;
4135
- return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(DimensionsField, null), /* @__PURE__ */ React55.createElement(ZIndexField, null)) : null, /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(OffsetField, null));
4545
+ if (positionPrevRef.current?.value === POSITION_STATIC) {
4546
+ setDependentValues({ ...savedDependentValues }, withHistoryLabel(DIMENSIONS_LABEL));
4547
+ clearHistory();
4548
+ }
4549
+ if ((!position || position?.value === POSITION_STATIC) && dependentValues?.["z-index"]) {
4550
+ setDependentValues({ "z-index": null }, withHistoryLabel(DIMENSIONS_LABEL));
4551
+ }
4552
+ positionPrevRef.current = position;
4553
+ }, [position?.value]);
4554
+ return /* @__PURE__ */ React60.createElement(StyledSectionContent, null, /* @__PURE__ */ React60.createElement(PositionField, null), /* @__PURE__ */ React60.createElement(DimensionsField, null), /* @__PURE__ */ React60.createElement(ZIndexField, { disabled: !position || position?.value === POSITION_STATIC }), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(OffsetField, null));
4136
4555
  };
4137
4556
  var usePersistDimensions = () => {
4138
4557
  const { id: styleDefID, meta } = useStyle();
@@ -4140,28 +4559,68 @@ var usePersistDimensions = () => {
4140
4559
  const dimensionsPath = `${styleVariantPath}/dimensions`;
4141
4560
  return useSessionStorage4(dimensionsPath);
4142
4561
  };
4562
+ var withHistoryLabel = (name) => {
4563
+ return {
4564
+ history: { propDisplayName: name }
4565
+ };
4566
+ };
4567
+ var hasDependentValues = (values) => {
4568
+ if (!values) {
4569
+ return false;
4570
+ }
4571
+ const dimensions = extractDimensions(values);
4572
+ return Object.values(dimensions).some((v) => v !== null);
4573
+ };
4574
+ var extractDimensions = (values) => {
4575
+ return DEPENDENT_PROP_NAMES.reduce((acc, key) => {
4576
+ return {
4577
+ ...acc,
4578
+ [key]: values?.[key] ?? null
4579
+ };
4580
+ }, {});
4581
+ };
4582
+ var StyledSectionContent = styled6(SectionContent, {
4583
+ shouldForwardProp: (prop) => prop !== "gap"
4584
+ })(({ gap = 2, theme }) => ({
4585
+ gap: 0,
4586
+ "& > *": {
4587
+ marginBottom: theme.spacing(gap)
4588
+ },
4589
+ "& > *:last-child": {
4590
+ marginBottom: 0
4591
+ },
4592
+ "& > .MuiStack-root": {
4593
+ marginBottom: 0
4594
+ },
4595
+ "& > .MuiStack-root:has(> *)": {
4596
+ marginBottom: theme.spacing(gap)
4597
+ },
4598
+ "& > .MuiDivider-root": {
4599
+ marginBottom: theme.spacing(gap)
4600
+ }
4601
+ }));
4143
4602
 
4144
4603
  // src/components/style-sections/size-section/size-section.tsx
4145
- import * as React60 from "react";
4146
- import { useRef as useRef10 } from "react";
4604
+ import * as React65 from "react";
4605
+ import { useRef as useRef12 } from "react";
4147
4606
  import { AspectRatioControl, PositionControl, SizeControl as SizeControl6 } from "@elementor/editor-controls";
4148
- import { Grid as Grid4, Stack as Stack10 } from "@elementor/ui";
4149
- import { __ as __37 } from "@wordpress/i18n";
4607
+ import { Grid as Grid7, Stack as Stack10 } from "@elementor/ui";
4608
+ import { __ as __42 } from "@wordpress/i18n";
4150
4609
 
4151
4610
  // src/components/style-tab-collapsible-content.tsx
4152
- import * as React57 from "react";
4611
+ import * as React62 from "react";
4153
4612
  import { CollapsibleContent } from "@elementor/editor-ui";
4154
4613
 
4155
4614
  // src/styles-inheritance/components/styles-inheritance-section-indicators.tsx
4156
- import * as React56 from "react";
4615
+ import * as React61 from "react";
4157
4616
  import { isElementsStylesProvider as isElementsStylesProvider6 } from "@elementor/editor-styles-repository";
4158
- import { Stack as Stack9, Tooltip } from "@elementor/ui";
4159
- import { __ as __34 } from "@wordpress/i18n";
4617
+ import { Stack as Stack9, Tooltip as Tooltip2 } from "@elementor/ui";
4618
+ import { __ as __39 } from "@wordpress/i18n";
4160
4619
  var StylesInheritanceSectionIndicators = ({ fields }) => {
4161
4620
  const { id, meta, provider } = useStyle();
4162
4621
  const snapshot = useStylesInheritanceSnapshot();
4163
4622
  if (fields.includes("custom_css")) {
4164
- return /* @__PURE__ */ React56.createElement(CustomCssIndicator, null);
4623
+ return /* @__PURE__ */ React61.createElement(CustomCssIndicator, null);
4165
4624
  }
4166
4625
  const snapshotFields = Object.fromEntries(
4167
4626
  Object.entries(snapshot ?? {}).filter(([key]) => fields.includes(key))
@@ -4170,9 +4629,9 @@ var StylesInheritanceSectionIndicators = ({ fields }) => {
4170
4629
  if (!hasValues && !hasOverrides) {
4171
4630
  return null;
4172
4631
  }
4173
- const hasValueLabel = __34("Has effective styles", "elementor");
4174
- const hasOverridesLabel = __34("Has overridden styles", "elementor");
4175
- return /* @__PURE__ */ React56.createElement(Tooltip, { title: __34("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React56.createElement(Stack9, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, hasValues && provider && /* @__PURE__ */ React56.createElement(
4632
+ const hasValueLabel = __39("Has effective styles", "elementor");
4633
+ const hasOverridesLabel = __39("Has overridden styles", "elementor");
4634
+ return /* @__PURE__ */ React61.createElement(Tooltip2, { title: __39("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React61.createElement(Stack9, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, hasValues && provider && /* @__PURE__ */ React61.createElement(
4176
4635
  StyleIndicator,
4177
4636
  {
4178
4637
  getColor: getStylesProviderThemeColor(provider.getKey()),
@@ -4180,7 +4639,7 @@ var StylesInheritanceSectionIndicators = ({ fields }) => {
4180
4639
  role: "listitem",
4181
4640
  "aria-label": hasValueLabel
4182
4641
  }
4183
- ), hasOverrides && /* @__PURE__ */ React56.createElement(
4642
+ ), hasOverrides && /* @__PURE__ */ React61.createElement(
4184
4643
  StyleIndicator,
4185
4644
  {
4186
4645
  isOverridden: true,
@@ -4220,59 +4679,59 @@ function getCurrentStyleFromChain(chain, styleId, meta) {
4220
4679
 
4221
4680
  // src/components/style-tab-collapsible-content.tsx
4222
4681
  var StyleTabCollapsibleContent = ({ fields = [], children }) => {
4223
- return /* @__PURE__ */ React57.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
4682
+ return /* @__PURE__ */ React62.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
4224
4683
  };
4225
4684
  function getStylesInheritanceIndicators(fields) {
4226
4685
  if (fields.length === 0) {
4227
4686
  return null;
4228
4687
  }
4229
- return (isOpen) => !isOpen ? /* @__PURE__ */ React57.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
4688
+ return (isOpen) => !isOpen ? /* @__PURE__ */ React62.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
4230
4689
  }
4231
4690
 
4232
4691
  // src/components/style-sections/size-section/object-fit-field.tsx
4233
- import * as React58 from "react";
4692
+ import * as React63 from "react";
4234
4693
  import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
4235
- import { __ as __35 } from "@wordpress/i18n";
4236
- var OBJECT_FIT_LABEL = __35("Object fit", "elementor");
4694
+ import { __ as __40 } from "@wordpress/i18n";
4695
+ var OBJECT_FIT_LABEL = __40("Object fit", "elementor");
4237
4696
  var positionOptions2 = [
4238
- { label: __35("Fill", "elementor"), value: "fill" },
4239
- { label: __35("Cover", "elementor"), value: "cover" },
4240
- { label: __35("Contain", "elementor"), value: "contain" },
4241
- { label: __35("None", "elementor"), value: "none" },
4242
- { label: __35("Scale down", "elementor"), value: "scale-down" }
4697
+ { label: __40("Fill", "elementor"), value: "fill" },
4698
+ { label: __40("Cover", "elementor"), value: "cover" },
4699
+ { label: __40("Contain", "elementor"), value: "contain" },
4700
+ { label: __40("None", "elementor"), value: "none" },
4701
+ { label: __40("Scale down", "elementor"), value: "scale-down" }
4243
4702
  ];
4244
4703
  var ObjectFitField = () => {
4245
- return /* @__PURE__ */ React58.createElement(StylesField, { bind: "object-fit", propDisplayName: OBJECT_FIT_LABEL }, /* @__PURE__ */ React58.createElement(StylesFieldLayout, { label: OBJECT_FIT_LABEL }, /* @__PURE__ */ React58.createElement(SelectControl4, { options: positionOptions2 })));
4704
+ return /* @__PURE__ */ React63.createElement(StylesField, { bind: "object-fit", propDisplayName: OBJECT_FIT_LABEL }, /* @__PURE__ */ React63.createElement(StylesFieldLayout, { label: OBJECT_FIT_LABEL }, /* @__PURE__ */ React63.createElement(SelectControl4, { options: positionOptions2 })));
4246
4705
  };
4247
4706
 
4248
4707
  // src/components/style-sections/size-section/overflow-field.tsx
4249
- import * as React59 from "react";
4250
- import { ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
4708
+ import * as React64 from "react";
4709
+ import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
4251
4710
  import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
4252
- import { __ as __36 } from "@wordpress/i18n";
4253
- var OVERFLOW_LABEL = __36("Overflow", "elementor");
4254
- var options6 = [
4711
+ import { __ as __41 } from "@wordpress/i18n";
4712
+ var OVERFLOW_LABEL = __41("Overflow", "elementor");
4713
+ var options7 = [
4255
4714
  {
4256
4715
  value: "visible",
4257
- label: __36("Visible", "elementor"),
4258
- renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeIcon, { fontSize: size }),
4716
+ label: __41("Visible", "elementor"),
4717
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(EyeIcon, { fontSize: size }),
4259
4718
  showTooltip: true
4260
4719
  },
4261
4720
  {
4262
4721
  value: "hidden",
4263
- label: __36("Hidden", "elementor"),
4264
- renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(EyeOffIcon, { fontSize: size }),
4722
+ label: __41("Hidden", "elementor"),
4723
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(EyeOffIcon, { fontSize: size }),
4265
4724
  showTooltip: true
4266
4725
  },
4267
4726
  {
4268
4727
  value: "auto",
4269
- label: __36("Auto", "elementor"),
4270
- renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterAIcon, { fontSize: size }),
4728
+ label: __41("Auto", "elementor"),
4729
+ renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(LetterAIcon, { fontSize: size }),
4271
4730
  showTooltip: true
4272
4731
  }
4273
4732
  ];
4274
4733
  var OverflowField = () => {
4275
- return /* @__PURE__ */ React59.createElement(StylesField, { bind: "overflow", propDisplayName: OVERFLOW_LABEL }, /* @__PURE__ */ React59.createElement(StylesFieldLayout, { label: OVERFLOW_LABEL }, /* @__PURE__ */ React59.createElement(ToggleControl9, { options: options6 })));
4734
+ return /* @__PURE__ */ React64.createElement(StylesField, { bind: "overflow", propDisplayName: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(StylesFieldLayout, { label: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(ToggleControl11, { options: options7 })));
4276
4735
  };
4277
4736
 
4278
4737
  // src/components/style-sections/size-section/size-section.tsx
@@ -4280,97 +4739,97 @@ var CssSizeProps = [
4280
4739
  [
4281
4740
  {
4282
4741
  bind: "width",
4283
- label: __37("Width", "elementor")
4742
+ label: __42("Width", "elementor")
4284
4743
  },
4285
4744
  {
4286
4745
  bind: "height",
4287
- label: __37("Height", "elementor")
4746
+ label: __42("Height", "elementor")
4288
4747
  }
4289
4748
  ],
4290
4749
  [
4291
4750
  {
4292
4751
  bind: "min-width",
4293
- label: __37("Min width", "elementor")
4752
+ label: __42("Min width", "elementor")
4294
4753
  },
4295
4754
  {
4296
4755
  bind: "min-height",
4297
- label: __37("Min height", "elementor")
4756
+ label: __42("Min height", "elementor")
4298
4757
  }
4299
4758
  ],
4300
4759
  [
4301
4760
  {
4302
4761
  bind: "max-width",
4303
- label: __37("Max width", "elementor")
4762
+ label: __42("Max width", "elementor")
4304
4763
  },
4305
4764
  {
4306
4765
  bind: "max-height",
4307
- label: __37("Max height", "elementor")
4766
+ label: __42("Max height", "elementor")
4308
4767
  }
4309
4768
  ]
4310
4769
  ];
4311
- var ASPECT_RATIO_LABEL = __37("Aspect Ratio", "elementor");
4770
+ var ASPECT_RATIO_LABEL = __42("Aspect Ratio", "elementor");
4312
4771
  var SizeSection = () => {
4313
- const gridRowRefs = [useRef10(null), useRef10(null), useRef10(null)];
4314
- return /* @__PURE__ */ React60.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React60.createElement(Grid4, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React60.createElement(Grid4, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React60.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(Stack10, null, /* @__PURE__ */ React60.createElement(OverflowField, null)), /* @__PURE__ */ React60.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React60.createElement(Stack10, { gap: 2, pt: 2 }, /* @__PURE__ */ React60.createElement(StylesField, { bind: "aspect-ratio", propDisplayName: ASPECT_RATIO_LABEL }, /* @__PURE__ */ React60.createElement(AspectRatioControl, { label: ASPECT_RATIO_LABEL })), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(ObjectFitField, null), /* @__PURE__ */ React60.createElement(StylesField, { bind: "object-position", propDisplayName: __37("Object position", "elementor") }, /* @__PURE__ */ React60.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(PositionControl, null))))));
4772
+ const gridRowRefs = [useRef12(null), useRef12(null), useRef12(null)];
4773
+ return /* @__PURE__ */ React65.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React65.createElement(Grid7, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React65.createElement(Grid7, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React65.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(Stack10, null, /* @__PURE__ */ React65.createElement(OverflowField, null)), /* @__PURE__ */ React65.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React65.createElement(Stack10, { gap: 2, pt: 2 }, /* @__PURE__ */ React65.createElement(StylesField, { bind: "aspect-ratio", propDisplayName: ASPECT_RATIO_LABEL }, /* @__PURE__ */ React65.createElement(AspectRatioControl, { label: ASPECT_RATIO_LABEL })), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(ObjectFitField, null), /* @__PURE__ */ React65.createElement(StylesField, { bind: "object-position", propDisplayName: __42("Object position", "elementor") }, /* @__PURE__ */ React65.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(PositionControl, null))))));
4315
4774
  };
4316
4775
  var SizeField = ({ label, bind, rowRef, extendedOptions }) => {
4317
- return /* @__PURE__ */ React60.createElement(StylesField, { bind, propDisplayName: label }, /* @__PURE__ */ React60.createElement(Grid4, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React60.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, label)), /* @__PURE__ */ React60.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React60.createElement(SizeControl6, { extendedOptions, anchorRef: rowRef }))));
4776
+ return /* @__PURE__ */ React65.createElement(StylesField, { bind, propDisplayName: label }, /* @__PURE__ */ React65.createElement(Grid7, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React65.createElement(Grid7, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, label)), /* @__PURE__ */ React65.createElement(Grid7, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(SizeControl6, { extendedOptions, anchorRef: rowRef }))));
4318
4777
  };
4319
4778
 
4320
4779
  // src/components/style-sections/spacing-section/spacing-section.tsx
4321
- import * as React61 from "react";
4780
+ import * as React66 from "react";
4322
4781
  import { LinkedDimensionsControl } from "@elementor/editor-controls";
4323
- import { __ as __38 } from "@wordpress/i18n";
4324
- var MARGIN_LABEL = __38("Margin", "elementor");
4325
- var PADDING_LABEL = __38("Padding", "elementor");
4782
+ import { __ as __43 } from "@wordpress/i18n";
4783
+ var MARGIN_LABEL = __43("Margin", "elementor");
4784
+ var PADDING_LABEL = __43("Padding", "elementor");
4326
4785
  var SpacingSection = () => {
4327
4786
  const { isSiteRtl } = useDirection();
4328
- return /* @__PURE__ */ React61.createElement(SectionContent, null, /* @__PURE__ */ React61.createElement(StylesField, { bind: "margin", propDisplayName: MARGIN_LABEL }, /* @__PURE__ */ React61.createElement(
4787
+ return /* @__PURE__ */ React66.createElement(SectionContent, null, /* @__PURE__ */ React66.createElement(StylesField, { bind: "margin", propDisplayName: MARGIN_LABEL }, /* @__PURE__ */ React66.createElement(
4329
4788
  LinkedDimensionsControl,
4330
4789
  {
4331
4790
  label: MARGIN_LABEL,
4332
4791
  isSiteRtl,
4333
4792
  min: -Number.MAX_SAFE_INTEGER
4334
4793
  }
4335
- )), /* @__PURE__ */ React61.createElement(PanelDivider, null), /* @__PURE__ */ React61.createElement(StylesField, { bind: "padding", propDisplayName: PADDING_LABEL }, /* @__PURE__ */ React61.createElement(LinkedDimensionsControl, { label: PADDING_LABEL, isSiteRtl })));
4794
+ )), /* @__PURE__ */ React66.createElement(PanelDivider, null), /* @__PURE__ */ React66.createElement(StylesField, { bind: "padding", propDisplayName: PADDING_LABEL }, /* @__PURE__ */ React66.createElement(LinkedDimensionsControl, { label: PADDING_LABEL, isSiteRtl })));
4336
4795
  };
4337
4796
 
4338
4797
  // src/components/style-sections/typography-section/typography-section.tsx
4339
- import * as React78 from "react";
4798
+ import * as React83 from "react";
4340
4799
 
4341
4800
  // src/components/style-sections/typography-section/column-count-field.tsx
4342
- import * as React62 from "react";
4801
+ import * as React67 from "react";
4343
4802
  import { NumberControl as NumberControl5 } from "@elementor/editor-controls";
4344
- import { __ as __39 } from "@wordpress/i18n";
4345
- var COLUMN_COUNT_LABEL = __39("Columns", "elementor");
4803
+ import { __ as __44 } from "@wordpress/i18n";
4804
+ var COLUMN_COUNT_LABEL = __44("Columns", "elementor");
4346
4805
  var ColumnCountField = () => {
4347
- return /* @__PURE__ */ React62.createElement(StylesField, { bind: "column-count", propDisplayName: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React62.createElement(StylesFieldLayout, { label: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React62.createElement(NumberControl5, { shouldForceInt: true, min: 0, step: 1 })));
4806
+ return /* @__PURE__ */ React67.createElement(StylesField, { bind: "column-count", propDisplayName: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(StylesFieldLayout, { label: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(NumberControl5, { shouldForceInt: true, min: 0, step: 1 })));
4348
4807
  };
4349
4808
 
4350
4809
  // src/components/style-sections/typography-section/column-gap-field.tsx
4351
- import * as React63 from "react";
4352
- import { useRef as useRef11 } from "react";
4810
+ import * as React68 from "react";
4811
+ import { useRef as useRef13 } from "react";
4353
4812
  import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
4354
- import { __ as __40 } from "@wordpress/i18n";
4355
- var COLUMN_GAP_LABEL = __40("Column gap", "elementor");
4813
+ import { __ as __45 } from "@wordpress/i18n";
4814
+ var COLUMN_GAP_LABEL = __45("Column gap", "elementor");
4356
4815
  var ColumnGapField = () => {
4357
- const rowRef = useRef11(null);
4358
- return /* @__PURE__ */ React63.createElement(StylesField, { bind: "column-gap", propDisplayName: COLUMN_GAP_LABEL }, /* @__PURE__ */ React63.createElement(StylesFieldLayout, { label: COLUMN_GAP_LABEL, ref: rowRef }, /* @__PURE__ */ React63.createElement(SizeControl7, { anchorRef: rowRef })));
4816
+ const rowRef = useRef13(null);
4817
+ return /* @__PURE__ */ React68.createElement(StylesField, { bind: "column-gap", propDisplayName: COLUMN_GAP_LABEL }, /* @__PURE__ */ React68.createElement(StylesFieldLayout, { label: COLUMN_GAP_LABEL, ref: rowRef }, /* @__PURE__ */ React68.createElement(SizeControl7, { anchorRef: rowRef })));
4359
4818
  };
4360
4819
 
4361
4820
  // src/components/style-sections/typography-section/font-family-field.tsx
4362
- import * as React64 from "react";
4821
+ import * as React69 from "react";
4363
4822
  import { FontFamilyControl, useFontFamilies } from "@elementor/editor-controls";
4364
4823
  import { useSectionWidth } from "@elementor/editor-ui";
4365
- import { __ as __41 } from "@wordpress/i18n";
4366
- var FONT_FAMILY_LABEL = __41("Font family", "elementor");
4824
+ import { __ as __46 } from "@wordpress/i18n";
4825
+ var FONT_FAMILY_LABEL = __46("Font family", "elementor");
4367
4826
  var FontFamilyField = () => {
4368
4827
  const fontFamilies = useFontFamilies();
4369
4828
  const sectionWidth = useSectionWidth();
4370
4829
  if (fontFamilies.length === 0) {
4371
4830
  return null;
4372
4831
  }
4373
- return /* @__PURE__ */ React64.createElement(StylesField, { bind: "font-family", propDisplayName: FONT_FAMILY_LABEL }, /* @__PURE__ */ React64.createElement(StylesFieldLayout, { label: FONT_FAMILY_LABEL }, /* @__PURE__ */ React64.createElement(
4832
+ return /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-family", propDisplayName: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(StylesFieldLayout, { label: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(
4374
4833
  FontFamilyControl,
4375
4834
  {
4376
4835
  fontFamilies,
@@ -4381,196 +4840,196 @@ var FontFamilyField = () => {
4381
4840
  };
4382
4841
 
4383
4842
  // src/components/style-sections/typography-section/font-size-field.tsx
4384
- import * as React65 from "react";
4385
- import { useRef as useRef12 } from "react";
4843
+ import * as React70 from "react";
4844
+ import { useRef as useRef14 } from "react";
4386
4845
  import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
4387
- import { __ as __42 } from "@wordpress/i18n";
4388
- var FONT_SIZE_LABEL = __42("Font size", "elementor");
4846
+ import { __ as __47 } from "@wordpress/i18n";
4847
+ var FONT_SIZE_LABEL = __47("Font size", "elementor");
4389
4848
  var FontSizeField = () => {
4390
- const rowRef = useRef12(null);
4391
- return /* @__PURE__ */ React65.createElement(StylesField, { bind: "font-size", propDisplayName: FONT_SIZE_LABEL }, /* @__PURE__ */ React65.createElement(StylesFieldLayout, { label: FONT_SIZE_LABEL, ref: rowRef }, /* @__PURE__ */ React65.createElement(SizeControl8, { anchorRef: rowRef, ariaLabel: FONT_SIZE_LABEL })));
4849
+ const rowRef = useRef14(null);
4850
+ return /* @__PURE__ */ React70.createElement(StylesField, { bind: "font-size", propDisplayName: FONT_SIZE_LABEL }, /* @__PURE__ */ React70.createElement(StylesFieldLayout, { label: FONT_SIZE_LABEL, ref: rowRef }, /* @__PURE__ */ React70.createElement(SizeControl8, { anchorRef: rowRef, ariaLabel: FONT_SIZE_LABEL })));
4392
4851
  };
4393
4852
 
4394
4853
  // src/components/style-sections/typography-section/font-style-field.tsx
4395
- import * as React66 from "react";
4396
- import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
4854
+ import * as React71 from "react";
4855
+ import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
4397
4856
  import { ItalicIcon, MinusIcon } from "@elementor/icons";
4398
- import { __ as __43 } from "@wordpress/i18n";
4399
- var FONT_STYLE_LABEL = __43("Font style", "elementor");
4400
- var options7 = [
4857
+ import { __ as __48 } from "@wordpress/i18n";
4858
+ var FONT_STYLE_LABEL = __48("Font style", "elementor");
4859
+ var options8 = [
4401
4860
  {
4402
4861
  value: "normal",
4403
- label: __43("Normal", "elementor"),
4404
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(MinusIcon, { fontSize: size }),
4862
+ label: __48("Normal", "elementor"),
4863
+ renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(MinusIcon, { fontSize: size }),
4405
4864
  showTooltip: true
4406
4865
  },
4407
4866
  {
4408
4867
  value: "italic",
4409
- label: __43("Italic", "elementor"),
4410
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(ItalicIcon, { fontSize: size }),
4868
+ label: __48("Italic", "elementor"),
4869
+ renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(ItalicIcon, { fontSize: size }),
4411
4870
  showTooltip: true
4412
4871
  }
4413
4872
  ];
4414
4873
  var FontStyleField = () => {
4415
- return /* @__PURE__ */ React66.createElement(StylesField, { bind: "font-style", propDisplayName: FONT_STYLE_LABEL }, /* @__PURE__ */ React66.createElement(StylesFieldLayout, { label: FONT_STYLE_LABEL }, /* @__PURE__ */ React66.createElement(ToggleControl10, { options: options7 })));
4874
+ return /* @__PURE__ */ React71.createElement(StylesField, { bind: "font-style", propDisplayName: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(StylesFieldLayout, { label: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(ToggleControl12, { options: options8 })));
4416
4875
  };
4417
4876
 
4418
4877
  // src/components/style-sections/typography-section/font-weight-field.tsx
4419
- import * as React67 from "react";
4878
+ import * as React72 from "react";
4420
4879
  import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
4421
- import { __ as __44 } from "@wordpress/i18n";
4422
- var FONT_WEIGHT_LABEL = __44("Font weight", "elementor");
4880
+ import { __ as __49 } from "@wordpress/i18n";
4881
+ var FONT_WEIGHT_LABEL = __49("Font weight", "elementor");
4423
4882
  var fontWeightOptions = [
4424
- { value: "100", label: __44("100 - Thin", "elementor") },
4425
- { value: "200", label: __44("200 - Extra light", "elementor") },
4426
- { value: "300", label: __44("300 - Light", "elementor") },
4427
- { value: "400", label: __44("400 - Normal", "elementor") },
4428
- { value: "500", label: __44("500 - Medium", "elementor") },
4429
- { value: "600", label: __44("600 - Semi bold", "elementor") },
4430
- { value: "700", label: __44("700 - Bold", "elementor") },
4431
- { value: "800", label: __44("800 - Extra bold", "elementor") },
4432
- { value: "900", label: __44("900 - Black", "elementor") }
4883
+ { value: "100", label: __49("100 - Thin", "elementor") },
4884
+ { value: "200", label: __49("200 - Extra light", "elementor") },
4885
+ { value: "300", label: __49("300 - Light", "elementor") },
4886
+ { value: "400", label: __49("400 - Normal", "elementor") },
4887
+ { value: "500", label: __49("500 - Medium", "elementor") },
4888
+ { value: "600", label: __49("600 - Semi bold", "elementor") },
4889
+ { value: "700", label: __49("700 - Bold", "elementor") },
4890
+ { value: "800", label: __49("800 - Extra bold", "elementor") },
4891
+ { value: "900", label: __49("900 - Black", "elementor") }
4433
4892
  ];
4434
4893
  var FontWeightField = () => {
4435
- return /* @__PURE__ */ React67.createElement(StylesField, { bind: "font-weight", propDisplayName: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React67.createElement(StylesFieldLayout, { label: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React67.createElement(SelectControl5, { options: fontWeightOptions })));
4894
+ return /* @__PURE__ */ React72.createElement(StylesField, { bind: "font-weight", propDisplayName: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(StylesFieldLayout, { label: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(SelectControl5, { options: fontWeightOptions })));
4436
4895
  };
4437
4896
 
4438
4897
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
4439
- import * as React68 from "react";
4440
- import { useRef as useRef13 } from "react";
4898
+ import * as React73 from "react";
4899
+ import { useRef as useRef15 } from "react";
4441
4900
  import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
4442
- import { __ as __45 } from "@wordpress/i18n";
4443
- var LETTER_SPACING_LABEL = __45("Letter spacing", "elementor");
4901
+ import { __ as __50 } from "@wordpress/i18n";
4902
+ var LETTER_SPACING_LABEL = __50("Letter spacing", "elementor");
4444
4903
  var LetterSpacingField = () => {
4445
- const rowRef = useRef13(null);
4446
- return /* @__PURE__ */ React68.createElement(StylesField, { bind: "letter-spacing", propDisplayName: LETTER_SPACING_LABEL }, /* @__PURE__ */ React68.createElement(StylesFieldLayout, { label: LETTER_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React68.createElement(SizeControl9, { anchorRef: rowRef, min: -Number.MAX_SAFE_INTEGER })));
4904
+ const rowRef = useRef15(null);
4905
+ return /* @__PURE__ */ React73.createElement(StylesField, { bind: "letter-spacing", propDisplayName: LETTER_SPACING_LABEL }, /* @__PURE__ */ React73.createElement(StylesFieldLayout, { label: LETTER_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React73.createElement(SizeControl9, { anchorRef: rowRef, min: -Number.MAX_SAFE_INTEGER })));
4447
4906
  };
4448
4907
 
4449
4908
  // src/components/style-sections/typography-section/line-height-field.tsx
4450
- import * as React69 from "react";
4451
- import { useRef as useRef14 } from "react";
4909
+ import * as React74 from "react";
4910
+ import { useRef as useRef16 } from "react";
4452
4911
  import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
4453
- import { __ as __46 } from "@wordpress/i18n";
4454
- var LINE_HEIGHT_LABEL = __46("Line height", "elementor");
4912
+ import { __ as __51 } from "@wordpress/i18n";
4913
+ var LINE_HEIGHT_LABEL = __51("Line height", "elementor");
4455
4914
  var LineHeightField = () => {
4456
- const rowRef = useRef14(null);
4457
- return /* @__PURE__ */ React69.createElement(StylesField, { bind: "line-height", propDisplayName: LINE_HEIGHT_LABEL }, /* @__PURE__ */ React69.createElement(StylesFieldLayout, { label: LINE_HEIGHT_LABEL, ref: rowRef }, /* @__PURE__ */ React69.createElement(SizeControl10, { anchorRef: rowRef })));
4915
+ const rowRef = useRef16(null);
4916
+ return /* @__PURE__ */ React74.createElement(StylesField, { bind: "line-height", propDisplayName: LINE_HEIGHT_LABEL }, /* @__PURE__ */ React74.createElement(StylesFieldLayout, { label: LINE_HEIGHT_LABEL, ref: rowRef }, /* @__PURE__ */ React74.createElement(SizeControl10, { anchorRef: rowRef })));
4458
4917
  };
4459
4918
 
4460
4919
  // src/components/style-sections/typography-section/text-alignment-field.tsx
4461
- import * as React70 from "react";
4462
- import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
4920
+ import * as React75 from "react";
4921
+ import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
4463
4922
  import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
4464
- import { withDirection as withDirection9 } from "@elementor/ui";
4465
- import { __ as __47 } from "@wordpress/i18n";
4466
- var TEXT_ALIGNMENT_LABEL = __47("Text align", "elementor");
4467
- var AlignStartIcon = withDirection9(AlignLeftIcon);
4468
- var AlignEndIcon = withDirection9(AlignRightIcon);
4469
- var options8 = [
4923
+ import { withDirection as withDirection11 } from "@elementor/ui";
4924
+ import { __ as __52 } from "@wordpress/i18n";
4925
+ var TEXT_ALIGNMENT_LABEL = __52("Text align", "elementor");
4926
+ var AlignStartIcon = withDirection11(AlignLeftIcon);
4927
+ var AlignEndIcon = withDirection11(AlignRightIcon);
4928
+ var options9 = [
4470
4929
  {
4471
4930
  value: "start",
4472
- label: __47("Start", "elementor"),
4473
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignStartIcon, { fontSize: size }),
4931
+ label: __52("Start", "elementor"),
4932
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignStartIcon, { fontSize: size }),
4474
4933
  showTooltip: true
4475
4934
  },
4476
4935
  {
4477
4936
  value: "center",
4478
- label: __47("Center", "elementor"),
4479
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignCenterIcon, { fontSize: size }),
4937
+ label: __52("Center", "elementor"),
4938
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignCenterIcon, { fontSize: size }),
4480
4939
  showTooltip: true
4481
4940
  },
4482
4941
  {
4483
4942
  value: "end",
4484
- label: __47("End", "elementor"),
4485
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignEndIcon, { fontSize: size }),
4943
+ label: __52("End", "elementor"),
4944
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignEndIcon, { fontSize: size }),
4486
4945
  showTooltip: true
4487
4946
  },
4488
4947
  {
4489
4948
  value: "justify",
4490
- label: __47("Justify", "elementor"),
4491
- renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(AlignJustifiedIcon, { fontSize: size }),
4949
+ label: __52("Justify", "elementor"),
4950
+ renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignJustifiedIcon, { fontSize: size }),
4492
4951
  showTooltip: true
4493
4952
  }
4494
4953
  ];
4495
4954
  var TextAlignmentField = () => {
4496
- return /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-align", propDisplayName: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React70.createElement(UiProviders, null, /* @__PURE__ */ React70.createElement(StylesFieldLayout, { label: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React70.createElement(ToggleControl11, { options: options8 }))));
4955
+ return /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-align", propDisplayName: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(UiProviders, null, /* @__PURE__ */ React75.createElement(StylesFieldLayout, { label: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(ToggleControl13, { options: options9 }))));
4497
4956
  };
4498
4957
 
4499
4958
  // src/components/style-sections/typography-section/text-color-field.tsx
4500
- import * as React71 from "react";
4959
+ import * as React76 from "react";
4501
4960
  import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
4502
- import { __ as __48 } from "@wordpress/i18n";
4503
- var TEXT_COLOR_LABEL = __48("Text color", "elementor");
4961
+ import { __ as __53 } from "@wordpress/i18n";
4962
+ var TEXT_COLOR_LABEL = __53("Text color", "elementor");
4504
4963
  var TextColorField = () => {
4505
- return /* @__PURE__ */ React71.createElement(StylesField, { bind: "color", propDisplayName: TEXT_COLOR_LABEL }, /* @__PURE__ */ React71.createElement(StylesFieldLayout, { label: TEXT_COLOR_LABEL }, /* @__PURE__ */ React71.createElement(ColorControl2, { id: "text-color-control" })));
4964
+ return /* @__PURE__ */ React76.createElement(StylesField, { bind: "color", propDisplayName: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(StylesFieldLayout, { label: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(ColorControl2, { id: "text-color-control" })));
4506
4965
  };
4507
4966
 
4508
4967
  // src/components/style-sections/typography-section/text-decoration-field.tsx
4509
- import * as React72 from "react";
4510
- import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
4968
+ import * as React77 from "react";
4969
+ import { ToggleControl as ToggleControl14 } from "@elementor/editor-controls";
4511
4970
  import { MinusIcon as MinusIcon2, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
4512
- import { __ as __49 } from "@wordpress/i18n";
4513
- var TEXT_DECORATION_LABEL = __49("Line decoration", "elementor");
4514
- var options9 = [
4971
+ import { __ as __54 } from "@wordpress/i18n";
4972
+ var TEXT_DECORATION_LABEL = __54("Line decoration", "elementor");
4973
+ var options10 = [
4515
4974
  {
4516
4975
  value: "none",
4517
- label: __49("None", "elementor"),
4518
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(MinusIcon2, { fontSize: size }),
4976
+ label: __54("None", "elementor"),
4977
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(MinusIcon2, { fontSize: size }),
4519
4978
  showTooltip: true,
4520
4979
  exclusive: true
4521
4980
  },
4522
4981
  {
4523
4982
  value: "underline",
4524
- label: __49("Underline", "elementor"),
4525
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(UnderlineIcon, { fontSize: size }),
4983
+ label: __54("Underline", "elementor"),
4984
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(UnderlineIcon, { fontSize: size }),
4526
4985
  showTooltip: true
4527
4986
  },
4528
4987
  {
4529
4988
  value: "line-through",
4530
- label: __49("Line-through", "elementor"),
4531
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(StrikethroughIcon, { fontSize: size }),
4989
+ label: __54("Line-through", "elementor"),
4990
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(StrikethroughIcon, { fontSize: size }),
4532
4991
  showTooltip: true
4533
4992
  },
4534
4993
  {
4535
4994
  value: "overline",
4536
- label: __49("Overline", "elementor"),
4537
- renderContent: ({ size }) => /* @__PURE__ */ React72.createElement(OverlineIcon, { fontSize: size }),
4995
+ label: __54("Overline", "elementor"),
4996
+ renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(OverlineIcon, { fontSize: size }),
4538
4997
  showTooltip: true
4539
4998
  }
4540
4999
  ];
4541
- var TextDecorationField = () => /* @__PURE__ */ React72.createElement(StylesField, { bind: "text-decoration", propDisplayName: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React72.createElement(StylesFieldLayout, { label: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React72.createElement(ToggleControl12, { options: options9, exclusive: false })));
5000
+ var TextDecorationField = () => /* @__PURE__ */ React77.createElement(StylesField, { bind: "text-decoration", propDisplayName: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(StylesFieldLayout, { label: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(ToggleControl14, { options: options10, exclusive: false })));
4542
5001
 
4543
5002
  // src/components/style-sections/typography-section/text-direction-field.tsx
4544
- import * as React73 from "react";
4545
- import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
5003
+ import * as React78 from "react";
5004
+ import { ToggleControl as ToggleControl15 } from "@elementor/editor-controls";
4546
5005
  import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
4547
- import { __ as __50 } from "@wordpress/i18n";
4548
- var TEXT_DIRECTION_LABEL = __50("Direction", "elementor");
4549
- var options10 = [
5006
+ import { __ as __55 } from "@wordpress/i18n";
5007
+ var TEXT_DIRECTION_LABEL = __55("Direction", "elementor");
5008
+ var options11 = [
4550
5009
  {
4551
5010
  value: "ltr",
4552
- label: __50("Left to right", "elementor"),
4553
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionLtrIcon, { fontSize: size }),
5011
+ label: __55("Left to right", "elementor"),
5012
+ renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(TextDirectionLtrIcon, { fontSize: size }),
4554
5013
  showTooltip: true
4555
5014
  },
4556
5015
  {
4557
5016
  value: "rtl",
4558
- label: __50("Right to left", "elementor"),
4559
- renderContent: ({ size }) => /* @__PURE__ */ React73.createElement(TextDirectionRtlIcon, { fontSize: size }),
5017
+ label: __55("Right to left", "elementor"),
5018
+ renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(TextDirectionRtlIcon, { fontSize: size }),
4560
5019
  showTooltip: true
4561
5020
  }
4562
5021
  ];
4563
5022
  var TextDirectionField = () => {
4564
- return /* @__PURE__ */ React73.createElement(StylesField, { bind: "direction", propDisplayName: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React73.createElement(StylesFieldLayout, { label: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React73.createElement(ToggleControl13, { options: options10 })));
5023
+ return /* @__PURE__ */ React78.createElement(StylesField, { bind: "direction", propDisplayName: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(StylesFieldLayout, { label: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(ToggleControl15, { options: options11 })));
4565
5024
  };
4566
5025
 
4567
5026
  // src/components/style-sections/typography-section/text-stroke-field.tsx
4568
- import * as React75 from "react";
5027
+ import * as React80 from "react";
4569
5028
  import { StrokeControl } from "@elementor/editor-controls";
4570
- import { __ as __51 } from "@wordpress/i18n";
5029
+ import { __ as __56 } from "@wordpress/i18n";
4571
5030
 
4572
5031
  // src/components/add-or-remove-content.tsx
4573
- import * as React74 from "react";
5032
+ import * as React79 from "react";
4574
5033
  import { MinusIcon as MinusIcon3, PlusIcon } from "@elementor/icons";
4575
5034
  import { Collapse as Collapse2, IconButton, Stack as Stack11 } from "@elementor/ui";
4576
5035
  var SIZE = "tiny";
@@ -4582,7 +5041,7 @@ var AddOrRemoveContent = ({
4582
5041
  disabled,
4583
5042
  renderLabel
4584
5043
  }) => {
4585
- return /* @__PURE__ */ React74.createElement(SectionContent, null, /* @__PURE__ */ React74.createElement(
5044
+ return /* @__PURE__ */ React79.createElement(SectionContent, null, /* @__PURE__ */ React79.createElement(
4586
5045
  Stack11,
4587
5046
  {
4588
5047
  direction: "row",
@@ -4593,8 +5052,8 @@ var AddOrRemoveContent = ({
4593
5052
  }
4594
5053
  },
4595
5054
  renderLabel(),
4596
- isAdded ? /* @__PURE__ */ React74.createElement(IconButton, { size: SIZE, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React74.createElement(MinusIcon3, { fontSize: SIZE })) : /* @__PURE__ */ React74.createElement(IconButton, { size: SIZE, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React74.createElement(PlusIcon, { fontSize: SIZE }))
4597
- ), /* @__PURE__ */ React74.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React74.createElement(SectionContent, null, children)));
5055
+ isAdded ? /* @__PURE__ */ React79.createElement(IconButton, { size: SIZE, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React79.createElement(MinusIcon3, { fontSize: SIZE })) : /* @__PURE__ */ React79.createElement(IconButton, { size: SIZE, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React79.createElement(PlusIcon, { fontSize: SIZE }))
5056
+ ), /* @__PURE__ */ React79.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React79.createElement(SectionContent, null, children)));
4598
5057
  };
4599
5058
 
4600
5059
  // src/components/style-sections/typography-section/text-stroke-field.tsx
@@ -4614,7 +5073,7 @@ var initTextStroke = {
4614
5073
  }
4615
5074
  }
4616
5075
  };
4617
- var TEXT_STROKE_LABEL = __51("Text stroke", "elementor");
5076
+ var TEXT_STROKE_LABEL = __56("Text stroke", "elementor");
4618
5077
  var TextStrokeField = () => {
4619
5078
  const { value, setValue, canEdit } = useStylesField("stroke", {
4620
5079
  history: { propDisplayName: TEXT_STROKE_LABEL }
@@ -4626,67 +5085,67 @@ var TextStrokeField = () => {
4626
5085
  setValue(null);
4627
5086
  };
4628
5087
  const hasTextStroke = Boolean(value);
4629
- return /* @__PURE__ */ React75.createElement(StylesField, { bind: "stroke", propDisplayName: TEXT_STROKE_LABEL }, /* @__PURE__ */ React75.createElement(
5088
+ return /* @__PURE__ */ React80.createElement(StylesField, { bind: "stroke", propDisplayName: TEXT_STROKE_LABEL }, /* @__PURE__ */ React80.createElement(
4630
5089
  AddOrRemoveContent,
4631
5090
  {
4632
5091
  isAdded: hasTextStroke,
4633
5092
  onAdd: addTextStroke,
4634
5093
  onRemove: removeTextStroke,
4635
5094
  disabled: !canEdit,
4636
- renderLabel: () => /* @__PURE__ */ React75.createElement(ControlLabel, null, TEXT_STROKE_LABEL)
5095
+ renderLabel: () => /* @__PURE__ */ React80.createElement(ControlLabel, null, TEXT_STROKE_LABEL)
4637
5096
  },
4638
- /* @__PURE__ */ React75.createElement(StrokeControl, null)
5097
+ /* @__PURE__ */ React80.createElement(StrokeControl, null)
4639
5098
  ));
4640
5099
  };
4641
5100
 
4642
5101
  // src/components/style-sections/typography-section/transform-field.tsx
4643
- import * as React76 from "react";
4644
- import { ToggleControl as ToggleControl14 } from "@elementor/editor-controls";
5102
+ import * as React81 from "react";
5103
+ import { ToggleControl as ToggleControl16 } from "@elementor/editor-controls";
4645
5104
  import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
4646
- import { __ as __52 } from "@wordpress/i18n";
4647
- var TEXT_TRANSFORM_LABEL = __52("Text transform", "elementor");
4648
- var options11 = [
5105
+ import { __ as __57 } from "@wordpress/i18n";
5106
+ var TEXT_TRANSFORM_LABEL = __57("Text transform", "elementor");
5107
+ var options12 = [
4649
5108
  {
4650
5109
  value: "none",
4651
- label: __52("None", "elementor"),
4652
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(MinusIcon4, { fontSize: size }),
5110
+ label: __57("None", "elementor"),
5111
+ renderContent: ({ size }) => /* @__PURE__ */ React81.createElement(MinusIcon4, { fontSize: size }),
4653
5112
  showTooltip: true
4654
5113
  },
4655
5114
  {
4656
5115
  value: "capitalize",
4657
- label: __52("Capitalize", "elementor"),
4658
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(LetterCaseIcon, { fontSize: size }),
5116
+ label: __57("Capitalize", "elementor"),
5117
+ renderContent: ({ size }) => /* @__PURE__ */ React81.createElement(LetterCaseIcon, { fontSize: size }),
4659
5118
  showTooltip: true
4660
5119
  },
4661
5120
  {
4662
5121
  value: "uppercase",
4663
- label: __52("Uppercase", "elementor"),
4664
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(LetterCaseUpperIcon, { fontSize: size }),
5122
+ label: __57("Uppercase", "elementor"),
5123
+ renderContent: ({ size }) => /* @__PURE__ */ React81.createElement(LetterCaseUpperIcon, { fontSize: size }),
4665
5124
  showTooltip: true
4666
5125
  },
4667
5126
  {
4668
5127
  value: "lowercase",
4669
- label: __52("Lowercase", "elementor"),
4670
- renderContent: ({ size }) => /* @__PURE__ */ React76.createElement(LetterCaseLowerIcon, { fontSize: size }),
5128
+ label: __57("Lowercase", "elementor"),
5129
+ renderContent: ({ size }) => /* @__PURE__ */ React81.createElement(LetterCaseLowerIcon, { fontSize: size }),
4671
5130
  showTooltip: true
4672
5131
  }
4673
5132
  ];
4674
- var TransformField = () => /* @__PURE__ */ React76.createElement(StylesField, { bind: "text-transform", propDisplayName: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React76.createElement(StylesFieldLayout, { label: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React76.createElement(ToggleControl14, { options: options11 })));
5133
+ var TransformField = () => /* @__PURE__ */ React81.createElement(StylesField, { bind: "text-transform", propDisplayName: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React81.createElement(StylesFieldLayout, { label: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React81.createElement(ToggleControl16, { options: options12 })));
4675
5134
 
4676
5135
  // src/components/style-sections/typography-section/word-spacing-field.tsx
4677
- import * as React77 from "react";
4678
- import { useRef as useRef15 } from "react";
5136
+ import * as React82 from "react";
5137
+ import { useRef as useRef17 } from "react";
4679
5138
  import { SizeControl as SizeControl11 } from "@elementor/editor-controls";
4680
- import { __ as __53 } from "@wordpress/i18n";
4681
- var WORD_SPACING_LABEL = __53("Word spacing", "elementor");
5139
+ import { __ as __58 } from "@wordpress/i18n";
5140
+ var WORD_SPACING_LABEL = __58("Word spacing", "elementor");
4682
5141
  var WordSpacingField = () => {
4683
- const rowRef = useRef15(null);
4684
- return /* @__PURE__ */ React77.createElement(StylesField, { bind: "word-spacing", propDisplayName: WORD_SPACING_LABEL }, /* @__PURE__ */ React77.createElement(StylesFieldLayout, { label: WORD_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React77.createElement(SizeControl11, { anchorRef: rowRef, min: -Number.MAX_SAFE_INTEGER })));
5142
+ const rowRef = useRef17(null);
5143
+ return /* @__PURE__ */ React82.createElement(StylesField, { bind: "word-spacing", propDisplayName: WORD_SPACING_LABEL }, /* @__PURE__ */ React82.createElement(StylesFieldLayout, { label: WORD_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React82.createElement(SizeControl11, { anchorRef: rowRef, min: -Number.MAX_SAFE_INTEGER })));
4685
5144
  };
4686
5145
 
4687
5146
  // src/components/style-sections/typography-section/typography-section.tsx
4688
5147
  var TypographySection = () => {
4689
- return /* @__PURE__ */ React78.createElement(SectionContent, null, /* @__PURE__ */ React78.createElement(FontFamilyField, null), /* @__PURE__ */ React78.createElement(FontWeightField, null), /* @__PURE__ */ React78.createElement(FontSizeField, null), /* @__PURE__ */ React78.createElement(PanelDivider, null), /* @__PURE__ */ React78.createElement(TextAlignmentField, null), /* @__PURE__ */ React78.createElement(TextColorField, null), /* @__PURE__ */ React78.createElement(
5148
+ return /* @__PURE__ */ React83.createElement(SectionContent, null, /* @__PURE__ */ React83.createElement(FontFamilyField, null), /* @__PURE__ */ React83.createElement(FontWeightField, null), /* @__PURE__ */ React83.createElement(FontSizeField, null), /* @__PURE__ */ React83.createElement(PanelDivider, null), /* @__PURE__ */ React83.createElement(TextAlignmentField, null), /* @__PURE__ */ React83.createElement(TextColorField, null), /* @__PURE__ */ React83.createElement(
4690
5149
  StyleTabCollapsibleContent,
4691
5150
  {
4692
5151
  fields: [
@@ -4701,18 +5160,18 @@ var TypographySection = () => {
4701
5160
  "stroke"
4702
5161
  ]
4703
5162
  },
4704
- /* @__PURE__ */ React78.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React78.createElement(LineHeightField, null), /* @__PURE__ */ React78.createElement(LetterSpacingField, null), /* @__PURE__ */ React78.createElement(WordSpacingField, null), /* @__PURE__ */ React78.createElement(ColumnCountField, null), /* @__PURE__ */ React78.createElement(ColumnGapField, null), /* @__PURE__ */ React78.createElement(PanelDivider, null), /* @__PURE__ */ React78.createElement(TextDecorationField, null), /* @__PURE__ */ React78.createElement(TransformField, null), /* @__PURE__ */ React78.createElement(TextDirectionField, null), /* @__PURE__ */ React78.createElement(FontStyleField, null), /* @__PURE__ */ React78.createElement(TextStrokeField, null))
5163
+ /* @__PURE__ */ React83.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React83.createElement(LineHeightField, null), /* @__PURE__ */ React83.createElement(LetterSpacingField, null), /* @__PURE__ */ React83.createElement(WordSpacingField, null), /* @__PURE__ */ React83.createElement(ColumnCountField, null), /* @__PURE__ */ React83.createElement(ColumnGapField, null), /* @__PURE__ */ React83.createElement(PanelDivider, null), /* @__PURE__ */ React83.createElement(TextDecorationField, null), /* @__PURE__ */ React83.createElement(TransformField, null), /* @__PURE__ */ React83.createElement(TextDirectionField, null), /* @__PURE__ */ React83.createElement(FontStyleField, null), /* @__PURE__ */ React83.createElement(TextStrokeField, null))
4705
5164
  ));
4706
5165
  };
4707
5166
 
4708
5167
  // src/components/style-tab-section.tsx
4709
- import * as React79 from "react";
5168
+ import * as React84 from "react";
4710
5169
  var StyleTabSection = ({ section, fields = [], unmountOnExit = true }) => {
4711
5170
  const { component, name, title, action } = section;
4712
5171
  const tabDefaults = useDefaultPanelSettings();
4713
- const SectionComponent = component || (() => /* @__PURE__ */ React79.createElement(React79.Fragment, null));
5172
+ const SectionComponent = component || (() => /* @__PURE__ */ React84.createElement(React84.Fragment, null));
4714
5173
  const isExpanded = tabDefaults.defaultSectionsExpanded.style?.includes(name);
4715
- return /* @__PURE__ */ React79.createElement(
5174
+ return /* @__PURE__ */ React84.createElement(
4716
5175
  Section,
4717
5176
  {
4718
5177
  title,
@@ -4721,7 +5180,7 @@ var StyleTabSection = ({ section, fields = [], unmountOnExit = true }) => {
4721
5180
  unmountOnExit,
4722
5181
  action
4723
5182
  },
4724
- /* @__PURE__ */ React79.createElement(SectionComponent, null)
5183
+ /* @__PURE__ */ React84.createElement(SectionComponent, null)
4725
5184
  );
4726
5185
  };
4727
5186
 
@@ -4743,7 +5202,7 @@ var StyleTab = () => {
4743
5202
  if (!currentClassesProp) {
4744
5203
  return null;
4745
5204
  }
4746
- return /* @__PURE__ */ React80.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React80.createElement(
5205
+ return /* @__PURE__ */ React85.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React85.createElement(
4747
5206
  StyleProvider,
4748
5207
  {
4749
5208
  meta: { breakpoint, state: activeStyleState },
@@ -4754,13 +5213,13 @@ var StyleTab = () => {
4754
5213
  },
4755
5214
  setMetaState: setActiveStyleState
4756
5215
  },
4757
- /* @__PURE__ */ React80.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React80.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React80.createElement(ClassesHeader, null, /* @__PURE__ */ React80.createElement(CssClassSelector, null), /* @__PURE__ */ React80.createElement(Divider5, null)), /* @__PURE__ */ React80.createElement(SectionsList, null, /* @__PURE__ */ React80.createElement(
5216
+ /* @__PURE__ */ React85.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React85.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React85.createElement(ClassesHeader, null, /* @__PURE__ */ React85.createElement(CssClassSelector, null), /* @__PURE__ */ React85.createElement(Divider5, null)), /* @__PURE__ */ React85.createElement(SectionsList, null, /* @__PURE__ */ React85.createElement(
4758
5217
  StyleTabSection,
4759
5218
  {
4760
5219
  section: {
4761
5220
  component: LayoutSection,
4762
5221
  name: "Layout",
4763
- title: __54("Layout", "elementor")
5222
+ title: __59("Layout", "elementor")
4764
5223
  },
4765
5224
  fields: [
4766
5225
  "display",
@@ -4770,26 +5229,29 @@ var StyleTab = () => {
4770
5229
  "align-items",
4771
5230
  "align-content",
4772
5231
  "align-self",
4773
- "gap"
5232
+ "gap",
5233
+ "order",
5234
+ "grid-column",
5235
+ "grid-row"
4774
5236
  ]
4775
5237
  }
4776
- ), /* @__PURE__ */ React80.createElement(
5238
+ ), /* @__PURE__ */ React85.createElement(
4777
5239
  StyleTabSection,
4778
5240
  {
4779
5241
  section: {
4780
5242
  component: SpacingSection,
4781
5243
  name: "Spacing",
4782
- title: __54("Spacing", "elementor")
5244
+ title: __59("Spacing", "elementor")
4783
5245
  },
4784
5246
  fields: ["margin", "padding"]
4785
5247
  }
4786
- ), /* @__PURE__ */ React80.createElement(
5248
+ ), /* @__PURE__ */ React85.createElement(
4787
5249
  StyleTabSection,
4788
5250
  {
4789
5251
  section: {
4790
5252
  component: SizeSection,
4791
5253
  name: "Size",
4792
- title: __54("Size", "elementor")
5254
+ title: __59("Size", "elementor")
4793
5255
  },
4794
5256
  fields: [
4795
5257
  "width",
@@ -4803,23 +5265,23 @@ var StyleTab = () => {
4803
5265
  "object-fit"
4804
5266
  ]
4805
5267
  }
4806
- ), /* @__PURE__ */ React80.createElement(
5268
+ ), /* @__PURE__ */ React85.createElement(
4807
5269
  StyleTabSection,
4808
5270
  {
4809
5271
  section: {
4810
5272
  component: PositionSection,
4811
5273
  name: "Position",
4812
- title: __54("Position", "elementor")
5274
+ title: __59("Position", "elementor")
4813
5275
  },
4814
5276
  fields: ["position", "z-index", "scroll-margin-top"]
4815
5277
  }
4816
- ), /* @__PURE__ */ React80.createElement(
5278
+ ), /* @__PURE__ */ React85.createElement(
4817
5279
  StyleTabSection,
4818
5280
  {
4819
5281
  section: {
4820
5282
  component: TypographySection,
4821
5283
  name: "Typography",
4822
- title: __54("Typography", "elementor")
5284
+ title: __59("Typography", "elementor")
4823
5285
  },
4824
5286
  fields: [
4825
5287
  "font-family",
@@ -4838,33 +5300,33 @@ var StyleTab = () => {
4838
5300
  "stroke"
4839
5301
  ]
4840
5302
  }
4841
- ), /* @__PURE__ */ React80.createElement(
5303
+ ), /* @__PURE__ */ React85.createElement(
4842
5304
  StyleTabSection,
4843
5305
  {
4844
5306
  section: {
4845
5307
  component: BackgroundSection,
4846
5308
  name: "Background",
4847
- title: __54("Background", "elementor")
5309
+ title: __59("Background", "elementor")
4848
5310
  },
4849
5311
  fields: ["background"]
4850
5312
  }
4851
- ), /* @__PURE__ */ React80.createElement(
5313
+ ), /* @__PURE__ */ React85.createElement(
4852
5314
  StyleTabSection,
4853
5315
  {
4854
5316
  section: {
4855
5317
  component: BorderSection,
4856
5318
  name: "Border",
4857
- title: __54("Border", "elementor")
5319
+ title: __59("Border", "elementor")
4858
5320
  },
4859
5321
  fields: ["border-radius", "border-width", "border-color", "border-style"]
4860
5322
  }
4861
- ), /* @__PURE__ */ React80.createElement(
5323
+ ), /* @__PURE__ */ React85.createElement(
4862
5324
  StyleTabSection,
4863
5325
  {
4864
5326
  section: {
4865
5327
  component: EffectsSection,
4866
5328
  name: "Effects",
4867
- title: __54("Effects", "elementor")
5329
+ title: __59("Effects", "elementor")
4868
5330
  },
4869
5331
  fields: [
4870
5332
  "mix-blend-mode",
@@ -4877,12 +5339,12 @@ var StyleTab = () => {
4877
5339
  "transition"
4878
5340
  ]
4879
5341
  }
4880
- ), /* @__PURE__ */ React80.createElement(StyleTabSlot, null)), /* @__PURE__ */ React80.createElement(Box5, { sx: { height: "150px" } })))
5342
+ ), /* @__PURE__ */ React85.createElement(StyleTabSlot, null)), /* @__PURE__ */ React85.createElement(Box6, { sx: { height: "150px" } })))
4881
5343
  ));
4882
5344
  };
4883
5345
  function ClassesHeader({ children }) {
4884
5346
  const scrollDirection = useScrollDirection();
4885
- return /* @__PURE__ */ React80.createElement(Stack12, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
5347
+ return /* @__PURE__ */ React85.createElement(Stack12, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
4886
5348
  }
4887
5349
  function useCurrentClassesProp() {
4888
5350
  const { elementType } = useElement();
@@ -4901,19 +5363,19 @@ var EditingPanelTabs = () => {
4901
5363
  return (
4902
5364
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
4903
5365
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
4904
- /* @__PURE__ */ React81.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React81.createElement(PanelTabContent, null))
5366
+ /* @__PURE__ */ React86.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React86.createElement(PanelTabContent, null))
4905
5367
  );
4906
5368
  };
4907
5369
  var PanelTabContent = () => {
4908
5370
  const { element } = useElement();
4909
5371
  const editorDefaults = useDefaultPanelSettings();
4910
5372
  const defaultComponentTab = editorDefaults.defaultTab;
4911
- const isInteractionsActive = isExperimentActive("e_interactions");
5373
+ const isInteractionsActive = isExperimentActive3("e_interactions");
4912
5374
  const isPromotedElement = !!getWidgetsCache2()?.[element.type]?.meta?.is_pro_promotion;
4913
5375
  const [storedTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
4914
5376
  const currentTab = isPromotedElement && storedTab === "settings" ? "style" : storedTab;
4915
5377
  const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
4916
- return /* @__PURE__ */ React81.createElement(ScrollProvider, null, /* @__PURE__ */ React81.createElement(Stack13, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React81.createElement(Stack13, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React81.createElement(
5378
+ return /* @__PURE__ */ React86.createElement(ScrollProvider, null, /* @__PURE__ */ React86.createElement(Stack13, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React86.createElement(Stack13, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React86.createElement(
4917
5379
  Tabs,
4918
5380
  {
4919
5381
  variant: "fullWidth",
@@ -4925,10 +5387,10 @@ var PanelTabContent = () => {
4925
5387
  setCurrentTab(newValue);
4926
5388
  }
4927
5389
  },
4928
- !isPromotedElement && /* @__PURE__ */ React81.createElement(Tab, { label: __55("General", "elementor"), ...getTabProps("settings") }),
4929
- /* @__PURE__ */ React81.createElement(Tab, { label: __55("Style", "elementor"), ...getTabProps("style") }),
4930
- isInteractionsActive && /* @__PURE__ */ React81.createElement(Tab, { label: __55("Interactions", "elementor"), ...getTabProps("interactions") })
4931
- ), /* @__PURE__ */ React81.createElement(Divider6, null)), !isPromotedElement && /* @__PURE__ */ React81.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React81.createElement(SettingsTab, null)), /* @__PURE__ */ React81.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React81.createElement(StyleTab, null)), isInteractionsActive && /* @__PURE__ */ React81.createElement(TabPanel, { ...getTabPanelProps("interactions"), disablePadding: true }, /* @__PURE__ */ React81.createElement(InteractionsTab, null))));
5390
+ !isPromotedElement && /* @__PURE__ */ React86.createElement(Tab, { label: __60("General", "elementor"), ...getTabProps("settings") }),
5391
+ /* @__PURE__ */ React86.createElement(Tab, { label: __60("Style", "elementor"), ...getTabProps("style") }),
5392
+ isInteractionsActive && /* @__PURE__ */ React86.createElement(Tab, { label: __60("Interactions", "elementor"), ...getTabProps("interactions") })
5393
+ ), /* @__PURE__ */ React86.createElement(Divider6, null)), !isPromotedElement && /* @__PURE__ */ React86.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React86.createElement(SettingsTab, null)), /* @__PURE__ */ React86.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React86.createElement(StyleTab, null)), isInteractionsActive && /* @__PURE__ */ React86.createElement(TabPanel, { ...getTabPanelProps("interactions"), disablePadding: true }, /* @__PURE__ */ React86.createElement(InteractionsTab, null))));
4932
5394
  };
4933
5395
 
4934
5396
  // src/components/editing-panel.tsx
@@ -4941,13 +5403,13 @@ var EditingPanel = () => {
4941
5403
  if (!element || !elementType) {
4942
5404
  return null;
4943
5405
  }
4944
- const panelTitle = __56("Edit %s", "elementor").replace("%s", elementType.title);
5406
+ const panelTitle = __61("Edit %s", "elementor").replace("%s", elementType.title);
4945
5407
  const { component: ReplacementComponent } = getEditingPanelReplacement(element, elementType) ?? {};
4946
- let panelContent = /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(PanelHeader, null, /* @__PURE__ */ React82.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React82.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React82.createElement(PanelBody, null, /* @__PURE__ */ React82.createElement(EditingPanelTabs, null)));
5408
+ let panelContent = /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(PanelHeader, null, /* @__PURE__ */ React87.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React87.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React87.createElement(PanelBody, null, /* @__PURE__ */ React87.createElement(EditingPanelTabs, null)));
4947
5409
  if (ReplacementComponent) {
4948
- panelContent = /* @__PURE__ */ React82.createElement(ReplacementComponent, null);
5410
+ panelContent = /* @__PURE__ */ React87.createElement(ReplacementComponent, null);
4949
5411
  }
4950
- return /* @__PURE__ */ React82.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React82.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React82.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React82.createElement(ThemeProvider3, null, /* @__PURE__ */ React82.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React82.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React82.createElement(ElementProvider, { element, elementType, settings }, /* @__PURE__ */ React82.createElement(Panel, null, /* @__PURE__ */ React82.createElement(PanelHeaderTopSlot, null), panelContent)))))));
5412
+ return /* @__PURE__ */ React87.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React87.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React87.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React87.createElement(ThemeProvider3, null, /* @__PURE__ */ React87.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React87.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React87.createElement(ElementProvider, { element, elementType, settings }, /* @__PURE__ */ React87.createElement(Panel, null, /* @__PURE__ */ React87.createElement(PanelHeaderTopSlot, null), panelContent)))))));
4951
5413
  };
4952
5414
 
4953
5415
  // src/init.ts
@@ -4956,7 +5418,7 @@ import { __registerPanel as registerPanel } from "@elementor/editor-panels";
4956
5418
  import { blockCommand } from "@elementor/editor-v1-adapters";
4957
5419
 
4958
5420
  // src/hooks/use-open-editor-panel.ts
4959
- import { useEffect as useEffect7 } from "react";
5421
+ import { useEffect as useEffect8 } from "react";
4960
5422
  import { __privateListenTo as listenTo, commandStartEvent } from "@elementor/editor-v1-adapters";
4961
5423
 
4962
5424
  // src/panel.ts
@@ -4980,7 +5442,7 @@ var isAtomicWidgetSelected = () => {
4980
5442
  // src/hooks/use-open-editor-panel.ts
4981
5443
  var useOpenEditorPanel = () => {
4982
5444
  const { open } = usePanelActions();
4983
- useEffect7(() => {
5445
+ useEffect8(() => {
4984
5446
  return listenTo(commandStartEvent("panel/editor/open"), () => {
4985
5447
  if (isAtomicWidgetSelected()) {
4986
5448
  open();
@@ -4999,21 +5461,21 @@ var EditingPanelHooks = () => {
4999
5461
  import { AttributesControl, DisplayConditionsControl } from "@elementor/editor-controls";
5000
5462
 
5001
5463
  // src/components/promotions/custom-css.tsx
5002
- import * as React83 from "react";
5003
- import { useRef as useRef16 } from "react";
5464
+ import * as React88 from "react";
5465
+ import { useRef as useRef18 } from "react";
5004
5466
  import { PromotionTrigger } from "@elementor/editor-controls";
5005
- import { __ as __57 } from "@wordpress/i18n";
5467
+ import { __ as __62 } from "@wordpress/i18n";
5006
5468
  var TRACKING_DATA = { target_name: "custom_css", location_l2: "style" };
5007
5469
  var CustomCssSection = () => {
5008
- const triggerRef = useRef16(null);
5009
- return /* @__PURE__ */ React83.createElement(
5470
+ const triggerRef = useRef18(null);
5471
+ return /* @__PURE__ */ React88.createElement(
5010
5472
  StyleTabSection,
5011
5473
  {
5012
5474
  section: {
5013
5475
  name: "Custom CSS",
5014
- title: __57("Custom CSS", "elementor"),
5476
+ title: __62("Custom CSS", "elementor"),
5015
5477
  action: {
5016
- component: /* @__PURE__ */ React83.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "customCss", trackingData: TRACKING_DATA }),
5478
+ component: /* @__PURE__ */ React88.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "customCss", trackingData: TRACKING_DATA }),
5017
5479
  onClick: () => triggerRef.current?.toggle()
5018
5480
  }
5019
5481
  }
@@ -5023,19 +5485,19 @@ var CustomCssSection = () => {
5023
5485
 
5024
5486
  // src/components/promotions/init.tsx
5025
5487
  var init = () => {
5488
+ injectIntoStyleTab({
5489
+ id: "custom-css",
5490
+ component: CustomCssSection,
5491
+ options: { overwrite: true }
5492
+ });
5026
5493
  if (!window.elementorPro) {
5027
- injectIntoStyleTab({
5028
- id: "custom-css",
5029
- component: CustomCssSection,
5030
- options: { overwrite: true }
5031
- });
5032
5494
  controlsRegistry.register("attributes", AttributesControl, "two-columns");
5033
5495
  controlsRegistry.register("display-conditions", DisplayConditionsControl, "two-columns");
5034
5496
  }
5035
5497
  };
5036
5498
 
5037
5499
  // src/controls-registry/element-controls/tabs-control/tabs-control.tsx
5038
- import * as React84 from "react";
5500
+ import * as React89 from "react";
5039
5501
  import {
5040
5502
  ControlFormLabel as ControlFormLabel3,
5041
5503
  Repeater,
@@ -5047,9 +5509,9 @@ import {
5047
5509
  useElementEditorSettings
5048
5510
  } from "@elementor/editor-elements";
5049
5511
  import { numberPropTypeUtil as numberPropTypeUtil4 } from "@elementor/editor-props";
5050
- import { InfoCircleFilledIcon } from "@elementor/icons";
5051
- import { Alert as Alert2, Chip as Chip4, Infotip, Stack as Stack14, Switch, TextField as TextField2, Typography as Typography4 } from "@elementor/ui";
5052
- import { __ as __59 } from "@wordpress/i18n";
5512
+ import { InfoCircleFilledIcon as InfoCircleFilledIcon2 } from "@elementor/icons";
5513
+ import { Alert as Alert3, Chip as Chip4, Infotip as Infotip2, Stack as Stack14, Switch, TextField as TextField2, Typography as Typography4 } from "@elementor/ui";
5514
+ import { __ as __64 } from "@wordpress/i18n";
5053
5515
 
5054
5516
  // src/controls-registry/element-controls/get-element-by-type.ts
5055
5517
  import { getContainer as getContainer2 } from "@elementor/editor-elements";
@@ -5074,7 +5536,7 @@ import {
5074
5536
  removeElements
5075
5537
  } from "@elementor/editor-elements";
5076
5538
  import { numberPropTypeUtil as numberPropTypeUtil3 } from "@elementor/editor-props";
5077
- import { __ as __58 } from "@wordpress/i18n";
5539
+ import { __ as __63 } from "@wordpress/i18n";
5078
5540
  var TAB_ELEMENT_TYPE = "e-tab";
5079
5541
  var TAB_CONTENT_ELEMENT_TYPE = "e-tab-content";
5080
5542
  var useActions = () => {
@@ -5097,7 +5559,7 @@ var useActions = () => {
5097
5559
  }
5098
5560
  duplicateElements({
5099
5561
  elementIds: [tabId, tabContentId],
5100
- title: __58("Duplicate Tab", "elementor"),
5562
+ title: __63("Duplicate Tab", "elementor"),
5101
5563
  onDuplicateElements: () => {
5102
5564
  if (newDefault !== defaultActiveTab) {
5103
5565
  setDefaultActiveTab(newDefault, {}, { withHistory: false });
@@ -5134,7 +5596,7 @@ var useActions = () => {
5134
5596
  defaultActiveTab
5135
5597
  });
5136
5598
  moveElements({
5137
- title: __58("Reorder Tabs", "elementor"),
5599
+ title: __63("Reorder Tabs", "elementor"),
5138
5600
  moves: [
5139
5601
  {
5140
5602
  element: movedElement,
@@ -5168,7 +5630,7 @@ var useActions = () => {
5168
5630
  defaultActiveTab
5169
5631
  });
5170
5632
  removeElements({
5171
- title: __58("Tabs", "elementor"),
5633
+ title: __63("Tabs", "elementor"),
5172
5634
  elementIds: items3.flatMap(({ item, index }) => {
5173
5635
  const tabId = item.id;
5174
5636
  const tabContentContainer = getContainer3(tabContentAreaId);
@@ -5203,7 +5665,7 @@ var useActions = () => {
5203
5665
  items3.forEach(({ index }) => {
5204
5666
  const position = index + 1;
5205
5667
  createElements({
5206
- title: __58("Tabs", "elementor"),
5668
+ title: __63("Tabs", "elementor"),
5207
5669
  elements: [
5208
5670
  {
5209
5671
  container: tabContentArea,
@@ -5272,7 +5734,7 @@ var calculateDefaultOnDuplicate = ({
5272
5734
  var TAB_MENU_ELEMENT_TYPE = "e-tabs-menu";
5273
5735
  var TAB_CONTENT_AREA_ELEMENT_TYPE = "e-tabs-content-area";
5274
5736
  var TabsControl = ({ label }) => {
5275
- return /* @__PURE__ */ React84.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __59("Tabs", "elementor") }, /* @__PURE__ */ React84.createElement(TabsControlContent, { label }));
5737
+ return /* @__PURE__ */ React89.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __64("Tabs", "elementor") }, /* @__PURE__ */ React89.createElement(TabsControlContent, { label }));
5276
5738
  };
5277
5739
  var TabsControlContent = ({ label }) => {
5278
5740
  const { element } = useElement();
@@ -5316,7 +5778,7 @@ var TabsControlContent = ({ label }) => {
5316
5778
  });
5317
5779
  }
5318
5780
  };
5319
- return /* @__PURE__ */ React84.createElement(
5781
+ return /* @__PURE__ */ React89.createElement(
5320
5782
  Repeater,
5321
5783
  {
5322
5784
  showToggle: false,
@@ -5336,7 +5798,7 @@ var TabsControlContent = ({ label }) => {
5336
5798
  };
5337
5799
  var ItemLabel = ({ value, index }) => {
5338
5800
  const elementTitle = value?.title;
5339
- return /* @__PURE__ */ React84.createElement(Stack14, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React84.createElement("span", null, elementTitle), /* @__PURE__ */ React84.createElement(ItemDefaultTab, { index }));
5801
+ return /* @__PURE__ */ React89.createElement(Stack14, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React89.createElement("span", null, elementTitle), /* @__PURE__ */ React89.createElement(ItemDefaultTab, { index }));
5340
5802
  };
5341
5803
  var ItemDefaultTab = ({ index }) => {
5342
5804
  const { value: defaultItem } = useBoundProp5(numberPropTypeUtil4);
@@ -5344,18 +5806,18 @@ var ItemDefaultTab = ({ index }) => {
5344
5806
  if (!isDefault) {
5345
5807
  return null;
5346
5808
  }
5347
- return /* @__PURE__ */ React84.createElement(Chip4, { size: "tiny", shape: "rounded", label: __59("Default", "elementor") });
5809
+ return /* @__PURE__ */ React89.createElement(Chip4, { size: "tiny", shape: "rounded", label: __64("Default", "elementor") });
5348
5810
  };
5349
5811
  var ItemContent = ({ value, index }) => {
5350
5812
  if (!value.id) {
5351
5813
  return null;
5352
5814
  }
5353
- return /* @__PURE__ */ React84.createElement(Stack14, { p: 2, gap: 1.5 }, /* @__PURE__ */ React84.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React84.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __59("Tabs", "elementor") }, /* @__PURE__ */ React84.createElement(DefaultTabControl, { tabIndex: index })));
5815
+ return /* @__PURE__ */ React89.createElement(Stack14, { p: 2, gap: 1.5 }, /* @__PURE__ */ React89.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React89.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __64("Tabs", "elementor") }, /* @__PURE__ */ React89.createElement(DefaultTabControl, { tabIndex: index })));
5354
5816
  };
5355
5817
  var DefaultTabControl = ({ tabIndex }) => {
5356
5818
  const { value, setValue } = useBoundProp5(numberPropTypeUtil4);
5357
5819
  const isDefault = value === tabIndex;
5358
- return /* @__PURE__ */ React84.createElement(Stack14, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React84.createElement(ControlFormLabel3, null, __59("Set as default tab", "elementor")), /* @__PURE__ */ React84.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React84.createElement(
5820
+ return /* @__PURE__ */ React89.createElement(Stack14, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React89.createElement(ControlFormLabel3, null, __64("Set as default tab", "elementor")), /* @__PURE__ */ React89.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React89.createElement(
5359
5821
  Switch,
5360
5822
  {
5361
5823
  size: "small",
@@ -5373,7 +5835,7 @@ var DefaultTabControl = ({ tabIndex }) => {
5373
5835
  var TabLabelControl = ({ elementId }) => {
5374
5836
  const editorSettings = useElementEditorSettings(elementId);
5375
5837
  const label = editorSettings?.title ?? "";
5376
- return /* @__PURE__ */ React84.createElement(Stack14, { gap: 1 }, /* @__PURE__ */ React84.createElement(ControlFormLabel3, null, __59("Tab name", "elementor")), /* @__PURE__ */ React84.createElement(
5838
+ return /* @__PURE__ */ React89.createElement(Stack14, { gap: 1 }, /* @__PURE__ */ React89.createElement(ControlFormLabel3, null, __64("Tab name", "elementor")), /* @__PURE__ */ React89.createElement(
5377
5839
  TextField2,
5378
5840
  {
5379
5841
  size: "tiny",
@@ -5394,22 +5856,22 @@ var ConditionalTooltip = ({
5394
5856
  if (!showTooltip) {
5395
5857
  return children;
5396
5858
  }
5397
- return /* @__PURE__ */ React84.createElement(
5398
- Infotip,
5859
+ return /* @__PURE__ */ React89.createElement(
5860
+ Infotip2,
5399
5861
  {
5400
5862
  arrow: false,
5401
- content: /* @__PURE__ */ React84.createElement(
5402
- Alert2,
5863
+ content: /* @__PURE__ */ React89.createElement(
5864
+ Alert3,
5403
5865
  {
5404
5866
  color: "secondary",
5405
- icon: /* @__PURE__ */ React84.createElement(InfoCircleFilledIcon, { fontSize: "tiny" }),
5867
+ icon: /* @__PURE__ */ React89.createElement(InfoCircleFilledIcon2, { fontSize: "tiny" }),
5406
5868
  size: "small",
5407
5869
  sx: { width: 288 }
5408
5870
  },
5409
- /* @__PURE__ */ React84.createElement(Typography4, { variant: "body2" }, __59("To change the default tab, simply set another tab as default.", "elementor"))
5871
+ /* @__PURE__ */ React89.createElement(Typography4, { variant: "body2" }, __64("To change the default tab, simply set another tab as default.", "elementor"))
5410
5872
  )
5411
5873
  },
5412
- /* @__PURE__ */ React84.createElement("span", null, children)
5874
+ /* @__PURE__ */ React89.createElement("span", null, children)
5413
5875
  );
5414
5876
  };
5415
5877
 
@@ -5435,7 +5897,7 @@ import {
5435
5897
  import { controlActionsMenu as controlActionsMenu2 } from "@elementor/menus";
5436
5898
 
5437
5899
  // src/dynamics/components/background-control-dynamic-tag.tsx
5438
- import * as React85 from "react";
5900
+ import * as React90 from "react";
5439
5901
  import { PropKeyProvider as PropKeyProvider4, PropProvider as PropProvider4, useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
5440
5902
  import {
5441
5903
  backgroundImageOverlayPropTypeUtil
@@ -5443,10 +5905,10 @@ import {
5443
5905
  import { DatabaseIcon } from "@elementor/icons";
5444
5906
 
5445
5907
  // src/dynamics/hooks/use-dynamic-tag.ts
5446
- import { useMemo as useMemo11 } from "react";
5908
+ import { useMemo as useMemo13 } from "react";
5447
5909
 
5448
5910
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
5449
- import { useMemo as useMemo10 } from "react";
5911
+ import { useMemo as useMemo12 } from "react";
5450
5912
  import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
5451
5913
 
5452
5914
  // src/dynamics/sync/get-atomic-dynamic-tags.ts
@@ -5497,7 +5959,7 @@ var filterByLicense = (tags) => {
5497
5959
  // src/dynamics/utils.ts
5498
5960
  import {
5499
5961
  createPropUtils,
5500
- isTransformable as isTransformable2
5962
+ isTransformable as isTransformable3
5501
5963
  } from "@elementor/editor-props";
5502
5964
  import { getElementorConfig as getElementorConfig2 } from "@elementor/editor-v1-adapters";
5503
5965
  import { z } from "@elementor/schema";
@@ -5519,7 +5981,7 @@ var getDynamicPropType = (propType) => {
5519
5981
  return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
5520
5982
  };
5521
5983
  var isDynamicPropValue = (prop) => {
5522
- return isTransformable2(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
5984
+ return isTransformable3(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
5523
5985
  };
5524
5986
  var supportsDynamic = (propType) => {
5525
5987
  return !!getDynamicPropType(propType);
@@ -5540,7 +6002,7 @@ var usePropDynamicTagsInternal = (filterByLicense2) => {
5540
6002
  categories = propDynamicType?.settings.categories || [];
5541
6003
  }
5542
6004
  const categoriesKey = categories.join();
5543
- return useMemo10(
6005
+ return useMemo12(
5544
6006
  () => getDynamicTagsByCategories(categories, filterByLicense2),
5545
6007
  // eslint-disable-next-line react-hooks/exhaustive-deps
5546
6008
  [categoriesKey, filterByLicense2]
@@ -5574,28 +6036,28 @@ var getDynamicTagsByCategories = (categories, filterByLicense2) => {
5574
6036
  // src/dynamics/hooks/use-dynamic-tag.ts
5575
6037
  var useDynamicTag = (tagName) => {
5576
6038
  const dynamicTags = useAllPropDynamicTags();
5577
- return useMemo11(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
6039
+ return useMemo13(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
5578
6040
  };
5579
6041
 
5580
6042
  // src/dynamics/components/background-control-dynamic-tag.tsx
5581
- var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React85.createElement(DatabaseIcon, { fontSize: "tiny" });
6043
+ var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React90.createElement(DatabaseIcon, { fontSize: "tiny" });
5582
6044
  var BackgroundControlDynamicTagLabel = ({ value }) => {
5583
6045
  const context = useBoundProp7(backgroundImageOverlayPropTypeUtil);
5584
- return /* @__PURE__ */ React85.createElement(PropProvider4, { ...context, value: value.value }, /* @__PURE__ */ React85.createElement(PropKeyProvider4, { bind: "image" }, /* @__PURE__ */ React85.createElement(Wrapper2, { rawValue: value.value })));
6046
+ return /* @__PURE__ */ React90.createElement(PropProvider4, { ...context, value: value.value }, /* @__PURE__ */ React90.createElement(PropKeyProvider4, { bind: "image" }, /* @__PURE__ */ React90.createElement(Wrapper2, { rawValue: value.value })));
5585
6047
  };
5586
6048
  var Wrapper2 = ({ rawValue }) => {
5587
6049
  const { propType } = useBoundProp7();
5588
6050
  const imageOverlayPropType = propType.prop_types["background-image-overlay"];
5589
- return /* @__PURE__ */ React85.createElement(PropProvider4, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React85.createElement(PropKeyProvider4, { bind: "src" }, /* @__PURE__ */ React85.createElement(Content, { rawValue: rawValue.image })));
6051
+ return /* @__PURE__ */ React90.createElement(PropProvider4, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React90.createElement(PropKeyProvider4, { bind: "src" }, /* @__PURE__ */ React90.createElement(Content, { rawValue: rawValue.image })));
5590
6052
  };
5591
6053
  var Content = ({ rawValue }) => {
5592
6054
  const src = rawValue.value.src;
5593
6055
  const dynamicTag = useDynamicTag(src.value.name || "");
5594
- return /* @__PURE__ */ React85.createElement(React85.Fragment, null, dynamicTag?.label);
6056
+ return /* @__PURE__ */ React90.createElement(React90.Fragment, null, dynamicTag?.label);
5595
6057
  };
5596
6058
 
5597
6059
  // src/dynamics/components/dynamic-selection-control.tsx
5598
- import * as React89 from "react";
6060
+ import * as React94 from "react";
5599
6061
  import {
5600
6062
  ControlFormLabel as ControlFormLabel4,
5601
6063
  PropKeyProvider as PropKeyProvider6,
@@ -5607,9 +6069,9 @@ import { DatabaseIcon as DatabaseIcon3, SettingsIcon, XIcon } from "@elementor/i
5607
6069
  import {
5608
6070
  bindPopover,
5609
6071
  bindTrigger as bindTrigger2,
5610
- Box as Box6,
6072
+ Box as Box7,
5611
6073
  Divider as Divider8,
5612
- Grid as Grid5,
6074
+ Grid as Grid8,
5613
6075
  IconButton as IconButton2,
5614
6076
  Popover,
5615
6077
  Stack as Stack16,
@@ -5620,7 +6082,7 @@ import {
5620
6082
  usePopupState as usePopupState2,
5621
6083
  useTabs as useTabs2
5622
6084
  } from "@elementor/ui";
5623
- import { __ as __61 } from "@wordpress/i18n";
6085
+ import { __ as __66 } from "@wordpress/i18n";
5624
6086
 
5625
6087
  // src/hooks/use-persist-dynamic-value.ts
5626
6088
  import { useSessionStorage as useSessionStorage5 } from "@elementor/session";
@@ -5631,12 +6093,12 @@ var usePersistDynamicValue = (propKey) => {
5631
6093
  };
5632
6094
 
5633
6095
  // src/dynamics/dynamic-control.tsx
5634
- import * as React87 from "react";
6096
+ import * as React92 from "react";
5635
6097
  import { PropKeyProvider as PropKeyProvider5, PropProvider as PropProvider5, useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
5636
6098
 
5637
6099
  // src/dynamics/components/dynamic-conditional-control.tsx
5638
- import * as React86 from "react";
5639
- import { useMemo as useMemo12 } from "react";
6100
+ import * as React91 from "react";
6101
+ import { useMemo as useMemo14 } from "react";
5640
6102
  import { isDependencyMet as isDependencyMet3 } from "@elementor/editor-props";
5641
6103
  var DynamicConditionalControl = ({
5642
6104
  children,
@@ -5644,7 +6106,7 @@ var DynamicConditionalControl = ({
5644
6106
  propsSchema,
5645
6107
  dynamicSettings
5646
6108
  }) => {
5647
- const defaults = useMemo12(() => {
6109
+ const defaults = useMemo14(() => {
5648
6110
  if (!propsSchema) {
5649
6111
  return {};
5650
6112
  }
@@ -5654,7 +6116,7 @@ var DynamicConditionalControl = ({
5654
6116
  return result;
5655
6117
  }, {});
5656
6118
  }, [propsSchema]);
5657
- const convertedSettings = useMemo12(() => {
6119
+ const convertedSettings = useMemo14(() => {
5658
6120
  if (!dynamicSettings) {
5659
6121
  return {};
5660
6122
  }
@@ -5673,14 +6135,14 @@ var DynamicConditionalControl = ({
5673
6135
  {}
5674
6136
  );
5675
6137
  }, [dynamicSettings]);
5676
- const effectiveSettings = useMemo12(() => {
6138
+ const effectiveSettings = useMemo14(() => {
5677
6139
  return { ...defaults, ...convertedSettings };
5678
6140
  }, [defaults, convertedSettings]);
5679
6141
  if (!propType?.dependencies?.terms.length) {
5680
- return /* @__PURE__ */ React86.createElement(React86.Fragment, null, children);
6142
+ return /* @__PURE__ */ React91.createElement(React91.Fragment, null, children);
5681
6143
  }
5682
6144
  const isHidden = !isDependencyMet3(propType?.dependencies, effectiveSettings).isMet;
5683
- return isHidden ? null : /* @__PURE__ */ React86.createElement(React86.Fragment, null, children);
6145
+ return isHidden ? null : /* @__PURE__ */ React91.createElement(React91.Fragment, null, children);
5684
6146
  };
5685
6147
 
5686
6148
  // src/dynamics/dynamic-control.tsx
@@ -5705,7 +6167,7 @@ var DynamicControl = ({ bind, children }) => {
5705
6167
  });
5706
6168
  };
5707
6169
  const propType = createTopLevelObjectType({ schema: dynamicTag.props_schema });
5708
- return /* @__PURE__ */ React87.createElement(PropProvider5, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React87.createElement(PropKeyProvider5, { bind }, /* @__PURE__ */ React87.createElement(
6170
+ return /* @__PURE__ */ React92.createElement(PropProvider5, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React92.createElement(PropKeyProvider5, { bind }, /* @__PURE__ */ React92.createElement(
5709
6171
  DynamicConditionalControl,
5710
6172
  {
5711
6173
  propType: dynamicPropType,
@@ -5717,13 +6179,13 @@ var DynamicControl = ({ bind, children }) => {
5717
6179
  };
5718
6180
 
5719
6181
  // src/dynamics/components/dynamic-selection.tsx
5720
- import * as React88 from "react";
5721
- import { Fragment as Fragment14, useEffect as useEffect8, useState as useState10 } from "react";
6182
+ import * as React93 from "react";
6183
+ import { Fragment as Fragment14, useEffect as useEffect9, useState as useState10 } from "react";
5722
6184
  import { trackUpgradePromotionClick, trackViewPromotion, useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
5723
6185
  import { CtaButton, PopoverHeader, PopoverMenuList, SearchField, SectionPopoverBody } from "@elementor/editor-ui";
5724
6186
  import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
5725
6187
  import { Divider as Divider7, Link as Link2, Stack as Stack15, Typography as Typography5, useTheme as useTheme3 } from "@elementor/ui";
5726
- import { __ as __60 } from "@wordpress/i18n";
6188
+ import { __ as __65 } from "@wordpress/i18n";
5727
6189
  var SIZE2 = "tiny";
5728
6190
  var PROMO_TEXT_WIDTH = 170;
5729
6191
  var PRO_DYNAMIC_TAGS_URL = "https://go.elementor.com/go-pro-dynamic-tags-modal/";
@@ -5736,9 +6198,9 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
5736
6198
  const { bind, value: dynamicValue, setValue } = useBoundProp9(dynamicPropTypeUtil);
5737
6199
  const [, updatePropValueHistory] = usePersistDynamicValue(bind);
5738
6200
  const isCurrentValueDynamic = !!dynamicValue;
5739
- const options12 = useFilteredOptions(searchValue);
5740
- const hasNoDynamicTags = !options12.length && !searchValue.trim();
5741
- useEffect8(() => {
6201
+ const options13 = useFilteredOptions(searchValue);
6202
+ const hasNoDynamicTags = !options13.length && !searchValue.trim();
6203
+ useEffect9(() => {
5742
6204
  if (hasNoDynamicTags) {
5743
6205
  trackViewPromotion({ target_name: "dynamic_tags" });
5744
6206
  } else if (expired) {
@@ -5752,11 +6214,11 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
5752
6214
  if (!isCurrentValueDynamic) {
5753
6215
  updatePropValueHistory(anyValue);
5754
6216
  }
5755
- const selectedOption = options12.flatMap(([, items3]) => items3).find((item) => item.value === value);
6217
+ const selectedOption = options13.flatMap(([, items3]) => items3).find((item) => item.value === value);
5756
6218
  setValue({ name: value, group: selectedOption?.group ?? "", settings: { label: selectedOption?.label } });
5757
6219
  closePopover();
5758
6220
  };
5759
- const virtualizedItems = options12.flatMap(([category, items3]) => [
6221
+ const virtualizedItems = options13.flatMap(([category, items3]) => [
5760
6222
  {
5761
6223
  type: "category",
5762
6224
  value: category,
@@ -5770,19 +6232,19 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
5770
6232
  ]);
5771
6233
  const getPopOverContent = () => {
5772
6234
  if (hasNoDynamicTags) {
5773
- return /* @__PURE__ */ React88.createElement(NoDynamicTags, null);
6235
+ return /* @__PURE__ */ React93.createElement(NoDynamicTags, null);
5774
6236
  }
5775
6237
  if (expired) {
5776
- return /* @__PURE__ */ React88.createElement(ExpiredDynamicTags, null);
6238
+ return /* @__PURE__ */ React93.createElement(ExpiredDynamicTags, null);
5777
6239
  }
5778
- return /* @__PURE__ */ React88.createElement(Fragment14, null, /* @__PURE__ */ React88.createElement(
6240
+ return /* @__PURE__ */ React93.createElement(Fragment14, null, /* @__PURE__ */ React93.createElement(
5779
6241
  SearchField,
5780
6242
  {
5781
6243
  value: searchValue,
5782
6244
  onSearch: handleSearch,
5783
- placeholder: __60("Search dynamic tags\u2026", "elementor")
6245
+ placeholder: __65("Search dynamic tags\u2026", "elementor")
5784
6246
  }
5785
- ), /* @__PURE__ */ React88.createElement(Divider7, null), /* @__PURE__ */ React88.createElement(
6247
+ ), /* @__PURE__ */ React93.createElement(Divider7, null), /* @__PURE__ */ React93.createElement(
5786
6248
  PopoverMenuList,
5787
6249
  {
5788
6250
  items: virtualizedItems,
@@ -5790,20 +6252,20 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
5790
6252
  onClose: closePopover,
5791
6253
  selectedValue: dynamicValue?.name,
5792
6254
  itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
5793
- noResultsComponent: /* @__PURE__ */ React88.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
6255
+ noResultsComponent: /* @__PURE__ */ React93.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
5794
6256
  }
5795
6257
  ));
5796
6258
  };
5797
- return /* @__PURE__ */ React88.createElement(SectionPopoverBody, { "aria-label": __60("Dynamic tags", "elementor") }, /* @__PURE__ */ React88.createElement(
6259
+ return /* @__PURE__ */ React93.createElement(SectionPopoverBody, { "aria-label": __65("Dynamic tags", "elementor") }, /* @__PURE__ */ React93.createElement(
5798
6260
  PopoverHeader,
5799
6261
  {
5800
- title: __60("Dynamic tags", "elementor"),
6262
+ title: __65("Dynamic tags", "elementor"),
5801
6263
  onClose: closePopover,
5802
- icon: /* @__PURE__ */ React88.createElement(DatabaseIcon2, { fontSize: SIZE2 })
6264
+ icon: /* @__PURE__ */ React93.createElement(DatabaseIcon2, { fontSize: SIZE2 })
5803
6265
  }
5804
6266
  ), getPopOverContent());
5805
6267
  };
5806
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React88.createElement(
6268
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React93.createElement(
5807
6269
  Stack15,
5808
6270
  {
5809
6271
  gap: 1,
@@ -5814,11 +6276,11 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React88.createElem
5814
6276
  color: "text.secondary",
5815
6277
  sx: { pb: 3.5 }
5816
6278
  },
5817
- /* @__PURE__ */ React88.createElement(DatabaseIcon2, { fontSize: "large" }),
5818
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "subtitle2" }, __60("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React88.createElement("br", null), "\u201C", searchValue, "\u201D."),
5819
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __60("Try something else.", "elementor"), /* @__PURE__ */ React88.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __60("Clear & try again", "elementor")))
6279
+ /* @__PURE__ */ React93.createElement(DatabaseIcon2, { fontSize: "large" }),
6280
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "subtitle2" }, __65("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React93.createElement("br", null), "\u201C", searchValue, "\u201D."),
6281
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __65("Try something else.", "elementor"), /* @__PURE__ */ React93.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __65("Clear & try again", "elementor")))
5820
6282
  );
5821
- var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(React88.Fragment, null, /* @__PURE__ */ React88.createElement(Divider7, null), /* @__PURE__ */ React88.createElement(
6283
+ var NoDynamicTags = () => /* @__PURE__ */ React93.createElement(React93.Fragment, null, /* @__PURE__ */ React93.createElement(Divider7, null), /* @__PURE__ */ React93.createElement(
5822
6284
  Stack15,
5823
6285
  {
5824
6286
  gap: 1,
@@ -5829,10 +6291,10 @@ var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(React88.Fragment
5829
6291
  color: "text.secondary",
5830
6292
  sx: { pb: 3.5 }
5831
6293
  },
5832
- /* @__PURE__ */ React88.createElement(DatabaseIcon2, { fontSize: "large" }),
5833
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "subtitle2" }, __60("Streamline your workflow with dynamic tags", "elementor")),
5834
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __60("Upgrade now to display your content dynamically.", "elementor")),
5835
- /* @__PURE__ */ React88.createElement(
6294
+ /* @__PURE__ */ React93.createElement(DatabaseIcon2, { fontSize: "large" }),
6295
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "subtitle2" }, __65("Streamline your workflow with dynamic tags", "elementor")),
6296
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __65("Upgrade now to display your content dynamically.", "elementor")),
6297
+ /* @__PURE__ */ React93.createElement(
5836
6298
  CtaButton,
5837
6299
  {
5838
6300
  size: "small",
@@ -5841,7 +6303,7 @@ var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(React88.Fragment
5841
6303
  }
5842
6304
  )
5843
6305
  ));
5844
- var ExpiredDynamicTags = () => /* @__PURE__ */ React88.createElement(React88.Fragment, null, /* @__PURE__ */ React88.createElement(Divider7, null), /* @__PURE__ */ React88.createElement(
6306
+ var ExpiredDynamicTags = () => /* @__PURE__ */ React93.createElement(React93.Fragment, null, /* @__PURE__ */ React93.createElement(Divider7, null), /* @__PURE__ */ React93.createElement(
5845
6307
  Stack15,
5846
6308
  {
5847
6309
  gap: 1,
@@ -5852,22 +6314,22 @@ var ExpiredDynamicTags = () => /* @__PURE__ */ React88.createElement(React88.Fra
5852
6314
  color: "text.secondary",
5853
6315
  sx: { pb: 3.5 }
5854
6316
  },
5855
- /* @__PURE__ */ React88.createElement(DatabaseIcon2, { fontSize: "large" }),
5856
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "subtitle2" }, __60("Unlock your Dynamic tags again", "elementor")),
5857
- /* @__PURE__ */ React88.createElement(Typography5, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __60("Dynamic tags need Elementor Pro. Renew now to keep them active.", "elementor")),
5858
- /* @__PURE__ */ React88.createElement(
6317
+ /* @__PURE__ */ React93.createElement(DatabaseIcon2, { fontSize: "large" }),
6318
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "subtitle2" }, __65("Unlock your Dynamic tags again", "elementor")),
6319
+ /* @__PURE__ */ React93.createElement(Typography5, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __65("Dynamic tags need Elementor Pro. Renew now to keep them active.", "elementor")),
6320
+ /* @__PURE__ */ React93.createElement(
5859
6321
  CtaButton,
5860
6322
  {
5861
6323
  size: "small",
5862
6324
  href: RENEW_DYNAMIC_TAGS_URL,
5863
6325
  onClick: () => trackUpgradePromotionClick({ target_name: "dynamic_tags" }),
5864
- children: __60("Renew Now", "elementor")
6326
+ children: __65("Renew Now", "elementor")
5865
6327
  }
5866
6328
  )
5867
6329
  ));
5868
6330
  var useFilteredOptions = (searchValue) => {
5869
6331
  const dynamicTags = usePropDynamicTags();
5870
- const options12 = dynamicTags.reduce((categories, { name, label, group }) => {
6332
+ const options13 = dynamicTags.reduce((categories, { name, label, group }) => {
5871
6333
  const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
5872
6334
  if (!isVisible) {
5873
6335
  return categories;
@@ -5878,7 +6340,7 @@ var useFilteredOptions = (searchValue) => {
5878
6340
  categories.get(group)?.push({ label, group, value: name });
5879
6341
  return categories;
5880
6342
  }, /* @__PURE__ */ new Map());
5881
- return [...options12];
6343
+ return [...options13];
5882
6344
  };
5883
6345
 
5884
6346
  // src/dynamics/components/dynamic-selection-control.tsx
@@ -5898,7 +6360,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
5898
6360
  const { name: tagName = "" } = value;
5899
6361
  const dynamicTag = useDynamicTag(tagName);
5900
6362
  if (!isDynamicTagSupported(tagName) && OriginalControl) {
5901
- return /* @__PURE__ */ React89.createElement(PropProvider6, { propType: originalPropType, value: { [bind]: null }, setValue: setAnyValue }, /* @__PURE__ */ React89.createElement(PropKeyProvider6, { bind }, /* @__PURE__ */ React89.createElement(OriginalControl, { ...props })));
6363
+ return /* @__PURE__ */ React94.createElement(PropProvider6, { propType: originalPropType, value: { [bind]: null }, setValue: setAnyValue }, /* @__PURE__ */ React94.createElement(PropKeyProvider6, { bind }, /* @__PURE__ */ React94.createElement(OriginalControl, { ...props })));
5902
6364
  }
5903
6365
  const removeDynamicTag = () => {
5904
6366
  setAnyValue(propValueFromHistory ?? null);
@@ -5906,25 +6368,25 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
5906
6368
  if (!dynamicTag) {
5907
6369
  throw new Error(`Dynamic tag ${tagName} not found`);
5908
6370
  }
5909
- return /* @__PURE__ */ React89.createElement(Box6, null, /* @__PURE__ */ React89.createElement(
6371
+ return /* @__PURE__ */ React94.createElement(Box7, null, /* @__PURE__ */ React94.createElement(
5910
6372
  Tag,
5911
6373
  {
5912
6374
  fullWidth: true,
5913
6375
  showActionsOnHover: true,
5914
6376
  label: dynamicTag.label,
5915
- startIcon: /* @__PURE__ */ React89.createElement(DatabaseIcon3, { fontSize: SIZE3 }),
6377
+ startIcon: /* @__PURE__ */ React94.createElement(DatabaseIcon3, { fontSize: SIZE3 }),
5916
6378
  ...bindTrigger2(selectionPopoverState),
5917
- actions: /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(DynamicSettingsPopover, { dynamicTag, disabled: readonly }), /* @__PURE__ */ React89.createElement(
6379
+ actions: /* @__PURE__ */ React94.createElement(React94.Fragment, null, /* @__PURE__ */ React94.createElement(DynamicSettingsPopover, { dynamicTag, disabled: readonly }), /* @__PURE__ */ React94.createElement(
5918
6380
  IconButton2,
5919
6381
  {
5920
6382
  size: SIZE3,
5921
6383
  onClick: removeDynamicTag,
5922
- "aria-label": __61("Remove dynamic value", "elementor")
6384
+ "aria-label": __66("Remove dynamic value", "elementor")
5923
6385
  },
5924
- /* @__PURE__ */ React89.createElement(XIcon, { fontSize: SIZE3 })
6386
+ /* @__PURE__ */ React94.createElement(XIcon, { fontSize: SIZE3 })
5925
6387
  ))
5926
6388
  }
5927
- ), /* @__PURE__ */ React89.createElement(
6389
+ ), /* @__PURE__ */ React94.createElement(
5928
6390
  Popover,
5929
6391
  {
5930
6392
  disablePortal: true,
@@ -5936,7 +6398,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
5936
6398
  },
5937
6399
  ...bindPopover(selectionPopoverState)
5938
6400
  },
5939
- /* @__PURE__ */ React89.createElement(SectionPopoverBody2, { "aria-label": __61("Dynamic tags", "elementor") }, /* @__PURE__ */ React89.createElement(DynamicSelection, { close: selectionPopoverState.close, expired: readonly }))
6401
+ /* @__PURE__ */ React94.createElement(SectionPopoverBody2, { "aria-label": __66("Dynamic tags", "elementor") }, /* @__PURE__ */ React94.createElement(DynamicSelection, { close: selectionPopoverState.close, expired: readonly }))
5940
6402
  ));
5941
6403
  };
5942
6404
  var DynamicSettingsPopover = ({
@@ -5948,16 +6410,16 @@ var DynamicSettingsPopover = ({
5948
6410
  if (!hasDynamicSettings) {
5949
6411
  return null;
5950
6412
  }
5951
- return /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(
6413
+ return /* @__PURE__ */ React94.createElement(React94.Fragment, null, /* @__PURE__ */ React94.createElement(
5952
6414
  IconButton2,
5953
6415
  {
5954
6416
  size: SIZE3,
5955
6417
  disabled,
5956
6418
  ...!disabled && bindTrigger2(popupState),
5957
- "aria-label": __61("Dynamic settings", "elementor")
6419
+ "aria-label": __66("Dynamic settings", "elementor")
5958
6420
  },
5959
- /* @__PURE__ */ React89.createElement(SettingsIcon, { fontSize: SIZE3 })
5960
- ), /* @__PURE__ */ React89.createElement(
6421
+ /* @__PURE__ */ React94.createElement(SettingsIcon, { fontSize: SIZE3 })
6422
+ ), /* @__PURE__ */ React94.createElement(
5961
6423
  Popover,
5962
6424
  {
5963
6425
  disablePortal: true,
@@ -5969,14 +6431,14 @@ var DynamicSettingsPopover = ({
5969
6431
  },
5970
6432
  ...bindPopover(popupState)
5971
6433
  },
5972
- /* @__PURE__ */ React89.createElement(SectionPopoverBody2, { "aria-label": __61("Dynamic settings", "elementor") }, /* @__PURE__ */ React89.createElement(
6434
+ /* @__PURE__ */ React94.createElement(SectionPopoverBody2, { "aria-label": __66("Dynamic settings", "elementor") }, /* @__PURE__ */ React94.createElement(
5973
6435
  PopoverHeader2,
5974
6436
  {
5975
6437
  title: dynamicTag.label,
5976
6438
  onClose: popupState.close,
5977
- icon: /* @__PURE__ */ React89.createElement(DatabaseIcon3, { fontSize: SIZE3 })
6439
+ icon: /* @__PURE__ */ React94.createElement(DatabaseIcon3, { fontSize: SIZE3 })
5978
6440
  }
5979
- ), /* @__PURE__ */ React89.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls, tagName: dynamicTag.name }))
6441
+ ), /* @__PURE__ */ React94.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls, tagName: dynamicTag.name }))
5980
6442
  ));
5981
6443
  };
5982
6444
  var DynamicSettings = ({ controls, tagName }) => {
@@ -5987,9 +6449,9 @@ var DynamicSettings = ({ controls, tagName }) => {
5987
6449
  }
5988
6450
  if (tagsWithoutTabs.includes(tagName)) {
5989
6451
  const singleTab = tabs[0];
5990
- return /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(Divider8, null), /* @__PURE__ */ React89.createElement(ControlsItemsStack, { items: singleTab.value.items }));
6452
+ return /* @__PURE__ */ React94.createElement(React94.Fragment, null, /* @__PURE__ */ React94.createElement(Divider8, null), /* @__PURE__ */ React94.createElement(ControlsItemsStack, { items: singleTab.value.items }));
5991
6453
  }
5992
- return /* @__PURE__ */ React89.createElement(React89.Fragment, null, tabs.length > 1 && /* @__PURE__ */ React89.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React89.createElement(
6454
+ return /* @__PURE__ */ React94.createElement(React94.Fragment, null, tabs.length > 1 && /* @__PURE__ */ React94.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React94.createElement(
5993
6455
  Tab2,
5994
6456
  {
5995
6457
  key: index,
@@ -5997,15 +6459,15 @@ var DynamicSettings = ({ controls, tagName }) => {
5997
6459
  sx: { px: 1, py: 0.5 },
5998
6460
  ...getTabProps(index)
5999
6461
  }
6000
- ))), /* @__PURE__ */ React89.createElement(Divider8, null), tabs.map(({ value }, index) => {
6001
- return /* @__PURE__ */ React89.createElement(
6462
+ ))), /* @__PURE__ */ React94.createElement(Divider8, null), tabs.map(({ value }, index) => {
6463
+ return /* @__PURE__ */ React94.createElement(
6002
6464
  TabPanel2,
6003
6465
  {
6004
6466
  key: index,
6005
6467
  sx: { flexGrow: 1, py: 0, overflowY: "auto" },
6006
6468
  ...getTabPanelProps(index)
6007
6469
  },
6008
- /* @__PURE__ */ React89.createElement(ControlsItemsStack, { items: value.items })
6470
+ /* @__PURE__ */ React94.createElement(ControlsItemsStack, { items: value.items })
6009
6471
  );
6010
6472
  }));
6011
6473
  };
@@ -6047,17 +6509,17 @@ var Control2 = ({ control }) => {
6047
6509
  display: "grid",
6048
6510
  gridTemplateColumns: isSwitchControl ? "minmax(0, 1fr) max-content" : "1fr 1fr"
6049
6511
  } : {};
6050
- return /* @__PURE__ */ React89.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React89.createElement(Grid5, { container: true, gap: 0.75, sx: layoutStyleProps }, control.label ? /* @__PURE__ */ React89.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React89.createElement(ControlFormLabel4, null, control.label)) : null, /* @__PURE__ */ React89.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React89.createElement(Control, { type: control.type, props: controlProps }))));
6512
+ return /* @__PURE__ */ React94.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React94.createElement(Grid8, { container: true, gap: 0.75, sx: layoutStyleProps }, control.label ? /* @__PURE__ */ React94.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React94.createElement(ControlFormLabel4, null, control.label)) : null, /* @__PURE__ */ React94.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React94.createElement(Control, { type: control.type, props: controlProps }))));
6051
6513
  };
6052
6514
  function ControlsItemsStack({ items: items3 }) {
6053
- return /* @__PURE__ */ React89.createElement(Stack16, { p: 2, gap: 2, sx: { overflowY: "auto" } }, items3.map(
6054
- (item) => item.type === "control" ? /* @__PURE__ */ React89.createElement(Control2, { key: item.value.bind, control: item.value }) : null
6515
+ return /* @__PURE__ */ React94.createElement(Stack16, { p: 2, gap: 2, sx: { overflowY: "auto" } }, items3.map(
6516
+ (item) => item.type === "control" ? /* @__PURE__ */ React94.createElement(Control2, { key: item.value.bind, control: item.value }) : null
6055
6517
  ));
6056
6518
  }
6057
6519
 
6058
6520
  // src/dynamics/dynamic-transformer.ts
6059
6521
  import { createTransformer } from "@elementor/editor-canvas";
6060
- import { isTransformable as isTransformable3 } from "@elementor/editor-props";
6522
+ import { isTransformable as isTransformable4 } from "@elementor/editor-props";
6061
6523
 
6062
6524
  // src/dynamics/errors.ts
6063
6525
  import { createError as createError2 } from "@elementor/utils";
@@ -6075,7 +6537,7 @@ var dynamicTransformer = createTransformer((value, { propType }) => {
6075
6537
  });
6076
6538
  function simpleTransform(props) {
6077
6539
  const transformed = Object.entries(props).map(([settingKey, settingValue]) => {
6078
- const value = isTransformable3(settingValue) ? settingValue.value : settingValue;
6540
+ const value = isTransformable4(settingValue) ? settingValue.value : settingValue;
6079
6541
  return [settingKey, value];
6080
6542
  });
6081
6543
  return Object.fromEntries(transformed);
@@ -6104,18 +6566,18 @@ function getDynamicValue(name, settings) {
6104
6566
  }
6105
6567
 
6106
6568
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
6107
- import * as React90 from "react";
6569
+ import * as React95 from "react";
6108
6570
  import { useBoundProp as useBoundProp11 } from "@elementor/editor-controls";
6109
6571
  import { DatabaseIcon as DatabaseIcon4 } from "@elementor/icons";
6110
- import { __ as __62 } from "@wordpress/i18n";
6572
+ import { __ as __67 } from "@wordpress/i18n";
6111
6573
  var usePropDynamicAction = () => {
6112
6574
  const { propType } = useBoundProp11();
6113
6575
  const visible = !!propType && supportsDynamic(propType);
6114
6576
  return {
6115
6577
  visible,
6116
6578
  icon: DatabaseIcon4,
6117
- title: __62("Dynamic tags", "elementor"),
6118
- content: ({ close }) => /* @__PURE__ */ React90.createElement(DynamicSelection, { close })
6579
+ title: __67("Dynamic tags", "elementor"),
6580
+ content: ({ close }) => /* @__PURE__ */ React95.createElement(DynamicSelection, { close })
6119
6581
  };
6120
6582
  };
6121
6583
 
@@ -6150,7 +6612,7 @@ import { useBoundProp as useBoundProp12 } from "@elementor/editor-controls";
6150
6612
  import { hasVariable as hasVariable2 } from "@elementor/editor-variables";
6151
6613
  import { BrushBigIcon } from "@elementor/icons";
6152
6614
  import { controlActionsMenu as controlActionsMenu3 } from "@elementor/menus";
6153
- import { __ as __63 } from "@wordpress/i18n";
6615
+ import { __ as __68 } from "@wordpress/i18n";
6154
6616
 
6155
6617
  // src/utils/is-equal.ts
6156
6618
  function isEqual(a, b) {
@@ -6226,22 +6688,22 @@ function useResetStyleValueProps() {
6226
6688
  const visible = calculateVisibility();
6227
6689
  return {
6228
6690
  visible,
6229
- title: __63("Clear", "elementor"),
6691
+ title: __68("Clear", "elementor"),
6230
6692
  icon: BrushBigIcon,
6231
6693
  onClick: () => resetValue()
6232
6694
  };
6233
6695
  }
6234
6696
 
6235
6697
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
6236
- import * as React96 from "react";
6698
+ import * as React101 from "react";
6237
6699
  import { useBoundProp as useBoundProp13 } from "@elementor/editor-controls";
6238
6700
  import { isEmpty as isEmpty2 } from "@elementor/editor-props";
6239
6701
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4 } from "@elementor/editor-styles-repository";
6240
- import { __ as __67 } from "@wordpress/i18n";
6702
+ import { __ as __72 } from "@wordpress/i18n";
6241
6703
 
6242
6704
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
6243
- import * as React95 from "react";
6244
- import { useMemo as useMemo13, useRef as useRef17, useState as useState12 } from "react";
6705
+ import * as React100 from "react";
6706
+ import { useMemo as useMemo15, useRef as useRef19, useState as useState12 } from "react";
6245
6707
  import {
6246
6708
  createPropsResolver as createPropsResolver2,
6247
6709
  stylesInheritanceTransformersRegistry
@@ -6249,37 +6711,37 @@ import {
6249
6711
  import { PopoverHeader as PopoverHeader3, useSectionWidth as useSectionWidth2 } from "@elementor/editor-ui";
6250
6712
  import {
6251
6713
  Backdrop,
6252
- Box as Box8,
6714
+ Box as Box9,
6253
6715
  Card,
6254
6716
  CardContent,
6255
6717
  ClickAwayListener,
6256
6718
  IconButton as IconButton3,
6257
- Infotip as Infotip2,
6719
+ Infotip as Infotip3,
6258
6720
  Stack as Stack17,
6259
- Tooltip as Tooltip5
6721
+ Tooltip as Tooltip6
6260
6722
  } from "@elementor/ui";
6261
- import { __ as __66 } from "@wordpress/i18n";
6723
+ import { __ as __71 } from "@wordpress/i18n";
6262
6724
 
6263
6725
  // src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
6264
- import { isValidElement, useEffect as useEffect9, useState as useState11 } from "react";
6726
+ import { isValidElement, useEffect as useEffect10, useState as useState11 } from "react";
6265
6727
  import { UnknownStyleStateError } from "@elementor/editor-canvas";
6266
6728
  import {
6267
6729
  isClassState as isClassState2,
6268
6730
  isPseudoState
6269
6731
  } from "@elementor/editor-styles";
6270
6732
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
6271
- import { __ as __64 } from "@wordpress/i18n";
6733
+ import { __ as __69 } from "@wordpress/i18n";
6272
6734
  var MAXIMUM_ITEMS = 2;
6273
6735
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
6274
6736
  const [items3, setItems] = useState11([]);
6275
- useEffect9(() => {
6737
+ useEffect10(() => {
6276
6738
  (async () => {
6277
6739
  const normalizedItems = await Promise.all(
6278
6740
  inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
6279
6741
  );
6280
6742
  const validItems = normalizedItems.map((item) => ({
6281
6743
  ...item,
6282
- displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __64("Base", "elementor")
6744
+ displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __69("Base", "elementor")
6283
6745
  })).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
6284
6746
  setItems(validItems);
6285
6747
  })();
@@ -6336,7 +6798,7 @@ var getTransformedValue = async (item, bind, resolve) => {
6336
6798
  };
6337
6799
 
6338
6800
  // src/styles-inheritance/components/infotip/breakpoint-icon.tsx
6339
- import * as React91 from "react";
6801
+ import * as React96 from "react";
6340
6802
  import { useBreakpoints } from "@elementor/editor-responsive";
6341
6803
  import {
6342
6804
  DesktopIcon,
@@ -6347,7 +6809,7 @@ import {
6347
6809
  TabletPortraitIcon,
6348
6810
  WidescreenIcon
6349
6811
  } from "@elementor/icons";
6350
- import { Tooltip as Tooltip2 } from "@elementor/ui";
6812
+ import { Tooltip as Tooltip3 } from "@elementor/ui";
6351
6813
  var SIZE4 = "tiny";
6352
6814
  var DEFAULT_BREAKPOINT3 = "desktop";
6353
6815
  var breakpointIconMap = {
@@ -6367,20 +6829,20 @@ var BreakpointIcon = ({ breakpoint }) => {
6367
6829
  return null;
6368
6830
  }
6369
6831
  const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
6370
- return /* @__PURE__ */ React91.createElement(Tooltip2, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React91.createElement(IconComponent, { fontSize: SIZE4, sx: { mt: "2px" } }));
6832
+ return /* @__PURE__ */ React96.createElement(Tooltip3, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React96.createElement(IconComponent, { fontSize: SIZE4, sx: { mt: "2px" } }));
6371
6833
  };
6372
6834
 
6373
6835
  // src/styles-inheritance/components/infotip/label-chip.tsx
6374
- import * as React92 from "react";
6836
+ import * as React97 from "react";
6375
6837
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3 } from "@elementor/editor-styles-repository";
6376
6838
  import { InfoCircleIcon } from "@elementor/icons";
6377
- import { Chip as Chip5, Tooltip as Tooltip3 } from "@elementor/ui";
6378
- import { __ as __65 } from "@wordpress/i18n";
6839
+ import { Chip as Chip5, Tooltip as Tooltip4 } from "@elementor/ui";
6840
+ import { __ as __70 } from "@wordpress/i18n";
6379
6841
  var SIZE5 = "tiny";
6380
6842
  var LabelChip = ({ displayLabel, provider }) => {
6381
6843
  const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3;
6382
- const chipIcon = isBaseStyle ? /* @__PURE__ */ React92.createElement(Tooltip3, { title: __65("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React92.createElement(InfoCircleIcon, { fontSize: SIZE5 })) : void 0;
6383
- return /* @__PURE__ */ React92.createElement(
6844
+ const chipIcon = isBaseStyle ? /* @__PURE__ */ React97.createElement(Tooltip4, { title: __70("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React97.createElement(InfoCircleIcon, { fontSize: SIZE5 })) : void 0;
6845
+ return /* @__PURE__ */ React97.createElement(
6384
6846
  Chip5,
6385
6847
  {
6386
6848
  label: displayLabel,
@@ -6406,10 +6868,10 @@ var LabelChip = ({ displayLabel, provider }) => {
6406
6868
  };
6407
6869
 
6408
6870
  // src/styles-inheritance/components/infotip/value-component.tsx
6409
- import * as React93 from "react";
6410
- import { Tooltip as Tooltip4, Typography as Typography6 } from "@elementor/ui";
6871
+ import * as React98 from "react";
6872
+ import { Tooltip as Tooltip5, Typography as Typography6 } from "@elementor/ui";
6411
6873
  var ValueComponent = ({ index, value }) => {
6412
- return /* @__PURE__ */ React93.createElement(Tooltip4, { title: value, placement: "top" }, /* @__PURE__ */ React93.createElement(
6874
+ return /* @__PURE__ */ React98.createElement(Tooltip5, { title: value, placement: "top" }, /* @__PURE__ */ React98.createElement(
6413
6875
  Typography6,
6414
6876
  {
6415
6877
  variant: "caption",
@@ -6431,9 +6893,9 @@ var ValueComponent = ({ index, value }) => {
6431
6893
  };
6432
6894
 
6433
6895
  // src/styles-inheritance/components/infotip/action-icons.tsx
6434
- import * as React94 from "react";
6435
- import { Box as Box7 } from "@elementor/ui";
6436
- var ActionIcons = () => /* @__PURE__ */ React94.createElement(Box7, { display: "flex", gap: 0.5, alignItems: "center" });
6896
+ import * as React99 from "react";
6897
+ import { Box as Box8 } from "@elementor/ui";
6898
+ var ActionIcons = () => /* @__PURE__ */ React99.createElement(Box8, { display: "flex", gap: 0.5, alignItems: "center" });
6437
6899
 
6438
6900
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
6439
6901
  var SECTION_PADDING_INLINE = 32;
@@ -6447,7 +6909,7 @@ var StylesInheritanceInfotip = ({
6447
6909
  isDisabled
6448
6910
  }) => {
6449
6911
  const [showInfotip, setShowInfotip] = useState12(false);
6450
- const triggerRef = useRef17(null);
6912
+ const triggerRef = useRef19(null);
6451
6913
  const toggleInfotip = () => {
6452
6914
  if (isDisabled) {
6453
6915
  return;
@@ -6462,14 +6924,14 @@ var StylesInheritanceInfotip = ({
6462
6924
  };
6463
6925
  const key = path.join(".");
6464
6926
  const sectionWidth = useSectionWidth2();
6465
- const resolve = useMemo13(() => {
6927
+ const resolve = useMemo15(() => {
6466
6928
  return createPropsResolver2({
6467
6929
  transformers: stylesInheritanceTransformersRegistry,
6468
6930
  schema: { [key]: propType }
6469
6931
  });
6470
6932
  }, [key, propType]);
6471
6933
  const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
6472
- const infotipContent = /* @__PURE__ */ React95.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React95.createElement(
6934
+ const infotipContent = /* @__PURE__ */ React100.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React100.createElement(
6473
6935
  Card,
6474
6936
  {
6475
6937
  elevation: 0,
@@ -6482,8 +6944,8 @@ var StylesInheritanceInfotip = ({
6482
6944
  flexDirection: "column"
6483
6945
  }
6484
6946
  },
6485
- /* @__PURE__ */ React95.createElement(
6486
- Box8,
6947
+ /* @__PURE__ */ React100.createElement(
6948
+ Box9,
6487
6949
  {
6488
6950
  sx: {
6489
6951
  position: "sticky",
@@ -6492,9 +6954,9 @@ var StylesInheritanceInfotip = ({
6492
6954
  backgroundColor: "background.paper"
6493
6955
  }
6494
6956
  },
6495
- /* @__PURE__ */ React95.createElement(PopoverHeader3, { title: __66("Style origin", "elementor"), onClose: closeInfotip })
6957
+ /* @__PURE__ */ React100.createElement(PopoverHeader3, { title: __71("Style origin", "elementor"), onClose: closeInfotip })
6496
6958
  ),
6497
- /* @__PURE__ */ React95.createElement(
6959
+ /* @__PURE__ */ React100.createElement(
6498
6960
  CardContent,
6499
6961
  {
6500
6962
  sx: {
@@ -6508,39 +6970,39 @@ var StylesInheritanceInfotip = ({
6508
6970
  }
6509
6971
  }
6510
6972
  },
6511
- /* @__PURE__ */ React95.createElement(Stack17, { gap: 1.5, sx: { pl: 2, pr: 1, pt: 1.5, pb: 1.5 }, role: "list" }, items3.map((item, index) => {
6512
- return /* @__PURE__ */ React95.createElement(
6513
- Box8,
6973
+ /* @__PURE__ */ React100.createElement(Stack17, { gap: 1.5, sx: { pl: 2, pr: 1, pt: 1.5, pb: 1.5 }, role: "list" }, items3.map((item, index) => {
6974
+ return /* @__PURE__ */ React100.createElement(
6975
+ Box9,
6514
6976
  {
6515
6977
  key: item.id,
6516
6978
  display: "flex",
6517
6979
  gap: 0.5,
6518
6980
  role: "listitem",
6519
- "aria-label": __66("Inheritance item: %s", "elementor").replace(
6981
+ "aria-label": __71("Inheritance item: %s", "elementor").replace(
6520
6982
  "%s",
6521
6983
  item.displayLabel
6522
6984
  )
6523
6985
  },
6524
- /* @__PURE__ */ React95.createElement(
6525
- Box8,
6986
+ /* @__PURE__ */ React100.createElement(
6987
+ Box9,
6526
6988
  {
6527
6989
  display: "flex",
6528
6990
  gap: 0.5,
6529
6991
  sx: { flexWrap: "wrap", width: "100%", alignItems: "flex-start" }
6530
6992
  },
6531
- /* @__PURE__ */ React95.createElement(BreakpointIcon, { breakpoint: item.breakpoint }),
6532
- /* @__PURE__ */ React95.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }),
6533
- /* @__PURE__ */ React95.createElement(ValueComponent, { index, value: item.value })
6993
+ /* @__PURE__ */ React100.createElement(BreakpointIcon, { breakpoint: item.breakpoint }),
6994
+ /* @__PURE__ */ React100.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }),
6995
+ /* @__PURE__ */ React100.createElement(ValueComponent, { index, value: item.value })
6534
6996
  ),
6535
- /* @__PURE__ */ React95.createElement(ActionIcons, null)
6997
+ /* @__PURE__ */ React100.createElement(ActionIcons, null)
6536
6998
  );
6537
6999
  }))
6538
7000
  )
6539
7001
  ));
6540
7002
  if (isDisabled) {
6541
- return /* @__PURE__ */ React95.createElement(Box8, { sx: { display: "inline-flex" } }, children);
7003
+ return /* @__PURE__ */ React100.createElement(Box9, { sx: { display: "inline-flex" } }, children);
6542
7004
  }
6543
- return /* @__PURE__ */ React95.createElement(Box8, { ref: triggerRef, sx: { display: "inline-flex" } }, /* @__PURE__ */ React95.createElement(
7005
+ return /* @__PURE__ */ React100.createElement(Box9, { ref: triggerRef, sx: { display: "inline-flex" } }, /* @__PURE__ */ React100.createElement(
6544
7006
  TooltipOrInfotip,
6545
7007
  {
6546
7008
  showInfotip,
@@ -6548,7 +7010,7 @@ var StylesInheritanceInfotip = ({
6548
7010
  infotipContent,
6549
7011
  isDisabled
6550
7012
  },
6551
- /* @__PURE__ */ React95.createElement(
7013
+ /* @__PURE__ */ React100.createElement(
6552
7014
  IconButton3,
6553
7015
  {
6554
7016
  onClick: toggleInfotip,
@@ -6568,10 +7030,10 @@ function TooltipOrInfotip({
6568
7030
  isDisabled
6569
7031
  }) {
6570
7032
  if (isDisabled) {
6571
- return /* @__PURE__ */ React95.createElement(Box8, { sx: { display: "inline-flex" } }, children);
7033
+ return /* @__PURE__ */ React100.createElement(Box9, { sx: { display: "inline-flex" } }, children);
6572
7034
  }
6573
7035
  if (showInfotip) {
6574
- return /* @__PURE__ */ React95.createElement(React95.Fragment, null, /* @__PURE__ */ React95.createElement(
7036
+ return /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(
6575
7037
  Backdrop,
6576
7038
  {
6577
7039
  open: showInfotip,
@@ -6581,8 +7043,8 @@ function TooltipOrInfotip({
6581
7043
  zIndex: (theme) => theme.zIndex.modal - 1
6582
7044
  }
6583
7045
  }
6584
- ), /* @__PURE__ */ React95.createElement(
6585
- Infotip2,
7046
+ ), /* @__PURE__ */ React100.createElement(
7047
+ Infotip3,
6586
7048
  {
6587
7049
  placement: "top-end",
6588
7050
  content: infotipContent,
@@ -6593,7 +7055,7 @@ function TooltipOrInfotip({
6593
7055
  children
6594
7056
  ));
6595
7057
  }
6596
- return /* @__PURE__ */ React95.createElement(Tooltip5, { title: __66("Style origin", "elementor"), placement: "top" }, children);
7058
+ return /* @__PURE__ */ React100.createElement(Tooltip6, { title: __71("Style origin", "elementor"), placement: "top" }, children);
6597
7059
  }
6598
7060
 
6599
7061
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
@@ -6606,7 +7068,7 @@ var StylesInheritanceIndicator = ({
6606
7068
  if (!path || !inheritanceChain.length) {
6607
7069
  return null;
6608
7070
  }
6609
- return /* @__PURE__ */ React96.createElement(Indicator, { inheritanceChain, path, propType });
7071
+ return /* @__PURE__ */ React101.createElement(Indicator, { inheritanceChain, path, propType });
6610
7072
  };
6611
7073
  var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
6612
7074
  const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
@@ -6622,7 +7084,7 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
6622
7084
  getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
6623
7085
  isOverridden: hasValue && !isFinalValue ? true : void 0
6624
7086
  };
6625
- return /* @__PURE__ */ React96.createElement(
7087
+ return /* @__PURE__ */ React101.createElement(
6626
7088
  StylesInheritanceInfotip,
6627
7089
  {
6628
7090
  inheritanceChain,
@@ -6631,17 +7093,17 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
6631
7093
  label,
6632
7094
  isDisabled
6633
7095
  },
6634
- /* @__PURE__ */ React96.createElement(StyleIndicator, { ...styleIndicatorProps })
7096
+ /* @__PURE__ */ React101.createElement(StyleIndicator, { ...styleIndicatorProps })
6635
7097
  );
6636
7098
  };
6637
7099
  var getLabel = ({ isFinalValue, hasValue }) => {
6638
7100
  if (isFinalValue) {
6639
- return __67("This is the final value", "elementor");
7101
+ return __72("This is the final value", "elementor");
6640
7102
  }
6641
7103
  if (hasValue) {
6642
- return __67("This value is overridden by another style", "elementor");
7104
+ return __72("This value is overridden by another style", "elementor");
6643
7105
  }
6644
- return __67("This has value from another style", "elementor");
7106
+ return __72("This has value from another style", "elementor");
6645
7107
  };
6646
7108
 
6647
7109
  // src/styles-inheritance/init-styles-inheritance-transformers.ts
@@ -6666,7 +7128,7 @@ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
6666
7128
  ]);
6667
7129
 
6668
7130
  // src/styles-inheritance/transformers/array-transformer.tsx
6669
- import * as React97 from "react";
7131
+ import * as React102 from "react";
6670
7132
  import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
6671
7133
  var arrayTransformer = createTransformer2((values) => {
6672
7134
  if (!values || values.length === 0) {
@@ -6676,18 +7138,18 @@ var arrayTransformer = createTransformer2((values) => {
6676
7138
  if (allStrings) {
6677
7139
  return values.join(" ");
6678
7140
  }
6679
- return /* @__PURE__ */ React97.createElement(React97.Fragment, null, values.map((item, index) => /* @__PURE__ */ React97.createElement(React97.Fragment, { key: index }, index > 0 && " ", item)));
7141
+ return /* @__PURE__ */ React102.createElement(React102.Fragment, null, values.map((item, index) => /* @__PURE__ */ React102.createElement(React102.Fragment, { key: index }, index > 0 && " ", item)));
6680
7142
  });
6681
7143
 
6682
7144
  // src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
6683
- import * as React98 from "react";
7145
+ import * as React103 from "react";
6684
7146
  import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
6685
- import { Stack as Stack18, styled as styled6, UnstableColorIndicator } from "@elementor/ui";
6686
- var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React98.createElement(Stack18, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React98.createElement(ItemLabelColor, { value })));
7147
+ import { Stack as Stack18, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
7148
+ var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React103.createElement(Stack18, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React103.createElement(ItemLabelColor, { value })));
6687
7149
  var ItemLabelColor = ({ value: { color } }) => {
6688
- return /* @__PURE__ */ React98.createElement("span", null, color);
7150
+ return /* @__PURE__ */ React103.createElement("span", null, color);
6689
7151
  };
6690
- var StyledUnstableColorIndicator = styled6(UnstableColorIndicator)(({ theme }) => ({
7152
+ var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) => ({
6691
7153
  width: "1em",
6692
7154
  height: "1em",
6693
7155
  borderRadius: `${theme.shape.borderRadius / 2}px`,
@@ -6696,20 +7158,20 @@ var StyledUnstableColorIndicator = styled6(UnstableColorIndicator)(({ theme }) =
6696
7158
  }));
6697
7159
 
6698
7160
  // src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
6699
- import * as React99 from "react";
7161
+ import * as React104 from "react";
6700
7162
  import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
6701
7163
  import { Stack as Stack19 } from "@elementor/ui";
6702
- import { __ as __68 } from "@wordpress/i18n";
6703
- var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React99.createElement(Stack19, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React99.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React99.createElement(ItemLabelGradient, { value })));
7164
+ import { __ as __73 } from "@wordpress/i18n";
7165
+ var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React104.createElement(Stack19, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React104.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React104.createElement(ItemLabelGradient, { value })));
6704
7166
  var ItemIconGradient = ({ value }) => {
6705
7167
  const gradient = getGradientValue(value);
6706
- return /* @__PURE__ */ React99.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
7168
+ return /* @__PURE__ */ React104.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
6707
7169
  };
6708
7170
  var ItemLabelGradient = ({ value }) => {
6709
7171
  if (value.type === "linear") {
6710
- return /* @__PURE__ */ React99.createElement("span", null, __68("Linear gradient", "elementor"));
7172
+ return /* @__PURE__ */ React104.createElement("span", null, __73("Linear gradient", "elementor"));
6711
7173
  }
6712
- return /* @__PURE__ */ React99.createElement("span", null, __68("Radial gradient", "elementor"));
7174
+ return /* @__PURE__ */ React104.createElement("span", null, __73("Radial gradient", "elementor"));
6713
7175
  };
6714
7176
  var getGradientValue = (gradient) => {
6715
7177
  const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
@@ -6720,15 +7182,15 @@ var getGradientValue = (gradient) => {
6720
7182
  };
6721
7183
 
6722
7184
  // src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
6723
- import * as React100 from "react";
7185
+ import * as React105 from "react";
6724
7186
  import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
6725
7187
  import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
6726
7188
  import { CardMedia, Stack as Stack20 } from "@elementor/ui";
6727
7189
  import { useWpMediaAttachment } from "@elementor/wp-media";
6728
- var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */ React100.createElement(Stack20, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React100.createElement(ItemIconImage, { value }), /* @__PURE__ */ React100.createElement(ItemLabelImage, { value })));
7190
+ var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */ React105.createElement(Stack20, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React105.createElement(ItemIconImage, { value }), /* @__PURE__ */ React105.createElement(ItemLabelImage, { value })));
6729
7191
  var ItemIconImage = ({ value }) => {
6730
7192
  const { imageUrl } = useImage(value);
6731
- return /* @__PURE__ */ React100.createElement(
7193
+ return /* @__PURE__ */ React105.createElement(
6732
7194
  CardMedia,
6733
7195
  {
6734
7196
  image: imageUrl,
@@ -6744,7 +7206,7 @@ var ItemIconImage = ({ value }) => {
6744
7206
  };
6745
7207
  var ItemLabelImage = ({ value }) => {
6746
7208
  const { imageTitle } = useImage(value);
6747
- return /* @__PURE__ */ React100.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React100.createElement("span", null, imageTitle));
7209
+ return /* @__PURE__ */ React105.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React105.createElement("span", null, imageTitle));
6748
7210
  };
6749
7211
  var useImage = (image) => {
6750
7212
  let imageTitle, imageUrl = null;
@@ -6769,7 +7231,7 @@ var getFileExtensionFromFilename = (filename) => {
6769
7231
  };
6770
7232
 
6771
7233
  // src/styles-inheritance/transformers/box-shadow-transformer.tsx
6772
- import * as React101 from "react";
7234
+ import * as React106 from "react";
6773
7235
  import { createTransformer as createTransformer6 } from "@elementor/editor-canvas";
6774
7236
  var boxShadowTransformer = createTransformer6((value) => {
6775
7237
  if (!value) {
@@ -6779,20 +7241,20 @@ var boxShadowTransformer = createTransformer6((value) => {
6779
7241
  const colorValue = color || "#000000";
6780
7242
  const sizes = [hOffset || "0px", vOffset || "0px", blur || "10px", spread || "0px"].join(" ");
6781
7243
  const positionValue = position || "outset";
6782
- return /* @__PURE__ */ React101.createElement(React101.Fragment, null, colorValue, " ", positionValue, ", ", sizes);
7244
+ return /* @__PURE__ */ React106.createElement(React106.Fragment, null, colorValue, " ", positionValue, ", ", sizes);
6783
7245
  });
6784
7246
 
6785
7247
  // src/styles-inheritance/transformers/color-transformer.tsx
6786
- import * as React102 from "react";
7248
+ import * as React107 from "react";
6787
7249
  import { createTransformer as createTransformer7 } from "@elementor/editor-canvas";
6788
- import { Stack as Stack21, styled as styled7, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
7250
+ import { Stack as Stack21, styled as styled8, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
6789
7251
  function isValidCSSColor(value) {
6790
7252
  if (!value.trim()) {
6791
7253
  return false;
6792
7254
  }
6793
7255
  return CSS.supports("color", value.trim());
6794
7256
  }
6795
- var StyledColorIndicator = styled7(UnstableColorIndicator2)(({ theme }) => ({
7257
+ var StyledColorIndicator = styled8(UnstableColorIndicator2)(({ theme }) => ({
6796
7258
  width: "1em",
6797
7259
  height: "1em",
6798
7260
  borderRadius: `${theme.shape.borderRadius / 2}px`,
@@ -6803,14 +7265,14 @@ var colorTransformer = createTransformer7((value) => {
6803
7265
  if (!isValidCSSColor(value)) {
6804
7266
  return value;
6805
7267
  }
6806
- return /* @__PURE__ */ React102.createElement(Stack21, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React102.createElement(StyledColorIndicator, { size: "inherit", component: "span", value }), /* @__PURE__ */ React102.createElement("span", null, value));
7268
+ return /* @__PURE__ */ React107.createElement(Stack21, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React107.createElement(StyledColorIndicator, { size: "inherit", component: "span", value }), /* @__PURE__ */ React107.createElement("span", null, value));
6807
7269
  });
6808
7270
 
6809
7271
  // src/styles-inheritance/transformers/repeater-to-items-transformer.tsx
6810
7272
  import { createTransformer as createTransformer8 } from "@elementor/editor-canvas";
6811
7273
  var createRepeaterToItemsTransformer = (originalTransformer) => {
6812
- return createTransformer8((value, options12) => {
6813
- const stringResult = originalTransformer(value, options12);
7274
+ return createTransformer8((value, options13) => {
7275
+ const stringResult = originalTransformer(value, options13);
6814
7276
  if (!stringResult || typeof stringResult !== "string") {
6815
7277
  return stringResult;
6816
7278
  }