@elementor/editor-editing-panel 1.38.1 → 1.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/index.js +1038 -754
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +1014 -725
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +10 -9
  7. package/src/components/creatable-autocomplete/autocomplete-option-internal-properties.ts +3 -6
  8. package/src/components/creatable-autocomplete/creatable-autocomplete.tsx +25 -2
  9. package/src/components/creatable-autocomplete/types.ts +13 -4
  10. package/src/components/creatable-autocomplete/use-autocomplete-change.ts +59 -46
  11. package/src/components/creatable-autocomplete/use-create-option.ts +4 -4
  12. package/src/components/css-classes/css-class-context.tsx +30 -0
  13. package/src/components/css-classes/css-class-item.tsx +8 -19
  14. package/src/components/css-classes/css-class-menu.tsx +78 -78
  15. package/src/components/css-classes/css-class-selector.tsx +46 -32
  16. package/src/components/css-classes/use-apply-and-unapply-class.ts +178 -0
  17. package/src/components/editing-panel-tabs.tsx +7 -1
  18. package/src/components/settings-tab.tsx +14 -1
  19. package/src/components/style-indicator.tsx +1 -1
  20. package/src/components/style-sections/size-section/object-fit-field.tsx +1 -1
  21. package/src/components/style-sections/size-section/object-position-field.tsx +1 -1
  22. package/src/components/style-sections/size-section/size-section.tsx +13 -5
  23. package/src/components/style-sections/typography-section/typography-section.tsx +1 -1
  24. package/src/components/style-tab.tsx +82 -24
  25. package/src/controls-registry/controls-registry.tsx +2 -0
  26. package/src/hooks/use-active-style-def-id.ts +5 -2
  27. package/src/hooks/use-default-panel-settings.ts +33 -0
  28. package/src/hooks/use-state-by-element.ts +2 -1
  29. package/src/sync/experiments-flags.ts +4 -0
  30. package/src/hooks/use-unapply-class.ts +0 -29
package/dist/index.mjs CHANGED
@@ -6,10 +6,10 @@ import { createControlReplacementsRegistry } from "@elementor/editor-controls";
6
6
  var { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();
7
7
 
8
8
  // src/components/css-classes/css-class-selector.tsx
9
- import * as React7 from "react";
9
+ import * as React8 from "react";
10
10
  import { useRef, useState as useState4 } from "react";
11
- import { getElementSetting, updateElementSettings as updateElementSettings2, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
12
- import { classesPropTypeUtil } from "@elementor/editor-props";
11
+ import { getElementSetting as getElementSetting2, updateElementSettings as updateElementSettings2, useElementSetting } from "@elementor/editor-elements";
12
+ import { classesPropTypeUtil as classesPropTypeUtil2 } from "@elementor/editor-props";
13
13
  import {
14
14
  isElementsStylesProvider as isElementsStylesProvider2,
15
15
  stylesRepository as stylesRepository4,
@@ -18,10 +18,10 @@ import {
18
18
  validateStyleLabel as validateStyleLabel2
19
19
  } from "@elementor/editor-styles-repository";
20
20
  import { WarningInfotip } from "@elementor/editor-ui";
21
- import { MapPinIcon } from "@elementor/icons";
21
+ import { ColorSwatchIcon, MapPinIcon } from "@elementor/icons";
22
22
  import { createLocation } from "@elementor/locations";
23
- import { Chip as Chip3, FormLabel, Stack as Stack3 } from "@elementor/ui";
24
- import { __ as __3 } from "@wordpress/i18n";
23
+ import { Box as Box2, Chip as Chip3, FormLabel, Link, Stack as Stack3, Typography as Typography3 } from "@elementor/ui";
24
+ import { __ as __4 } from "@wordpress/i18n";
25
25
 
26
26
  // src/contexts/classes-prop-context.tsx
27
27
  import * as React from "react";
@@ -121,48 +121,63 @@ function addGroupToOptions(options12, pluralEntityName) {
121
121
  };
122
122
  });
123
123
  }
124
- function removeOptionsInternalKeys(options12) {
125
- return options12.map((option) => {
126
- const { _group, _action, ...rest } = option;
127
- return rest;
128
- });
124
+ function removeInternalKeys(option) {
125
+ const { _group, _action, ...rest } = option;
126
+ return rest;
129
127
  }
130
128
 
131
129
  // src/components/creatable-autocomplete/use-autocomplete-change.ts
132
130
  function useAutocompleteChange(params) {
133
131
  const { options: options12, onSelect, createOption, setInputValue, closeDropdown } = params;
134
- const handleChange = async (_, selectedOrInputValue, reason) => {
132
+ if (!onSelect && !createOption) {
133
+ return;
134
+ }
135
+ const handleChange = async (_, selectedOrInputValue, reason, details) => {
136
+ const changedOption = details?.option;
137
+ if (!changedOption || typeof changedOption === "object" && changedOption.fixed) {
138
+ return;
139
+ }
135
140
  const selectedOptions = selectedOrInputValue.filter((option) => typeof option !== "string");
136
- const newInputValue = selectedOrInputValue.reduce((acc, option) => {
137
- if (typeof option === "string") {
138
- return option;
139
- } else if (option._action === "create") {
140
- return option.value;
141
+ switch (reason) {
142
+ case "removeOption":
143
+ const removedOption = changedOption;
144
+ updateSelectedOptions(selectedOptions, "removeOption", removedOption);
145
+ break;
146
+ // User clicked an option. It's either an existing option, or "Create <new option>".
147
+ case "selectOption": {
148
+ const selectedOption = changedOption;
149
+ if (selectedOption._action === "create") {
150
+ const newOption = selectedOption.value;
151
+ return createOption?.(newOption);
152
+ }
153
+ updateSelectedOptions(selectedOptions, "selectOption", selectedOption);
154
+ break;
155
+ }
156
+ // User pressed "Enter" after typing input. The input is either matching existing option or a new option to create.
157
+ case "createOption": {
158
+ const inputValue = changedOption;
159
+ const matchingOption = options12.find(
160
+ (option) => option.label.toLocaleLowerCase() === inputValue.toLocaleLowerCase()
161
+ );
162
+ if (matchingOption) {
163
+ selectedOptions.push(matchingOption);
164
+ updateSelectedOptions(selectedOptions, "selectOption", matchingOption);
165
+ } else {
166
+ return createOption?.(inputValue);
167
+ }
168
+ break;
141
169
  }
142
- return acc;
143
- }, null);
144
- const inputValueMatchesExistingOption = newInputValue && options12.find((option) => option.label === newInputValue);
145
- if (newInputValue && shouldCreateNewOption(reason, selectedOptions, newInputValue, Boolean(inputValueMatchesExistingOption))) {
146
- return createOption(newInputValue);
147
- }
148
- if (reason === "createOption" && inputValueMatchesExistingOption) {
149
- selectedOptions.push(inputValueMatchesExistingOption);
150
170
  }
151
- updateSelectedOptions(selectedOptions);
152
171
  setInputValue("");
153
172
  closeDropdown();
154
173
  };
155
174
  return handleChange;
156
- function shouldCreateNewOption(reason, selectedOptions, newInputValue, inputValueMatchesExistingOption) {
157
- const createOptionWasClicked = reason === "selectOption" && selectedOptions.some((option) => option._action === "create");
158
- const enterWasPressed = reason === "createOption" && !options12.some((option) => option.label === newInputValue);
159
- const createOptionWasDisplayed = !inputValueMatchesExistingOption;
160
- return createOptionWasClicked || enterWasPressed && createOptionWasDisplayed;
161
- }
162
- function updateSelectedOptions(selectedOptions) {
163
- const fixedOptions = options12.filter((option) => !!option.fixed);
164
- const updatedOptions = [...fixedOptions, ...selectedOptions.filter((option) => !option.fixed)];
165
- onSelect?.(removeOptionsInternalKeys(updatedOptions));
175
+ function updateSelectedOptions(selectedOptions, reason, changedOption) {
176
+ onSelect?.(
177
+ selectedOptions.map((option) => removeInternalKeys(option)),
178
+ reason,
179
+ removeInternalKeys(changedOption)
180
+ );
166
181
  }
167
182
  }
168
183
 
@@ -215,10 +230,10 @@ import { useState as useState2 } from "react";
215
230
  function useCreateOption(params) {
216
231
  const { onCreate, validate, setInputValue, setError, closeDropdown } = params;
217
232
  const [loading, setLoading] = useState2(false);
233
+ if (!onCreate) {
234
+ return { createOption: null, loading: false };
235
+ }
218
236
  const createOption = async (value) => {
219
- if (!onCreate) {
220
- return;
221
- }
222
237
  setLoading(true);
223
238
  if (validate) {
224
239
  const { isValid, errorMessage } = validate(value, "create");
@@ -268,6 +283,7 @@ function useFilterOptions(parameters) {
268
283
  }
269
284
 
270
285
  // src/components/creatable-autocomplete/creatable-autocomplete.tsx
286
+ var MIN_INPUT_LENGTH = 2;
271
287
  var CreatableAutocomplete = React4.forwardRef(CreatableAutocompleteInner);
272
288
  function CreatableAutocompleteInner({
273
289
  selected,
@@ -277,6 +293,7 @@ function CreatableAutocompleteInner({
277
293
  placeholder,
278
294
  onCreate,
279
295
  validate,
296
+ renderEmptyState,
280
297
  ...props
281
298
  }, ref) {
282
299
  const { inputValue, setInputValue, error, setError, inputHandlers } = useInputState(validate);
@@ -294,6 +311,8 @@ function CreatableAutocompleteInner({
294
311
  closeDropdown
295
312
  });
296
313
  const filterOptions = useFilterOptions({ options: options12, selected, onCreate, entityName });
314
+ const isCreatable = Boolean(onCreate);
315
+ const freeSolo = isCreatable || inputValue.length < MIN_INPUT_LENGTH || void 0;
297
316
  return /* @__PURE__ */ React4.createElement(
298
317
  Autocomplete,
299
318
  {
@@ -310,7 +329,8 @@ function CreatableAutocompleteInner({
310
329
  },
311
330
  ...props,
312
331
  ref,
313
- freeSolo: true,
332
+ freeSolo,
333
+ forcePopupIcon: false,
314
334
  multiple: true,
315
335
  clearOnBlur: true,
316
336
  selectOnFocus: true,
@@ -331,8 +351,8 @@ function CreatableAutocompleteInner({
331
351
  TextField,
332
352
  {
333
353
  ...params,
334
- placeholder,
335
354
  error: Boolean(error),
355
+ placeholder,
336
356
  ...inputHandlers,
337
357
  sx: (theme) => ({
338
358
  ".MuiAutocomplete-inputRoot.MuiInputBase-adornedStart": {
@@ -364,6 +384,19 @@ function CreatableAutocompleteInner({
364
384
  },
365
385
  label
366
386
  );
387
+ },
388
+ noOptionsText: renderEmptyState?.({
389
+ searchValue: inputValue,
390
+ onClear: () => {
391
+ setInputValue("");
392
+ closeDropdown();
393
+ }
394
+ }),
395
+ isOptionEqualToValue: (option, value) => {
396
+ if (typeof option === "string") {
397
+ return option === value;
398
+ }
399
+ return option.value === value.value;
367
400
  }
368
401
  }
369
402
  );
@@ -401,7 +434,7 @@ var StyledGroupItems = styled("ul")`
401
434
  `;
402
435
 
403
436
  // src/components/css-classes/css-class-item.tsx
404
- import * as React6 from "react";
437
+ import * as React7 from "react";
405
438
  import { useState as useState3 } from "react";
406
439
  import { stylesRepository as stylesRepository3, validateStyleLabel } from "@elementor/editor-styles-repository";
407
440
  import { EditableField, EllipsisWithTooltip, useEditable } from "@elementor/editor-ui";
@@ -414,36 +447,33 @@ import {
414
447
  UnstableChipGroup,
415
448
  usePopupState
416
449
  } from "@elementor/ui";
417
- import { __ as __2 } from "@wordpress/i18n";
450
+ import { __ as __3 } from "@wordpress/i18n";
418
451
 
419
- // src/components/css-classes/css-class-menu.tsx
452
+ // src/components/css-classes/css-class-context.tsx
420
453
  import * as React5 from "react";
421
- import { isElementsStylesProvider, stylesRepository as stylesRepository2 } from "@elementor/editor-styles-repository";
422
- import { MenuListItem } from "@elementor/editor-ui";
423
- import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
424
- import { __ } from "@wordpress/i18n";
425
-
426
- // src/hooks/use-unapply-class.ts
427
- import { updateElementSettings, useElementSetting } from "@elementor/editor-elements";
428
- var useUnapplyClass = (classId) => {
429
- const { element } = useElement();
430
- const { setId: setStyleId } = useStyle();
431
- const classesProp = useClassesProp();
432
- const classes = useElementSetting(element.id, classesProp);
433
- const filteredClasses = classes?.value.filter((className) => className !== classId) ?? [];
434
- return () => {
435
- updateElementSettings({
436
- id: element.id,
437
- props: {
438
- [classesProp]: {
439
- $$type: "classes",
440
- value: filteredClasses
441
- }
442
- }
443
- });
444
- setStyleId(null);
445
- };
454
+ import { createContext as createContext4, useContext as useContext4 } from "react";
455
+ var CssClassContext = createContext4(null);
456
+ var useCssClass = () => {
457
+ const context = useContext4(CssClassContext);
458
+ if (!context) {
459
+ throw new Error("useCssClass must be used within a CssClassProvider");
460
+ }
461
+ return context;
446
462
  };
463
+ function CssClassProvider({ children, ...contextValue }) {
464
+ return /* @__PURE__ */ React5.createElement(CssClassContext.Provider, { value: contextValue }, children);
465
+ }
466
+
467
+ // src/components/css-classes/css-class-menu.tsx
468
+ import * as React6 from "react";
469
+ import {
470
+ isElementsStylesProvider,
471
+ stylesRepository as stylesRepository2,
472
+ useUserStylesCapability
473
+ } from "@elementor/editor-styles-repository";
474
+ import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
475
+ import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
476
+ import { __ as __2 } from "@wordpress/i18n";
447
477
 
448
478
  // src/components/style-indicator.tsx
449
479
  import { styled as styled2 } from "@elementor/ui";
@@ -467,15 +497,157 @@ var StyleIndicator = styled2("div", {
467
497
  }};
468
498
  `;
469
499
 
500
+ // src/components/css-classes/use-apply-and-unapply-class.ts
501
+ import { useCallback, useMemo as useMemo2 } from "react";
502
+ import { setDocumentModifiedStatus } from "@elementor/editor-documents";
503
+ import { getElementLabel, getElementSetting, updateElementSettings } from "@elementor/editor-elements";
504
+ import { classesPropTypeUtil } from "@elementor/editor-props";
505
+ import { isExperimentActive, undoable } from "@elementor/editor-v1-adapters";
506
+ import { __ } from "@wordpress/i18n";
507
+ function useApplyClass() {
508
+ const { id: activeId, setId: setActiveId } = useStyle();
509
+ const { element } = useElement();
510
+ const isVersion330Active = isExperimentActive("e_v_3_30");
511
+ const applyClass = useApply();
512
+ const unapplyClass = useUnapply();
513
+ const undoableApply = useMemo2(() => {
514
+ return undoable(
515
+ {
516
+ do: ({ classId }) => {
517
+ const prevActiveId = activeId;
518
+ applyClass(classId);
519
+ setDocumentModifiedStatus(true);
520
+ return prevActiveId;
521
+ },
522
+ undo: ({ classId }, prevActiveId) => {
523
+ unapplyClass(classId);
524
+ setActiveId(prevActiveId);
525
+ }
526
+ },
527
+ {
528
+ title: getElementLabel(element.id),
529
+ subtitle: ({ classLabel }) => {
530
+ return __(`class %s applied`, "elementor").replace("%s", classLabel);
531
+ }
532
+ }
533
+ );
534
+ }, [activeId, applyClass, element.id, unapplyClass, setActiveId]);
535
+ const applyWithoutHistory = useCallback(
536
+ ({ classId }) => {
537
+ applyClass(classId);
538
+ },
539
+ [applyClass]
540
+ );
541
+ return isVersion330Active ? undoableApply : applyWithoutHistory;
542
+ }
543
+ function useUnapplyClass() {
544
+ const { id: activeId, setId: setActiveId } = useStyle();
545
+ const { element } = useElement();
546
+ const isVersion330Active = isExperimentActive("e_v_3_30");
547
+ const applyClass = useApply();
548
+ const unapplyClass = useUnapply();
549
+ const undoableUnapply = useMemo2(() => {
550
+ return undoable(
551
+ {
552
+ do: ({ classId }) => {
553
+ const prevActiveId = activeId;
554
+ unapplyClass(classId);
555
+ setDocumentModifiedStatus(true);
556
+ return prevActiveId;
557
+ },
558
+ undo: ({ classId }, prevActiveId) => {
559
+ applyClass(classId);
560
+ setActiveId(prevActiveId);
561
+ }
562
+ },
563
+ {
564
+ title: getElementLabel(element.id),
565
+ subtitle: ({ classLabel }) => {
566
+ return __(`class %s removed`, "elementor").replace("%s", classLabel);
567
+ }
568
+ }
569
+ );
570
+ }, [activeId, applyClass, element.id, unapplyClass, setActiveId]);
571
+ const unapplyWithoutHistory = useCallback(
572
+ ({ classId }) => {
573
+ unapplyClass(classId);
574
+ },
575
+ [unapplyClass]
576
+ );
577
+ return isVersion330Active ? undoableUnapply : unapplyWithoutHistory;
578
+ }
579
+ function useApply() {
580
+ const { element } = useElement();
581
+ const { setId: setActiveId } = useStyle();
582
+ const { setClasses, getAppliedClasses } = useSetClasses();
583
+ return useCallback(
584
+ (classIDToApply) => {
585
+ const appliedClasses = getAppliedClasses();
586
+ if (appliedClasses.includes(classIDToApply)) {
587
+ throw new Error(
588
+ `Class ${classIDToApply} is already applied to element ${element.id}, cannot re-apply.`
589
+ );
590
+ }
591
+ const updatedClassesIds = [...appliedClasses, classIDToApply];
592
+ setClasses(updatedClassesIds);
593
+ setActiveId(classIDToApply);
594
+ },
595
+ [element.id, getAppliedClasses, setActiveId, setClasses]
596
+ );
597
+ }
598
+ function useUnapply() {
599
+ const { element } = useElement();
600
+ const { id: activeId, setId: setActiveId } = useStyle();
601
+ const { setClasses, getAppliedClasses } = useSetClasses();
602
+ return useCallback(
603
+ (classIDToUnapply) => {
604
+ const appliedClasses = getAppliedClasses();
605
+ if (!appliedClasses.includes(classIDToUnapply)) {
606
+ throw new Error(
607
+ `Class ${classIDToUnapply} is not applied to element ${element.id}, cannot unapply it.`
608
+ );
609
+ }
610
+ const updatedClassesIds = appliedClasses.filter((id) => id !== classIDToUnapply);
611
+ setClasses(updatedClassesIds);
612
+ if (activeId === classIDToUnapply) {
613
+ setActiveId(updatedClassesIds[0] ?? null);
614
+ }
615
+ },
616
+ [activeId, element.id, getAppliedClasses, setActiveId, setClasses]
617
+ );
618
+ }
619
+ function useSetClasses() {
620
+ const { element } = useElement();
621
+ const currentClassesProp = useClassesProp();
622
+ return useMemo2(() => {
623
+ const setClasses = (ids) => {
624
+ updateElementSettings({
625
+ id: element.id,
626
+ props: { [currentClassesProp]: classesPropTypeUtil.create(ids) },
627
+ withHistory: false
628
+ });
629
+ };
630
+ const getAppliedClasses = () => getElementSetting(element.id, currentClassesProp)?.value || [];
631
+ return {
632
+ setClasses,
633
+ getAppliedClasses
634
+ };
635
+ }, [currentClassesProp, element.id]);
636
+ }
637
+
470
638
  // src/components/css-classes/css-class-menu.tsx
471
- var STATES = ["hover", "focus", "active"];
472
- function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl }) {
473
- const styledStates = useStyledStates(styleId);
474
- const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
639
+ var STATES = [
640
+ { key: "normal", value: null },
641
+ { key: "hover", value: "hover" },
642
+ { key: "focus", value: "focus" },
643
+ { key: "active", value: "active" }
644
+ ];
645
+ function CssClassMenu({ popupState, anchorEl }) {
646
+ const { provider } = useCssClass();
475
647
  const handleKeyDown = (e) => {
476
648
  e.stopPropagation();
477
649
  };
478
- return /* @__PURE__ */ React5.createElement(
650
+ return /* @__PURE__ */ React6.createElement(
479
651
  Menu,
480
652
  {
481
653
  MenuListProps: { dense: true, sx: { minWidth: "160px" } },
@@ -492,60 +664,34 @@ function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl })
492
664
  onKeyDown: handleKeyDown,
493
665
  disableAutoFocusItem: true
494
666
  },
495
- getMenuItemsByProvider({ provider, styleId, handleRename, closeMenu: popupState.close }),
496
- /* @__PURE__ */ React5.createElement(MenuSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __("States", "elementor")),
497
- /* @__PURE__ */ React5.createElement(
498
- StateMenuItem,
499
- {
500
- key: "normal",
501
- state: null,
502
- styleId,
503
- closeMenu: popupState.close,
504
- isStyled: styledStates.normal,
505
- indicatorVariant
506
- }
507
- ),
667
+ getMenuItemsByProvider({ provider, closeMenu: popupState.close }),
668
+ /* @__PURE__ */ React6.createElement(MenuSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __2("States", "elementor")),
508
669
  STATES.map((state) => {
509
- return /* @__PURE__ */ React5.createElement(
510
- StateMenuItem,
511
- {
512
- key: state,
513
- state,
514
- styleId,
515
- closeMenu: popupState.close,
516
- isStyled: styledStates[state],
517
- indicatorVariant
518
- }
519
- );
670
+ return /* @__PURE__ */ React6.createElement(StateMenuItem, { key: state.key, state: state.value, closeMenu: popupState.close });
520
671
  })
521
672
  );
522
673
  }
523
- function useStyledStates(styleId) {
674
+ function useModifiedStates(styleId) {
524
675
  const { meta } = useStyle();
525
676
  const styleDef = stylesRepository2.all().find((style) => style.id === styleId);
526
677
  return Object.fromEntries(
527
678
  styleDef?.variants.filter((variant) => meta.breakpoint === variant.meta.breakpoint).map((variant) => [variant.meta.state ?? "normal", true]) ?? []
528
679
  );
529
680
  }
530
- function getMenuItemsByProvider({
531
- provider,
532
- styleId,
533
- handleRename,
534
- closeMenu
535
- }) {
536
- if (!styleId || !provider) {
681
+ function getMenuItemsByProvider({ provider, closeMenu }) {
682
+ if (!provider) {
537
683
  return [];
538
684
  }
539
685
  const providerInstance = stylesRepository2.getProviderByKey(provider);
540
686
  const providerActions = providerInstance?.actions;
541
687
  const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
542
688
  const actions = [
543
- canUpdate && /* @__PURE__ */ React5.createElement(RenameClassMenuItem, { key: "rename-class", handleRename, closeMenu }),
544
- canDelete && /* @__PURE__ */ React5.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId, closeMenu })
689
+ canUpdate && /* @__PURE__ */ React6.createElement(RenameClassMenuItem, { key: "rename-class", closeMenu }),
690
+ canDelete && /* @__PURE__ */ React6.createElement(UnapplyClassMenuItem, { key: "unapply-class", closeMenu })
545
691
  ].filter(Boolean);
546
692
  if (actions.length) {
547
693
  actions.unshift(
548
- /* @__PURE__ */ React5.createElement(
694
+ /* @__PURE__ */ React6.createElement(
549
695
  MenuSubheader,
550
696
  {
551
697
  key: "provider-label",
@@ -554,27 +700,28 @@ function getMenuItemsByProvider({
554
700
  providerInstance?.labels?.singular
555
701
  )
556
702
  );
557
- actions.push(/* @__PURE__ */ React5.createElement(Divider, { key: "provider-actions-divider" }));
703
+ actions.push(/* @__PURE__ */ React6.createElement(Divider, { key: "provider-actions-divider" }));
558
704
  }
559
705
  return actions;
560
706
  }
561
- function StateMenuItem({
562
- state,
563
- styleId,
564
- closeMenu,
565
- isStyled = false,
566
- indicatorVariant,
567
- ...props
568
- }) {
707
+ function StateMenuItem({ state, closeMenu, ...props }) {
708
+ const { id: styleId, provider } = useCssClass();
569
709
  const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
570
710
  const { state: activeState } = meta;
711
+ const { userCan } = useUserStylesCapability();
712
+ const modifiedStates = useModifiedStates(styleId);
713
+ const isUpdateAllowed = userCan(provider ?? "").updateProps;
714
+ const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
715
+ const isStyled = modifiedStates[state ?? "normal"] ?? false;
716
+ const disabled = isUpdateAllowed ? false : !isStyled;
571
717
  const isActive = styleId === activeId;
572
718
  const isSelected = state === activeState && isActive;
573
- return /* @__PURE__ */ React5.createElement(
719
+ return /* @__PURE__ */ React6.createElement(
574
720
  MenuListItem,
575
721
  {
576
722
  ...props,
577
723
  selected: isSelected,
724
+ disabled,
578
725
  sx: { textTransform: "capitalize" },
579
726
  onClick: () => {
580
727
  if (!isActive) {
@@ -584,55 +731,66 @@ function StateMenuItem({
584
731
  closeMenu();
585
732
  }
586
733
  },
587
- /* @__PURE__ */ React5.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React5.createElement(StyleIndicator, { "aria-label": __("Has style", "elementor"), variant: indicatorVariant }), state ?? "normal")
734
+ /* @__PURE__ */ React6.createElement(
735
+ MenuItemInfotip,
736
+ {
737
+ showInfoTip: disabled,
738
+ content: __2("With your role as an editor, you can only use existing states.", "elementor")
739
+ },
740
+ /* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(StyleIndicator, { "aria-label": __2("Has style", "elementor"), variant: indicatorVariant }), state ?? "normal")
741
+ )
588
742
  );
589
743
  }
590
- function UnapplyClassMenuItem({ styleId, closeMenu, ...props }) {
591
- const unapplyClass = useUnapplyClass(styleId);
592
- return /* @__PURE__ */ React5.createElement(
744
+ function UnapplyClassMenuItem({ closeMenu, ...props }) {
745
+ const { id: classId, label: classLabel } = useCssClass();
746
+ const unapplyClass = useUnapplyClass();
747
+ return classId ? /* @__PURE__ */ React6.createElement(
593
748
  MenuListItem,
594
749
  {
595
750
  ...props,
596
751
  onClick: () => {
597
- unapplyClass();
752
+ unapplyClass({ classId, classLabel });
598
753
  closeMenu();
599
754
  }
600
755
  },
601
- __("Remove", "elementor")
602
- );
756
+ __2("Remove", "elementor")
757
+ ) : null;
603
758
  }
604
- function RenameClassMenuItem({
605
- handleRename,
606
- closeMenu,
607
- ...props
608
- }) {
609
- return /* @__PURE__ */ React5.createElement(
759
+ function RenameClassMenuItem({ closeMenu }) {
760
+ const { handleRename, provider } = useCssClass();
761
+ const { userCan } = useUserStylesCapability();
762
+ if (!provider) {
763
+ return null;
764
+ }
765
+ const isAllowed = userCan(provider).update;
766
+ return /* @__PURE__ */ React6.createElement(
610
767
  MenuListItem,
611
768
  {
612
- ...props,
769
+ disabled: !isAllowed,
613
770
  onClick: () => {
614
771
  closeMenu();
615
772
  handleRename();
616
773
  }
617
774
  },
618
- __("Rename", "elementor")
775
+ /* @__PURE__ */ React6.createElement(
776
+ MenuItemInfotip,
777
+ {
778
+ showInfoTip: !isAllowed,
779
+ content: __2(
780
+ "With your role as an editor, you can use existing classes but can\u2019t modify them.",
781
+ "elementor"
782
+ )
783
+ },
784
+ __2("Rename", "elementor")
785
+ )
619
786
  );
620
787
  }
621
788
 
622
789
  // src/components/css-classes/css-class-item.tsx
623
790
  var CHIP_SIZE = "tiny";
624
- function CssClassItem({
625
- id,
626
- provider,
627
- label,
628
- isActive,
629
- color: colorProp,
630
- icon,
631
- chipProps,
632
- onClickActive,
633
- renameLabel,
634
- setError
635
- }) {
791
+ function CssClassItem(props) {
792
+ const { chipProps, icon, color: colorProp, ...classProps } = props;
793
+ const { id, provider, label, isActive, onClickActive, renameLabel, setError } = classProps;
636
794
  const { meta, setMetaState } = useStyle();
637
795
  const popupState = usePopupState({ variant: "popover" });
638
796
  const [chipRef, setChipRef] = useState3(null);
@@ -653,7 +811,7 @@ function CssClassItem({
653
811
  const providerActions = provider ? stylesRepository3.getProviderByKey(provider)?.actions : null;
654
812
  const allowRename = Boolean(providerActions?.update);
655
813
  const isShowingState = isActive && meta.state;
656
- return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(
814
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
657
815
  UnstableChipGroup,
658
816
  {
659
817
  ref: setChipRef,
@@ -664,11 +822,11 @@ function CssClassItem({
664
822
  "&.MuiChipGroup-root.MuiAutocomplete-tag": { margin: theme.spacing(0.125) }
665
823
  })
666
824
  },
667
- /* @__PURE__ */ React6.createElement(
825
+ /* @__PURE__ */ React7.createElement(
668
826
  Chip2,
669
827
  {
670
828
  size: CHIP_SIZE,
671
- label: isEditing ? /* @__PURE__ */ React6.createElement(EditableField, { ref, ...getEditableProps() }) : /* @__PURE__ */ React6.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
829
+ label: isEditing ? /* @__PURE__ */ React7.createElement(EditableField, { ref, ...getEditableProps() }) : /* @__PURE__ */ React7.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
672
830
  variant: isActive && !meta.state && !isEditing ? "filled" : "standard",
673
831
  shape: "rounded",
674
832
  icon,
@@ -695,17 +853,17 @@ function CssClassItem({
695
853
  })
696
854
  }
697
855
  ),
698
- !isEditing && /* @__PURE__ */ React6.createElement(
856
+ !isEditing && /* @__PURE__ */ React7.createElement(
699
857
  Chip2,
700
858
  {
701
- icon: isShowingState ? void 0 : /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "tiny" }),
859
+ icon: isShowingState ? void 0 : /* @__PURE__ */ React7.createElement(DotsVerticalIcon, { fontSize: "tiny" }),
702
860
  size: CHIP_SIZE,
703
- label: isShowingState ? /* @__PURE__ */ React6.createElement(Stack2, { direction: "row", gap: 0.5, alignItems: "center" }, /* @__PURE__ */ React6.createElement(Typography2, { variant: "inherit" }, meta.state), /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "tiny" })) : void 0,
861
+ label: isShowingState ? /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 0.5, alignItems: "center" }, /* @__PURE__ */ React7.createElement(Typography2, { variant: "inherit" }, meta.state), /* @__PURE__ */ React7.createElement(DotsVerticalIcon, { fontSize: "tiny" })) : void 0,
704
862
  variant: "filled",
705
863
  shape: "rounded",
706
864
  color,
707
865
  ...bindTrigger(popupState),
708
- "aria-label": __2("Open CSS Class Menu", "elementor"),
866
+ "aria-label": __3("Open CSS Class Menu", "elementor"),
709
867
  sx: (theme) => ({
710
868
  borderRadius: `${theme.shape.borderRadius * 0.75}px`,
711
869
  paddingRight: 0,
@@ -714,16 +872,7 @@ function CssClassItem({
714
872
  })
715
873
  }
716
874
  )
717
- ), /* @__PURE__ */ React6.createElement(
718
- CssClassMenu,
719
- {
720
- styleId: id,
721
- popupState,
722
- provider,
723
- handleRename: openEditMode,
724
- anchorEl: chipRef
725
- }
726
- ));
875
+ ), /* @__PURE__ */ React7.createElement(CssClassProvider, { ...classProps, handleRename: openEditMode }, /* @__PURE__ */ React7.createElement(CssClassMenu, { popupState, anchorEl: chipRef })));
727
876
  }
728
877
  var validateLabel = (newLabel) => {
729
878
  const result = validateStyleLabel(newLabel, "rename");
@@ -737,26 +886,26 @@ var validateLabel = (newLabel) => {
737
886
  var ID = "elementor-css-class-selector";
738
887
  var TAGS_LIMIT = 50;
739
888
  var EMPTY_OPTION = {
740
- label: __3("local", "elementor"),
889
+ label: __4("local", "elementor"),
741
890
  value: null,
742
891
  fixed: true,
743
892
  color: "accent",
744
- icon: /* @__PURE__ */ React7.createElement(MapPinIcon, null),
893
+ icon: /* @__PURE__ */ React8.createElement(MapPinIcon, null),
745
894
  provider: null
746
895
  };
747
896
  var { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation();
748
897
  function CssClassSelector() {
749
898
  const options12 = useOptions();
750
- const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
899
+ const { value: appliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
751
900
  const { id: activeId, setId: setActiveId } = useStyle();
752
901
  const autocompleteRef = useRef(null);
753
902
  const [renameError, setRenameError] = useState4(null);
754
- const handleApply = useHandleApply(appliedIds, setAppliedIds);
903
+ const handleSelect = useHandleSelect();
755
904
  const { create, validate, entityName } = useCreateAction({ pushAppliedId, setActiveId });
756
905
  const applied = useAppliedOptions(options12, appliedIds);
757
906
  const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
758
907
  const showPlaceholder = applied.every(({ fixed }) => fixed);
759
- return /* @__PURE__ */ React7.createElement(Stack3, { p: 2 }, /* @__PURE__ */ React7.createElement(Stack3, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(FormLabel, { htmlFor: ID, size: "small" }, __3("Classes", "elementor")), /* @__PURE__ */ React7.createElement(Stack3, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
908
+ return /* @__PURE__ */ React8.createElement(Stack3, { p: 2 }, /* @__PURE__ */ React8.createElement(Stack3, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React8.createElement(FormLabel, { htmlFor: ID, size: "small" }, __4("Classes", "elementor")), /* @__PURE__ */ React8.createElement(Stack3, { direction: "row", gap: 1 }, /* @__PURE__ */ React8.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React8.createElement(
760
909
  WarningInfotip,
761
910
  {
762
911
  open: Boolean(renameError),
@@ -765,21 +914,22 @@ function CssClassSelector() {
765
914
  width: autocompleteRef.current?.getBoundingClientRect().width,
766
915
  offset: [0, -15]
767
916
  },
768
- /* @__PURE__ */ React7.createElement(
917
+ /* @__PURE__ */ React8.createElement(
769
918
  CreatableAutocomplete,
770
919
  {
771
920
  id: ID,
772
921
  ref: autocompleteRef,
773
922
  size: "tiny",
774
- placeholder: showPlaceholder ? __3("Type class name", "elementor") : void 0,
923
+ placeholder: showPlaceholder ? __4("Type class name", "elementor") : void 0,
775
924
  options: options12,
776
925
  selected: applied,
777
926
  entityName,
778
- onSelect: handleApply,
927
+ onSelect: handleSelect,
779
928
  onCreate: create ?? void 0,
780
929
  validate: validate ?? void 0,
781
930
  limitTags: TAGS_LIMIT,
782
- getLimitTagsText: (more) => /* @__PURE__ */ React7.createElement(Chip3, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
931
+ renderEmptyState: EmptyState,
932
+ getLimitTagsText: (more) => /* @__PURE__ */ React8.createElement(Chip3, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
783
933
  renderTags: (values, getTagProps) => values.map((value, index) => {
784
934
  const chipProps = getTagProps({ index });
785
935
  const isActive = value.value === active?.value;
@@ -789,7 +939,7 @@ function CssClassSelector() {
789
939
  }
790
940
  return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
791
941
  };
792
- return /* @__PURE__ */ React7.createElement(
942
+ return /* @__PURE__ */ React8.createElement(
793
943
  CssClassItem,
794
944
  {
795
945
  key: chipProps.key,
@@ -810,6 +960,20 @@ function CssClassSelector() {
810
960
  )
811
961
  ));
812
962
  }
963
+ var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElement(Box2, { sx: { py: 4 } }, /* @__PURE__ */ React8.createElement(
964
+ Stack3,
965
+ {
966
+ gap: 1,
967
+ alignItems: "center",
968
+ color: "text.secondary",
969
+ justifyContent: "center",
970
+ sx: { px: 2, m: "auto", maxWidth: "236px" }
971
+ },
972
+ /* @__PURE__ */ React8.createElement(ColorSwatchIcon, { sx: { transform: "rotate(90deg)" }, fontSize: "large" }),
973
+ /* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "subtitle2" }, __4("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React8.createElement("br", null), "\u201C", searchValue, "\u201D."),
974
+ /* @__PURE__ */ React8.createElement(Typography3, { align: "center", variant: "caption", sx: { mb: 2 } }, __4("With your current role,", "elementor"), /* @__PURE__ */ React8.createElement("br", null), __4("you can only use existing classes.", "elementor")),
975
+ /* @__PURE__ */ React8.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __4("Clear & try again", "elementor"))
976
+ ));
813
977
  var updateClassByProvider = (provider, data) => {
814
978
  if (!provider) {
815
979
  return;
@@ -835,7 +999,7 @@ function useOptions() {
835
999
  value: styleDef.id,
836
1000
  fixed: isElements,
837
1001
  color: isElements ? "accent" : "global",
838
- icon: isElements ? /* @__PURE__ */ React7.createElement(MapPinIcon, null) : null,
1002
+ icon: isElements ? /* @__PURE__ */ React8.createElement(MapPinIcon, null) : null,
839
1003
  provider: provider.getKey()
840
1004
  };
841
1005
  });
@@ -858,7 +1022,7 @@ function useCreateAction({
858
1022
  if (hasReachedLimit(provider)) {
859
1023
  return {
860
1024
  isValid: false,
861
- errorMessage: __3(
1025
+ errorMessage: __4(
862
1026
  "You\u2019ve reached the limit of 50 classes. Please remove an existing one to create a new class.",
863
1027
  "elementor"
864
1028
  )
@@ -885,42 +1049,38 @@ function useAppliedOptions(options12, appliedIds) {
885
1049
  function useAppliedClassesIds() {
886
1050
  const { element } = useElement();
887
1051
  const currentClassesProp = useClassesProp();
888
- const value = useElementSetting2(element.id, currentClassesProp)?.value || [];
1052
+ const value = useElementSetting(element.id, currentClassesProp)?.value || [];
889
1053
  const setValue = (ids) => {
890
1054
  updateElementSettings2({
891
1055
  id: element.id,
892
1056
  props: {
893
- [currentClassesProp]: classesPropTypeUtil.create(ids)
1057
+ [currentClassesProp]: classesPropTypeUtil2.create(ids)
894
1058
  }
895
1059
  });
896
1060
  };
897
1061
  const pushValue = (id) => {
898
- const ids = getElementSetting(element.id, currentClassesProp)?.value || [];
1062
+ const ids = getElementSetting2(element.id, currentClassesProp)?.value || [];
899
1063
  setValue([...ids, id]);
900
1064
  };
901
1065
  return {
902
1066
  value,
903
- setValue,
904
1067
  pushValue
905
1068
  };
906
1069
  }
907
- function useHandleApply(appliedIds, setAppliedIds) {
908
- const { id: activeId, setId: setActiveId } = useStyle();
909
- return (selectedOptions) => {
910
- const selectedValues = selectedOptions.map(({ value }) => value).filter((value) => value !== EMPTY_OPTION.value);
911
- const isSameClassesAlreadyApplied = selectedValues.length === appliedIds.length && selectedValues.every((value) => appliedIds.includes(value));
912
- if (isSameClassesAlreadyApplied) {
913
- return;
914
- }
915
- setAppliedIds(selectedValues);
916
- const addedValue = selectedValues.find((id) => !appliedIds.includes(id));
917
- if (addedValue) {
918
- setActiveId(addedValue);
1070
+ function useHandleSelect() {
1071
+ const apply = useApplyClass();
1072
+ const unapply = useUnapplyClass();
1073
+ return (_selectedOptions, reason, option) => {
1074
+ if (!option.value) {
919
1075
  return;
920
1076
  }
921
- const removedValue = appliedIds.find((id) => !selectedValues.includes(id));
922
- if (removedValue && removedValue === activeId) {
923
- setActiveId(selectedValues[0] ?? null);
1077
+ switch (reason) {
1078
+ case "selectOption":
1079
+ apply({ classId: option.value, classLabel: option.label });
1080
+ break;
1081
+ case "removeOption":
1082
+ unapply({ classId: option.value, classLabel: option.label });
1083
+ break;
924
1084
  }
925
1085
  };
926
1086
  }
@@ -929,7 +1089,7 @@ function useHandleApply(appliedIds, setAppliedIds) {
929
1089
  import { __createPanel as createPanel } from "@elementor/editor-panels";
930
1090
 
931
1091
  // src/components/editing-panel.tsx
932
- import * as React74 from "react";
1092
+ import * as React75 from "react";
933
1093
  import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
934
1094
  import { useSelectedElement } from "@elementor/editor-elements";
935
1095
  import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
@@ -937,16 +1097,16 @@ import { ThemeProvider as ThemeProvider9 } from "@elementor/editor-ui";
937
1097
  import { AtomIcon } from "@elementor/icons";
938
1098
  import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
939
1099
  import { ErrorBoundary } from "@elementor/ui";
940
- import { __ as __50 } from "@wordpress/i18n";
1100
+ import { __ as __51 } from "@wordpress/i18n";
941
1101
 
942
1102
  // src/controls-actions.ts
943
1103
  import { createMenu } from "@elementor/menus";
944
1104
 
945
1105
  // src/popover-action.tsx
946
- import * as React8 from "react";
1106
+ import * as React9 from "react";
947
1107
  import { useId as useId2 } from "react";
948
1108
  import { XIcon } from "@elementor/icons";
949
- import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as Typography3, usePopupState as usePopupState2 } from "@elementor/ui";
1109
+ import { bindPopover, bindToggle, IconButton, Popover, Stack as Stack4, Tooltip, Typography as Typography4, usePopupState as usePopupState2 } from "@elementor/ui";
950
1110
  var SIZE = "tiny";
951
1111
  function PopoverAction({
952
1112
  title,
@@ -962,7 +1122,7 @@ function PopoverAction({
962
1122
  if (!visible) {
963
1123
  return null;
964
1124
  }
965
- return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Tooltip, { placement: "top", title }, /* @__PURE__ */ React8.createElement(IconButton, { "aria-label": title, key: id, size: SIZE, ...bindToggle(popupState) }, /* @__PURE__ */ React8.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React8.createElement(
1125
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Tooltip, { placement: "top", title }, /* @__PURE__ */ React9.createElement(IconButton, { "aria-label": title, key: id, size: SIZE, ...bindToggle(popupState) }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE }))), /* @__PURE__ */ React9.createElement(
966
1126
  Popover,
967
1127
  {
968
1128
  disablePortal: true,
@@ -973,8 +1133,8 @@ function PopoverAction({
973
1133
  },
974
1134
  ...bindPopover(popupState)
975
1135
  },
976
- /* @__PURE__ */ React8.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React8.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React8.createElement(Typography3, { variant: "subtitle2" }, title), /* @__PURE__ */ React8.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React8.createElement(XIcon, { fontSize: SIZE }))),
977
- /* @__PURE__ */ React8.createElement(PopoverContent2, { closePopover: popupState.close })
1136
+ /* @__PURE__ */ React9.createElement(Stack4, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React9.createElement(Icon, { fontSize: SIZE, sx: { mr: 0.5 } }), /* @__PURE__ */ React9.createElement(Typography4, { variant: "subtitle2" }, title), /* @__PURE__ */ React9.createElement(IconButton, { sx: { ml: "auto" }, size: SIZE, onClick: popupState.close }, /* @__PURE__ */ React9.createElement(XIcon, { fontSize: SIZE }))),
1137
+ /* @__PURE__ */ React9.createElement(PopoverContent2, { closePopover: popupState.close })
978
1138
  ));
979
1139
  }
980
1140
 
@@ -986,23 +1146,24 @@ var controlActionsMenu = createMenu({
986
1146
  });
987
1147
 
988
1148
  // src/components/editing-panel-error-fallback.tsx
989
- import * as React9 from "react";
990
- import { Alert, Box as Box2 } from "@elementor/ui";
1149
+ import * as React10 from "react";
1150
+ import { Alert, Box as Box3 } from "@elementor/ui";
991
1151
  function EditorPanelErrorFallback() {
992
- return /* @__PURE__ */ React9.createElement(Box2, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React9.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React9.createElement("strong", null, "Something went wrong")));
1152
+ return /* @__PURE__ */ React10.createElement(Box3, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React10.createElement(Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React10.createElement("strong", null, "Something went wrong")));
993
1153
  }
994
1154
 
995
1155
  // src/components/editing-panel-tabs.tsx
996
- import * as React73 from "react";
1156
+ import * as React74 from "react";
997
1157
  import { Fragment as Fragment9 } from "react";
1158
+ import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
998
1159
  import { Divider as Divider6, Stack as Stack17, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
999
- import { __ as __49 } from "@wordpress/i18n";
1160
+ import { __ as __50 } from "@wordpress/i18n";
1000
1161
 
1001
1162
  // src/contexts/scroll-context.tsx
1002
- import * as React10 from "react";
1003
- import { createContext as createContext4, useContext as useContext4, useEffect, useRef as useRef2, useState as useState5 } from "react";
1163
+ import * as React11 from "react";
1164
+ import { createContext as createContext5, useContext as useContext5, useEffect, useRef as useRef2, useState as useState5 } from "react";
1004
1165
  import { styled as styled3 } from "@elementor/ui";
1005
- var ScrollContext = createContext4(void 0);
1166
+ var ScrollContext = createContext5(void 0);
1006
1167
  var ScrollPanel = styled3("div")`
1007
1168
  height: 100%;
1008
1169
  overflow-y: auto;
@@ -1031,19 +1192,51 @@ function ScrollProvider({ children }) {
1031
1192
  scrollElement.removeEventListener("scroll", handleScroll);
1032
1193
  };
1033
1194
  });
1034
- return /* @__PURE__ */ React10.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React10.createElement(ScrollPanel, { ref }, children));
1195
+ return /* @__PURE__ */ React11.createElement(ScrollContext.Provider, { value: { direction } }, /* @__PURE__ */ React11.createElement(ScrollPanel, { ref }, children));
1035
1196
  }
1036
1197
  function useScrollDirection() {
1037
- return useContext4(ScrollContext)?.direction ?? DEFAULT_SCROLL_DIRECTION;
1198
+ return useContext5(ScrollContext)?.direction ?? DEFAULT_SCROLL_DIRECTION;
1038
1199
  }
1039
1200
 
1201
+ // src/hooks/use-default-panel-settings.ts
1202
+ import { createContext as createContext6, useContext as useContext6 } from "react";
1203
+ var fallbackEditorSettings = {
1204
+ defaultSectionsExpanded: {
1205
+ settings: ["Content", "Settings"],
1206
+ style: []
1207
+ },
1208
+ defaultTab: "settings"
1209
+ };
1210
+ var defaultPanelSettingsContext = createContext6({
1211
+ "e-div-block": {
1212
+ defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
1213
+ defaultTab: "style"
1214
+ },
1215
+ "e-flexbox": {
1216
+ defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
1217
+ defaultTab: "style"
1218
+ }
1219
+ });
1220
+ var useDefaultPanelSettings = () => {
1221
+ const { element } = useElement();
1222
+ const defaults = useContext6(defaultPanelSettingsContext)[element.type];
1223
+ return defaults || fallbackEditorSettings;
1224
+ };
1225
+
1040
1226
  // src/hooks/use-state-by-element.ts
1041
1227
  import { useState as useState6 } from "react";
1042
- import { isExperimentActive } from "@elementor/editor-v1-adapters";
1228
+ import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
1043
1229
  import { getSessionStorageItem, setSessionStorageItem } from "@elementor/session";
1230
+
1231
+ // src/sync/experiments-flags.ts
1232
+ var EXPERIMENTAL_FEATURES = {
1233
+ V_3_30: "e_v_3_30"
1234
+ };
1235
+
1236
+ // src/hooks/use-state-by-element.ts
1044
1237
  var useStateByElement = (key, initialValue) => {
1045
1238
  const { element } = useElement();
1046
- const isFeatureActive = isExperimentActive("e_v_3_30");
1239
+ const isFeatureActive = isExperimentActive2(EXPERIMENTAL_FEATURES.V_3_30);
1047
1240
  const lookup = `elementor/editor-state/${element.id}/${key}`;
1048
1241
  const storedValue = isFeatureActive ? getSessionStorageItem(lookup) : initialValue;
1049
1242
  const [value, setValue] = useState6(storedValue ?? initialValue);
@@ -1055,13 +1248,14 @@ var useStateByElement = (key, initialValue) => {
1055
1248
  };
1056
1249
 
1057
1250
  // src/components/settings-tab.tsx
1058
- import * as React16 from "react";
1251
+ import * as React17 from "react";
1059
1252
  import { ControlFormLabel } from "@elementor/editor-controls";
1253
+ import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
1060
1254
  import { SessionStorageProvider } from "@elementor/session";
1061
1255
  import { Divider as Divider3 } from "@elementor/ui";
1062
1256
 
1063
1257
  // src/controls-registry/control.tsx
1064
- import * as React11 from "react";
1258
+ import * as React12 from "react";
1065
1259
 
1066
1260
  // src/controls-registry/controls-registry.tsx
1067
1261
  import {
@@ -1070,6 +1264,7 @@ import {
1070
1264
  SelectControl,
1071
1265
  SizeControl,
1072
1266
  SvgMediaControl,
1267
+ SwitchControl,
1073
1268
  TextAreaControl,
1074
1269
  TextControl,
1075
1270
  UrlControl
@@ -1082,7 +1277,8 @@ var controlTypes = {
1082
1277
  size: { component: SizeControl, layout: "two-columns" },
1083
1278
  select: { component: SelectControl, layout: "two-columns" },
1084
1279
  link: { component: LinkControl, layout: "full" },
1085
- url: { component: UrlControl, layout: "full" }
1280
+ url: { component: UrlControl, layout: "full" },
1281
+ switch: { component: SwitchControl, layout: "two-columns" }
1086
1282
  };
1087
1283
  var getControl = (type) => controlTypes[type]?.component;
1088
1284
  var getDefaultLayout = (type) => controlTypes[type].layout;
@@ -1096,16 +1292,16 @@ var Control = ({ props, type }) => {
1096
1292
  context: { controlType: type }
1097
1293
  });
1098
1294
  }
1099
- return /* @__PURE__ */ React11.createElement(ControlByType, { ...props, context: { elementId: element.id } });
1295
+ return /* @__PURE__ */ React12.createElement(ControlByType, { ...props, context: { elementId: element.id } });
1100
1296
  };
1101
1297
 
1102
1298
  // src/controls-registry/control-type-container.tsx
1103
- import * as React12 from "react";
1104
- import { Box as Box3, styled as styled4 } from "@elementor/ui";
1299
+ import * as React13 from "react";
1300
+ import { Box as Box4, styled as styled4 } from "@elementor/ui";
1105
1301
  var ControlTypeContainer = ({ children, layout }) => {
1106
- return /* @__PURE__ */ React12.createElement(StyledContainer, { layout }, children);
1302
+ return /* @__PURE__ */ React13.createElement(StyledContainer, { layout }, children);
1107
1303
  };
1108
- var StyledContainer = styled4(Box3, {
1304
+ var StyledContainer = styled4(Box4, {
1109
1305
  shouldForwardProp: (prop) => !["layout"].includes(prop)
1110
1306
  })(({ layout, theme }) => ({
1111
1307
  display: "grid",
@@ -1121,9 +1317,9 @@ var getGridLayout = (layout) => ({
1121
1317
  });
1122
1318
 
1123
1319
  // src/controls-registry/settings-field.tsx
1124
- import * as React13 from "react";
1320
+ import * as React14 from "react";
1125
1321
  import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
1126
- import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
1322
+ import { updateElementSettings as updateElementSettings3, useElementSetting as useElementSetting2 } from "@elementor/editor-elements";
1127
1323
 
1128
1324
  // src/controls-registry/create-top-level-object-type.ts
1129
1325
  var createTopLevelOjectType = ({ schema }) => {
@@ -1141,7 +1337,7 @@ var createTopLevelOjectType = ({ schema }) => {
1141
1337
  // src/controls-registry/settings-field.tsx
1142
1338
  var SettingsField = ({ bind, children }) => {
1143
1339
  const { element, elementType } = useElement();
1144
- const settingsValue = useElementSetting3(element.id, bind);
1340
+ const settingsValue = useElementSetting2(element.id, bind);
1145
1341
  const value = { [bind]: settingsValue };
1146
1342
  const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
1147
1343
  const setValue = (newValue) => {
@@ -1150,11 +1346,11 @@ var SettingsField = ({ bind, children }) => {
1150
1346
  props: { ...newValue }
1151
1347
  });
1152
1348
  };
1153
- return /* @__PURE__ */ React13.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React13.createElement(PropKeyProvider, { bind }, children));
1349
+ return /* @__PURE__ */ React14.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React14.createElement(PropKeyProvider, { bind }, children));
1154
1350
  };
1155
1351
 
1156
1352
  // src/components/section.tsx
1157
- import * as React14 from "react";
1353
+ import * as React15 from "react";
1158
1354
  import { useId as useId3 } from "react";
1159
1355
  import { Collapse, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack5 } from "@elementor/ui";
1160
1356
 
@@ -1176,7 +1372,7 @@ function Section({ title, children, defaultExpanded = false }) {
1176
1372
  const id = useId3();
1177
1373
  const labelId = `label-${id}`;
1178
1374
  const contentId = `content-${id}`;
1179
- return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
1375
+ return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(
1180
1376
  ListItemButton,
1181
1377
  {
1182
1378
  id: labelId,
@@ -1184,38 +1380,48 @@ function Section({ title, children, defaultExpanded = false }) {
1184
1380
  onClick: () => setIsOpen(!isOpen),
1185
1381
  sx: { "&:hover": { backgroundColor: "transparent" } }
1186
1382
  },
1187
- /* @__PURE__ */ React14.createElement(
1383
+ /* @__PURE__ */ React15.createElement(
1188
1384
  ListItemText,
1189
1385
  {
1190
1386
  secondary: title,
1191
1387
  secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" }
1192
1388
  }
1193
1389
  ),
1194
- /* @__PURE__ */ React14.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1195
- ), /* @__PURE__ */ React14.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React14.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React14.createElement(Divider2, null));
1390
+ /* @__PURE__ */ React15.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
1391
+ ), /* @__PURE__ */ React15.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React15.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React15.createElement(Divider2, null));
1196
1392
  }
1197
1393
 
1198
1394
  // src/components/sections-list.tsx
1199
- import * as React15 from "react";
1395
+ import * as React16 from "react";
1200
1396
  import { List } from "@elementor/ui";
1201
1397
  function SectionsList(props) {
1202
- return /* @__PURE__ */ React15.createElement(List, { disablePadding: true, component: "div", ...props });
1398
+ return /* @__PURE__ */ React16.createElement(List, { disablePadding: true, component: "div", ...props });
1203
1399
  }
1204
1400
 
1205
1401
  // src/components/settings-tab.tsx
1206
1402
  var SettingsTab = () => {
1207
1403
  const { elementType, element } = useElement();
1208
- return /* @__PURE__ */ React16.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React16.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
1404
+ const settingsDefault = useDefaultPanelSettings();
1405
+ const isDefaultExpanded = (sectionId) => isExperimentActive3(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
1406
+ return /* @__PURE__ */ React17.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React17.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
1209
1407
  if (type === "control") {
1210
- return /* @__PURE__ */ React16.createElement(Control2, { key: value.bind, control: value });
1408
+ return /* @__PURE__ */ React17.createElement(Control2, { key: value.bind, control: value });
1211
1409
  }
1212
1410
  if (type === "section") {
1213
- return /* @__PURE__ */ React16.createElement(Section, { title: value.label, key: type + "." + index, defaultExpanded: true }, value.items?.map((item) => {
1214
- if (item.type === "control") {
1215
- return /* @__PURE__ */ React16.createElement(Control2, { key: item.value.bind, control: item.value });
1216
- }
1217
- return null;
1218
- }));
1411
+ return /* @__PURE__ */ React17.createElement(
1412
+ Section,
1413
+ {
1414
+ title: value.label,
1415
+ key: type + "." + index,
1416
+ defaultExpanded: isDefaultExpanded(value.label)
1417
+ },
1418
+ value.items?.map((item) => {
1419
+ if (item.type === "control") {
1420
+ return /* @__PURE__ */ React17.createElement(Control2, { key: item.value.bind, control: item.value });
1421
+ }
1422
+ return null;
1423
+ })
1424
+ );
1219
1425
  }
1220
1426
  return null;
1221
1427
  })));
@@ -1225,23 +1431,24 @@ var Control2 = ({ control }) => {
1225
1431
  return null;
1226
1432
  }
1227
1433
  const layout = control.meta?.layout || getDefaultLayout(control.type);
1228
- return /* @__PURE__ */ React16.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React16.createElement(Divider3, null), /* @__PURE__ */ React16.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React16.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React16.createElement(Control, { type: control.type, props: control.props })));
1434
+ return /* @__PURE__ */ React17.createElement(SettingsField, { bind: control.bind }, control.meta?.topDivider && /* @__PURE__ */ React17.createElement(Divider3, null), /* @__PURE__ */ React17.createElement(ControlTypeContainer, { layout }, control.label ? /* @__PURE__ */ React17.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React17.createElement(Control, { type: control.type, props: control.props })));
1229
1435
  };
1230
1436
 
1231
1437
  // src/components/style-tab.tsx
1232
- import * as React72 from "react";
1233
- import { useState as useState13 } from "react";
1438
+ import * as React73 from "react";
1439
+ import { useState as useState12 } from "react";
1234
1440
  import { CLASSES_PROP_KEY } from "@elementor/editor-props";
1235
1441
  import { useActiveBreakpoint } from "@elementor/editor-responsive";
1442
+ import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
1236
1443
  import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
1237
1444
  import { Divider as Divider5, Stack as Stack16 } from "@elementor/ui";
1238
- import { __ as __48 } from "@wordpress/i18n";
1445
+ import { __ as __49 } from "@wordpress/i18n";
1239
1446
 
1240
1447
  // src/contexts/styles-inheritance-context.tsx
1241
- import * as React17 from "react";
1242
- import { createContext as createContext5, useContext as useContext5 } from "react";
1243
- import { getWidgetsCache, useElementSetting as useElementSetting4 } from "@elementor/editor-elements";
1244
- import { classesPropTypeUtil as classesPropTypeUtil2 } from "@elementor/editor-props";
1448
+ import * as React18 from "react";
1449
+ import { createContext as createContext7, useContext as useContext7 } from "react";
1450
+ import { getWidgetsCache, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
1451
+ import { classesPropTypeUtil as classesPropTypeUtil3 } from "@elementor/editor-props";
1245
1452
  import { getBreakpointsTree } from "@elementor/editor-responsive";
1246
1453
  import { stylesRepository as stylesRepository5 } from "@elementor/editor-styles-repository";
1247
1454
 
@@ -1444,15 +1651,15 @@ function getValueByPath(value, path) {
1444
1651
  }
1445
1652
 
1446
1653
  // src/contexts/styles-inheritance-context.tsx
1447
- var Context4 = createContext5(null);
1654
+ var Context4 = createContext7(null);
1448
1655
  function StyleInheritanceProvider({ children }) {
1449
1656
  const styleDefs = useAppliedStyles();
1450
1657
  const breakpointsTree = getBreakpointsTree();
1451
1658
  const { getSnapshot, getInheritanceChain } = createStylesInheritance(styleDefs, breakpointsTree);
1452
- return /* @__PURE__ */ React17.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
1659
+ return /* @__PURE__ */ React18.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
1453
1660
  }
1454
1661
  function useStylesInheritanceSnapshot() {
1455
- const context = useContext5(Context4);
1662
+ const context = useContext7(Context4);
1456
1663
  const { meta } = useStyle();
1457
1664
  if (!context) {
1458
1665
  throw new Error("useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider");
@@ -1463,7 +1670,7 @@ function useStylesInheritanceSnapshot() {
1463
1670
  return context.getSnapshot(meta) ?? null;
1464
1671
  }
1465
1672
  function useStylesInheritanceChain(path) {
1466
- const context = useContext5(Context4);
1673
+ const context = useContext7(Context4);
1467
1674
  if (!context) {
1468
1675
  throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
1469
1676
  }
@@ -1478,8 +1685,8 @@ var useAppliedStyles = () => {
1478
1685
  const currentClassesProp = useClassesProp();
1479
1686
  const baseStyles = useBaseStyles();
1480
1687
  useStylesRerender();
1481
- const classesProp = useElementSetting4(element.id, currentClassesProp);
1482
- const appliedStyles = classesPropTypeUtil2.extract(classesProp);
1688
+ const classesProp = useElementSetting3(element.id, currentClassesProp);
1689
+ const appliedStyles = classesPropTypeUtil3.extract(classesProp);
1483
1690
  return stylesRepository5.all().filter((style) => appliedStyles?.includes(style.id)).concat(baseStyles);
1484
1691
  };
1485
1692
  var useBaseStyles = () => {
@@ -1490,10 +1697,12 @@ var useBaseStyles = () => {
1490
1697
  };
1491
1698
 
1492
1699
  // src/hooks/use-active-style-def-id.ts
1493
- import { useState as useState7 } from "react";
1494
- import { getElementStyles, useElementSetting as useElementSetting5 } from "@elementor/editor-elements";
1700
+ import { getElementStyles, useElementSetting as useElementSetting4 } from "@elementor/editor-elements";
1495
1701
  function useActiveStyleDefId(classProp) {
1496
- const [activeStyledDefId, setActiveStyledDefId] = useState7(null);
1702
+ const [activeStyledDefId, setActiveStyledDefId] = useStateByElement(
1703
+ "active-style-id",
1704
+ null
1705
+ );
1497
1706
  const appliedClassesIds = useAppliedClassesIds2(classProp)?.value || [];
1498
1707
  const fallback = useFirstAppliedClass(appliedClassesIds);
1499
1708
  const activeAndAppliedClassId = useActiveAndAppliedClassId(activeStyledDefId, appliedClassesIds);
@@ -1506,7 +1715,7 @@ function useFirstAppliedClass(appliedClassesIds) {
1506
1715
  }
1507
1716
  function useAppliedClassesIds2(classProp) {
1508
1717
  const { element } = useElement();
1509
- return useElementSetting5(element.id, classProp);
1718
+ return useElementSetting4(element.id, classProp);
1510
1719
  }
1511
1720
  function useActiveAndAppliedClassId(id, appliedClassesIds) {
1512
1721
  const isClassApplied = !!id && appliedClassesIds.includes(id);
@@ -1514,25 +1723,25 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
1514
1723
  }
1515
1724
 
1516
1725
  // src/components/style-sections/background-section/background-section.tsx
1517
- import * as React21 from "react";
1726
+ import * as React22 from "react";
1518
1727
  import { BackgroundControl } from "@elementor/editor-controls";
1519
1728
 
1520
1729
  // src/controls-registry/styles-field.tsx
1521
- import * as React20 from "react";
1730
+ import * as React21 from "react";
1522
1731
  import { ControlAdornmentsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
1523
1732
  import { getStylesSchema } from "@elementor/editor-styles";
1524
1733
 
1525
1734
  // src/hooks/use-styles-fields.ts
1526
- import { useMemo as useMemo2 } from "react";
1735
+ import { useMemo as useMemo3 } from "react";
1527
1736
  import {
1528
1737
  createElementStyle,
1529
1738
  deleteElementStyle,
1530
- getElementLabel
1739
+ getElementLabel as getElementLabel2
1531
1740
  } from "@elementor/editor-elements";
1532
1741
  import { getVariantByMeta } from "@elementor/editor-styles";
1533
1742
  import { ELEMENTS_STYLES_RESERVED_LABEL } from "@elementor/editor-styles-repository";
1534
- import { undoable } from "@elementor/editor-v1-adapters";
1535
- import { __ as __4 } from "@wordpress/i18n";
1743
+ import { undoable as undoable2 } from "@elementor/editor-v1-adapters";
1744
+ import { __ as __5 } from "@wordpress/i18n";
1536
1745
  function useStylesFields(propNames) {
1537
1746
  const { element } = useElement();
1538
1747
  const { id, meta, provider } = useStyle();
@@ -1581,8 +1790,8 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
1581
1790
  );
1582
1791
  }
1583
1792
  function useUndoableCreateElementStyle() {
1584
- return useMemo2(() => {
1585
- return undoable(
1793
+ return useMemo3(() => {
1794
+ return undoable2(
1586
1795
  {
1587
1796
  do: (payload) => {
1588
1797
  return createElementStyle({
@@ -1602,15 +1811,15 @@ function useUndoableCreateElementStyle() {
1602
1811
  }
1603
1812
  },
1604
1813
  {
1605
- title: ({ elementId }) => getElementLabel(elementId),
1606
- subtitle: __4("Style edited", "elementor")
1814
+ title: ({ elementId }) => getElementLabel2(elementId),
1815
+ subtitle: __5("Style edited", "elementor")
1607
1816
  }
1608
1817
  );
1609
1818
  }, []);
1610
1819
  }
1611
1820
  function useUndoableUpdateStyle() {
1612
- return useMemo2(() => {
1613
- return undoable(
1821
+ return useMemo3(() => {
1822
+ return undoable2(
1614
1823
  {
1615
1824
  do: ({ elementId, styleId, provider, meta, props }) => {
1616
1825
  if (!provider.actions.updateProps) {
@@ -1635,8 +1844,8 @@ function useUndoableUpdateStyle() {
1635
1844
  }
1636
1845
  },
1637
1846
  {
1638
- title: ({ elementId }) => getElementLabel(elementId),
1639
- subtitle: __4("Style edited", "elementor")
1847
+ title: ({ elementId }) => getElementLabel2(elementId),
1848
+ subtitle: __5("Style edited", "elementor")
1640
1849
  }
1641
1850
  );
1642
1851
  }, []);
@@ -1663,26 +1872,26 @@ function useStylesField(propName) {
1663
1872
  }
1664
1873
 
1665
1874
  // src/styles-inheritance/styles-inheritance-indicator.tsx
1666
- import * as React19 from "react";
1667
- import { useState as useState9 } from "react";
1875
+ import * as React20 from "react";
1876
+ import { useState as useState8 } from "react";
1668
1877
  import { useBoundProp } from "@elementor/editor-controls";
1669
1878
  import { isEmpty as isEmpty2 } from "@elementor/editor-props";
1670
1879
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
1671
- import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
1880
+ import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
1672
1881
  import { IconButton as IconButton2, Infotip } from "@elementor/ui";
1673
- import { __ as __5 } from "@wordpress/i18n";
1882
+ import { __ as __6 } from "@wordpress/i18n";
1674
1883
 
1675
1884
  // src/styles-inheritance/styles-inheritance-infotip.tsx
1676
- import * as React18 from "react";
1677
- import { useMemo as useMemo3 } from "react";
1885
+ import * as React19 from "react";
1886
+ import { useMemo as useMemo4 } from "react";
1678
1887
  import { createPropsResolver, styleTransformersRegistry } from "@elementor/editor-canvas";
1679
1888
  import { Card, CardContent, List as List2, ListItem, ListItemText as ListItemText2 } from "@elementor/ui";
1680
1889
 
1681
1890
  // src/hooks/use-normalized-inheritance-chain-items.tsx
1682
- import { useEffect as useEffect3, useState as useState8 } from "react";
1891
+ import { useEffect as useEffect3, useState as useState7 } from "react";
1683
1892
  var MAXIMUM_ITEMS = 2;
1684
1893
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
1685
- const [items3, setItems] = useState8([]);
1894
+ const [items3, setItems] = useState7([]);
1686
1895
  useEffect3(() => {
1687
1896
  (async () => {
1688
1897
  const normalizedItems = await Promise.all(
@@ -1721,14 +1930,14 @@ var getTransformedValue = async (item, bind, resolve) => {
1721
1930
  // src/styles-inheritance/styles-inheritance-infotip.tsx
1722
1931
  var StyleIndicatorInfotip = ({ inheritanceChain, propType, path }) => {
1723
1932
  const key = path.join(".");
1724
- const resolve = useMemo3(() => {
1933
+ const resolve = useMemo4(() => {
1725
1934
  return createPropsResolver({
1726
1935
  transformers: styleTransformersRegistry,
1727
1936
  schema: { [key]: propType }
1728
1937
  });
1729
1938
  }, [key, propType]);
1730
1939
  const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
1731
- return /* @__PURE__ */ React18.createElement(Card, { elevation: 0, sx: { maxWidth: 320 } }, /* @__PURE__ */ React18.createElement(CardContent, { sx: { p: 1.5, pb: 2.5 } }, /* @__PURE__ */ React18.createElement(List2, null, items3.map((item) => /* @__PURE__ */ React18.createElement(ListItem, { key: item.id }, /* @__PURE__ */ React18.createElement(
1940
+ return /* @__PURE__ */ React19.createElement(Card, { elevation: 0, sx: { maxWidth: 320 } }, /* @__PURE__ */ React19.createElement(CardContent, { sx: { p: 1.5, pb: 2.5 } }, /* @__PURE__ */ React19.createElement(List2, null, items3.map((item) => /* @__PURE__ */ React19.createElement(ListItem, { key: item.id }, /* @__PURE__ */ React19.createElement(
1732
1941
  ListItemText2,
1733
1942
  {
1734
1943
  primary: `${item.breakpoint} | ${item.displayLabel}. ${item.value}`
@@ -1738,10 +1947,10 @@ var StyleIndicatorInfotip = ({ inheritanceChain, propType, path }) => {
1738
1947
 
1739
1948
  // src/styles-inheritance/styles-inheritance-indicator.tsx
1740
1949
  var StylesInheritanceIndicator = () => {
1741
- const [open, setOpen] = useState9(false);
1950
+ const [open, setOpen] = useState8(false);
1742
1951
  const { value, path, propType } = useBoundProp();
1743
1952
  const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
1744
- const isUsingNestedProps = isExperimentActive2("e_v_3_30");
1953
+ const isUsingNestedProps = isExperimentActive4("e_v_3_30");
1745
1954
  const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
1746
1955
  const inheritanceChain = useStylesInheritanceChain(finalPath);
1747
1956
  if (!inheritanceChain.length) {
@@ -1756,31 +1965,31 @@ var StylesInheritanceIndicator = () => {
1756
1965
  const hasValue = !isEmpty2(value);
1757
1966
  const label = getLabel({ isFinalValue, hasValue });
1758
1967
  const variantType = getVariant({ isFinalValue, hasValue, currentStyleProvider });
1759
- const eIndicationsPopover = isExperimentActive2("e_indications_popover");
1968
+ const eIndicationsPopover = isExperimentActive4("e_indications_popover");
1760
1969
  if (!eIndicationsPopover) {
1761
- return /* @__PURE__ */ React19.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
1970
+ return /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType, "aria-label": label });
1762
1971
  }
1763
1972
  const toggleOpen = () => setOpen((prev) => !prev);
1764
- return /* @__PURE__ */ React19.createElement(
1973
+ return /* @__PURE__ */ React20.createElement(
1765
1974
  Infotip,
1766
1975
  {
1767
1976
  placement: "top",
1768
- content: /* @__PURE__ */ React19.createElement(StyleIndicatorInfotip, { inheritanceChain, path: finalPath, propType }),
1977
+ content: /* @__PURE__ */ React20.createElement(StyleIndicatorInfotip, { inheritanceChain, path: finalPath, propType }),
1769
1978
  open,
1770
1979
  onClose: () => setOpen(false),
1771
1980
  trigger: "manual"
1772
1981
  },
1773
- /* @__PURE__ */ React19.createElement(IconButton2, { onClick: toggleOpen, "aria-label": label }, /* @__PURE__ */ React19.createElement(StyleIndicator, { variant: variantType }))
1982
+ /* @__PURE__ */ React20.createElement(IconButton2, { onClick: toggleOpen, "aria-label": label }, /* @__PURE__ */ React20.createElement(StyleIndicator, { variant: variantType }))
1774
1983
  );
1775
1984
  };
1776
1985
  var getLabel = ({ isFinalValue, hasValue }) => {
1777
1986
  if (isFinalValue) {
1778
- return __5("This is the final value", "elementor");
1987
+ return __6("This is the final value", "elementor");
1779
1988
  }
1780
1989
  if (hasValue) {
1781
- return __5("This value is overridden by another style", "elementor");
1990
+ return __6("This value is overridden by another style", "elementor");
1782
1991
  }
1783
- return __5("This has value from another style", "elementor");
1992
+ return __6("This has value from another style", "elementor");
1784
1993
  };
1785
1994
  var getVariant = ({
1786
1995
  isFinalValue,
@@ -1806,7 +2015,7 @@ var StylesField = ({ bind, placeholder, children }) => {
1806
2015
  const setValues = (newValue) => {
1807
2016
  setValue(newValue[bind]);
1808
2017
  };
1809
- return /* @__PURE__ */ React20.createElement(
2018
+ return /* @__PURE__ */ React21.createElement(
1810
2019
  ControlAdornmentsProvider,
1811
2020
  {
1812
2021
  items: [
@@ -1816,7 +2025,7 @@ var StylesField = ({ bind, placeholder, children }) => {
1816
2025
  }
1817
2026
  ]
1818
2027
  },
1819
- /* @__PURE__ */ React20.createElement(
2028
+ /* @__PURE__ */ React21.createElement(
1820
2029
  PropProvider2,
1821
2030
  {
1822
2031
  propType,
@@ -1824,50 +2033,50 @@ var StylesField = ({ bind, placeholder, children }) => {
1824
2033
  setValue: setValues,
1825
2034
  placeholder: placeholderValues
1826
2035
  },
1827
- /* @__PURE__ */ React20.createElement(PropKeyProvider2, { bind }, children)
2036
+ /* @__PURE__ */ React21.createElement(PropKeyProvider2, { bind }, children)
1828
2037
  )
1829
2038
  );
1830
2039
  };
1831
2040
 
1832
2041
  // src/components/style-sections/background-section/background-section.tsx
1833
2042
  var BackgroundSection = () => {
1834
- return /* @__PURE__ */ React21.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React21.createElement(BackgroundControl, null));
2043
+ return /* @__PURE__ */ React22.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React22.createElement(BackgroundControl, null));
1835
2044
  };
1836
2045
 
1837
2046
  // src/components/style-sections/border-section/border-section.tsx
1838
- import * as React31 from "react";
2047
+ import * as React32 from "react";
1839
2048
 
1840
2049
  // src/components/panel-divider.tsx
1841
- import * as React22 from "react";
2050
+ import * as React23 from "react";
1842
2051
  import { Divider as Divider4 } from "@elementor/ui";
1843
- var PanelDivider = () => /* @__PURE__ */ React22.createElement(Divider4, { sx: { my: 0.5 } });
2052
+ var PanelDivider = () => /* @__PURE__ */ React23.createElement(Divider4, { sx: { my: 0.5 } });
1844
2053
 
1845
2054
  // src/components/section-content.tsx
1846
- import * as React23 from "react";
2055
+ import * as React24 from "react";
1847
2056
  import { Stack as Stack6 } from "@elementor/ui";
1848
- var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React23.createElement(Stack6, { gap, sx: { ...sx } }, children);
2057
+ var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React24.createElement(Stack6, { gap, sx: { ...sx } }, children);
1849
2058
 
1850
2059
  // src/components/style-sections/border-section/border-field.tsx
1851
- import * as React29 from "react";
1852
- import { __ as __9 } from "@wordpress/i18n";
2060
+ import * as React30 from "react";
2061
+ import { __ as __10 } from "@wordpress/i18n";
1853
2062
 
1854
2063
  // src/components/add-or-remove-content.tsx
1855
- import * as React25 from "react";
2064
+ import * as React26 from "react";
1856
2065
  import { MinusIcon, PlusIcon } from "@elementor/icons";
1857
2066
  import { Collapse as Collapse2, IconButton as IconButton3, Stack as Stack8 } from "@elementor/ui";
1858
2067
 
1859
2068
  // src/components/control-label.tsx
1860
- import * as React24 from "react";
2069
+ import * as React25 from "react";
1861
2070
  import { ControlAdornments, ControlFormLabel as ControlFormLabel2 } from "@elementor/editor-controls";
1862
2071
  import { Stack as Stack7 } from "@elementor/ui";
1863
2072
  var ControlLabel = ({ children }) => {
1864
- return /* @__PURE__ */ React24.createElement(Stack7, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React24.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React24.createElement(ControlAdornments, null));
2073
+ return /* @__PURE__ */ React25.createElement(Stack7, { direction: "row", alignItems: "center", justifyItems: "start", gap: 1 }, /* @__PURE__ */ React25.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React25.createElement(ControlAdornments, null));
1865
2074
  };
1866
2075
 
1867
2076
  // src/components/add-or-remove-content.tsx
1868
2077
  var SIZE2 = "tiny";
1869
2078
  var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
1870
- return /* @__PURE__ */ React25.createElement(SectionContent, null, /* @__PURE__ */ React25.createElement(
2079
+ return /* @__PURE__ */ React26.createElement(SectionContent, null, /* @__PURE__ */ React26.createElement(
1871
2080
  Stack8,
1872
2081
  {
1873
2082
  direction: "row",
@@ -1877,47 +2086,47 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
1877
2086
  marginInlineEnd: -0.75
1878
2087
  }
1879
2088
  },
1880
- /* @__PURE__ */ React25.createElement(ControlLabel, null, label),
1881
- isAdded ? /* @__PURE__ */ React25.createElement(IconButton3, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React25.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React25.createElement(IconButton3, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React25.createElement(PlusIcon, { fontSize: SIZE2 }))
1882
- ), /* @__PURE__ */ React25.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React25.createElement(SectionContent, null, children)));
2089
+ /* @__PURE__ */ React26.createElement(ControlLabel, null, label),
2090
+ isAdded ? /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React26.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React26.createElement(IconButton3, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React26.createElement(PlusIcon, { fontSize: SIZE2 }))
2091
+ ), /* @__PURE__ */ React26.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React26.createElement(SectionContent, null, children)));
1883
2092
  };
1884
2093
 
1885
2094
  // src/components/style-sections/border-section/border-color-field.tsx
1886
- import * as React26 from "react";
2095
+ import * as React27 from "react";
1887
2096
  import { ColorControl } from "@elementor/editor-controls";
1888
2097
  import { Grid } from "@elementor/ui";
1889
- import { __ as __6 } from "@wordpress/i18n";
2098
+ import { __ as __7 } from "@wordpress/i18n";
1890
2099
  var BorderColorField = () => {
1891
- return /* @__PURE__ */ React26.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React26.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React26.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(ControlLabel, null, __6("Border color", "elementor"))), /* @__PURE__ */ React26.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React26.createElement(ColorControl, null))));
2100
+ return /* @__PURE__ */ React27.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React27.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Border color", "elementor"))), /* @__PURE__ */ React27.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ColorControl, null))));
1892
2101
  };
1893
2102
 
1894
2103
  // src/components/style-sections/border-section/border-style-field.tsx
1895
- import * as React27 from "react";
2104
+ import * as React28 from "react";
1896
2105
  import { SelectControl as SelectControl2 } from "@elementor/editor-controls";
1897
2106
  import { Grid as Grid2 } from "@elementor/ui";
1898
- import { __ as __7 } from "@wordpress/i18n";
2107
+ import { __ as __8 } from "@wordpress/i18n";
1899
2108
  var borderStyles = [
1900
- { value: "none", label: __7("None", "elementor") },
1901
- { value: "solid", label: __7("Solid", "elementor") },
1902
- { value: "dashed", label: __7("Dashed", "elementor") },
1903
- { value: "dotted", label: __7("Dotted", "elementor") },
1904
- { value: "double", label: __7("Double", "elementor") },
1905
- { value: "groove", label: __7("Groove", "elementor") },
1906
- { value: "ridge", label: __7("Ridge", "elementor") },
1907
- { value: "inset", label: __7("Inset", "elementor") },
1908
- { value: "outset", label: __7("Outset", "elementor") }
2109
+ { value: "none", label: __8("None", "elementor") },
2110
+ { value: "solid", label: __8("Solid", "elementor") },
2111
+ { value: "dashed", label: __8("Dashed", "elementor") },
2112
+ { value: "dotted", label: __8("Dotted", "elementor") },
2113
+ { value: "double", label: __8("Double", "elementor") },
2114
+ { value: "groove", label: __8("Groove", "elementor") },
2115
+ { value: "ridge", label: __8("Ridge", "elementor") },
2116
+ { value: "inset", label: __8("Inset", "elementor") },
2117
+ { value: "outset", label: __8("Outset", "elementor") }
1909
2118
  ];
1910
2119
  var BorderStyleField = () => {
1911
- return /* @__PURE__ */ React27.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React27.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(ControlLabel, null, __7("Border type", "elementor"))), /* @__PURE__ */ React27.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React27.createElement(SelectControl2, { options: borderStyles }))));
2120
+ return /* @__PURE__ */ React28.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React28.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(ControlLabel, null, __8("Border type", "elementor"))), /* @__PURE__ */ React28.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React28.createElement(SelectControl2, { options: borderStyles }))));
1912
2121
  };
1913
2122
 
1914
2123
  // src/components/style-sections/border-section/border-width-field.tsx
1915
- import * as React28 from "react";
2124
+ import * as React29 from "react";
1916
2125
  import { EqualUnequalSizesControl } from "@elementor/editor-controls";
1917
2126
  import { borderWidthPropTypeUtil } from "@elementor/editor-props";
1918
2127
  import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
1919
2128
  import { withDirection } from "@elementor/ui";
1920
- import { __ as __8 } from "@wordpress/i18n";
2129
+ import { __ as __9 } from "@wordpress/i18n";
1921
2130
 
1922
2131
  // src/hooks/use-direction.ts
1923
2132
  import { useTheme } from "@elementor/ui";
@@ -1944,35 +2153,35 @@ var InlineStartIcon = withDirection(SideRightIcon);
1944
2153
  var InlineEndIcon = withDirection(SideLeftIcon);
1945
2154
  var getEdges = (isSiteRtl) => [
1946
2155
  {
1947
- label: __8("Top", "elementor"),
1948
- icon: /* @__PURE__ */ React28.createElement(SideTopIcon, { fontSize: "tiny" }),
2156
+ label: __9("Top", "elementor"),
2157
+ icon: /* @__PURE__ */ React29.createElement(SideTopIcon, { fontSize: "tiny" }),
1949
2158
  bind: "block-start"
1950
2159
  },
1951
2160
  {
1952
- label: isSiteRtl ? __8("Left", "elementor") : __8("Right", "elementor"),
1953
- icon: /* @__PURE__ */ React28.createElement(InlineStartIcon, { fontSize: "tiny" }),
2161
+ label: isSiteRtl ? __9("Left", "elementor") : __9("Right", "elementor"),
2162
+ icon: /* @__PURE__ */ React29.createElement(InlineStartIcon, { fontSize: "tiny" }),
1954
2163
  bind: "inline-end"
1955
2164
  },
1956
2165
  {
1957
- label: __8("Bottom", "elementor"),
1958
- icon: /* @__PURE__ */ React28.createElement(SideBottomIcon, { fontSize: "tiny" }),
2166
+ label: __9("Bottom", "elementor"),
2167
+ icon: /* @__PURE__ */ React29.createElement(SideBottomIcon, { fontSize: "tiny" }),
1959
2168
  bind: "block-end"
1960
2169
  },
1961
2170
  {
1962
- label: isSiteRtl ? __8("Right", "elementor") : __8("Left", "elementor"),
1963
- icon: /* @__PURE__ */ React28.createElement(InlineEndIcon, { fontSize: "tiny" }),
2171
+ label: isSiteRtl ? __9("Right", "elementor") : __9("Left", "elementor"),
2172
+ icon: /* @__PURE__ */ React29.createElement(InlineEndIcon, { fontSize: "tiny" }),
1964
2173
  bind: "inline-start"
1965
2174
  }
1966
2175
  ];
1967
2176
  var BorderWidthField = () => {
1968
2177
  const { isSiteRtl } = useDirection();
1969
- return /* @__PURE__ */ React28.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React28.createElement(
2178
+ return /* @__PURE__ */ React29.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React29.createElement(
1970
2179
  EqualUnequalSizesControl,
1971
2180
  {
1972
2181
  items: getEdges(isSiteRtl),
1973
- label: __8("Border width", "elementor"),
1974
- icon: /* @__PURE__ */ React28.createElement(SideAllIcon, { fontSize: "tiny" }),
1975
- tooltipLabel: __8("Adjust borders", "elementor"),
2182
+ label: __9("Border width", "elementor"),
2183
+ icon: /* @__PURE__ */ React29.createElement(SideAllIcon, { fontSize: "tiny" }),
2184
+ tooltipLabel: __9("Adjust borders", "elementor"),
1976
2185
  multiSizePropTypeUtil: borderWidthPropTypeUtil
1977
2186
  }
1978
2187
  ));
@@ -1997,22 +2206,22 @@ var BorderField = () => {
1997
2206
  });
1998
2207
  };
1999
2208
  const hasBorder = Object.values(border ?? {}).some(Boolean);
2000
- return /* @__PURE__ */ React29.createElement(
2209
+ return /* @__PURE__ */ React30.createElement(
2001
2210
  AddOrRemoveContent,
2002
2211
  {
2003
- label: __9("Border", "elementor"),
2212
+ label: __10("Border", "elementor"),
2004
2213
  isAdded: hasBorder,
2005
2214
  onAdd: addBorder,
2006
2215
  onRemove: removeBorder
2007
2216
  },
2008
- /* @__PURE__ */ React29.createElement(BorderWidthField, null),
2009
- /* @__PURE__ */ React29.createElement(BorderColorField, null),
2010
- /* @__PURE__ */ React29.createElement(BorderStyleField, null)
2217
+ /* @__PURE__ */ React30.createElement(BorderWidthField, null),
2218
+ /* @__PURE__ */ React30.createElement(BorderColorField, null),
2219
+ /* @__PURE__ */ React30.createElement(BorderStyleField, null)
2011
2220
  );
2012
2221
  };
2013
2222
 
2014
2223
  // src/components/style-sections/border-section/border-radius-field.tsx
2015
- import * as React30 from "react";
2224
+ import * as React31 from "react";
2016
2225
  import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
2017
2226
  import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
2018
2227
  import {
@@ -2023,66 +2232,66 @@ import {
2023
2232
  RadiusTopRightIcon
2024
2233
  } from "@elementor/icons";
2025
2234
  import { withDirection as withDirection2 } from "@elementor/ui";
2026
- import { __ as __10 } from "@wordpress/i18n";
2235
+ import { __ as __11 } from "@wordpress/i18n";
2027
2236
  var StartStartIcon = withDirection2(RadiusTopLeftIcon);
2028
2237
  var StartEndIcon = withDirection2(RadiusTopRightIcon);
2029
2238
  var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
2030
2239
  var EndEndIcon = withDirection2(RadiusBottomRightIcon);
2031
- var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __10("Top right", "elementor") : __10("Top left", "elementor");
2032
- var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __10("Top left", "elementor") : __10("Top right", "elementor");
2033
- var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __10("Bottom right", "elementor") : __10("Bottom left", "elementor");
2034
- var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __10("Bottom left", "elementor") : __10("Bottom right", "elementor");
2240
+ var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __11("Top right", "elementor") : __11("Top left", "elementor");
2241
+ var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __11("Top left", "elementor") : __11("Top right", "elementor");
2242
+ var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom right", "elementor") : __11("Bottom left", "elementor");
2243
+ var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __11("Bottom left", "elementor") : __11("Bottom right", "elementor");
2035
2244
  var getCorners = (isSiteRtl) => [
2036
2245
  {
2037
2246
  label: getStartStartLabel(isSiteRtl),
2038
- icon: /* @__PURE__ */ React30.createElement(StartStartIcon, { fontSize: "tiny" }),
2247
+ icon: /* @__PURE__ */ React31.createElement(StartStartIcon, { fontSize: "tiny" }),
2039
2248
  bind: "start-start"
2040
2249
  },
2041
2250
  {
2042
2251
  label: getStartEndLabel(isSiteRtl),
2043
- icon: /* @__PURE__ */ React30.createElement(StartEndIcon, { fontSize: "tiny" }),
2252
+ icon: /* @__PURE__ */ React31.createElement(StartEndIcon, { fontSize: "tiny" }),
2044
2253
  bind: "start-end"
2045
2254
  },
2046
2255
  {
2047
2256
  label: getEndStartLabel(isSiteRtl),
2048
- icon: /* @__PURE__ */ React30.createElement(EndStartIcon, { fontSize: "tiny" }),
2257
+ icon: /* @__PURE__ */ React31.createElement(EndStartIcon, { fontSize: "tiny" }),
2049
2258
  bind: "end-start"
2050
2259
  },
2051
2260
  {
2052
2261
  label: getEndEndLabel(isSiteRtl),
2053
- icon: /* @__PURE__ */ React30.createElement(EndEndIcon, { fontSize: "tiny" }),
2262
+ icon: /* @__PURE__ */ React31.createElement(EndEndIcon, { fontSize: "tiny" }),
2054
2263
  bind: "end-end"
2055
2264
  }
2056
2265
  ];
2057
2266
  var BorderRadiusField = () => {
2058
2267
  const { isSiteRtl } = useDirection();
2059
- return /* @__PURE__ */ React30.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React30.createElement(
2268
+ return /* @__PURE__ */ React31.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React31.createElement(
2060
2269
  EqualUnequalSizesControl2,
2061
2270
  {
2062
2271
  items: getCorners(isSiteRtl),
2063
- label: __10("Border radius", "elementor"),
2064
- icon: /* @__PURE__ */ React30.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2065
- tooltipLabel: __10("Adjust corners", "elementor"),
2272
+ label: __11("Border radius", "elementor"),
2273
+ icon: /* @__PURE__ */ React31.createElement(BorderCornersIcon, { fontSize: "tiny" }),
2274
+ tooltipLabel: __11("Adjust corners", "elementor"),
2066
2275
  multiSizePropTypeUtil: borderRadiusPropTypeUtil
2067
2276
  }
2068
2277
  ));
2069
2278
  };
2070
2279
 
2071
2280
  // src/components/style-sections/border-section/border-section.tsx
2072
- var BorderSection = () => /* @__PURE__ */ React31.createElement(SectionContent, null, /* @__PURE__ */ React31.createElement(BorderRadiusField, null), /* @__PURE__ */ React31.createElement(PanelDivider, null), /* @__PURE__ */ React31.createElement(BorderField, null));
2281
+ var BorderSection = () => /* @__PURE__ */ React32.createElement(SectionContent, null, /* @__PURE__ */ React32.createElement(BorderRadiusField, null), /* @__PURE__ */ React32.createElement(PanelDivider, null), /* @__PURE__ */ React32.createElement(BorderField, null));
2073
2282
 
2074
2283
  // src/components/style-sections/effects-section/effects-section.tsx
2075
- import * as React32 from "react";
2284
+ import * as React33 from "react";
2076
2285
  import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
2077
2286
  var EffectsSection = () => {
2078
- return /* @__PURE__ */ React32.createElement(SectionContent, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React32.createElement(BoxShadowRepeaterControl, null)));
2287
+ return /* @__PURE__ */ React33.createElement(SectionContent, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React33.createElement(BoxShadowRepeaterControl, null)));
2079
2288
  };
2080
2289
 
2081
2290
  // src/components/style-sections/layout-section/layout-section.tsx
2082
- import * as React44 from "react";
2291
+ import * as React45 from "react";
2083
2292
  import { ControlFormLabel as ControlFormLabel3 } from "@elementor/editor-controls";
2084
2293
  import { useParentElement } from "@elementor/editor-elements";
2085
- import { __ as __21 } from "@wordpress/i18n";
2294
+ import { __ as __22 } from "@wordpress/i18n";
2086
2295
 
2087
2296
  // src/hooks/use-computed-style.ts
2088
2297
  import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
@@ -2110,7 +2319,7 @@ function useComputedStyle(elementId) {
2110
2319
  }
2111
2320
 
2112
2321
  // src/components/style-sections/layout-section/align-content-field.tsx
2113
- import * as React34 from "react";
2322
+ import * as React35 from "react";
2114
2323
  import { ToggleControl } from "@elementor/editor-controls";
2115
2324
  import {
2116
2325
  JustifyBottomIcon,
@@ -2121,10 +2330,10 @@ import {
2121
2330
  JustifyTopIcon
2122
2331
  } from "@elementor/icons";
2123
2332
  import { DirectionProvider, Stack as Stack9, ThemeProvider, withDirection as withDirection3 } from "@elementor/ui";
2124
- import { __ as __11 } from "@wordpress/i18n";
2333
+ import { __ as __12 } from "@wordpress/i18n";
2125
2334
 
2126
2335
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
2127
- import * as React33 from "react";
2336
+ import * as React34 from "react";
2128
2337
  import { useRef as useRef3 } from "react";
2129
2338
  import { useTheme as useTheme2 } from "@elementor/ui";
2130
2339
  var CLOCKWISE_ANGLES = {
@@ -2148,7 +2357,7 @@ var RotatedIcon = ({
2148
2357
  }) => {
2149
2358
  const rotate = useRef3(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
2150
2359
  rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
2151
- return /* @__PURE__ */ React33.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2360
+ return /* @__PURE__ */ React34.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
2152
2361
  };
2153
2362
  var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
2154
2363
  const [direction] = useStylesField("flex-direction");
@@ -2177,48 +2386,48 @@ var iconProps = {
2177
2386
  var options = [
2178
2387
  {
2179
2388
  value: "start",
2180
- label: __11("Start", "elementor"),
2181
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2389
+ label: __12("Start", "elementor"),
2390
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
2182
2391
  showTooltip: true
2183
2392
  },
2184
2393
  {
2185
2394
  value: "center",
2186
- label: __11("Center", "elementor"),
2187
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2395
+ label: __12("Center", "elementor"),
2396
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
2188
2397
  showTooltip: true
2189
2398
  },
2190
2399
  {
2191
2400
  value: "end",
2192
- label: __11("End", "elementor"),
2193
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2401
+ label: __12("End", "elementor"),
2402
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
2194
2403
  showTooltip: true
2195
2404
  },
2196
2405
  {
2197
2406
  value: "space-between",
2198
- label: __11("Space between", "elementor"),
2199
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2407
+ label: __12("Space between", "elementor"),
2408
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
2200
2409
  showTooltip: true
2201
2410
  },
2202
2411
  {
2203
2412
  value: "space-around",
2204
- label: __11("Space around", "elementor"),
2205
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2413
+ label: __12("Space around", "elementor"),
2414
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
2206
2415
  showTooltip: true
2207
2416
  },
2208
2417
  {
2209
2418
  value: "space-evenly",
2210
- label: __11("Space evenly", "elementor"),
2211
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2419
+ label: __12("Space evenly", "elementor"),
2420
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
2212
2421
  showTooltip: true
2213
2422
  }
2214
2423
  ];
2215
2424
  var AlignContentField = () => {
2216
2425
  const { isSiteRtl } = useDirection();
2217
- return /* @__PURE__ */ React34.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React34.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React34.createElement(ControlLabel, null, __11("Align content", "elementor")), /* @__PURE__ */ React34.createElement(ToggleControl, { options, fullWidth: true })))));
2426
+ return /* @__PURE__ */ React35.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React35.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, __12("Align content", "elementor")), /* @__PURE__ */ React35.createElement(ToggleControl, { options, fullWidth: true })))));
2218
2427
  };
2219
2428
 
2220
2429
  // src/components/style-sections/layout-section/align-items-field.tsx
2221
- import * as React35 from "react";
2430
+ import * as React36 from "react";
2222
2431
  import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
2223
2432
  import {
2224
2433
  LayoutAlignCenterIcon as CenterIcon2,
@@ -2227,7 +2436,7 @@ import {
2227
2436
  LayoutDistributeVerticalIcon as JustifyIcon
2228
2437
  } from "@elementor/icons";
2229
2438
  import { DirectionProvider as DirectionProvider2, Grid as Grid3, ThemeProvider as ThemeProvider2, withDirection as withDirection4 } from "@elementor/ui";
2230
- import { __ as __12 } from "@wordpress/i18n";
2439
+ import { __ as __13 } from "@wordpress/i18n";
2231
2440
  var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
2232
2441
  var EndIcon2 = withDirection4(LayoutAlignRightIcon);
2233
2442
  var iconProps2 = {
@@ -2237,36 +2446,36 @@ var iconProps2 = {
2237
2446
  var options2 = [
2238
2447
  {
2239
2448
  value: "start",
2240
- label: __12("Start", "elementor"),
2241
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2449
+ label: __13("Start", "elementor"),
2450
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
2242
2451
  showTooltip: true
2243
2452
  },
2244
2453
  {
2245
2454
  value: "center",
2246
- label: __12("Center", "elementor"),
2247
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2455
+ label: __13("Center", "elementor"),
2456
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
2248
2457
  showTooltip: true
2249
2458
  },
2250
2459
  {
2251
2460
  value: "end",
2252
- label: __12("End", "elementor"),
2253
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2461
+ label: __13("End", "elementor"),
2462
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
2254
2463
  showTooltip: true
2255
2464
  },
2256
2465
  {
2257
2466
  value: "stretch",
2258
- label: __12("Stretch", "elementor"),
2259
- renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2467
+ label: __13("Stretch", "elementor"),
2468
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
2260
2469
  showTooltip: true
2261
2470
  }
2262
2471
  ];
2263
2472
  var AlignItemsField = () => {
2264
2473
  const { isSiteRtl } = useDirection();
2265
- return /* @__PURE__ */ React35.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider2, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React35.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel, null, __12("Align items", "elementor"))), /* @__PURE__ */ React35.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React35.createElement(ToggleControl2, { options: options2 }))))));
2474
+ return /* @__PURE__ */ React36.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(ThemeProvider2, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React36.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, __13("Align items", "elementor"))), /* @__PURE__ */ React36.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React36.createElement(ToggleControl2, { options: options2 }))))));
2266
2475
  };
2267
2476
 
2268
2477
  // src/components/style-sections/layout-section/align-self-child-field.tsx
2269
- import * as React36 from "react";
2478
+ import * as React37 from "react";
2270
2479
  import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
2271
2480
  import {
2272
2481
  LayoutAlignCenterIcon as CenterIcon3,
@@ -2275,7 +2484,7 @@ import {
2275
2484
  LayoutDistributeVerticalIcon as JustifyIcon2
2276
2485
  } from "@elementor/icons";
2277
2486
  import { DirectionProvider as DirectionProvider3, Grid as Grid4, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
2278
- import { __ as __13 } from "@wordpress/i18n";
2487
+ import { __ as __14 } from "@wordpress/i18n";
2279
2488
  var ALIGN_SELF_CHILD_OFFSET_MAP = {
2280
2489
  row: 90,
2281
2490
  "row-reverse": 90,
@@ -2290,8 +2499,8 @@ var iconProps3 = {
2290
2499
  var getOptions = (parentStyleDirection) => [
2291
2500
  {
2292
2501
  value: "start",
2293
- label: __13("Start", "elementor"),
2294
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(
2502
+ label: __14("Start", "elementor"),
2503
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2295
2504
  RotatedIcon,
2296
2505
  {
2297
2506
  icon: StartIcon3,
@@ -2304,8 +2513,8 @@ var getOptions = (parentStyleDirection) => [
2304
2513
  },
2305
2514
  {
2306
2515
  value: "center",
2307
- label: __13("Center", "elementor"),
2308
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(
2516
+ label: __14("Center", "elementor"),
2517
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2309
2518
  RotatedIcon,
2310
2519
  {
2311
2520
  icon: CenterIcon3,
@@ -2318,8 +2527,8 @@ var getOptions = (parentStyleDirection) => [
2318
2527
  },
2319
2528
  {
2320
2529
  value: "end",
2321
- label: __13("End", "elementor"),
2322
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(
2530
+ label: __14("End", "elementor"),
2531
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2323
2532
  RotatedIcon,
2324
2533
  {
2325
2534
  icon: EndIcon3,
@@ -2332,8 +2541,8 @@ var getOptions = (parentStyleDirection) => [
2332
2541
  },
2333
2542
  {
2334
2543
  value: "stretch",
2335
- label: __13("Stretch", "elementor"),
2336
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(
2544
+ label: __14("Stretch", "elementor"),
2545
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(
2337
2546
  RotatedIcon,
2338
2547
  {
2339
2548
  icon: JustifyIcon2,
@@ -2347,107 +2556,107 @@ var getOptions = (parentStyleDirection) => [
2347
2556
  ];
2348
2557
  var AlignSelfChild = ({ parentStyleDirection }) => {
2349
2558
  const { isSiteRtl } = useDirection();
2350
- return /* @__PURE__ */ React36.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(ThemeProvider3, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React36.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(ControlLabel, null, __13("Align self", "elementor"))), /* @__PURE__ */ React36.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
2559
+ return /* @__PURE__ */ React37.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider3, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React37.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, __14("Align self", "elementor"))), /* @__PURE__ */ React37.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))))));
2351
2560
  };
2352
2561
 
2353
2562
  // src/components/style-sections/layout-section/display-field.tsx
2354
- import * as React37 from "react";
2563
+ import * as React38 from "react";
2355
2564
  import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
2356
- import { isExperimentActive as isExperimentActive3 } from "@elementor/editor-v1-adapters";
2565
+ import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
2357
2566
  import { Stack as Stack10 } from "@elementor/ui";
2358
- import { __ as __14 } from "@wordpress/i18n";
2567
+ import { __ as __15 } from "@wordpress/i18n";
2359
2568
  var displayFieldItems = [
2360
2569
  {
2361
2570
  value: "block",
2362
- renderContent: () => __14("Block", "elementor"),
2363
- label: __14("Block", "elementor"),
2571
+ renderContent: () => __15("Block", "elementor"),
2572
+ label: __15("Block", "elementor"),
2364
2573
  showTooltip: true
2365
2574
  },
2366
2575
  {
2367
2576
  value: "flex",
2368
- renderContent: () => __14("Flex", "elementor"),
2369
- label: __14("Flex", "elementor"),
2577
+ renderContent: () => __15("Flex", "elementor"),
2578
+ label: __15("Flex", "elementor"),
2370
2579
  showTooltip: true
2371
2580
  },
2372
2581
  {
2373
2582
  value: "inline-block",
2374
- renderContent: () => __14("In-blk", "elementor"),
2375
- label: __14("Inline-block", "elementor"),
2583
+ renderContent: () => __15("In-blk", "elementor"),
2584
+ label: __15("Inline-block", "elementor"),
2376
2585
  showTooltip: true
2377
2586
  }
2378
2587
  ];
2379
2588
  var DisplayField = () => {
2380
- const isDisplayNoneFeatureActive = isExperimentActive3("e_v_3_30");
2589
+ const isDisplayNoneFeatureActive = isExperimentActive5("e_v_3_30");
2381
2590
  const items3 = [...displayFieldItems];
2382
2591
  if (isDisplayNoneFeatureActive) {
2383
2592
  items3.push({
2384
2593
  value: "none",
2385
- renderContent: () => __14("None", "elementor"),
2386
- label: __14("None", "elementor"),
2594
+ renderContent: () => __15("None", "elementor"),
2595
+ label: __15("None", "elementor"),
2387
2596
  showTooltip: true
2388
2597
  });
2389
2598
  }
2390
2599
  items3.push({
2391
2600
  value: "inline-flex",
2392
- renderContent: () => __14("In-flx", "elementor"),
2393
- label: __14("Inline-flex", "elementor"),
2601
+ renderContent: () => __15("In-flx", "elementor"),
2602
+ label: __15("Inline-flex", "elementor"),
2394
2603
  showTooltip: true
2395
2604
  });
2396
2605
  const placeholder = useDisplayPlaceholderValue();
2397
- return /* @__PURE__ */ React37.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React37.createElement(Stack10, { gap: 0.75 }, /* @__PURE__ */ React37.createElement(ControlLabel, null, __14("Display", "elementor")), /* @__PURE__ */ React37.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
2606
+ return /* @__PURE__ */ React38.createElement(StylesField, { bind: "display", placeholder }, /* @__PURE__ */ React38.createElement(Stack10, { gap: 0.75 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, __15("Display", "elementor")), /* @__PURE__ */ React38.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
2398
2607
  };
2399
2608
  var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
2400
2609
 
2401
2610
  // src/components/style-sections/layout-section/flex-direction-field.tsx
2402
- import * as React38 from "react";
2611
+ import * as React39 from "react";
2403
2612
  import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
2404
2613
  import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
2405
2614
  import { DirectionProvider as DirectionProvider4, Grid as Grid5, ThemeProvider as ThemeProvider4, withDirection as withDirection6 } from "@elementor/ui";
2406
- import { __ as __15 } from "@wordpress/i18n";
2615
+ import { __ as __16 } from "@wordpress/i18n";
2407
2616
  var options3 = [
2408
2617
  {
2409
2618
  value: "row",
2410
- label: __15("Row", "elementor"),
2619
+ label: __16("Row", "elementor"),
2411
2620
  renderContent: ({ size }) => {
2412
2621
  const StartIcon5 = withDirection6(ArrowRightIcon);
2413
- return /* @__PURE__ */ React38.createElement(StartIcon5, { fontSize: size });
2622
+ return /* @__PURE__ */ React39.createElement(StartIcon5, { fontSize: size });
2414
2623
  },
2415
2624
  showTooltip: true
2416
2625
  },
2417
2626
  {
2418
2627
  value: "column",
2419
- label: __15("Column", "elementor"),
2420
- renderContent: ({ size }) => /* @__PURE__ */ React38.createElement(ArrowDownSmallIcon, { fontSize: size }),
2628
+ label: __16("Column", "elementor"),
2629
+ renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowDownSmallIcon, { fontSize: size }),
2421
2630
  showTooltip: true
2422
2631
  },
2423
2632
  {
2424
2633
  value: "row-reverse",
2425
- label: __15("Reversed row", "elementor"),
2634
+ label: __16("Reversed row", "elementor"),
2426
2635
  renderContent: ({ size }) => {
2427
2636
  const EndIcon5 = withDirection6(ArrowLeftIcon);
2428
- return /* @__PURE__ */ React38.createElement(EndIcon5, { fontSize: size });
2637
+ return /* @__PURE__ */ React39.createElement(EndIcon5, { fontSize: size });
2429
2638
  },
2430
2639
  showTooltip: true
2431
2640
  },
2432
2641
  {
2433
2642
  value: "column-reverse",
2434
- label: __15("Reversed column", "elementor"),
2435
- renderContent: ({ size }) => /* @__PURE__ */ React38.createElement(ArrowUpSmallIcon, { fontSize: size }),
2643
+ label: __16("Reversed column", "elementor"),
2644
+ renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowUpSmallIcon, { fontSize: size }),
2436
2645
  showTooltip: true
2437
2646
  }
2438
2647
  ];
2439
2648
  var FlexDirectionField = () => {
2440
2649
  const { isSiteRtl } = useDirection();
2441
- return /* @__PURE__ */ React38.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React38.createElement(ThemeProvider4, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React38.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ControlLabel, null, __15("Direction", "elementor"))), /* @__PURE__ */ React38.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React38.createElement(ToggleControl5, { options: options3 }))))));
2650
+ return /* @__PURE__ */ React39.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React39.createElement(ThemeProvider4, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React39.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Direction", "elementor"))), /* @__PURE__ */ React39.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React39.createElement(ToggleControl5, { options: options3 }))))));
2442
2651
  };
2443
2652
 
2444
2653
  // src/components/style-sections/layout-section/flex-order-field.tsx
2445
- import * as React39 from "react";
2446
- import { useState as useState10 } from "react";
2654
+ import * as React40 from "react";
2655
+ import { useState as useState9 } from "react";
2447
2656
  import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
2448
2657
  import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
2449
2658
  import { DirectionProvider as DirectionProvider5, Grid as Grid6, ThemeProvider as ThemeProvider5 } from "@elementor/ui";
2450
- import { __ as __16 } from "@wordpress/i18n";
2659
+ import { __ as __17 } from "@wordpress/i18n";
2451
2660
  var FIRST_DEFAULT_VALUE = -99999;
2452
2661
  var LAST_DEFAULT_VALUE = 99999;
2453
2662
  var FIRST = "first";
@@ -2460,26 +2669,26 @@ var orderValueMap = {
2460
2669
  var items = [
2461
2670
  {
2462
2671
  value: FIRST,
2463
- label: __16("First", "elementor"),
2464
- renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowUpSmallIcon2, { fontSize: size }),
2672
+ label: __17("First", "elementor"),
2673
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowUpSmallIcon2, { fontSize: size }),
2465
2674
  showTooltip: true
2466
2675
  },
2467
2676
  {
2468
2677
  value: LAST,
2469
- label: __16("Last", "elementor"),
2470
- renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(ArrowDownSmallIcon2, { fontSize: size }),
2678
+ label: __17("Last", "elementor"),
2679
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ArrowDownSmallIcon2, { fontSize: size }),
2471
2680
  showTooltip: true
2472
2681
  },
2473
2682
  {
2474
2683
  value: CUSTOM,
2475
- label: __16("Custom", "elementor"),
2476
- renderContent: ({ size }) => /* @__PURE__ */ React39.createElement(PencilIcon, { fontSize: size }),
2684
+ label: __17("Custom", "elementor"),
2685
+ renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PencilIcon, { fontSize: size }),
2477
2686
  showTooltip: true
2478
2687
  }
2479
2688
  ];
2480
2689
  var FlexOrderField = () => {
2481
2690
  const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
2482
- const [groupControlValue, setGroupControlValue] = useState10(getGroupControlValue(order?.value || null));
2691
+ const [groupControlValue, setGroupControlValue] = useState9(getGroupControlValue(order?.value || null));
2483
2692
  const handleToggleButtonChange = (group) => {
2484
2693
  setGroupControlValue(group);
2485
2694
  if (!group || group === CUSTOM) {
@@ -2488,7 +2697,7 @@ var FlexOrderField = () => {
2488
2697
  }
2489
2698
  setOrder({ $$type: "number", value: orderValueMap[group] });
2490
2699
  };
2491
- return /* @__PURE__ */ React39.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React39.createElement(ThemeProvider5, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Order", "elementor"))), /* @__PURE__ */ React39.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React39.createElement(
2700
+ return /* @__PURE__ */ React40.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider5, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
2492
2701
  ControlToggleButtonGroup,
2493
2702
  {
2494
2703
  items,
@@ -2496,7 +2705,7 @@ var FlexOrderField = () => {
2496
2705
  onChange: handleToggleButtonChange,
2497
2706
  exclusive: true
2498
2707
  }
2499
- ))), CUSTOM === groupControlValue && /* @__PURE__ */ React39.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(ControlLabel, null, __16("Custom order", "elementor"))), /* @__PURE__ */ React39.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React39.createElement(
2708
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React40.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Custom order", "elementor"))), /* @__PURE__ */ React40.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
2500
2709
  NumberControl,
2501
2710
  {
2502
2711
  min: FIRST_DEFAULT_VALUE + 1,
@@ -2516,8 +2725,8 @@ var getGroupControlValue = (order) => {
2516
2725
  };
2517
2726
 
2518
2727
  // src/components/style-sections/layout-section/flex-size-field.tsx
2519
- import * as React40 from "react";
2520
- import { useMemo as useMemo4, useState as useState11 } from "react";
2728
+ import * as React41 from "react";
2729
+ import { useMemo as useMemo5, useState as useState10 } from "react";
2521
2730
  import {
2522
2731
  ControlToggleButtonGroup as ControlToggleButtonGroup2,
2523
2732
  NumberControl as NumberControl2,
@@ -2526,25 +2735,25 @@ import {
2526
2735
  import { numberPropTypeUtil } from "@elementor/editor-props";
2527
2736
  import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
2528
2737
  import { DirectionProvider as DirectionProvider6, Grid as Grid7, ThemeProvider as ThemeProvider6 } from "@elementor/ui";
2529
- import { __ as __17 } from "@wordpress/i18n";
2738
+ import { __ as __18 } from "@wordpress/i18n";
2530
2739
  var DEFAULT = 1;
2531
2740
  var items2 = [
2532
2741
  {
2533
2742
  value: "flex-grow",
2534
- label: __17("Grow", "elementor"),
2535
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ExpandIcon, { fontSize: size }),
2743
+ label: __18("Grow", "elementor"),
2744
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ExpandIcon, { fontSize: size }),
2536
2745
  showTooltip: true
2537
2746
  },
2538
2747
  {
2539
2748
  value: "flex-shrink",
2540
- label: __17("Shrink", "elementor"),
2541
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(ShrinkIcon, { fontSize: size }),
2749
+ label: __18("Shrink", "elementor"),
2750
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(ShrinkIcon, { fontSize: size }),
2542
2751
  showTooltip: true
2543
2752
  },
2544
2753
  {
2545
2754
  value: "custom",
2546
- label: __17("Custom", "elementor"),
2547
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(PencilIcon2, { fontSize: size }),
2755
+ label: __18("Custom", "elementor"),
2756
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(PencilIcon2, { fontSize: size }),
2548
2757
  showTooltip: true
2549
2758
  }
2550
2759
  ];
@@ -2554,7 +2763,7 @@ var FlexSizeField = () => {
2554
2763
  const grow = fields?.["flex-grow"]?.value || null;
2555
2764
  const shrink = fields?.["flex-shrink"]?.value || null;
2556
2765
  const basis = fields?.["flex-basis"]?.value || null;
2557
- const currentGroup = useMemo4(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState11(currentGroup);
2766
+ const currentGroup = useMemo5(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState10(currentGroup);
2558
2767
  const onChangeGroup = (group = null) => {
2559
2768
  setActiveGroup(group);
2560
2769
  if (!group || group === "custom") {
@@ -2579,7 +2788,7 @@ var FlexSizeField = () => {
2579
2788
  "flex-shrink": numberPropTypeUtil.create(DEFAULT)
2580
2789
  });
2581
2790
  };
2582
- return /* @__PURE__ */ React40.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React40.createElement(ThemeProvider6, null, /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Size", "elementor")))), /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(
2791
+ return /* @__PURE__ */ React41.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React41.createElement(ThemeProvider6, null, /* @__PURE__ */ React41.createElement(SectionContent, null, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(StylesField, { bind: activeGroup ?? "" }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Size", "elementor")))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(
2583
2792
  ControlToggleButtonGroup2,
2584
2793
  {
2585
2794
  value: activeGroup,
@@ -2587,9 +2796,9 @@ var FlexSizeField = () => {
2587
2796
  items: items2,
2588
2797
  exclusive: true
2589
2798
  }
2590
- ))), "custom" === activeGroup && /* @__PURE__ */ React40.createElement(FlexCustomField, null))));
2799
+ ))), "custom" === activeGroup && /* @__PURE__ */ React41.createElement(FlexCustomField, null))));
2591
2800
  };
2592
- var FlexCustomField = () => /* @__PURE__ */ React40.createElement(React40.Fragment, null, /* @__PURE__ */ React40.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React40.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Grow", "elementor"))), /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React40.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React40.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Shrink", "elementor"))), /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React40.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React40.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel, null, __17("Basis", "elementor"))), /* @__PURE__ */ React40.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React40.createElement(SizeControl2, { extendedValues: ["auto"] })))));
2801
+ var FlexCustomField = () => /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Grow", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Shrink", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React41.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React41.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel, null, __18("Basis", "elementor"))), /* @__PURE__ */ React41.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React41.createElement(SizeControl2, { extendedValues: ["auto"] })))));
2593
2802
  var getActiveGroup = ({
2594
2803
  grow,
2595
2804
  shrink,
@@ -2611,16 +2820,16 @@ var getActiveGroup = ({
2611
2820
  };
2612
2821
 
2613
2822
  // src/components/style-sections/layout-section/gap-control-field.tsx
2614
- import * as React41 from "react";
2823
+ import * as React42 from "react";
2615
2824
  import { GapControl } from "@elementor/editor-controls";
2616
2825
  import { Stack as Stack11 } from "@elementor/ui";
2617
- import { __ as __18 } from "@wordpress/i18n";
2826
+ import { __ as __19 } from "@wordpress/i18n";
2618
2827
  var GapControlField = () => {
2619
- return /* @__PURE__ */ React41.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React41.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React41.createElement(GapControl, { label: __18("Gaps", "elementor") })));
2828
+ return /* @__PURE__ */ React42.createElement(Stack11, { gap: 1 }, /* @__PURE__ */ React42.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React42.createElement(GapControl, { label: __19("Gaps", "elementor") })));
2620
2829
  };
2621
2830
 
2622
2831
  // src/components/style-sections/layout-section/justify-content-field.tsx
2623
- import * as React42 from "react";
2832
+ import * as React43 from "react";
2624
2833
  import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
2625
2834
  import {
2626
2835
  JustifyBottomIcon as JustifyBottomIcon2,
@@ -2631,7 +2840,7 @@ import {
2631
2840
  JustifyTopIcon as JustifyTopIcon2
2632
2841
  } from "@elementor/icons";
2633
2842
  import { DirectionProvider as DirectionProvider7, Stack as Stack12, ThemeProvider as ThemeProvider7, withDirection as withDirection7 } from "@elementor/ui";
2634
- import { __ as __19 } from "@wordpress/i18n";
2843
+ import { __ as __20 } from "@wordpress/i18n";
2635
2844
  var StartIcon4 = withDirection7(JustifyTopIcon2);
2636
2845
  var EndIcon4 = withDirection7(JustifyBottomIcon2);
2637
2846
  var iconProps4 = {
@@ -2641,75 +2850,75 @@ var iconProps4 = {
2641
2850
  var options4 = [
2642
2851
  {
2643
2852
  value: "flex-start",
2644
- label: __19("Start", "elementor"),
2645
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
2853
+ label: __20("Start", "elementor"),
2854
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
2646
2855
  showTooltip: true
2647
2856
  },
2648
2857
  {
2649
2858
  value: "center",
2650
- label: __19("Center", "elementor"),
2651
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
2859
+ label: __20("Center", "elementor"),
2860
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
2652
2861
  showTooltip: true
2653
2862
  },
2654
2863
  {
2655
2864
  value: "flex-end",
2656
- label: __19("End", "elementor"),
2657
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
2865
+ label: __20("End", "elementor"),
2866
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
2658
2867
  showTooltip: true
2659
2868
  },
2660
2869
  {
2661
2870
  value: "space-between",
2662
- label: __19("Space between", "elementor"),
2663
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
2871
+ label: __20("Space between", "elementor"),
2872
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
2664
2873
  showTooltip: true
2665
2874
  },
2666
2875
  {
2667
2876
  value: "space-around",
2668
- label: __19("Space around", "elementor"),
2669
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
2877
+ label: __20("Space around", "elementor"),
2878
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
2670
2879
  showTooltip: true
2671
2880
  },
2672
2881
  {
2673
2882
  value: "space-evenly",
2674
- label: __19("Space evenly", "elementor"),
2675
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
2883
+ label: __20("Space evenly", "elementor"),
2884
+ renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
2676
2885
  showTooltip: true
2677
2886
  }
2678
2887
  ];
2679
2888
  var JustifyContentField = () => {
2680
2889
  const { isSiteRtl } = useDirection();
2681
- return /* @__PURE__ */ React42.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React42.createElement(ThemeProvider7, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React42.createElement(Stack12, { gap: 0.75 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, __19("Justify content", "elementor")), /* @__PURE__ */ React42.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
2890
+ return /* @__PURE__ */ React43.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React43.createElement(ThemeProvider7, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React43.createElement(Stack12, { gap: 0.75 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __20("Justify content", "elementor")), /* @__PURE__ */ React43.createElement(ToggleControl6, { options: options4, fullWidth: true })))));
2682
2891
  };
2683
2892
 
2684
2893
  // src/components/style-sections/layout-section/wrap-field.tsx
2685
- import * as React43 from "react";
2894
+ import * as React44 from "react";
2686
2895
  import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
2687
2896
  import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
2688
2897
  import { DirectionProvider as DirectionProvider8, Grid as Grid8, ThemeProvider as ThemeProvider8 } from "@elementor/ui";
2689
- import { __ as __20 } from "@wordpress/i18n";
2898
+ import { __ as __21 } from "@wordpress/i18n";
2690
2899
  var options5 = [
2691
2900
  {
2692
2901
  value: "nowrap",
2693
- label: __20("No wrap", "elementor"),
2694
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(ArrowRightIcon2, { fontSize: size }),
2902
+ label: __21("No wrap", "elementor"),
2903
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowRightIcon2, { fontSize: size }),
2695
2904
  showTooltip: true
2696
2905
  },
2697
2906
  {
2698
2907
  value: "wrap",
2699
- label: __20("Wrap", "elementor"),
2700
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(ArrowBackIcon, { fontSize: size }),
2908
+ label: __21("Wrap", "elementor"),
2909
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowBackIcon, { fontSize: size }),
2701
2910
  showTooltip: true
2702
2911
  },
2703
2912
  {
2704
2913
  value: "wrap-reverse",
2705
- label: __20("Reversed wrap", "elementor"),
2706
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(ArrowForwardIcon, { fontSize: size }),
2914
+ label: __21("Reversed wrap", "elementor"),
2915
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(ArrowForwardIcon, { fontSize: size }),
2707
2916
  showTooltip: true
2708
2917
  }
2709
2918
  ];
2710
2919
  var WrapField = () => {
2711
2920
  const { isSiteRtl } = useDirection();
2712
- return /* @__PURE__ */ React43.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React43.createElement(ThemeProvider8, null, /* @__PURE__ */ React43.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React43.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlLabel, null, __20("Wrap", "elementor"))), /* @__PURE__ */ React43.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(ToggleControl7, { options: options5 }))))));
2921
+ return /* @__PURE__ */ React44.createElement(DirectionProvider8, { rtl: isSiteRtl }, /* @__PURE__ */ React44.createElement(ThemeProvider8, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React44.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __21("Wrap", "elementor"))), /* @__PURE__ */ React44.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(ToggleControl7, { options: options5 }))))));
2713
2922
  };
2714
2923
 
2715
2924
  // src/components/style-sections/layout-section/layout-section.tsx
@@ -2721,13 +2930,13 @@ var LayoutSection = () => {
2721
2930
  const parent = useParentElement(element.id);
2722
2931
  const parentStyle = useComputedStyle(parent?.id || null);
2723
2932
  const parentStyleDirection = parentStyle?.flexDirection ?? "row";
2724
- return /* @__PURE__ */ React44.createElement(SectionContent, null, /* @__PURE__ */ React44.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React44.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React44.createElement(FlexChildFields, { parentStyleDirection }));
2933
+ return /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React45.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React45.createElement(FlexChildFields, { parentStyleDirection }));
2725
2934
  };
2726
2935
  var FlexFields = () => {
2727
2936
  const [flexWrap] = useStylesField("flex-wrap");
2728
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FlexDirectionField, null), /* @__PURE__ */ React44.createElement(JustifyContentField, null), /* @__PURE__ */ React44.createElement(AlignItemsField, null), /* @__PURE__ */ React44.createElement(PanelDivider, null), /* @__PURE__ */ React44.createElement(GapControlField, null), /* @__PURE__ */ React44.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React44.createElement(AlignContentField, null));
2937
+ return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(FlexDirectionField, null), /* @__PURE__ */ React45.createElement(JustifyContentField, null), /* @__PURE__ */ React45.createElement(AlignItemsField, null), /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(GapControlField, null), /* @__PURE__ */ React45.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React45.createElement(AlignContentField, null));
2729
2938
  };
2730
- var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(PanelDivider, null), /* @__PURE__ */ React44.createElement(ControlFormLabel3, null, __21("Flex child", "elementor")), /* @__PURE__ */ React44.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React44.createElement(FlexOrderField, null), /* @__PURE__ */ React44.createElement(FlexSizeField, null));
2939
+ var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(ControlFormLabel3, null, __22("Flex child", "elementor")), /* @__PURE__ */ React45.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React45.createElement(FlexOrderField, null), /* @__PURE__ */ React45.createElement(FlexSizeField, null));
2731
2940
  var shouldDisplayFlexFields = (display, local) => {
2732
2941
  const value = display?.value ?? local?.value;
2733
2942
  if (!value) {
@@ -2737,66 +2946,66 @@ var shouldDisplayFlexFields = (display, local) => {
2737
2946
  };
2738
2947
 
2739
2948
  // src/components/style-sections/position-section/position-section.tsx
2740
- import * as React49 from "react";
2741
- import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
2949
+ import * as React50 from "react";
2950
+ import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
2742
2951
  import { useSessionStorage } from "@elementor/session";
2743
2952
 
2744
2953
  // src/components/style-sections/position-section/dimensions-field.tsx
2745
- import * as React45 from "react";
2954
+ import * as React46 from "react";
2746
2955
  import { SizeControl as SizeControl3 } from "@elementor/editor-controls";
2747
2956
  import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
2748
2957
  import { Grid as Grid9, Stack as Stack13, withDirection as withDirection8 } from "@elementor/ui";
2749
- import { __ as __22 } from "@wordpress/i18n";
2958
+ import { __ as __23 } from "@wordpress/i18n";
2750
2959
  var InlineStartIcon2 = withDirection8(SideLeftIcon2);
2751
2960
  var InlineEndIcon2 = withDirection8(SideRightIcon2);
2752
2961
  var sideIcons = {
2753
- "inset-block-start": /* @__PURE__ */ React45.createElement(SideTopIcon2, { fontSize: "tiny" }),
2754
- "inset-block-end": /* @__PURE__ */ React45.createElement(SideBottomIcon2, { fontSize: "tiny" }),
2755
- "inset-inline-start": /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
2756
- "inset-inline-end": /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
2962
+ "inset-block-start": /* @__PURE__ */ React46.createElement(SideTopIcon2, { fontSize: "tiny" }),
2963
+ "inset-block-end": /* @__PURE__ */ React46.createElement(SideBottomIcon2, { fontSize: "tiny" }),
2964
+ "inset-inline-start": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
2965
+ "inset-inline-end": /* @__PURE__ */ React46.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
2757
2966
  };
2758
- var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __22("Right", "elementor") : __22("Left", "elementor");
2759
- var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __22("Left", "elementor") : __22("Right", "elementor");
2967
+ var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __23("Right", "elementor") : __23("Left", "elementor");
2968
+ var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __23("Left", "elementor") : __23("Right", "elementor");
2760
2969
  var DimensionsField = () => {
2761
2970
  const { isSiteRtl } = useDirection();
2762
- return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(DimensionField, { side: "inset-block-start", label: __22("Top", "elementor") }), /* @__PURE__ */ React45.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React45.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(DimensionField, { side: "inset-block-end", label: __22("Bottom", "elementor") }), /* @__PURE__ */ React45.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
2971
+ return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-start", label: __23("Top", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React46.createElement(Stack13, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-block-end", label: __23("Bottom", "elementor") }), /* @__PURE__ */ React46.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
2763
2972
  };
2764
2973
  var DimensionField = ({ side, label }) => {
2765
- return /* @__PURE__ */ React45.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React45.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(ControlLabel, null, label)), /* @__PURE__ */ React45.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(StylesField, { bind: side }, /* @__PURE__ */ React45.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
2974
+ return /* @__PURE__ */ React46.createElement(Grid9, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, label)), /* @__PURE__ */ React46.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React46.createElement(StylesField, { bind: side }, /* @__PURE__ */ React46.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
2766
2975
  };
2767
2976
 
2768
2977
  // src/components/style-sections/position-section/offset-field.tsx
2769
- import * as React46 from "react";
2978
+ import * as React47 from "react";
2770
2979
  import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
2771
2980
  import { Grid as Grid10 } from "@elementor/ui";
2772
- import { __ as __23 } from "@wordpress/i18n";
2981
+ import { __ as __24 } from "@wordpress/i18n";
2773
2982
  var OffsetField = () => {
2774
- return /* @__PURE__ */ React46.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React46.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(ControlLabel, null, __23("Anchor offset", "elementor"))), /* @__PURE__ */ React46.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
2983
+ return /* @__PURE__ */ React47.createElement(StylesField, { bind: "scroll-margin-top" }, /* @__PURE__ */ React47.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __24("Anchor offset", "elementor"))), /* @__PURE__ */ React47.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(SizeControl4, { units: ["px", "em", "rem", "vw", "vh"] }))));
2775
2984
  };
2776
2985
 
2777
2986
  // src/components/style-sections/position-section/position-field.tsx
2778
- import * as React47 from "react";
2987
+ import * as React48 from "react";
2779
2988
  import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
2780
2989
  import { Grid as Grid11 } from "@elementor/ui";
2781
- import { __ as __24 } from "@wordpress/i18n";
2990
+ import { __ as __25 } from "@wordpress/i18n";
2782
2991
  var positionOptions = [
2783
- { label: __24("Static", "elementor"), value: "static" },
2784
- { label: __24("Relative", "elementor"), value: "relative" },
2785
- { label: __24("Absolute", "elementor"), value: "absolute" },
2786
- { label: __24("Fixed", "elementor"), value: "fixed" },
2787
- { label: __24("Sticky", "elementor"), value: "sticky" }
2992
+ { label: __25("Static", "elementor"), value: "static" },
2993
+ { label: __25("Relative", "elementor"), value: "relative" },
2994
+ { label: __25("Absolute", "elementor"), value: "absolute" },
2995
+ { label: __25("Fixed", "elementor"), value: "fixed" },
2996
+ { label: __25("Sticky", "elementor"), value: "sticky" }
2788
2997
  ];
2789
2998
  var PositionField = ({ onChange }) => {
2790
- return /* @__PURE__ */ React47.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React47.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel, null, __24("Position", "elementor"))), /* @__PURE__ */ React47.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React47.createElement(SelectControl3, { options: positionOptions, onChange }))));
2999
+ return /* @__PURE__ */ React48.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React48.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __25("Position", "elementor"))), /* @__PURE__ */ React48.createElement(Grid11, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React48.createElement(SelectControl3, { options: positionOptions, onChange }))));
2791
3000
  };
2792
3001
 
2793
3002
  // src/components/style-sections/position-section/z-index-field.tsx
2794
- import * as React48 from "react";
3003
+ import * as React49 from "react";
2795
3004
  import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
2796
3005
  import { Grid as Grid12 } from "@elementor/ui";
2797
- import { __ as __25 } from "@wordpress/i18n";
3006
+ import { __ as __26 } from "@wordpress/i18n";
2798
3007
  var ZIndexField = () => {
2799
- return /* @__PURE__ */ React48.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React48.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel, null, __25("Z-index", "elementor"))), /* @__PURE__ */ React48.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(NumberControl3, null))));
3008
+ return /* @__PURE__ */ React49.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React49.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __26("Z-index", "elementor"))), /* @__PURE__ */ React49.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(NumberControl3, null))));
2800
3009
  };
2801
3010
 
2802
3011
  // src/components/style-sections/position-section/position-section.tsx
@@ -2809,7 +3018,7 @@ var PositionSection = () => {
2809
3018
  "inset-inline-end"
2810
3019
  ]);
2811
3020
  const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
2812
- const isCssIdFeatureActive = isExperimentActive4("e_v_3_30");
3021
+ const isCssIdFeatureActive = isExperimentActive6("e_v_3_30");
2813
3022
  const onPositionChange = (newPosition, previousPosition) => {
2814
3023
  if (newPosition === "static") {
2815
3024
  if (dimensionsValues) {
@@ -2829,7 +3038,7 @@ var PositionSection = () => {
2829
3038
  }
2830
3039
  };
2831
3040
  const isNotStatic = positionValue && positionValue?.value !== "static";
2832
- return /* @__PURE__ */ React49.createElement(SectionContent, null, /* @__PURE__ */ React49.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(DimensionsField, null), /* @__PURE__ */ React49.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(PanelDivider, null), /* @__PURE__ */ React49.createElement(OffsetField, null)));
3041
+ return /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(DimensionsField, null), /* @__PURE__ */ React50.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(PanelDivider, null), /* @__PURE__ */ React50.createElement(OffsetField, null)));
2833
3042
  };
2834
3043
  var usePersistDimensions = () => {
2835
3044
  const { id: styleDefID, meta } = useStyle();
@@ -2839,23 +3048,23 @@ var usePersistDimensions = () => {
2839
3048
  };
2840
3049
 
2841
3050
  // src/components/style-sections/size-section/size-section.tsx
2842
- import * as React54 from "react";
2843
- import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
2844
- import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
3051
+ import * as React55 from "react";
3052
+ import { AspectRatioControl, SizeControl as SizeControl5 } from "@elementor/editor-controls";
3053
+ import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
2845
3054
  import { Grid as Grid16, Stack as Stack15 } from "@elementor/ui";
2846
- import { __ as __30 } from "@wordpress/i18n";
3055
+ import { __ as __31 } from "@wordpress/i18n";
2847
3056
 
2848
3057
  // src/components/collapsible-content.tsx
2849
- import * as React50 from "react";
2850
- import { useState as useState12 } from "react";
3058
+ import * as React51 from "react";
3059
+ import { useState as useState11 } from "react";
2851
3060
  import { Button, Collapse as Collapse3, Stack as Stack14 } from "@elementor/ui";
2852
- import { __ as __26 } from "@wordpress/i18n";
3061
+ import { __ as __27 } from "@wordpress/i18n";
2853
3062
  var CollapsibleContent = ({ children, defaultOpen = false }) => {
2854
- const [open, setOpen] = useState12(defaultOpen);
3063
+ const [open, setOpen] = useState11(defaultOpen);
2855
3064
  const handleToggle = () => {
2856
3065
  setOpen((prevOpen) => !prevOpen);
2857
3066
  };
2858
- return /* @__PURE__ */ React50.createElement(Stack14, null, /* @__PURE__ */ React50.createElement(
3067
+ return /* @__PURE__ */ React51.createElement(Stack14, null, /* @__PURE__ */ React51.createElement(
2859
3068
  Button,
2860
3069
  {
2861
3070
  fullWidth: true,
@@ -2863,77 +3072,77 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
2863
3072
  color: "secondary",
2864
3073
  variant: "outlined",
2865
3074
  onClick: handleToggle,
2866
- endIcon: /* @__PURE__ */ React50.createElement(CollapseIcon, { open }),
3075
+ endIcon: /* @__PURE__ */ React51.createElement(CollapseIcon, { open }),
2867
3076
  sx: { my: 0.5 }
2868
3077
  },
2869
- open ? __26("Show less", "elementor") : __26("Show more", "elementor")
2870
- ), /* @__PURE__ */ React50.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
3078
+ open ? __27("Show less", "elementor") : __27("Show more", "elementor")
3079
+ ), /* @__PURE__ */ React51.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
2871
3080
  };
2872
3081
 
2873
3082
  // src/components/style-sections/size-section/object-fit-field.tsx
2874
- import * as React51 from "react";
3083
+ import * as React52 from "react";
2875
3084
  import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
2876
3085
  import { Grid as Grid13 } from "@elementor/ui";
2877
- import { __ as __27 } from "@wordpress/i18n";
3086
+ import { __ as __28 } from "@wordpress/i18n";
2878
3087
  var positionOptions2 = [
2879
- { label: __27("Fill", "elementor"), value: "fill" },
2880
- { label: __27("Cover", "elementor"), value: "cover" },
2881
- { label: __27("Contain", "elementor"), value: "contain" },
2882
- { label: __27("None", "elementor"), value: "none" },
2883
- { label: __27("Scale down", "elementor"), value: "scale-down" }
3088
+ { label: __28("Fill", "elementor"), value: "fill" },
3089
+ { label: __28("Cover", "elementor"), value: "cover" },
3090
+ { label: __28("Contain", "elementor"), value: "contain" },
3091
+ { label: __28("None", "elementor"), value: "none" },
3092
+ { label: __28("Scale down", "elementor"), value: "scale-down" }
2884
3093
  ];
2885
3094
  var ObjectFitField = ({ onChange }) => {
2886
- return /* @__PURE__ */ React51.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React51.createElement(Grid13, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel, null, __27("Object fit", "elementor"))), /* @__PURE__ */ React51.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React51.createElement(SelectControl4, { options: positionOptions2, onChange }))));
3095
+ return /* @__PURE__ */ React52.createElement(StylesField, { bind: "object-fit" }, /* @__PURE__ */ React52.createElement(Grid13, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __28("Object fit", "elementor"))), /* @__PURE__ */ React52.createElement(Grid13, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React52.createElement(SelectControl4, { options: positionOptions2, onChange }))));
2887
3096
  };
2888
3097
 
2889
3098
  // src/components/style-sections/size-section/object-position-field.tsx
2890
- import * as React52 from "react";
3099
+ import * as React53 from "react";
2891
3100
  import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
2892
3101
  import { Grid as Grid14 } from "@elementor/ui";
2893
- import { __ as __28 } from "@wordpress/i18n";
3102
+ import { __ as __29 } from "@wordpress/i18n";
2894
3103
  var positionOptions3 = [
2895
- { label: __28("Center center", "elementor"), value: "center center" },
2896
- { label: __28("Center left", "elementor"), value: "center left" },
2897
- { label: __28("Center right", "elementor"), value: "center right" },
2898
- { label: __28("Top center", "elementor"), value: "top center" },
2899
- { label: __28("Top left", "elementor"), value: "top left" },
2900
- { label: __28("Top right", "elementor"), value: "top right" },
2901
- { label: __28("Bottom center", "elementor"), value: "bottom center" },
2902
- { label: __28("Bottom left", "elementor"), value: "bottom left" },
2903
- { label: __28("Bottom right", "elementor"), value: "bottom right" }
3104
+ { label: __29("Center center", "elementor"), value: "center center" },
3105
+ { label: __29("Center left", "elementor"), value: "center left" },
3106
+ { label: __29("Center right", "elementor"), value: "center right" },
3107
+ { label: __29("Top center", "elementor"), value: "top center" },
3108
+ { label: __29("Top left", "elementor"), value: "top left" },
3109
+ { label: __29("Top right", "elementor"), value: "top right" },
3110
+ { label: __29("Bottom center", "elementor"), value: "bottom center" },
3111
+ { label: __29("Bottom left", "elementor"), value: "bottom left" },
3112
+ { label: __29("Bottom right", "elementor"), value: "bottom right" }
2904
3113
  ];
2905
3114
  var ObjectPositionField = ({ onChange }) => {
2906
- return /* @__PURE__ */ React52.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React52.createElement(Grid14, { container: true, pt: 2, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel, null, __28("Object position", "elementor"))), /* @__PURE__ */ React52.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React52.createElement(SelectControl5, { options: positionOptions3, onChange }))));
3115
+ return /* @__PURE__ */ React53.createElement(StylesField, { bind: "object-position" }, /* @__PURE__ */ React53.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __29("Object position", "elementor"))), /* @__PURE__ */ React53.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React53.createElement(SelectControl5, { options: positionOptions3, onChange }))));
2907
3116
  };
2908
3117
 
2909
3118
  // src/components/style-sections/size-section/overflow-field.tsx
2910
- import * as React53 from "react";
3119
+ import * as React54 from "react";
2911
3120
  import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
2912
3121
  import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
2913
3122
  import { Grid as Grid15 } from "@elementor/ui";
2914
- import { __ as __29 } from "@wordpress/i18n";
3123
+ import { __ as __30 } from "@wordpress/i18n";
2915
3124
  var options6 = [
2916
3125
  {
2917
3126
  value: "visible",
2918
- label: __29("Visible", "elementor"),
2919
- renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(EyeIcon, { fontSize: size }),
3127
+ label: __30("Visible", "elementor"),
3128
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeIcon, { fontSize: size }),
2920
3129
  showTooltip: true
2921
3130
  },
2922
3131
  {
2923
3132
  value: "hidden",
2924
- label: __29("Hidden", "elementor"),
2925
- renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(EyeOffIcon, { fontSize: size }),
3133
+ label: __30("Hidden", "elementor"),
3134
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(EyeOffIcon, { fontSize: size }),
2926
3135
  showTooltip: true
2927
3136
  },
2928
3137
  {
2929
3138
  value: "auto",
2930
- label: __29("Auto", "elementor"),
2931
- renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(LetterAIcon, { fontSize: size }),
3139
+ label: __30("Auto", "elementor"),
3140
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(LetterAIcon, { fontSize: size }),
2932
3141
  showTooltip: true
2933
3142
  }
2934
3143
  ];
2935
3144
  var OverflowField = () => {
2936
- return /* @__PURE__ */ React53.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React53.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel, null, __29("Overflow", "elementor"))), /* @__PURE__ */ React53.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React53.createElement(ToggleControl8, { options: options6 }))));
3145
+ return /* @__PURE__ */ React54.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React54.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, __30("Overflow", "elementor"))), /* @__PURE__ */ React54.createElement(Grid15, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React54.createElement(ToggleControl8, { options: options6 }))));
2937
3146
  };
2938
3147
 
2939
3148
  // src/components/style-sections/size-section/size-section.tsx
@@ -2948,78 +3157,78 @@ var SizeSection = () => {
2948
3157
  });
2949
3158
  }
2950
3159
  };
2951
- const isVersion330Active = isExperimentActive5("e_v_3_30");
2952
- return /* @__PURE__ */ React54.createElement(SectionContent, null, /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "width", label: __30("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "height", label: __30("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(
3160
+ const isVersion330Active = isExperimentActive7("e_v_3_30");
3161
+ return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "width", label: __31("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "height", label: __31("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
2953
3162
  SizeField,
2954
3163
  {
2955
3164
  bind: "min-width",
2956
- label: __30("Min width", "elementor"),
3165
+ label: __31("Min width", "elementor"),
2957
3166
  extendedValues: ["auto"]
2958
3167
  }
2959
- )), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(
3168
+ )), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(
2960
3169
  SizeField,
2961
3170
  {
2962
3171
  bind: "min-height",
2963
- label: __30("Min height", "elementor"),
3172
+ label: __31("Min height", "elementor"),
2964
3173
  extendedValues: ["auto"]
2965
3174
  }
2966
- ))), /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "max-width", label: __30("Max width", "elementor") })), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(SizeField, { bind: "max-height", label: __30("Max height", "elementor") }))), /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(Stack15, null, /* @__PURE__ */ React54.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React54.createElement(CollapsibleContent, null, /* @__PURE__ */ React54.createElement(ObjectFitField, { onChange: onFitChange }), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 6 }, isNotFill && /* @__PURE__ */ React54.createElement(ObjectPositionField, null))));
3175
+ ))), /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-width", label: __31("Max width", "elementor") })), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(SizeField, { bind: "max-height", label: __31("Max height", "elementor") }))), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(Stack15, null, /* @__PURE__ */ React55.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React55.createElement(CollapsibleContent, null, /* @__PURE__ */ React55.createElement(Stack15, { gap: 2 }, /* @__PURE__ */ React55.createElement(StylesField, { bind: "aspect-ratio" }, /* @__PURE__ */ React55.createElement(AspectRatioControl, { label: __31("Aspect Ratio", "elementor") })), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(ObjectFitField, { onChange: onFitChange }), isNotFill && /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ObjectPositionField, null)))));
2967
3176
  };
2968
3177
  var SizeField = ({ label, bind, extendedValues }) => {
2969
- return /* @__PURE__ */ React54.createElement(StylesField, { bind }, /* @__PURE__ */ React54.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(ControlLabel, null, label)), /* @__PURE__ */ React54.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React54.createElement(SizeControl5, { extendedValues }))));
3178
+ return /* @__PURE__ */ React55.createElement(StylesField, { bind }, /* @__PURE__ */ React55.createElement(Grid16, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(Grid16, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(SizeControl5, { extendedValues }))));
2970
3179
  };
2971
3180
 
2972
3181
  // src/components/style-sections/spacing-section/spacing-section.tsx
2973
- import * as React55 from "react";
3182
+ import * as React56 from "react";
2974
3183
  import { LinkedDimensionsControl } from "@elementor/editor-controls";
2975
- import { __ as __31 } from "@wordpress/i18n";
3184
+ import { __ as __32 } from "@wordpress/i18n";
2976
3185
  var SpacingSection = () => {
2977
3186
  const { isSiteRtl } = useDirection();
2978
- return /* @__PURE__ */ React55.createElement(SectionContent, null, /* @__PURE__ */ React55.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React55.createElement(
3187
+ return /* @__PURE__ */ React56.createElement(SectionContent, null, /* @__PURE__ */ React56.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React56.createElement(
2979
3188
  LinkedDimensionsControl,
2980
3189
  {
2981
- label: __31("Margin", "elementor"),
3190
+ label: __32("Margin", "elementor"),
2982
3191
  isSiteRtl,
2983
3192
  extendedValues: ["auto"]
2984
3193
  }
2985
- )), /* @__PURE__ */ React55.createElement(PanelDivider, null), /* @__PURE__ */ React55.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React55.createElement(LinkedDimensionsControl, { label: __31("Padding", "elementor"), isSiteRtl })));
3194
+ )), /* @__PURE__ */ React56.createElement(PanelDivider, null), /* @__PURE__ */ React56.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React56.createElement(LinkedDimensionsControl, { label: __32("Padding", "elementor"), isSiteRtl })));
2986
3195
  };
2987
3196
 
2988
3197
  // src/components/style-sections/typography-section/typography-section.tsx
2989
- import * as React71 from "react";
2990
- import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
3198
+ import * as React72 from "react";
3199
+ import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
2991
3200
 
2992
3201
  // src/components/style-sections/typography-section/column-count-field.tsx
2993
- import * as React56 from "react";
3202
+ import * as React57 from "react";
2994
3203
  import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
2995
3204
  import { Grid as Grid17 } from "@elementor/ui";
2996
- import { __ as __32 } from "@wordpress/i18n";
3205
+ import { __ as __33 } from "@wordpress/i18n";
2997
3206
  var ColumnCountField = () => {
2998
- return /* @__PURE__ */ React56.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React56.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel, null, __32("Columns", "elementor"))), /* @__PURE__ */ React56.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
3207
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "column-count" }, /* @__PURE__ */ React57.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __33("Columns", "elementor"))), /* @__PURE__ */ React57.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 }))));
2999
3208
  };
3000
3209
 
3001
3210
  // src/components/style-sections/typography-section/column-gap-field.tsx
3002
- import * as React57 from "react";
3211
+ import * as React58 from "react";
3003
3212
  import { SizeControl as SizeControl6 } from "@elementor/editor-controls";
3004
3213
  import { Grid as Grid18 } from "@elementor/ui";
3005
- import { __ as __33 } from "@wordpress/i18n";
3214
+ import { __ as __34 } from "@wordpress/i18n";
3006
3215
  var ColumnGapField = () => {
3007
- return /* @__PURE__ */ React57.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React57.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel, null, __33("Column gap", "elementor"))), /* @__PURE__ */ React57.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(SizeControl6, null))));
3216
+ return /* @__PURE__ */ React58.createElement(StylesField, { bind: "column-gap" }, /* @__PURE__ */ React58.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __34("Column gap", "elementor"))), /* @__PURE__ */ React58.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(SizeControl6, null))));
3008
3217
  };
3009
3218
 
3010
3219
  // src/components/style-sections/typography-section/font-family-field.tsx
3011
- import * as React58 from "react";
3220
+ import * as React59 from "react";
3012
3221
  import { FontFamilyControl } from "@elementor/editor-controls";
3013
3222
  import { Grid as Grid19 } from "@elementor/ui";
3014
- import { __ as __35 } from "@wordpress/i18n";
3223
+ import { __ as __36 } from "@wordpress/i18n";
3015
3224
 
3016
3225
  // src/components/style-sections/typography-section/hooks/use-font-families.ts
3017
- import { useMemo as useMemo5 } from "react";
3018
- import { __ as __34 } from "@wordpress/i18n";
3226
+ import { useMemo as useMemo6 } from "react";
3227
+ import { __ as __35 } from "@wordpress/i18n";
3019
3228
  var supportedCategories = {
3020
- system: __34("System", "elementor"),
3021
- custom: __34("Custom Fonts", "elementor"),
3022
- googlefonts: __34("Google Fonts", "elementor")
3229
+ system: __35("System", "elementor"),
3230
+ custom: __35("Custom Fonts", "elementor"),
3231
+ googlefonts: __35("Google Fonts", "elementor")
3023
3232
  };
3024
3233
  var getFontFamilies = () => {
3025
3234
  const { controls } = getElementorConfig();
@@ -3031,7 +3240,7 @@ var getFontFamilies = () => {
3031
3240
  };
3032
3241
  var useFontFamilies = () => {
3033
3242
  const fontFamilies = getFontFamilies();
3034
- return useMemo5(() => {
3243
+ return useMemo6(() => {
3035
3244
  const categoriesOrder = ["system", "custom", "googlefonts"];
3036
3245
  return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
3037
3246
  if (!supportedCategories[category]) {
@@ -3056,188 +3265,188 @@ var FontFamilyField = () => {
3056
3265
  if (fontFamilies.length === 0) {
3057
3266
  return null;
3058
3267
  }
3059
- return /* @__PURE__ */ React58.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React58.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel, null, __35("Font family", "elementor"))), /* @__PURE__ */ React58.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React58.createElement(FontFamilyControl, { fontFamilies }))));
3268
+ return /* @__PURE__ */ React59.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React59.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __36("Font family", "elementor"))), /* @__PURE__ */ React59.createElement(Grid19, { item: true, xs: 6, sx: { minWidth: 0 } }, /* @__PURE__ */ React59.createElement(FontFamilyControl, { fontFamilies }))));
3060
3269
  };
3061
3270
 
3062
3271
  // src/components/style-sections/typography-section/font-size-field.tsx
3063
- import * as React59 from "react";
3272
+ import * as React60 from "react";
3064
3273
  import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
3065
3274
  import { Grid as Grid20 } from "@elementor/ui";
3066
- import { __ as __36 } from "@wordpress/i18n";
3275
+ import { __ as __37 } from "@wordpress/i18n";
3067
3276
  var FontSizeField = () => {
3068
- return /* @__PURE__ */ React59.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React59.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel, null, __36("Font size", "elementor"))), /* @__PURE__ */ React59.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(SizeControl7, null))));
3277
+ return /* @__PURE__ */ React60.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React60.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel, null, __37("Font size", "elementor"))), /* @__PURE__ */ React60.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeControl7, null))));
3069
3278
  };
3070
3279
 
3071
3280
  // src/components/style-sections/typography-section/font-style-field.tsx
3072
- import * as React60 from "react";
3281
+ import * as React61 from "react";
3073
3282
  import { ControlFormLabel as ControlFormLabel4, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
3074
3283
  import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
3075
3284
  import { Grid as Grid21 } from "@elementor/ui";
3076
- import { __ as __37 } from "@wordpress/i18n";
3285
+ import { __ as __38 } from "@wordpress/i18n";
3077
3286
  var options7 = [
3078
3287
  {
3079
3288
  value: "normal",
3080
- label: __37("Normal", "elementor"),
3081
- renderContent: ({ size }) => /* @__PURE__ */ React60.createElement(MinusIcon2, { fontSize: size }),
3289
+ label: __38("Normal", "elementor"),
3290
+ renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(MinusIcon2, { fontSize: size }),
3082
3291
  showTooltip: true
3083
3292
  },
3084
3293
  {
3085
3294
  value: "italic",
3086
- label: __37("Italic", "elementor"),
3087
- renderContent: ({ size }) => /* @__PURE__ */ React60.createElement(ItalicIcon, { fontSize: size }),
3295
+ label: __38("Italic", "elementor"),
3296
+ renderContent: ({ size }) => /* @__PURE__ */ React61.createElement(ItalicIcon, { fontSize: size }),
3088
3297
  showTooltip: true
3089
3298
  }
3090
3299
  ];
3091
- var FontStyleField = () => /* @__PURE__ */ React60.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React60.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlFormLabel4, null, __37("Font style", "elementor"))), /* @__PURE__ */ React60.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React60.createElement(ToggleControl9, { options: options7 }))));
3300
+ var FontStyleField = () => /* @__PURE__ */ React61.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React61.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlFormLabel4, null, __38("Font style", "elementor"))), /* @__PURE__ */ React61.createElement(Grid21, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React61.createElement(ToggleControl9, { options: options7 }))));
3092
3301
 
3093
3302
  // src/components/style-sections/typography-section/font-weight-field.tsx
3094
- import * as React61 from "react";
3303
+ import * as React62 from "react";
3095
3304
  import { SelectControl as SelectControl6 } from "@elementor/editor-controls";
3096
3305
  import { Grid as Grid22 } from "@elementor/ui";
3097
- import { __ as __38 } from "@wordpress/i18n";
3306
+ import { __ as __39 } from "@wordpress/i18n";
3098
3307
  var fontWeightOptions = [
3099
- { value: "100", label: __38("100 - Thin", "elementor") },
3100
- { value: "200", label: __38("200 - Extra light", "elementor") },
3101
- { value: "300", label: __38("300 - Light", "elementor") },
3102
- { value: "400", label: __38("400 - Normal", "elementor") },
3103
- { value: "500", label: __38("500 - Medium", "elementor") },
3104
- { value: "600", label: __38("600 - Semi bold", "elementor") },
3105
- { value: "700", label: __38("700 - Bold", "elementor") },
3106
- { value: "800", label: __38("800 - Extra bold", "elementor") },
3107
- { value: "900", label: __38("900 - Black", "elementor") }
3308
+ { value: "100", label: __39("100 - Thin", "elementor") },
3309
+ { value: "200", label: __39("200 - Extra light", "elementor") },
3310
+ { value: "300", label: __39("300 - Light", "elementor") },
3311
+ { value: "400", label: __39("400 - Normal", "elementor") },
3312
+ { value: "500", label: __39("500 - Medium", "elementor") },
3313
+ { value: "600", label: __39("600 - Semi bold", "elementor") },
3314
+ { value: "700", label: __39("700 - Bold", "elementor") },
3315
+ { value: "800", label: __39("800 - Extra bold", "elementor") },
3316
+ { value: "900", label: __39("900 - Black", "elementor") }
3108
3317
  ];
3109
3318
  var FontWeightField = () => {
3110
- return /* @__PURE__ */ React61.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React61.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React61.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React61.createElement(ControlLabel, null, __38("Font weight", "elementor"))), /* @__PURE__ */ React61.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React61.createElement(SelectControl6, { options: fontWeightOptions }))));
3319
+ return /* @__PURE__ */ React62.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React62.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __39("Font weight", "elementor"))), /* @__PURE__ */ React62.createElement(Grid22, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React62.createElement(SelectControl6, { options: fontWeightOptions }))));
3111
3320
  };
3112
3321
 
3113
3322
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
3114
- import * as React62 from "react";
3323
+ import * as React63 from "react";
3115
3324
  import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
3116
3325
  import { Grid as Grid23 } from "@elementor/ui";
3117
- import { __ as __39 } from "@wordpress/i18n";
3326
+ import { __ as __40 } from "@wordpress/i18n";
3118
3327
  var LetterSpacingField = () => {
3119
- return /* @__PURE__ */ React62.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React62.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React62.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(ControlLabel, null, __39("Letter spacing", "elementor"))), /* @__PURE__ */ React62.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React62.createElement(SizeControl8, null))));
3328
+ return /* @__PURE__ */ React63.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React63.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __40("Letter spacing", "elementor"))), /* @__PURE__ */ React63.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl8, null))));
3120
3329
  };
3121
3330
 
3122
3331
  // src/components/style-sections/typography-section/line-height-field.tsx
3123
- import * as React63 from "react";
3332
+ import * as React64 from "react";
3124
3333
  import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
3125
3334
  import { Grid as Grid24 } from "@elementor/ui";
3126
- import { __ as __40 } from "@wordpress/i18n";
3335
+ import { __ as __41 } from "@wordpress/i18n";
3127
3336
  var LineHeightField = () => {
3128
- return /* @__PURE__ */ React63.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React63.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React63.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(ControlLabel, null, __40("Line height", "elementor"))), /* @__PURE__ */ React63.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React63.createElement(SizeControl9, null))));
3337
+ return /* @__PURE__ */ React64.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React64.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __41("Line height", "elementor"))), /* @__PURE__ */ React64.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(SizeControl9, null))));
3129
3338
  };
3130
3339
 
3131
3340
  // src/components/style-sections/typography-section/text-alignment-field.tsx
3132
- import * as React64 from "react";
3341
+ import * as React65 from "react";
3133
3342
  import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
3134
3343
  import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
3135
3344
  import { Grid as Grid25, withDirection as withDirection9 } from "@elementor/ui";
3136
- import { __ as __41 } from "@wordpress/i18n";
3345
+ import { __ as __42 } from "@wordpress/i18n";
3137
3346
  var AlignStartIcon = withDirection9(AlignLeftIcon);
3138
3347
  var AlignEndIcon = withDirection9(AlignRightIcon);
3139
3348
  var options8 = [
3140
3349
  {
3141
3350
  value: "start",
3142
- label: __41("Start", "elementor"),
3143
- renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(AlignStartIcon, { fontSize: size }),
3351
+ label: __42("Start", "elementor"),
3352
+ renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignStartIcon, { fontSize: size }),
3144
3353
  showTooltip: true
3145
3354
  },
3146
3355
  {
3147
3356
  value: "center",
3148
- label: __41("Center", "elementor"),
3149
- renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(AlignCenterIcon, { fontSize: size }),
3357
+ label: __42("Center", "elementor"),
3358
+ renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignCenterIcon, { fontSize: size }),
3150
3359
  showTooltip: true
3151
3360
  },
3152
3361
  {
3153
3362
  value: "end",
3154
- label: __41("End", "elementor"),
3155
- renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(AlignEndIcon, { fontSize: size }),
3363
+ label: __42("End", "elementor"),
3364
+ renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignEndIcon, { fontSize: size }),
3156
3365
  showTooltip: true
3157
3366
  },
3158
3367
  {
3159
3368
  value: "justify",
3160
- label: __41("Justify", "elementor"),
3161
- renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(AlignJustifiedIcon, { fontSize: size }),
3369
+ label: __42("Justify", "elementor"),
3370
+ renderContent: ({ size }) => /* @__PURE__ */ React65.createElement(AlignJustifiedIcon, { fontSize: size }),
3162
3371
  showTooltip: true
3163
3372
  }
3164
3373
  ];
3165
3374
  var TextAlignmentField = () => {
3166
- return /* @__PURE__ */ React64.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React64.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React64.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React64.createElement(ControlLabel, null, __41("Text align", "elementor"))), /* @__PURE__ */ React64.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React64.createElement(ToggleControl10, { options: options8 }))));
3375
+ return /* @__PURE__ */ React65.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React65.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __42("Text align", "elementor"))), /* @__PURE__ */ React65.createElement(Grid25, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React65.createElement(ToggleControl10, { options: options8 }))));
3167
3376
  };
3168
3377
 
3169
3378
  // src/components/style-sections/typography-section/text-color-field.tsx
3170
- import * as React65 from "react";
3379
+ import * as React66 from "react";
3171
3380
  import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
3172
3381
  import { Grid as Grid26 } from "@elementor/ui";
3173
- import { __ as __42 } from "@wordpress/i18n";
3382
+ import { __ as __43 } from "@wordpress/i18n";
3174
3383
  var TextColorField = () => {
3175
- return /* @__PURE__ */ React65.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React65.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React65.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, __42("Text color", "elementor"))), /* @__PURE__ */ React65.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ColorControl2, null))));
3384
+ return /* @__PURE__ */ React66.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React66.createElement(Grid26, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __43("Text color", "elementor"))), /* @__PURE__ */ React66.createElement(Grid26, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ColorControl2, null))));
3176
3385
  };
3177
3386
 
3178
3387
  // src/components/style-sections/typography-section/text-decoration-field.tsx
3179
- import * as React66 from "react";
3388
+ import * as React67 from "react";
3180
3389
  import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
3181
3390
  import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
3182
3391
  import { Grid as Grid27 } from "@elementor/ui";
3183
- import { __ as __43 } from "@wordpress/i18n";
3392
+ import { __ as __44 } from "@wordpress/i18n";
3184
3393
  var options9 = [
3185
3394
  {
3186
3395
  value: "none",
3187
- label: __43("None", "elementor"),
3188
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(MinusIcon3, { fontSize: size }),
3396
+ label: __44("None", "elementor"),
3397
+ renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(MinusIcon3, { fontSize: size }),
3189
3398
  showTooltip: true,
3190
3399
  exclusive: true
3191
3400
  },
3192
3401
  {
3193
3402
  value: "underline",
3194
- label: __43("Underline", "elementor"),
3195
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(UnderlineIcon, { fontSize: size }),
3403
+ label: __44("Underline", "elementor"),
3404
+ renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(UnderlineIcon, { fontSize: size }),
3196
3405
  showTooltip: true
3197
3406
  },
3198
3407
  {
3199
3408
  value: "line-through",
3200
- label: __43("Line-through", "elementor"),
3201
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(StrikethroughIcon, { fontSize: size }),
3409
+ label: __44("Line-through", "elementor"),
3410
+ renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(StrikethroughIcon, { fontSize: size }),
3202
3411
  showTooltip: true
3203
3412
  },
3204
3413
  {
3205
3414
  value: "overline",
3206
- label: __43("Overline", "elementor"),
3207
- renderContent: ({ size }) => /* @__PURE__ */ React66.createElement(OverlineIcon, { fontSize: size }),
3415
+ label: __44("Overline", "elementor"),
3416
+ renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(OverlineIcon, { fontSize: size }),
3208
3417
  showTooltip: true
3209
3418
  }
3210
3419
  ];
3211
- var TextDecorationField = () => /* @__PURE__ */ React66.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React66.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React66.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React66.createElement(ControlLabel, null, __43("Line decoration", "elementor"))), /* @__PURE__ */ React66.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React66.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3420
+ var TextDecorationField = () => /* @__PURE__ */ React67.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React67.createElement(Grid27, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __44("Line decoration", "elementor"))), /* @__PURE__ */ React67.createElement(Grid27, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React67.createElement(ToggleControl11, { options: options9, exclusive: false }))));
3212
3421
 
3213
3422
  // src/components/style-sections/typography-section/text-direction-field.tsx
3214
- import * as React67 from "react";
3423
+ import * as React68 from "react";
3215
3424
  import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
3216
3425
  import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
3217
3426
  import { Grid as Grid28 } from "@elementor/ui";
3218
- import { __ as __44 } from "@wordpress/i18n";
3427
+ import { __ as __45 } from "@wordpress/i18n";
3219
3428
  var options10 = [
3220
3429
  {
3221
3430
  value: "ltr",
3222
- label: __44("Left to right", "elementor"),
3223
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(TextDirectionLtrIcon, { fontSize: size }),
3431
+ label: __45("Left to right", "elementor"),
3432
+ renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionLtrIcon, { fontSize: size }),
3224
3433
  showTooltip: true
3225
3434
  },
3226
3435
  {
3227
3436
  value: "rtl",
3228
- label: __44("Right to left", "elementor"),
3229
- renderContent: ({ size }) => /* @__PURE__ */ React67.createElement(TextDirectionRtlIcon, { fontSize: size }),
3437
+ label: __45("Right to left", "elementor"),
3438
+ renderContent: ({ size }) => /* @__PURE__ */ React68.createElement(TextDirectionRtlIcon, { fontSize: size }),
3230
3439
  showTooltip: true
3231
3440
  }
3232
3441
  ];
3233
3442
  var TextDirectionField = () => {
3234
- return /* @__PURE__ */ React67.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React67.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React67.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React67.createElement(ControlLabel, null, __44("Direction", "elementor"))), /* @__PURE__ */ React67.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React67.createElement(ToggleControl12, { options: options10 }))));
3443
+ return /* @__PURE__ */ React68.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React68.createElement(Grid28, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6 }, /* @__PURE__ */ React68.createElement(ControlLabel, null, __45("Direction", "elementor"))), /* @__PURE__ */ React68.createElement(Grid28, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React68.createElement(ToggleControl12, { options: options10 }))));
3235
3444
  };
3236
3445
 
3237
3446
  // src/components/style-sections/typography-section/text-stroke-field.tsx
3238
- import * as React68 from "react";
3447
+ import * as React69 from "react";
3239
3448
  import { StrokeControl } from "@elementor/editor-controls";
3240
- import { __ as __45 } from "@wordpress/i18n";
3449
+ import { __ as __46 } from "@wordpress/i18n";
3241
3450
  var initTextStroke = {
3242
3451
  $$type: "stroke",
3243
3452
  value: {
@@ -3263,67 +3472,67 @@ var TextStrokeField = () => {
3263
3472
  setTextStroke(null);
3264
3473
  };
3265
3474
  const hasTextStroke = Boolean(textStroke);
3266
- return /* @__PURE__ */ React68.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React68.createElement(
3475
+ return /* @__PURE__ */ React69.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React69.createElement(
3267
3476
  AddOrRemoveContent,
3268
3477
  {
3269
- label: __45("Text stroke", "elementor"),
3478
+ label: __46("Text stroke", "elementor"),
3270
3479
  isAdded: hasTextStroke,
3271
3480
  onAdd: addTextStroke,
3272
3481
  onRemove: removeTextStroke
3273
3482
  },
3274
- /* @__PURE__ */ React68.createElement(StrokeControl, null)
3483
+ /* @__PURE__ */ React69.createElement(StrokeControl, null)
3275
3484
  ));
3276
3485
  };
3277
3486
 
3278
3487
  // src/components/style-sections/typography-section/transform-field.tsx
3279
- import * as React69 from "react";
3488
+ import * as React70 from "react";
3280
3489
  import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
3281
3490
  import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
3282
3491
  import { Grid as Grid29 } from "@elementor/ui";
3283
- import { __ as __46 } from "@wordpress/i18n";
3492
+ import { __ as __47 } from "@wordpress/i18n";
3284
3493
  var options11 = [
3285
3494
  {
3286
3495
  value: "none",
3287
- label: __46("None", "elementor"),
3288
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(MinusIcon4, { fontSize: size }),
3496
+ label: __47("None", "elementor"),
3497
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(MinusIcon4, { fontSize: size }),
3289
3498
  showTooltip: true
3290
3499
  },
3291
3500
  {
3292
3501
  value: "capitalize",
3293
- label: __46("Capitalize", "elementor"),
3294
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(LetterCaseIcon, { fontSize: size }),
3502
+ label: __47("Capitalize", "elementor"),
3503
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseIcon, { fontSize: size }),
3295
3504
  showTooltip: true
3296
3505
  },
3297
3506
  {
3298
3507
  value: "uppercase",
3299
- label: __46("Uppercase", "elementor"),
3300
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(LetterCaseUpperIcon, { fontSize: size }),
3508
+ label: __47("Uppercase", "elementor"),
3509
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseUpperIcon, { fontSize: size }),
3301
3510
  showTooltip: true
3302
3511
  },
3303
3512
  {
3304
3513
  value: "lowercase",
3305
- label: __46("Lowercase", "elementor"),
3306
- renderContent: ({ size }) => /* @__PURE__ */ React69.createElement(LetterCaseLowerIcon, { fontSize: size }),
3514
+ label: __47("Lowercase", "elementor"),
3515
+ renderContent: ({ size }) => /* @__PURE__ */ React70.createElement(LetterCaseLowerIcon, { fontSize: size }),
3307
3516
  showTooltip: true
3308
3517
  }
3309
3518
  ];
3310
- var TransformField = () => /* @__PURE__ */ React69.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React69.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React69.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React69.createElement(ControlLabel, null, __46("Text transform", "elementor"))), /* @__PURE__ */ React69.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React69.createElement(ToggleControl13, { options: options11 }))));
3519
+ var TransformField = () => /* @__PURE__ */ React70.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React70.createElement(Grid29, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __47("Text transform", "elementor"))), /* @__PURE__ */ React70.createElement(Grid29, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React70.createElement(ToggleControl13, { options: options11 }))));
3311
3520
 
3312
3521
  // src/components/style-sections/typography-section/word-spacing-field.tsx
3313
- import * as React70 from "react";
3522
+ import * as React71 from "react";
3314
3523
  import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
3315
3524
  import { Grid as Grid30 } from "@elementor/ui";
3316
- import { __ as __47 } from "@wordpress/i18n";
3525
+ import { __ as __48 } from "@wordpress/i18n";
3317
3526
  var WordSpacingField = () => {
3318
- return /* @__PURE__ */ React70.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React70.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React70.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(ControlLabel, null, __47("Word spacing", "elementor"))), /* @__PURE__ */ React70.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React70.createElement(SizeControl10, null))));
3527
+ return /* @__PURE__ */ React71.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React71.createElement(Grid30, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(ControlLabel, null, __48("Word spacing", "elementor"))), /* @__PURE__ */ React71.createElement(Grid30, { item: true, xs: 6 }, /* @__PURE__ */ React71.createElement(SizeControl10, null))));
3319
3528
  };
3320
3529
 
3321
3530
  // src/components/style-sections/typography-section/typography-section.tsx
3322
3531
  var TypographySection = () => {
3323
3532
  const [columnCount] = useStylesField("column-count");
3324
- const isVersion330Active = isExperimentActive6("e_v_3_30");
3325
- const hasMultiColumns = columnCount?.value && columnCount?.value > 1;
3326
- return /* @__PURE__ */ React71.createElement(SectionContent, null, /* @__PURE__ */ React71.createElement(FontFamilyField, null), /* @__PURE__ */ React71.createElement(FontWeightField, null), /* @__PURE__ */ React71.createElement(FontSizeField, null), /* @__PURE__ */ React71.createElement(PanelDivider, null), /* @__PURE__ */ React71.createElement(TextAlignmentField, null), /* @__PURE__ */ React71.createElement(TextColorField, null), /* @__PURE__ */ React71.createElement(CollapsibleContent, null, /* @__PURE__ */ React71.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React71.createElement(LineHeightField, null), /* @__PURE__ */ React71.createElement(LetterSpacingField, null), /* @__PURE__ */ React71.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React71.createElement(React71.Fragment, null, /* @__PURE__ */ React71.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React71.createElement(ColumnGapField, null)), /* @__PURE__ */ React71.createElement(PanelDivider, null), /* @__PURE__ */ React71.createElement(TextDecorationField, null), /* @__PURE__ */ React71.createElement(TransformField, null), /* @__PURE__ */ React71.createElement(TextDirectionField, null), /* @__PURE__ */ React71.createElement(FontStyleField, null), /* @__PURE__ */ React71.createElement(TextStrokeField, null))));
3533
+ const isVersion330Active = isExperimentActive8("e_v_3_30");
3534
+ const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
3535
+ return /* @__PURE__ */ React72.createElement(SectionContent, null, /* @__PURE__ */ React72.createElement(FontFamilyField, null), /* @__PURE__ */ React72.createElement(FontWeightField, null), /* @__PURE__ */ React72.createElement(FontSizeField, null), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextAlignmentField, null), /* @__PURE__ */ React72.createElement(TextColorField, null), /* @__PURE__ */ React72.createElement(CollapsibleContent, null, /* @__PURE__ */ React72.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React72.createElement(LineHeightField, null), /* @__PURE__ */ React72.createElement(LetterSpacingField, null), /* @__PURE__ */ React72.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React72.createElement(React72.Fragment, null, /* @__PURE__ */ React72.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React72.createElement(ColumnGapField, null)), /* @__PURE__ */ React72.createElement(PanelDivider, null), /* @__PURE__ */ React72.createElement(TextDecorationField, null), /* @__PURE__ */ React72.createElement(TransformField, null), /* @__PURE__ */ React72.createElement(TextDirectionField, null), /* @__PURE__ */ React72.createElement(FontStyleField, null), /* @__PURE__ */ React72.createElement(TextStrokeField, null))));
3327
3536
  };
3328
3537
 
3329
3538
  // src/components/style-tab.tsx
@@ -3335,12 +3544,19 @@ var stickyHeaderStyles = {
3335
3544
  backgroundColor: "background.default",
3336
3545
  transition: "top 300ms ease"
3337
3546
  };
3547
+ var PanelSection = ({ section }) => {
3548
+ const { component, name, title } = section;
3549
+ const tabDefaults = useDefaultPanelSettings();
3550
+ const SectionComponent = component;
3551
+ const isExpanded = isExperimentActive9(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : true;
3552
+ return /* @__PURE__ */ React73.createElement(Section, { title, defaultExpanded: isExpanded }, /* @__PURE__ */ React73.createElement(SectionComponent, null));
3553
+ };
3338
3554
  var StyleTab = () => {
3339
3555
  const currentClassesProp = useCurrentClassesProp();
3340
3556
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
3341
- const [activeStyleState, setActiveStyleState] = useState13(null);
3557
+ const [activeStyleState, setActiveStyleState] = useState12(null);
3342
3558
  const breakpoint = useActiveBreakpoint();
3343
- return /* @__PURE__ */ React72.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React72.createElement(
3559
+ return /* @__PURE__ */ React73.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React73.createElement(
3344
3560
  StyleProvider,
3345
3561
  {
3346
3562
  meta: { breakpoint, state: activeStyleState },
@@ -3351,12 +3567,84 @@ var StyleTab = () => {
3351
3567
  },
3352
3568
  setMetaState: setActiveStyleState
3353
3569
  },
3354
- /* @__PURE__ */ React72.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React72.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React72.createElement(ClassesHeader, null, /* @__PURE__ */ React72.createElement(CssClassSelector, null), /* @__PURE__ */ React72.createElement(Divider5, null)), /* @__PURE__ */ React72.createElement(SectionsList, null, /* @__PURE__ */ React72.createElement(Section, { title: __48("Layout", "elementor") }, /* @__PURE__ */ React72.createElement(LayoutSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Spacing", "elementor") }, /* @__PURE__ */ React72.createElement(SpacingSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Size", "elementor") }, /* @__PURE__ */ React72.createElement(SizeSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Position", "elementor") }, /* @__PURE__ */ React72.createElement(PositionSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Typography", "elementor") }, /* @__PURE__ */ React72.createElement(TypographySection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Background", "elementor") }, /* @__PURE__ */ React72.createElement(BackgroundSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Border", "elementor") }, /* @__PURE__ */ React72.createElement(BorderSection, null)), /* @__PURE__ */ React72.createElement(Section, { title: __48("Effects", "elementor") }, /* @__PURE__ */ React72.createElement(EffectsSection, null)))))
3570
+ /* @__PURE__ */ React73.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React73.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React73.createElement(ClassesHeader, null, /* @__PURE__ */ React73.createElement(CssClassSelector, null), /* @__PURE__ */ React73.createElement(Divider5, null)), /* @__PURE__ */ React73.createElement(SectionsList, null, /* @__PURE__ */ React73.createElement(
3571
+ PanelSection,
3572
+ {
3573
+ section: {
3574
+ component: LayoutSection,
3575
+ name: "Layout",
3576
+ title: __49("Layout", "elementor")
3577
+ }
3578
+ }
3579
+ ), /* @__PURE__ */ React73.createElement(
3580
+ PanelSection,
3581
+ {
3582
+ section: {
3583
+ component: SpacingSection,
3584
+ name: "Spacing",
3585
+ title: __49("Spacing", "elementor")
3586
+ }
3587
+ }
3588
+ ), /* @__PURE__ */ React73.createElement(
3589
+ PanelSection,
3590
+ {
3591
+ section: {
3592
+ component: SizeSection,
3593
+ name: "Size",
3594
+ title: __49("Size", "elementor")
3595
+ }
3596
+ }
3597
+ ), /* @__PURE__ */ React73.createElement(
3598
+ PanelSection,
3599
+ {
3600
+ section: {
3601
+ component: PositionSection,
3602
+ name: "Position",
3603
+ title: __49("Position", "elementor")
3604
+ }
3605
+ }
3606
+ ), /* @__PURE__ */ React73.createElement(
3607
+ PanelSection,
3608
+ {
3609
+ section: {
3610
+ component: TypographySection,
3611
+ name: "Typography",
3612
+ title: __49("Typography", "elementor")
3613
+ }
3614
+ }
3615
+ ), /* @__PURE__ */ React73.createElement(
3616
+ PanelSection,
3617
+ {
3618
+ section: {
3619
+ component: BackgroundSection,
3620
+ name: "Background",
3621
+ title: __49("Background", "elementor")
3622
+ }
3623
+ }
3624
+ ), /* @__PURE__ */ React73.createElement(
3625
+ PanelSection,
3626
+ {
3627
+ section: {
3628
+ component: BorderSection,
3629
+ name: "Border",
3630
+ title: __49("Border", "elementor")
3631
+ }
3632
+ }
3633
+ ), /* @__PURE__ */ React73.createElement(
3634
+ PanelSection,
3635
+ {
3636
+ section: {
3637
+ component: EffectsSection,
3638
+ name: "Effects",
3639
+ title: __49("Effects", "elementor")
3640
+ }
3641
+ }
3642
+ ))))
3355
3643
  ));
3356
3644
  };
3357
3645
  function ClassesHeader({ children }) {
3358
3646
  const scrollDirection = useScrollDirection();
3359
- return /* @__PURE__ */ React72.createElement(Stack16, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
3647
+ return /* @__PURE__ */ React73.createElement(Stack16, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
3360
3648
  }
3361
3649
  function useCurrentClassesProp() {
3362
3650
  const { elementType } = useElement();
@@ -3375,14 +3663,15 @@ var EditingPanelTabs = () => {
3375
3663
  return (
3376
3664
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
3377
3665
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
3378
- /* @__PURE__ */ React73.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React73.createElement(PanelTabContent, null))
3666
+ /* @__PURE__ */ React74.createElement(Fragment9, { key: element.id }, /* @__PURE__ */ React74.createElement(PanelTabContent, null))
3379
3667
  );
3380
3668
  };
3381
3669
  var PanelTabContent = () => {
3382
- const defaultComponentTab = "settings";
3670
+ const editorDefaults = useDefaultPanelSettings();
3671
+ const defaultComponentTab = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
3383
3672
  const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
3384
3673
  const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
3385
- return /* @__PURE__ */ React73.createElement(ScrollProvider, null, /* @__PURE__ */ React73.createElement(Stack17, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React73.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React73.createElement(
3674
+ return /* @__PURE__ */ React74.createElement(ScrollProvider, null, /* @__PURE__ */ React74.createElement(Stack17, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React74.createElement(Stack17, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React74.createElement(
3386
3675
  Tabs,
3387
3676
  {
3388
3677
  variant: "fullWidth",
@@ -3394,9 +3683,9 @@ var PanelTabContent = () => {
3394
3683
  setCurrentTab(newValue);
3395
3684
  }
3396
3685
  },
3397
- /* @__PURE__ */ React73.createElement(Tab, { label: __49("General", "elementor"), ...getTabProps("settings") }),
3398
- /* @__PURE__ */ React73.createElement(Tab, { label: __49("Style", "elementor"), ...getTabProps("style") })
3399
- ), /* @__PURE__ */ React73.createElement(Divider6, null)), /* @__PURE__ */ React73.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React73.createElement(SettingsTab, null)), /* @__PURE__ */ React73.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React73.createElement(StyleTab, null))));
3686
+ /* @__PURE__ */ React74.createElement(Tab, { label: __50("General", "elementor"), ...getTabProps("settings") }),
3687
+ /* @__PURE__ */ React74.createElement(Tab, { label: __50("Style", "elementor"), ...getTabProps("style") })
3688
+ ), /* @__PURE__ */ React74.createElement(Divider6, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React74.createElement(SettingsTab, null)), /* @__PURE__ */ React74.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React74.createElement(StyleTab, null))));
3400
3689
  };
3401
3690
 
3402
3691
  // src/components/editing-panel.tsx
@@ -3408,8 +3697,8 @@ var EditingPanel = () => {
3408
3697
  if (!element || !elementType) {
3409
3698
  return null;
3410
3699
  }
3411
- const panelTitle = __50("Edit %s", "elementor").replace("%s", elementType.title);
3412
- return /* @__PURE__ */ React74.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React74.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React74.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React74.createElement(ThemeProvider9, null, /* @__PURE__ */ React74.createElement(Panel, null, /* @__PURE__ */ React74.createElement(PanelHeader, null, /* @__PURE__ */ React74.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React74.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React74.createElement(PanelBody, null, /* @__PURE__ */ React74.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React74.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React74.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React74.createElement(EditingPanelTabs, null)))))))));
3700
+ const panelTitle = __51("Edit %s", "elementor").replace("%s", elementType.title);
3701
+ return /* @__PURE__ */ React75.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React75.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React75.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React75.createElement(ThemeProvider9, null, /* @__PURE__ */ React75.createElement(Panel, null, /* @__PURE__ */ React75.createElement(PanelHeader, null, /* @__PURE__ */ React75.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React75.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React75.createElement(PanelBody, null, /* @__PURE__ */ React75.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React75.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React75.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React75.createElement(EditingPanelTabs, null)))))))));
3413
3702
  };
3414
3703
 
3415
3704
  // src/panel.ts
@@ -3461,13 +3750,13 @@ var EditingPanelHooks = () => {
3461
3750
  import { settingsTransformersRegistry, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
3462
3751
 
3463
3752
  // src/dynamics/components/dynamic-selection-control.tsx
3464
- import * as React78 from "react";
3753
+ import * as React79 from "react";
3465
3754
  import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
3466
3755
  import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
3467
3756
  import {
3468
3757
  bindPopover as bindPopover2,
3469
3758
  bindTrigger as bindTrigger2,
3470
- Box as Box5,
3759
+ Box as Box6,
3471
3760
  Divider as Divider8,
3472
3761
  Grid as Grid31,
3473
3762
  IconButton as IconButton4,
@@ -3477,17 +3766,17 @@ import {
3477
3766
  Tab as Tab2,
3478
3767
  TabPanel as TabPanel2,
3479
3768
  Tabs as Tabs2,
3480
- Typography as Typography5,
3769
+ Typography as Typography6,
3481
3770
  UnstableTag as Tag,
3482
3771
  usePopupState as usePopupState3,
3483
3772
  useTabs as useTabs2
3484
3773
  } from "@elementor/ui";
3485
- import { __ as __52 } from "@wordpress/i18n";
3774
+ import { __ as __53 } from "@wordpress/i18n";
3486
3775
 
3487
3776
  // src/components/popover-content.tsx
3488
- import * as React75 from "react";
3777
+ import * as React76 from "react";
3489
3778
  import { Stack as Stack18 } from "@elementor/ui";
3490
- var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React75.createElement(Stack18, { alignItems, gap, p }, children);
3779
+ var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React76.createElement(Stack18, { alignItems, gap, p }, children);
3491
3780
 
3492
3781
  // src/hooks/use-persist-dynamic-value.ts
3493
3782
  import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
@@ -3498,14 +3787,14 @@ var usePersistDynamicValue = (propKey) => {
3498
3787
  };
3499
3788
 
3500
3789
  // src/dynamics/dynamic-control.tsx
3501
- import * as React76 from "react";
3790
+ import * as React77 from "react";
3502
3791
  import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
3503
3792
 
3504
3793
  // src/dynamics/hooks/use-dynamic-tag.ts
3505
- import { useMemo as useMemo7 } from "react";
3794
+ import { useMemo as useMemo8 } from "react";
3506
3795
 
3507
3796
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
3508
- import { useMemo as useMemo6 } from "react";
3797
+ import { useMemo as useMemo7 } from "react";
3509
3798
  import { useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
3510
3799
 
3511
3800
  // src/dynamics/sync/get-elementor-config.ts
@@ -3560,7 +3849,7 @@ var usePropDynamicTags = () => {
3560
3849
  const propDynamicType = getDynamicPropType(propType);
3561
3850
  categories = propDynamicType?.settings.categories || [];
3562
3851
  }
3563
- return useMemo6(() => getDynamicTagsByCategories(categories), [categories.join()]);
3852
+ return useMemo7(() => getDynamicTagsByCategories(categories), [categories.join()]);
3564
3853
  };
3565
3854
  var getDynamicTagsByCategories = (categories) => {
3566
3855
  const dynamicTags = getAtomicDynamicTags();
@@ -3576,7 +3865,7 @@ var getDynamicTagsByCategories = (categories) => {
3576
3865
  // src/dynamics/hooks/use-dynamic-tag.ts
3577
3866
  var useDynamicTag = (tagName) => {
3578
3867
  const dynamicTags = usePropDynamicTags();
3579
- return useMemo7(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
3868
+ return useMemo8(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
3580
3869
  };
3581
3870
 
3582
3871
  // src/dynamics/dynamic-control.tsx
@@ -3600,30 +3889,30 @@ var DynamicControl = ({ bind, children }) => {
3600
3889
  });
3601
3890
  };
3602
3891
  const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
3603
- return /* @__PURE__ */ React76.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React76.createElement(PropKeyProvider3, { bind }, children));
3892
+ return /* @__PURE__ */ React77.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React77.createElement(PropKeyProvider3, { bind }, children));
3604
3893
  };
3605
3894
 
3606
3895
  // src/dynamics/components/dynamic-selection.tsx
3607
- import * as React77 from "react";
3608
- import { Fragment as Fragment10, useState as useState14 } from "react";
3896
+ import * as React78 from "react";
3897
+ import { Fragment as Fragment10, useState as useState13 } from "react";
3609
3898
  import { useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
3610
3899
  import { DatabaseIcon, SearchIcon } from "@elementor/icons";
3611
3900
  import {
3612
- Box as Box4,
3901
+ Box as Box5,
3613
3902
  Divider as Divider7,
3614
3903
  InputAdornment,
3615
- Link,
3904
+ Link as Link2,
3616
3905
  MenuItem,
3617
3906
  MenuList,
3618
3907
  MenuSubheader as MenuSubheader2,
3619
3908
  Stack as Stack19,
3620
3909
  TextField as TextField2,
3621
- Typography as Typography4
3910
+ Typography as Typography5
3622
3911
  } from "@elementor/ui";
3623
- import { __ as __51 } from "@wordpress/i18n";
3912
+ import { __ as __52 } from "@wordpress/i18n";
3624
3913
  var SIZE3 = "tiny";
3625
3914
  var DynamicSelection = ({ onSelect }) => {
3626
- const [searchValue, setSearchValue] = useState14("");
3915
+ const [searchValue, setSearchValue] = useState13("");
3627
3916
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
3628
3917
  const { value: anyValue } = useBoundProp4();
3629
3918
  const { bind, value: dynamicValue, setValue } = useBoundProp4(dynamicPropTypeUtil);
@@ -3641,19 +3930,19 @@ var DynamicSelection = ({ onSelect }) => {
3641
3930
  setValue({ name: value, settings: { label } });
3642
3931
  onSelect?.();
3643
3932
  };
3644
- return /* @__PURE__ */ React77.createElement(Stack19, null, hasNoDynamicTags ? /* @__PURE__ */ React77.createElement(NoDynamicTags, null) : /* @__PURE__ */ React77.createElement(Fragment10, null, /* @__PURE__ */ React77.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React77.createElement(
3933
+ return /* @__PURE__ */ React78.createElement(Stack19, null, hasNoDynamicTags ? /* @__PURE__ */ React78.createElement(NoDynamicTags, null) : /* @__PURE__ */ React78.createElement(Fragment10, null, /* @__PURE__ */ React78.createElement(Box5, { px: 1.5, pb: 1 }, /* @__PURE__ */ React78.createElement(
3645
3934
  TextField2,
3646
3935
  {
3647
3936
  fullWidth: true,
3648
3937
  size: SIZE3,
3649
3938
  value: searchValue,
3650
3939
  onChange: handleSearch,
3651
- placeholder: __51("Search dynamic tags\u2026", "elementor"),
3940
+ placeholder: __52("Search dynamic tags\u2026", "elementor"),
3652
3941
  InputProps: {
3653
- startAdornment: /* @__PURE__ */ React77.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React77.createElement(SearchIcon, { fontSize: SIZE3 }))
3942
+ startAdornment: /* @__PURE__ */ React78.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React78.createElement(SearchIcon, { fontSize: SIZE3 }))
3654
3943
  }
3655
3944
  }
3656
- )), /* @__PURE__ */ React77.createElement(Divider7, null), /* @__PURE__ */ React77.createElement(Box4, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React77.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React77.createElement(Fragment10, { key: index }, /* @__PURE__ */ React77.createElement(
3945
+ )), /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React78.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React78.createElement(Fragment10, { key: index }, /* @__PURE__ */ React78.createElement(
3657
3946
  MenuSubheader2,
3658
3947
  {
3659
3948
  sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
@@ -3661,7 +3950,7 @@ var DynamicSelection = ({ onSelect }) => {
3661
3950
  dynamicGroups?.[category]?.title || category
3662
3951
  ), items3.map(({ value, label: tagLabel }) => {
3663
3952
  const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
3664
- return /* @__PURE__ */ React77.createElement(
3953
+ return /* @__PURE__ */ React78.createElement(
3665
3954
  MenuItem,
3666
3955
  {
3667
3956
  key: value,
@@ -3672,9 +3961,9 @@ var DynamicSelection = ({ onSelect }) => {
3672
3961
  },
3673
3962
  tagLabel
3674
3963
  );
3675
- })))) : /* @__PURE__ */ React77.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
3964
+ })))) : /* @__PURE__ */ React78.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
3676
3965
  };
3677
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React77.createElement(
3966
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React78.createElement(
3678
3967
  Stack19,
3679
3968
  {
3680
3969
  gap: 1,
@@ -3685,11 +3974,11 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React77.createElem
3685
3974
  color: "text.secondary",
3686
3975
  sx: { pb: 3.5 }
3687
3976
  },
3688
- /* @__PURE__ */ React77.createElement(DatabaseIcon, { fontSize: "large" }),
3689
- /* @__PURE__ */ React77.createElement(Typography4, { align: "center", variant: "subtitle2" }, __51("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React77.createElement("br", null), "\u201C", searchValue, "\u201D."),
3690
- /* @__PURE__ */ React77.createElement(Typography4, { align: "center", variant: "caption" }, __51("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React77.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __51("Clear & try again", "elementor")))
3977
+ /* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
3978
+ /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React78.createElement("br", null), "\u201C", searchValue, "\u201D."),
3979
+ /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React78.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __52("Clear & try again", "elementor")))
3691
3980
  );
3692
- var NoDynamicTags = () => /* @__PURE__ */ React77.createElement(Box4, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React77.createElement(Divider7, null), /* @__PURE__ */ React77.createElement(
3981
+ var NoDynamicTags = () => /* @__PURE__ */ React78.createElement(Box5, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React78.createElement(Divider7, null), /* @__PURE__ */ React78.createElement(
3693
3982
  Stack19,
3694
3983
  {
3695
3984
  gap: 1,
@@ -3700,9 +3989,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React77.createElement(Box4, { sx: { ov
3700
3989
  color: "text.secondary",
3701
3990
  sx: { pb: 3.5 }
3702
3991
  },
3703
- /* @__PURE__ */ React77.createElement(DatabaseIcon, { fontSize: "large" }),
3704
- /* @__PURE__ */ React77.createElement(Typography4, { align: "center", variant: "subtitle2" }, __51("Streamline your workflow with dynamic tags", "elementor")),
3705
- /* @__PURE__ */ React77.createElement(Typography4, { align: "center", variant: "caption" }, __51("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
3992
+ /* @__PURE__ */ React78.createElement(DatabaseIcon, { fontSize: "large" }),
3993
+ /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "subtitle2" }, __52("Streamline your workflow with dynamic tags", "elementor")),
3994
+ /* @__PURE__ */ React78.createElement(Typography5, { align: "center", variant: "caption" }, __52("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
3706
3995
  ));
3707
3996
  var useFilteredOptions = (searchValue) => {
3708
3997
  const dynamicTags = usePropDynamicTags();
@@ -3735,25 +4024,25 @@ var DynamicSelectionControl = () => {
3735
4024
  if (!dynamicTag) {
3736
4025
  throw new Error(`Dynamic tag ${tagName} not found`);
3737
4026
  }
3738
- return /* @__PURE__ */ React78.createElement(Box5, null, /* @__PURE__ */ React78.createElement(
4027
+ return /* @__PURE__ */ React79.createElement(Box6, null, /* @__PURE__ */ React79.createElement(
3739
4028
  Tag,
3740
4029
  {
3741
4030
  fullWidth: true,
3742
4031
  showActionsOnHover: true,
3743
4032
  label: dynamicTag.label,
3744
- startIcon: /* @__PURE__ */ React78.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
4033
+ startIcon: /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
3745
4034
  ...bindTrigger2(selectionPopoverState),
3746
- actions: /* @__PURE__ */ React78.createElement(React78.Fragment, null, /* @__PURE__ */ React78.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React78.createElement(
4035
+ actions: /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React79.createElement(
3747
4036
  IconButton4,
3748
4037
  {
3749
4038
  size: SIZE4,
3750
4039
  onClick: removeDynamicTag,
3751
- "aria-label": __52("Remove dynamic value", "elementor")
4040
+ "aria-label": __53("Remove dynamic value", "elementor")
3752
4041
  },
3753
- /* @__PURE__ */ React78.createElement(XIcon2, { fontSize: SIZE4 })
4042
+ /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 })
3754
4043
  ))
3755
4044
  }
3756
- ), /* @__PURE__ */ React78.createElement(
4045
+ ), /* @__PURE__ */ React79.createElement(
3757
4046
  Popover2,
3758
4047
  {
3759
4048
  disablePortal: true,
@@ -3761,7 +4050,7 @@ var DynamicSelectionControl = () => {
3761
4050
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
3762
4051
  ...bindPopover2(selectionPopoverState)
3763
4052
  },
3764
- /* @__PURE__ */ React78.createElement(Stack20, null, /* @__PURE__ */ React78.createElement(Stack20, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React78.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React78.createElement(Typography5, { variant: "subtitle2" }, __52("Dynamic tags", "elementor")), /* @__PURE__ */ React78.createElement(IconButton4, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React78.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React78.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
4053
+ /* @__PURE__ */ React79.createElement(Stack20, null, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, __53("Dynamic tags", "elementor")), /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
3765
4054
  ));
3766
4055
  };
3767
4056
  var DynamicSettingsPopover = ({ dynamicTag }) => {
@@ -3770,7 +4059,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
3770
4059
  if (!hasDynamicSettings) {
3771
4060
  return null;
3772
4061
  }
3773
- return /* @__PURE__ */ React78.createElement(React78.Fragment, null, /* @__PURE__ */ React78.createElement(IconButton4, { size: SIZE4, ...bindTrigger2(popupState), "aria-label": __52("Settings", "elementor") }, /* @__PURE__ */ React78.createElement(SettingsIcon, { fontSize: SIZE4 })), /* @__PURE__ */ React78.createElement(
4062
+ return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(IconButton4, { size: SIZE4, ...bindTrigger2(popupState), "aria-label": __53("Settings", "elementor") }, /* @__PURE__ */ React79.createElement(SettingsIcon, { fontSize: SIZE4 })), /* @__PURE__ */ React79.createElement(
3774
4063
  Popover2,
3775
4064
  {
3776
4065
  disablePortal: true,
@@ -3778,7 +4067,7 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
3778
4067
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
3779
4068
  ...bindPopover2(popupState)
3780
4069
  },
3781
- /* @__PURE__ */ React78.createElement(Paper, { component: Stack20, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React78.createElement(Stack20, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React78.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React78.createElement(Typography5, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React78.createElement(IconButton4, { sx: { ml: "auto" }, size: SIZE4, onClick: popupState.close }, /* @__PURE__ */ React78.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React78.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
4070
+ /* @__PURE__ */ React79.createElement(Paper, { component: Stack20, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React79.createElement(Stack20, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React79.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React79.createElement(Typography6, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React79.createElement(IconButton4, { sx: { ml: "auto" }, size: SIZE4, onClick: popupState.close }, /* @__PURE__ */ React79.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React79.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
3782
4071
  ));
3783
4072
  };
3784
4073
  var DynamicSettings = ({ controls }) => {
@@ -3787,10 +4076,10 @@ var DynamicSettings = ({ controls }) => {
3787
4076
  if (!tabs.length) {
3788
4077
  return null;
3789
4078
  }
3790
- return /* @__PURE__ */ React78.createElement(React78.Fragment, null, /* @__PURE__ */ React78.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React78.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React78.createElement(Divider8, null), tabs.map(({ value }, index) => {
3791
- return /* @__PURE__ */ React78.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React78.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
4079
+ return /* @__PURE__ */ React79.createElement(React79.Fragment, null, /* @__PURE__ */ React79.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React79.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React79.createElement(Divider8, null), tabs.map(({ value }, index) => {
4080
+ return /* @__PURE__ */ React79.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React79.createElement(PopoverContent, { p: 2, gap: 2 }, value.items.map((item) => {
3792
4081
  if (item.type === "control") {
3793
- return /* @__PURE__ */ React78.createElement(Control3, { key: item.value.bind, control: item.value });
4082
+ return /* @__PURE__ */ React79.createElement(Control3, { key: item.value.bind, control: item.value });
3794
4083
  }
3795
4084
  return null;
3796
4085
  })));
@@ -3800,7 +4089,7 @@ var Control3 = ({ control }) => {
3800
4089
  if (!getControl(control.type)) {
3801
4090
  return null;
3802
4091
  }
3803
- return /* @__PURE__ */ React78.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React78.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React78.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React78.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React78.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React78.createElement(Control, { type: control.type, props: control.props }))));
4092
+ return /* @__PURE__ */ React79.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React79.createElement(Grid31, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React79.createElement(Grid31, { item: true, xs: 12 }, /* @__PURE__ */ React79.createElement(Control, { type: control.type, props: control.props }))));
3804
4093
  };
3805
4094
 
3806
4095
  // src/dynamics/dynamic-transformer.ts
@@ -3853,18 +4142,18 @@ function getDynamicValue(name, settings) {
3853
4142
  }
3854
4143
 
3855
4144
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
3856
- import * as React79 from "react";
4145
+ import * as React80 from "react";
3857
4146
  import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
3858
4147
  import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
3859
- import { __ as __53 } from "@wordpress/i18n";
4148
+ import { __ as __54 } from "@wordpress/i18n";
3860
4149
  var usePropDynamicAction = () => {
3861
4150
  const { propType } = useBoundProp6();
3862
4151
  const visible = !!propType && supportsDynamic(propType);
3863
4152
  return {
3864
4153
  visible,
3865
4154
  icon: DatabaseIcon3,
3866
- title: __53("Dynamic tags", "elementor"),
3867
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React79.createElement(DynamicSelection, { onSelect: closePopover })
4155
+ title: __54("Dynamic tags", "elementor"),
4156
+ popoverContent: ({ closePopover }) => /* @__PURE__ */ React80.createElement(DynamicSelection, { onSelect: closePopover })
3868
4157
  };
3869
4158
  };
3870
4159