@elementor/editor-editing-panel 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -31,10 +31,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
33
  replaceControl: () => replaceControl,
34
- useBoundProp: () => import_editor_controls38.useBoundProp
34
+ useBoundProp: () => import_editor_controls43.useBoundProp
35
35
  });
36
36
  module.exports = __toCommonJS(src_exports);
37
- var import_editor_controls38 = require("@elementor/editor-controls");
37
+ var import_editor_controls43 = require("@elementor/editor-controls");
38
38
 
39
39
  // src/control-replacement.tsx
40
40
  var import_editor_controls = require("@elementor/editor-controls");
@@ -54,12 +54,12 @@ var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
54
54
  var import_editor_panels2 = require("@elementor/editor-panels");
55
55
 
56
56
  // src/components/editing-panel.tsx
57
- var React51 = __toESM(require("react"));
58
- var import_editor_controls33 = require("@elementor/editor-controls");
57
+ var React54 = __toESM(require("react"));
58
+ var import_editor_controls38 = require("@elementor/editor-controls");
59
59
  var import_editor_elements6 = require("@elementor/editor-elements");
60
60
  var import_editor_panels = require("@elementor/editor-panels");
61
- var import_ui43 = require("@elementor/ui");
62
- var import_i18n31 = require("@wordpress/i18n");
61
+ var import_ui46 = require("@elementor/ui");
62
+ var import_i18n35 = require("@wordpress/i18n");
63
63
 
64
64
  // src/contexts/element-context.tsx
65
65
  var React = __toESM(require("react"));
@@ -130,10 +130,10 @@ function EditorPanelErrorFallback() {
130
130
  }
131
131
 
132
132
  // src/components/editing-panel-tabs.tsx
133
- var React50 = __toESM(require("react"));
133
+ var React53 = __toESM(require("react"));
134
134
  var import_react13 = require("react");
135
- var import_ui42 = require("@elementor/ui");
136
- var import_i18n30 = require("@wordpress/i18n");
135
+ var import_ui45 = require("@elementor/ui");
136
+ var import_i18n34 = require("@wordpress/i18n");
137
137
 
138
138
  // src/components/settings-tab.tsx
139
139
  var React9 = __toESM(require("react"));
@@ -283,13 +283,13 @@ var Control2 = ({ control }) => {
283
283
  };
284
284
 
285
285
  // src/components/style-tab.tsx
286
- var React49 = __toESM(require("react"));
286
+ var React52 = __toESM(require("react"));
287
287
  var import_react12 = require("react");
288
288
  var import_editor_elements5 = require("@elementor/editor-elements");
289
289
  var import_editor_responsive = require("@elementor/editor-responsive");
290
290
  var import_editor_styles = require("@elementor/editor-styles");
291
- var import_ui41 = require("@elementor/ui");
292
- var import_i18n29 = require("@wordpress/i18n");
291
+ var import_ui44 = require("@elementor/ui");
292
+ var import_i18n33 = require("@wordpress/i18n");
293
293
 
294
294
  // src/contexts/classes-prop-context.tsx
295
295
  var React10 = __toESM(require("react"));
@@ -321,9 +321,10 @@ function useStyle() {
321
321
  return context;
322
322
  }
323
323
 
324
- // src/components/css-class-selector-section.tsx
324
+ // src/components/css-class-selector.tsx
325
325
  var React13 = __toESM(require("react"));
326
326
  var import_editor_elements2 = require("@elementor/editor-elements");
327
+ var import_editor_props = require("@elementor/editor-props");
327
328
  var import_ui9 = require("@elementor/ui");
328
329
  var import_i18n = require("@wordpress/i18n");
329
330
 
@@ -333,9 +334,9 @@ var import_ui8 = require("@elementor/ui");
333
334
 
334
335
  // src/components/multi-combobox/use-combobox-actions.ts
335
336
  var import_ui7 = require("@elementor/ui");
336
- var useComboboxActions = (applied, actions, optionsLabel, onApply) => ({
337
+ var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
337
338
  action: {
338
- is: (opt) => !!opt.action,
339
+ is: (opt) => typeof opt !== "string" && "action" in opt,
339
340
  getLabel: (option) => option.action.getLabel(option.label),
340
341
  groupBy: (option) => option.action.groupLabel,
341
342
  onChange: ({ action, label }) => action?.apply(label),
@@ -355,10 +356,10 @@ var useComboboxActions = (applied, actions, optionsLabel, onApply) => ({
355
356
  }
356
357
  },
357
358
  option: {
358
- is: (opt) => !("action" in opt),
359
+ is: (opt) => typeof opt !== "string" && !("action" in opt),
359
360
  getLabel: (option) => option.label,
360
361
  groupBy: () => optionsLabel ?? "",
361
- onChange: (optionValues) => onApply?.(optionValues),
362
+ onChange: (optionValues) => onSelect?.(optionValues),
362
363
  getFilteredOptions: (optionList, params) => {
363
364
  const appliedValues = applied.map((option) => option.value);
364
365
  const optionsWithoutApplied = optionList.filter((option) => !appliedValues.includes(option.value));
@@ -381,24 +382,19 @@ var createActionOption = (groupLabel, action, inputValue) => ({
381
382
  var MultiCombobox = ({
382
383
  actions = {},
383
384
  selected,
384
- options: options5,
385
+ options: options7,
385
386
  optionsLabel,
386
- onApply,
387
+ onSelect,
387
388
  onCreate,
388
389
  ...props
389
390
  }) => {
390
- const { action: actionProps, option: optionProps } = useComboboxActions(selected, actions, optionsLabel, onApply);
391
- const handleSelectOption = (values) => {
392
- const action = values.find((value) => actionProps.is(value));
393
- if (action) {
394
- return actionProps.onChange(action);
395
- }
396
- return optionProps.onChange(values);
397
- };
398
- const handleCreateOption = (values) => {
399
- const value = values.find((option) => typeof option === "string");
400
- onCreate?.(value);
401
- };
391
+ const { action: actionProps, option: optionProps } = useComboboxActions(
392
+ selected,
393
+ actions,
394
+ // TODO: make the group mechanism more generic, allow passing list of groups.
395
+ optionsLabel,
396
+ onSelect
397
+ );
402
398
  return /* @__PURE__ */ React12.createElement(
403
399
  import_ui8.Autocomplete,
404
400
  {
@@ -410,29 +406,36 @@ var MultiCombobox = ({
410
406
  disableClearable: true,
411
407
  handleHomeEndKeys: true,
412
408
  value: selected,
413
- options: options5,
409
+ options: options7,
414
410
  renderGroup,
415
411
  renderInput: (params) => /* @__PURE__ */ React12.createElement(import_ui8.TextField, { ...params }),
416
412
  getLimitTagsText: (more) => /* @__PURE__ */ React12.createElement(import_ui8.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
417
- onChange: (_, values, reason) => {
418
- if (reason === "selectOption") {
419
- return handleSelectOption(values);
420
- }
413
+ onChange: (_, selectedOrTypedValue, reason) => {
421
414
  if (reason === "createOption") {
422
- return handleCreateOption(values);
415
+ const typedValue = selectedOrTypedValue.find((option) => typeof option === "string");
416
+ return typedValue && onCreate?.(typedValue);
423
417
  }
424
- onApply?.(values);
418
+ const action = selectedOrTypedValue.find((value) => actionProps.is(value));
419
+ if (reason === "selectOption" && action) {
420
+ return actionProps.onChange(action);
421
+ }
422
+ const selectedValues = selectedOrTypedValue.filter((v) => typeof v !== "string");
423
+ const fixedValues = options7.filter((option) => option.fixed);
424
+ optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
425
425
  },
426
426
  getOptionLabel: (option) => {
427
427
  if (optionProps.is(option)) {
428
428
  return optionProps.getLabel(option);
429
429
  }
430
- return actionProps.getLabel(option) ?? "";
430
+ if (actionProps.is(option)) {
431
+ return actionProps.getLabel(option);
432
+ }
433
+ return "";
431
434
  },
432
435
  filterOptions: (optionList, params) => {
433
- const filteredoptions = optionProps.getFilteredOptions(optionList, params);
436
+ const filteredOptions = optionProps.getFilteredOptions(optionList, params);
434
437
  const actionOptions = actionProps.getFilteredActions(optionList, params);
435
- return [...actionOptions, ...filteredoptions];
438
+ return [...actionOptions, ...filteredOptions];
436
439
  },
437
440
  groupBy: (option) => (optionProps.is(option) ? optionProps.groupBy() : actionProps.groupBy(option)) ?? ""
438
441
  }
@@ -454,36 +457,40 @@ var GroupItems = (0, import_ui8.styled)("ul")`
454
457
  padding: 0;
455
458
  `;
456
459
 
457
- // src/components/css-class-selector-section.tsx
460
+ // src/components/css-class-selector.tsx
458
461
  var ID = "elementor-css-class-selector";
459
462
  var TAGS_LIMIT = 8;
460
- function CssClassSelectorSection() {
461
- const options5 = useOptions();
463
+ function CssClassSelector() {
464
+ const options7 = useOptions();
462
465
  const { id: activeId, setId: setActiveId } = useStyle();
463
- const appliedIds = useAppliedClassesIds();
464
- const applied = options5.filter((option) => appliedIds.includes(option.value));
465
- const active = options5.find((option) => option.value === activeId) || null;
466
+ const [appliedIds] = useAppliedClassesIds();
467
+ const handleApply = useHandleApply();
468
+ const handleActivate = ({ value }) => setActiveId(value);
469
+ const active = options7.find((option) => option.value === activeId) || null;
470
+ const applied = appliedIds.map((id) => options7.find((option) => option.value === id)).filter((option) => !!option);
466
471
  return /* @__PURE__ */ React13.createElement(import_ui9.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React13.createElement(import_ui9.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n.__)("CSS Classes", "elementor")), /* @__PURE__ */ React13.createElement(
467
472
  MultiCombobox,
468
473
  {
469
474
  id: ID,
470
475
  size: "tiny",
471
- options: options5,
476
+ options: options7,
472
477
  selected: applied,
478
+ onSelect: handleApply,
473
479
  limitTags: TAGS_LIMIT,
474
480
  optionsLabel: (0, import_i18n.__)("Global CSS Classes", "elementor"),
475
- renderTags: (tagValue, getTagProps) => tagValue.map((option, index) => {
481
+ renderTags: (values, getTagProps) => values.map((value, index) => {
476
482
  const chipProps = getTagProps({ index });
483
+ const isActive = value.value === active?.value;
477
484
  return /* @__PURE__ */ React13.createElement(
478
485
  import_ui9.Chip,
479
486
  {
480
487
  ...chipProps,
481
488
  key: chipProps.key,
482
489
  size: "small",
483
- label: option.label,
484
- variant: option.value === active?.value ? "filled" : "standard",
485
- color: option.color ?? "default",
486
- onClick: () => setActiveId(option.value),
490
+ label: value.label,
491
+ variant: isActive ? "filled" : "standard",
492
+ color: isActive && value.color ? value.color : "default",
493
+ onClick: () => handleActivate(value),
487
494
  onDelete: null
488
495
  }
489
496
  );
@@ -491,20 +498,51 @@ function CssClassSelectorSection() {
491
498
  }
492
499
  ));
493
500
  }
494
- function useAppliedClassesIds() {
495
- const { element } = useElement();
496
- const currentClassesProp = useClassesProp();
497
- return (0, import_editor_elements2.useElementSetting)(element.id, currentClassesProp)?.value || [];
498
- }
499
501
  function useOptions() {
500
502
  const { element } = useElement();
501
503
  const styleDefs = (0, import_editor_elements2.useElementStyles)(element.id);
502
504
  return Object.values(styleDefs).map((styleDef) => ({
503
505
  label: styleDef.label,
504
506
  value: styleDef.id,
507
+ fixed: true,
505
508
  color: "primary"
506
509
  }));
507
510
  }
511
+ function useAppliedClassesIds() {
512
+ const { element } = useElement();
513
+ const currentClassesProp = useClassesProp();
514
+ const value = (0, import_editor_elements2.useElementSetting)(element.id, currentClassesProp)?.value || [];
515
+ const setValue = (ids) => {
516
+ (0, import_editor_elements2.updateSettings)({
517
+ id: element.id,
518
+ props: {
519
+ [currentClassesProp]: import_editor_props.classesPropTypeUtil.create(ids)
520
+ }
521
+ });
522
+ };
523
+ return [value, setValue];
524
+ }
525
+ function useHandleApply() {
526
+ const { id: activeId, setId: setActiveId } = useStyle();
527
+ const [appliedIds, setAppliedIds] = useAppliedClassesIds();
528
+ return (selectedOptions) => {
529
+ const selectedValues = selectedOptions.map(({ value }) => value);
530
+ const isSameClassesAlreadyApplied = selectedValues.length === appliedIds.length && selectedValues.every((value) => appliedIds.includes(value));
531
+ if (isSameClassesAlreadyApplied) {
532
+ return;
533
+ }
534
+ setAppliedIds(selectedValues);
535
+ const addedValue = selectedValues.find((id) => !appliedIds.includes(id));
536
+ if (addedValue) {
537
+ setActiveId(addedValue);
538
+ return;
539
+ }
540
+ const removedValue = appliedIds.find((id) => !selectedValues.includes(id));
541
+ if (removedValue && removedValue === activeId) {
542
+ setActiveId(selectedValues[0] ?? null);
543
+ }
544
+ };
545
+ }
508
546
 
509
547
  // src/components/style-sections/background-section/background-section.tsx
510
548
  var React16 = __toESM(require("react"));
@@ -756,139 +794,345 @@ var EffectsSection = () => {
756
794
  };
757
795
 
758
796
  // src/components/style-sections/layout-section/layout-section.tsx
759
- var React27 = __toESM(require("react"));
760
- var import_ui20 = require("@elementor/ui");
797
+ var React31 = __toESM(require("react"));
798
+ var import_editor_controls20 = require("@elementor/editor-controls");
799
+ var import_ui24 = require("@elementor/ui");
800
+ var import_i18n14 = require("@wordpress/i18n");
761
801
 
762
- // src/components/style-sections/layout-section/display-field.tsx
802
+ // src/components/style-sections/layout-section/align-items-field.tsx
763
803
  var React25 = __toESM(require("react"));
764
804
  var import_editor_controls14 = require("@elementor/editor-controls");
765
- var import_ui17 = require("@elementor/ui");
805
+ var import_icons6 = require("@elementor/icons");
806
+ var import_ui18 = require("@elementor/ui");
766
807
  var import_i18n8 = require("@wordpress/i18n");
767
- var DisplayField = () => {
768
- const options5 = [
808
+
809
+ // src/hooks/use-direction.ts
810
+ var import_ui17 = require("@elementor/ui");
811
+ function useDirection() {
812
+ const theme = (0, import_ui17.useTheme)(), extendedWindow = window;
813
+ const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
814
+ return { isSiteRtl, isUiRtl };
815
+ }
816
+
817
+ // src/components/style-sections/layout-section/align-items-field.tsx
818
+ var AlignItemsField = () => {
819
+ const options7 = useOptions2(), { isSiteRtl } = useDirection();
820
+ return /* @__PURE__ */ React25.createElement(import_ui18.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React25.createElement(import_ui18.ThemeProvider, null, /* @__PURE__ */ React25.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n8.__)("Align Items", "elementor"))), /* @__PURE__ */ React25.createElement(import_ui18.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ToggleControl, { options: options7 }))))));
821
+ };
822
+ var useOptions2 = () => {
823
+ const StartIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignLeftIcon), EndIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignRightIcon);
824
+ return [
769
825
  {
770
- value: "block",
771
- renderContent: () => (0, import_i18n8.__)("Block", "elementor"),
772
- label: (0, import_i18n8.__)("Block", "elementor")
826
+ value: "start",
827
+ label: (0, import_i18n8.__)("Start", "elementor"),
828
+ renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: StartIcon, size }),
829
+ showTooltip: true
773
830
  },
774
831
  {
775
- value: "flex",
776
- renderContent: () => (0, import_i18n8.__)("Flex", "elementor"),
777
- label: (0, import_i18n8.__)("Flex", "elementor")
832
+ value: "center",
833
+ label: (0, import_i18n8.__)("Center", "elementor"),
834
+ renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size }),
835
+ showTooltip: true
836
+ },
837
+ {
838
+ value: "end",
839
+ label: (0, import_i18n8.__)("End", "elementor"),
840
+ renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: EndIcon, size }),
841
+ showTooltip: true
842
+ },
843
+ {
844
+ value: "justify",
845
+ label: (0, import_i18n8.__)("Justify", "elementor"),
846
+ renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size }),
847
+ showTooltip: true
778
848
  }
779
849
  ];
780
- return /* @__PURE__ */ React25.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React25.createElement(import_ui17.Stack, { gap: 1 }, /* @__PURE__ */ React25.createElement(import_editor_controls14.ControlLabel, null, (0, import_i18n8.__)("Display", "elementor")), /* @__PURE__ */ React25.createElement(import_editor_controls14.ToggleControl, { options: options5, fullWidth: true })));
850
+ };
851
+ var RotatedIcon = ({ icon: Icon, size }) => {
852
+ const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui18.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
853
+ const rotationAngelMap = {
854
+ row: 90,
855
+ column: 0,
856
+ "row-reverse": -90,
857
+ "column-reverse": -180
858
+ };
859
+ return /* @__PURE__ */ React25.createElement(
860
+ Icon,
861
+ {
862
+ fontSize: size,
863
+ sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
864
+ }
865
+ );
781
866
  };
782
867
 
783
- // src/components/style-sections/layout-section/justify-content-field.tsx
868
+ // src/components/style-sections/layout-section/display-field.tsx
784
869
  var React26 = __toESM(require("react"));
785
870
  var import_editor_controls15 = require("@elementor/editor-controls");
786
- var import_icons6 = require("@elementor/icons");
787
871
  var import_ui19 = require("@elementor/ui");
788
872
  var import_i18n9 = require("@wordpress/i18n");
873
+ var DisplayField = () => {
874
+ const options7 = [
875
+ {
876
+ value: "block",
877
+ renderContent: () => (0, import_i18n9.__)("Block", "elementor"),
878
+ label: (0, import_i18n9.__)("Block", "elementor")
879
+ },
880
+ {
881
+ value: "flex",
882
+ renderContent: () => (0, import_i18n9.__)("Flex", "elementor"),
883
+ label: (0, import_i18n9.__)("Flex", "elementor")
884
+ }
885
+ ];
886
+ return /* @__PURE__ */ React26.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React26.createElement(import_ui19.Stack, { gap: 1 }, /* @__PURE__ */ React26.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n9.__)("Display", "elementor")), /* @__PURE__ */ React26.createElement(import_editor_controls15.ToggleControl, { options: options7, fullWidth: true })));
887
+ };
789
888
 
790
- // src/hooks/use-direction.ts
791
- var import_ui18 = require("@elementor/ui");
792
- function useDirection() {
793
- const theme = (0, import_ui18.useTheme)(), extendedWindow = window;
794
- const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
795
- return { isSiteRtl, isUiRtl };
796
- }
889
+ // src/components/style-sections/layout-section/flex-direction-field.tsx
890
+ var React27 = __toESM(require("react"));
891
+ var import_editor_controls16 = require("@elementor/editor-controls");
892
+ var import_icons7 = require("@elementor/icons");
893
+ var import_ui20 = require("@elementor/ui");
894
+ var import_i18n10 = require("@wordpress/i18n");
895
+ var options = [
896
+ {
897
+ value: "row",
898
+ label: (0, import_i18n10.__)("Row", "elementor"),
899
+ renderContent: ({ size }) => {
900
+ const StartIcon = (0, import_ui20.withDirection)(import_icons7.ArrowRightIcon);
901
+ return /* @__PURE__ */ React27.createElement(StartIcon, { fontSize: size });
902
+ },
903
+ showTooltip: true
904
+ },
905
+ {
906
+ value: "column",
907
+ label: (0, import_i18n10.__)("Column", "elementor"),
908
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowDownSmallIcon, { fontSize: size }),
909
+ showTooltip: true
910
+ },
911
+ {
912
+ value: "row-reverse",
913
+ label: (0, import_i18n10.__)("Row reverse", "elementor"),
914
+ renderContent: ({ size }) => {
915
+ const EndIcon = (0, import_ui20.withDirection)(import_icons7.ArrowLeftIcon);
916
+ return /* @__PURE__ */ React27.createElement(EndIcon, { fontSize: size });
917
+ },
918
+ showTooltip: true
919
+ },
920
+ {
921
+ value: "column-reverse",
922
+ label: (0, import_i18n10.__)("Column reverse", "elementor"),
923
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowUpSmallIcon, { fontSize: size }),
924
+ showTooltip: true
925
+ }
926
+ ];
927
+ var FlexDirectionField = () => {
928
+ const { isSiteRtl } = useDirection();
929
+ return /* @__PURE__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React27.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n10.__)("Direction", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls16.ToggleControl, { options }))))));
930
+ };
797
931
 
798
- // src/components/style-sections/layout-section/utils/rotate-flex-icon.ts
799
- function rotateFlexIcon(direction = "row", initValue) {
800
- const rotationIndexMap = {
801
- row: 0,
802
- column: 1,
803
- "row-reverse": 2,
804
- "column-reverse": 3
932
+ // src/components/style-sections/layout-section/flex-order-field.tsx
933
+ var React28 = __toESM(require("react"));
934
+ var import_react7 = require("react");
935
+ var import_editor_controls17 = require("@elementor/editor-controls");
936
+ var import_icons8 = require("@elementor/icons");
937
+ var import_ui21 = require("@elementor/ui");
938
+ var import_i18n11 = require("@wordpress/i18n");
939
+ var FIRST_DEFAULT_VALUE = -99999;
940
+ var LAST_DEFAULT_VALUE = 99999;
941
+ var FIRST = "first";
942
+ var LAST = "last";
943
+ var CUSTOM = "custom";
944
+ var items = [
945
+ {
946
+ value: FIRST,
947
+ label: (0, import_i18n11.__)("First", "elementor"),
948
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
949
+ showTooltip: true
950
+ },
951
+ {
952
+ value: LAST,
953
+ label: (0, import_i18n11.__)("Last", "elementor"),
954
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
955
+ showTooltip: true
956
+ },
957
+ {
958
+ value: CUSTOM,
959
+ label: (0, import_i18n11.__)("Custom", "elementor"),
960
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.PencilIcon, { fontSize: size }),
961
+ showTooltip: true
962
+ }
963
+ ];
964
+ var FlexOrderField = () => {
965
+ const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
966
+ const [groupControlValue, setGroupControlValue] = (0, import_react7.useState)(getGroupControlValue(order));
967
+ const handleToggleButtonChange = (group) => {
968
+ setGroupControlValue(group);
969
+ const orderValueMap = {
970
+ [FIRST]: FIRST_DEFAULT_VALUE,
971
+ [LAST]: LAST_DEFAULT_VALUE,
972
+ [CUSTOM]: null
973
+ };
974
+ setOrder(group ? orderValueMap[group] : null);
805
975
  };
806
- const rotationIndex = initValue + (rotationIndexMap[direction || "row"] ?? 0);
807
- return `rotate(calc(90deg * ${rotationIndex}))`;
808
- }
976
+ return /* @__PURE__ */ React28.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React28.createElement(import_ui21.Stack, { gap: 2 }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
977
+ import_editor_controls17.ControlToggleButtonGroup,
978
+ {
979
+ items,
980
+ value: groupControlValue,
981
+ onChange: handleToggleButtonChange,
982
+ exclusive: true
983
+ }
984
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React28.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React28.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Custom order", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React28.createElement(
985
+ import_editor_controls17.NumberControl,
986
+ {
987
+ min: FIRST_DEFAULT_VALUE + 1,
988
+ max: LAST_DEFAULT_VALUE - 1,
989
+ shouldForceInt: true
990
+ }
991
+ )))))));
992
+ };
993
+ var getGroupControlValue = (order) => {
994
+ if (LAST_DEFAULT_VALUE === order) {
995
+ return LAST;
996
+ }
997
+ if (FIRST_DEFAULT_VALUE === order) {
998
+ return FIRST;
999
+ }
1000
+ return 0 === order || order ? CUSTOM : null;
1001
+ };
809
1002
 
810
1003
  // src/components/style-sections/layout-section/justify-content-field.tsx
1004
+ var React29 = __toESM(require("react"));
1005
+ var import_editor_controls18 = require("@elementor/editor-controls");
1006
+ var import_icons9 = require("@elementor/icons");
1007
+ var import_ui22 = require("@elementor/ui");
1008
+ var import_i18n12 = require("@wordpress/i18n");
811
1009
  var JustifyContentField = () => {
812
- const [direction] = useStylesField("flex-direction");
813
- const { isUiRtl, isSiteRtl } = useDirection(), sx = { transform: rotateFlexIcon(direction, -1) }, shouldReverseOrder = isSiteRtl !== isUiRtl;
814
- const StartIcon = isSiteRtl ? import_icons6.JustifyBottomIcon : import_icons6.JustifyTopIcon, EndIcon = isSiteRtl ? import_icons6.JustifyTopIcon : import_icons6.JustifyBottomIcon;
815
- const options5 = [
1010
+ const options7 = useOptions3(), { isSiteRtl } = useDirection();
1011
+ return /* @__PURE__ */ React29.createElement(import_ui22.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(import_ui22.ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React29.createElement(import_ui22.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Justify Content", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls18.ToggleControl, { options: options7, fullWidth: true })))));
1012
+ };
1013
+ var useOptions3 = () => {
1014
+ const StartIcon = (0, import_ui22.withDirection)(import_icons9.JustifyTopIcon), EndIcon = (0, import_ui22.withDirection)(import_icons9.JustifyBottomIcon);
1015
+ return [
816
1016
  {
817
1017
  value: "start",
818
- label: (0, import_i18n9.__)("Start", "elementor"),
819
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(StartIcon, { fontSize: size, sx }),
1018
+ label: (0, import_i18n12.__)("Start", "elementor"),
1019
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: StartIcon, size }),
820
1020
  showTooltip: true
821
1021
  },
822
1022
  {
823
1023
  value: "center",
824
- label: (0, import_i18n9.__)("Center", "elementor"),
825
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(import_icons6.JustifyCenterIcon, { fontSize: size, sx }),
1024
+ label: (0, import_i18n12.__)("Center", "elementor"),
1025
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyCenterIcon, size }),
826
1026
  showTooltip: true
827
1027
  },
828
1028
  {
829
1029
  value: "end",
830
- label: (0, import_i18n9.__)("End", "elementor"),
831
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(EndIcon, { fontSize: size, sx }),
1030
+ label: (0, import_i18n12.__)("End", "elementor"),
1031
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: EndIcon, size }),
832
1032
  showTooltip: true
833
1033
  },
834
1034
  {
835
1035
  value: "space-between",
836
- label: (0, import_i18n9.__)("Space Between", "elementor"),
837
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(import_icons6.JustifySpaceBetweenVerticalIcon, { fontSize: size, sx }),
1036
+ label: (0, import_i18n12.__)("Space between", "elementor"),
1037
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size }),
838
1038
  showTooltip: true
839
1039
  },
840
1040
  {
841
1041
  value: "space-around",
842
- label: (0, import_i18n9.__)("Space Around", "elementor"),
843
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(import_icons6.JustifySpaceAroundVerticalIcon, { fontSize: size, sx }),
1042
+ label: (0, import_i18n12.__)("Space around", "elementor"),
1043
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size }),
844
1044
  showTooltip: true
845
1045
  },
846
1046
  {
847
1047
  value: "space-evenly",
848
- label: (0, import_i18n9.__)("Space Evenly", "elementor"),
849
- renderContent: ({ size }) => /* @__PURE__ */ React26.createElement(import_icons6.JustifyDistributeVerticalIcon, { fontSize: size, sx }),
1048
+ label: (0, import_i18n12.__)("Space evenly", "elementor"),
1049
+ renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyDistributeVerticalIcon, size }),
850
1050
  showTooltip: true
851
1051
  }
852
1052
  ];
853
- if (shouldReverseOrder) {
854
- options5.reverse();
1053
+ };
1054
+ var RotatedIcon2 = ({ icon: Icon, size }) => {
1055
+ const [direction] = useStylesField("flex-direction"), isRtl = "rtl" === (0, import_ui22.useTheme)().direction, rotationMultiplier = isRtl ? -1 : 1;
1056
+ const rotationAngelMap = {
1057
+ row: -90,
1058
+ column: 0,
1059
+ "row-reverse": 90,
1060
+ "column-reverse": 180
1061
+ };
1062
+ return /* @__PURE__ */ React29.createElement(
1063
+ Icon,
1064
+ {
1065
+ fontSize: size,
1066
+ sx: { transition: ".3s", rotate: `${rotationAngelMap[direction || "row"] * rotationMultiplier}deg` }
1067
+ }
1068
+ );
1069
+ };
1070
+
1071
+ // src/components/style-sections/layout-section/wrap-field.tsx
1072
+ var React30 = __toESM(require("react"));
1073
+ var import_editor_controls19 = require("@elementor/editor-controls");
1074
+ var import_icons10 = require("@elementor/icons");
1075
+ var import_ui23 = require("@elementor/ui");
1076
+ var import_i18n13 = require("@wordpress/i18n");
1077
+ var options2 = [
1078
+ {
1079
+ value: "nowrap",
1080
+ label: (0, import_i18n13.__)("No wrap", "elementor"),
1081
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowRightIcon, { fontSize: size }),
1082
+ showTooltip: true
1083
+ },
1084
+ {
1085
+ value: "wrap",
1086
+ label: (0, import_i18n13.__)("Wrap", "elementor"),
1087
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowBackIcon, { fontSize: size }),
1088
+ showTooltip: true
1089
+ },
1090
+ {
1091
+ value: "wrap-reverse",
1092
+ label: (0, import_i18n13.__)("Wrap reverse", "elementor"),
1093
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowForwardIcon, { fontSize: size }),
1094
+ showTooltip: true
855
1095
  }
856
- return /* @__PURE__ */ React26.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React26.createElement(import_ui19.Stack, { gap: 1 }, /* @__PURE__ */ React26.createElement(import_editor_controls15.ControlLabel, null, (0, import_i18n9.__)("Justify Content", "elementor")), /* @__PURE__ */ React26.createElement(import_editor_controls15.ToggleControl, { options: options5, fullWidth: true })));
1096
+ ];
1097
+ var WrapField = () => {
1098
+ const { isSiteRtl } = useDirection();
1099
+ return /* @__PURE__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Wrap", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls19.ToggleControl, { options: options2 }))))));
857
1100
  };
858
1101
 
859
1102
  // src/components/style-sections/layout-section/layout-section.tsx
860
1103
  var LayoutSection = () => {
861
1104
  const [display] = useStylesField("display");
862
- return /* @__PURE__ */ React27.createElement(import_ui20.Stack, { gap: 2 }, /* @__PURE__ */ React27.createElement(DisplayField, null), "flex" === display && /* @__PURE__ */ React27.createElement(JustifyContentField, null));
1105
+ return /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(DisplayField, null), "flex" === display && /* @__PURE__ */ React31.createElement(FlexFields, null));
863
1106
  };
1107
+ var FlexFields = () => /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(FlexDirectionField, null), /* @__PURE__ */ React31.createElement(JustifyContentField, null), /* @__PURE__ */ React31.createElement(AlignItemsField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(WrapField, null), /* @__PURE__ */ React31.createElement(import_ui24.Divider, null), /* @__PURE__ */ React31.createElement(import_editor_controls20.ControlLabel, null, (0, import_i18n14.__)("Flex child", "elementor")), /* @__PURE__ */ React31.createElement(FlexOrderField, null));
864
1108
 
865
1109
  // src/components/style-sections/position-section/position-section.tsx
866
- var React31 = __toESM(require("react"));
867
- var import_react9 = require("react");
868
- var import_ui24 = require("@elementor/ui");
1110
+ var React35 = __toESM(require("react"));
1111
+ var import_react10 = require("react");
1112
+ var import_ui28 = require("@elementor/ui");
869
1113
 
870
1114
  // src/hooks/use-style-prop-history.ts
871
- var import_react8 = require("react");
1115
+ var import_react9 = require("react");
872
1116
  var import_editor_elements4 = require("@elementor/editor-elements");
873
1117
 
874
1118
  // src/hooks/use-prop-value-history.ts
875
- var import_react7 = require("react");
1119
+ var import_react8 = require("react");
876
1120
  var import_utils2 = require("@elementor/utils");
877
1121
  var PROPS_VALUES_HISTORY_PREFIX = "elementor/editor-editing-panel/prop-value-history";
878
1122
  var usePropValueHistory = () => {
879
1123
  const { element } = useElement();
880
1124
  const elementKey = `${PROPS_VALUES_HISTORY_PREFIX}/${element.id}`;
881
- const getElementPropsHistory = (0, import_react7.useCallback)(() => {
1125
+ const getElementPropsHistory = (0, import_react8.useCallback)(() => {
882
1126
  return (0, import_utils2.getSessionStorageItem)(elementKey);
883
1127
  }, [elementKey]);
884
- const getPropValue = (0, import_react7.useCallback)(
1128
+ const getPropValue = (0, import_react8.useCallback)(
885
1129
  (propKey) => {
886
1130
  const elementPropValues = getElementPropsHistory();
887
1131
  return elementPropValues?.[propKey] ?? null;
888
1132
  },
889
1133
  [getElementPropsHistory]
890
1134
  );
891
- const setPropValue = (0, import_react7.useCallback)(
1135
+ const setPropValue = (0, import_react8.useCallback)(
892
1136
  (propKey, propValue) => {
893
1137
  const elementPropValues = getElementPropsHistory();
894
1138
  const updatedElementPropValues = { ...elementPropValues, [propKey]: propValue };
@@ -896,7 +1140,7 @@ var usePropValueHistory = () => {
896
1140
  },
897
1141
  [getElementPropsHistory, elementKey]
898
1142
  );
899
- const removeProp = (0, import_react7.useCallback)(
1143
+ const removeProp = (0, import_react8.useCallback)(
900
1144
  (propKey) => {
901
1145
  const elementPropValues = getElementPropsHistory();
902
1146
  const updatedElementPropValues = Object.fromEntries(
@@ -906,7 +1150,7 @@ var usePropValueHistory = () => {
906
1150
  },
907
1151
  [getElementPropsHistory, elementKey]
908
1152
  );
909
- return (0, import_react7.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
1153
+ return (0, import_react8.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
910
1154
  };
911
1155
 
912
1156
  // src/hooks/use-style-prop-history.ts
@@ -917,7 +1161,7 @@ var useStylePropsHistory = (props) => {
917
1161
  const styleDef = (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID];
918
1162
  const styleVariant = styleDef ? (0, import_editor_elements4.getVariantByMeta)(styleDef, meta) : null;
919
1163
  const styleVariantPath = `${styleDefID}-${styleVariant?.meta.breakpoint}-${styleVariant?.meta.state}`;
920
- const saveStylePropsHistory = (0, import_react8.useCallback)(() => {
1164
+ const saveStylePropsHistory = (0, import_react9.useCallback)(() => {
921
1165
  props.forEach((propKey) => {
922
1166
  const propValue = styleVariant?.props[propKey];
923
1167
  if (propValue) {
@@ -926,7 +1170,7 @@ var useStylePropsHistory = (props) => {
926
1170
  }
927
1171
  });
928
1172
  }, [props, setPropValue, styleVariant?.props, styleVariantPath]);
929
- const updateStylePropsFromHistory = (0, import_react8.useCallback)(() => {
1173
+ const updateStylePropsFromHistory = (0, import_react9.useCallback)(() => {
930
1174
  const propValuesFromHistory = props.reduce((allProps, currentPropKey) => {
931
1175
  const propPath = `${styleVariantPath}-${currentPropKey}`;
932
1176
  const propHistory = getPropValue(propPath);
@@ -946,7 +1190,7 @@ var useStylePropsHistory = (props) => {
946
1190
  });
947
1191
  }
948
1192
  }, [element.id, getPropValue, meta, props, removeProp, styleDefID, styleVariantPath]);
949
- const clearCurrentStyleProps = (0, import_react8.useCallback)(() => {
1193
+ const clearCurrentStyleProps = (0, import_react9.useCallback)(() => {
950
1194
  const resetValues = props.reduce(
951
1195
  (allProps, currentPropKey) => ({
952
1196
  ...allProps,
@@ -962,53 +1206,53 @@ var useStylePropsHistory = (props) => {
962
1206
  bind: "classes"
963
1207
  });
964
1208
  }, [element.id, meta, props, styleDefID]);
965
- return (0, import_react8.useMemo)(
1209
+ return (0, import_react9.useMemo)(
966
1210
  () => ({ saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps }),
967
1211
  [saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps]
968
1212
  );
969
1213
  };
970
1214
 
971
1215
  // src/components/style-sections/position-section/dimensions-field.tsx
972
- var React28 = __toESM(require("react"));
973
- var import_editor_controls16 = require("@elementor/editor-controls");
974
- var import_icons7 = require("@elementor/icons");
975
- var import_ui21 = require("@elementor/ui");
976
- var import_i18n10 = require("@wordpress/i18n");
1216
+ var React32 = __toESM(require("react"));
1217
+ var import_editor_controls21 = require("@elementor/editor-controls");
1218
+ var import_icons11 = require("@elementor/icons");
1219
+ var import_ui25 = require("@elementor/ui");
1220
+ var import_i18n15 = require("@wordpress/i18n");
977
1221
  var sideIcons = {
978
- left: /* @__PURE__ */ React28.createElement(import_icons7.SideLeftIcon, { fontSize: "tiny" }),
979
- right: /* @__PURE__ */ React28.createElement(import_icons7.SideRightIcon, { fontSize: "tiny" }),
980
- top: /* @__PURE__ */ React28.createElement(import_icons7.SideTopIcon, { fontSize: "tiny" }),
981
- bottom: /* @__PURE__ */ React28.createElement(import_icons7.SideBottomIcon, { fontSize: "tiny" })
1222
+ left: /* @__PURE__ */ React32.createElement(import_icons11.SideLeftIcon, { fontSize: "tiny" }),
1223
+ right: /* @__PURE__ */ React32.createElement(import_icons11.SideRightIcon, { fontSize: "tiny" }),
1224
+ top: /* @__PURE__ */ React32.createElement(import_icons11.SideTopIcon, { fontSize: "tiny" }),
1225
+ bottom: /* @__PURE__ */ React32.createElement(import_icons11.SideBottomIcon, { fontSize: "tiny" })
982
1226
  };
983
1227
  var DimensionsField = () => {
984
- return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(import_ui21.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(DimensionField, { side: "top", label: (0, import_i18n10.__)("Top", "elementor") }), /* @__PURE__ */ React28.createElement(DimensionField, { side: "right", label: (0, import_i18n10.__)("Right", "elementor") })), /* @__PURE__ */ React28.createElement(import_ui21.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React28.createElement(DimensionField, { side: "bottom", label: (0, import_i18n10.__)("Bottom", "elementor") }), /* @__PURE__ */ React28.createElement(DimensionField, { side: "left", label: (0, import_i18n10.__)("Left", "elementor") })));
1228
+ return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "top", label: (0, import_i18n15.__)("Top", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "right", label: (0, import_i18n15.__)("Right", "elementor") })), /* @__PURE__ */ React32.createElement(import_ui25.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(DimensionField, { side: "bottom", label: (0, import_i18n15.__)("Bottom", "elementor") }), /* @__PURE__ */ React32.createElement(DimensionField, { side: "left", label: (0, import_i18n15.__)("Left", "elementor") })));
985
1229
  };
986
1230
  var DimensionField = ({ side, label }) => {
987
- return /* @__PURE__ */ React28.createElement(import_ui21.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React28.createElement(import_editor_controls16.ControlLabel, null, label)), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React28.createElement(StylesField, { bind: side }, /* @__PURE__ */ React28.createElement(import_editor_controls16.SizeControl, { startIcon: sideIcons[side] }))));
1231
+ return /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(import_editor_controls21.ControlLabel, null, label)), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React32.createElement(StylesField, { bind: side }, /* @__PURE__ */ React32.createElement(import_editor_controls21.SizeControl, { startIcon: sideIcons[side] }))));
988
1232
  };
989
1233
 
990
1234
  // src/components/style-sections/position-section/position-field.tsx
991
- var React29 = __toESM(require("react"));
992
- var import_editor_controls17 = require("@elementor/editor-controls");
993
- var import_ui22 = require("@elementor/ui");
994
- var import_i18n11 = require("@wordpress/i18n");
1235
+ var React33 = __toESM(require("react"));
1236
+ var import_editor_controls22 = require("@elementor/editor-controls");
1237
+ var import_ui26 = require("@elementor/ui");
1238
+ var import_i18n16 = require("@wordpress/i18n");
995
1239
  var positionOptions = [
996
- { label: (0, import_i18n11.__)("Static", "elementor"), value: "static" },
997
- { label: (0, import_i18n11.__)("Relative", "elementor"), value: "relative" },
998
- { label: (0, import_i18n11.__)("Absolute", "elementor"), value: "absolute" },
999
- { label: (0, import_i18n11.__)("Fixed", "elementor"), value: "fixed" }
1240
+ { label: (0, import_i18n16.__)("Static", "elementor"), value: "static" },
1241
+ { label: (0, import_i18n16.__)("Relative", "elementor"), value: "relative" },
1242
+ { label: (0, import_i18n16.__)("Absolute", "elementor"), value: "absolute" },
1243
+ { label: (0, import_i18n16.__)("Fixed", "elementor"), value: "fixed" }
1000
1244
  ];
1001
1245
  var PositionField = () => {
1002
- return /* @__PURE__ */ React29.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React29.createElement(import_ui22.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React29.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(import_editor_controls17.ControlLabel, null, (0, import_i18n11.__)("Position", "elementor"))), /* @__PURE__ */ React29.createElement(import_ui22.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(import_editor_controls17.SelectControl, { options: positionOptions }))));
1246
+ return /* @__PURE__ */ React33.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n16.__)("Position", "elementor"))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(import_editor_controls22.SelectControl, { options: positionOptions }))));
1003
1247
  };
1004
1248
 
1005
1249
  // src/components/style-sections/position-section/z-index-field.tsx
1006
- var React30 = __toESM(require("react"));
1007
- var import_editor_controls18 = require("@elementor/editor-controls");
1008
- var import_ui23 = require("@elementor/ui");
1009
- var import_i18n12 = require("@wordpress/i18n");
1250
+ var React34 = __toESM(require("react"));
1251
+ var import_editor_controls23 = require("@elementor/editor-controls");
1252
+ var import_ui27 = require("@elementor/ui");
1253
+ var import_i18n17 = require("@wordpress/i18n");
1010
1254
  var ZIndexField = () => {
1011
- return /* @__PURE__ */ React30.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n12.__)("Z-Index", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(import_editor_controls18.NumberControl, null))));
1255
+ return /* @__PURE__ */ React34.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n17.__)("Z-Index", "elementor"))), /* @__PURE__ */ React34.createElement(import_ui27.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(import_editor_controls23.NumberControl, null))));
1012
1256
  };
1013
1257
 
1014
1258
  // src/components/style-sections/position-section/position-section.tsx
@@ -1017,11 +1261,11 @@ var PositionSection = () => {
1017
1261
  const [positionValue] = useStylesField("position");
1018
1262
  usePositionChangeHandler();
1019
1263
  const isNotStatic = positionValue && positionValue !== "static";
1020
- return /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 1.5 }, /* @__PURE__ */ React31.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(DimensionsField, null), /* @__PURE__ */ React31.createElement(ZIndexField, null)) : null);
1264
+ return /* @__PURE__ */ React35.createElement(import_ui28.Stack, { gap: 1.5 }, /* @__PURE__ */ React35.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(DimensionsField, null), /* @__PURE__ */ React35.createElement(ZIndexField, null)) : null);
1021
1265
  };
1022
1266
  var usePositionChangeHandler = () => {
1023
1267
  const dimensionsHistory = useStylePropsHistory(dimensionsPropKeys);
1024
- const onPositionChange = (0, import_react9.useCallback)(
1268
+ const onPositionChange = (0, import_react10.useCallback)(
1025
1269
  (newPositionValue, previousPosition) => {
1026
1270
  if (!dimensionsHistory) {
1027
1271
  return;
@@ -1042,91 +1286,91 @@ var usePositionChangeHandler = () => {
1042
1286
  };
1043
1287
 
1044
1288
  // src/components/style-sections/size-section/size-section.tsx
1045
- var React33 = __toESM(require("react"));
1046
- var import_editor_controls20 = require("@elementor/editor-controls");
1047
- var import_ui26 = require("@elementor/ui");
1048
- var import_i18n14 = require("@wordpress/i18n");
1289
+ var React37 = __toESM(require("react"));
1290
+ var import_editor_controls25 = require("@elementor/editor-controls");
1291
+ var import_ui30 = require("@elementor/ui");
1292
+ var import_i18n19 = require("@wordpress/i18n");
1049
1293
 
1050
1294
  // src/components/style-sections/size-section/overflow-field.tsx
1051
- var React32 = __toESM(require("react"));
1052
- var import_editor_controls19 = require("@elementor/editor-controls");
1053
- var import_icons8 = require("@elementor/icons");
1054
- var import_ui25 = require("@elementor/ui");
1055
- var import_i18n13 = require("@wordpress/i18n");
1056
- var options = [
1295
+ var React36 = __toESM(require("react"));
1296
+ var import_editor_controls24 = require("@elementor/editor-controls");
1297
+ var import_icons12 = require("@elementor/icons");
1298
+ var import_ui29 = require("@elementor/ui");
1299
+ var import_i18n18 = require("@wordpress/i18n");
1300
+ var options3 = [
1057
1301
  {
1058
1302
  value: "visible",
1059
- label: (0, import_i18n13.__)("Visible", "elementor"),
1060
- renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons8.EyeIcon, { fontSize: size }),
1303
+ label: (0, import_i18n18.__)("Visible", "elementor"),
1304
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeIcon, { fontSize: size }),
1061
1305
  showTooltip: true
1062
1306
  },
1063
1307
  {
1064
1308
  value: "hidden",
1065
- label: (0, import_i18n13.__)("Hidden", "elementor"),
1066
- renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons8.EyeOffIcon, { fontSize: size }),
1309
+ label: (0, import_i18n18.__)("Hidden", "elementor"),
1310
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeOffIcon, { fontSize: size }),
1067
1311
  showTooltip: true
1068
1312
  },
1069
1313
  {
1070
1314
  value: "auto",
1071
- label: (0, import_i18n13.__)("Auto", "elementor"),
1072
- renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons8.ExpandBottomIcon, { fontSize: size }),
1315
+ label: (0, import_i18n18.__)("Auto", "elementor"),
1316
+ renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ExpandBottomIcon, { fontSize: size }),
1073
1317
  showTooltip: true
1074
1318
  }
1075
1319
  ];
1076
1320
  var OverflowField = () => {
1077
- return /* @__PURE__ */ React32.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ControlLabel, null, (0, import_i18n13.__)("Overflow", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.ToggleControl, { options }))));
1321
+ return /* @__PURE__ */ React36.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n18.__)("Overflow", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React36.createElement(import_editor_controls24.ToggleControl, { options: options3 }))));
1078
1322
  };
1079
1323
 
1080
1324
  // src/components/style-sections/size-section/size-section.tsx
1081
1325
  var SizeSection = () => {
1082
- return /* @__PURE__ */ React33.createElement(import_ui26.Stack, { gap: 1.5 }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "width", label: (0, import_i18n14.__)("Width", "elementor") })), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "height", label: (0, import_i18n14.__)("Height", "elementor") }))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "min-width", label: (0, import_i18n14.__)("Min. Width", "elementor") })), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "min-height", label: (0, import_i18n14.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "max-width", label: (0, import_i18n14.__)("Max. Width", "elementor") })), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(SizeField, { bind: "max-height", label: (0, import_i18n14.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React33.createElement(import_ui26.Divider, null), /* @__PURE__ */ React33.createElement(import_ui26.Stack, null, /* @__PURE__ */ React33.createElement(OverflowField, null)));
1326
+ return /* @__PURE__ */ React37.createElement(import_ui30.Stack, { gap: 1.5 }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "width", label: (0, import_i18n19.__)("Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "height", label: (0, import_i18n19.__)("Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-width", label: (0, import_i18n19.__)("Min. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "min-height", label: (0, import_i18n19.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-width", label: (0, import_i18n19.__)("Max. Width", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(SizeField, { bind: "max-height", label: (0, import_i18n19.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React37.createElement(import_ui30.Divider, null), /* @__PURE__ */ React37.createElement(import_ui30.Stack, null, /* @__PURE__ */ React37.createElement(OverflowField, null)));
1083
1327
  };
1084
1328
  var SizeField = ({ label, bind }) => {
1085
- return /* @__PURE__ */ React33.createElement(StylesField, { bind }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React33.createElement(import_editor_controls20.ControlLabel, null, label)), /* @__PURE__ */ React33.createElement(import_ui26.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React33.createElement(import_editor_controls20.SizeControl, null))));
1329
+ return /* @__PURE__ */ React37.createElement(StylesField, { bind }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(import_editor_controls25.SizeControl, null))));
1086
1330
  };
1087
1331
 
1088
1332
  // src/components/style-sections/spacing-section/spacing-section.tsx
1089
- var React34 = __toESM(require("react"));
1090
- var import_editor_controls21 = require("@elementor/editor-controls");
1091
- var import_ui27 = require("@elementor/ui");
1092
- var import_i18n15 = require("@wordpress/i18n");
1333
+ var React38 = __toESM(require("react"));
1334
+ var import_editor_controls26 = require("@elementor/editor-controls");
1335
+ var import_ui31 = require("@elementor/ui");
1336
+ var import_i18n20 = require("@wordpress/i18n");
1093
1337
  var SpacingSection = () => {
1094
- return /* @__PURE__ */ React34.createElement(import_ui27.Stack, { gap: 1.5 }, /* @__PURE__ */ React34.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React34.createElement(import_editor_controls21.LinkedDimensionsControl, { label: (0, import_i18n15.__)("Padding", "elementor") })), /* @__PURE__ */ React34.createElement(import_ui27.Divider, null), /* @__PURE__ */ React34.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React34.createElement(import_editor_controls21.LinkedDimensionsControl, { label: (0, import_i18n15.__)("Margin", "elementor") })));
1338
+ return /* @__PURE__ */ React38.createElement(import_ui31.Stack, { gap: 1.5 }, /* @__PURE__ */ React38.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Padding", "elementor") })), /* @__PURE__ */ React38.createElement(import_ui31.Divider, null), /* @__PURE__ */ React38.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React38.createElement(import_editor_controls26.LinkedDimensionsControl, { label: (0, import_i18n20.__)("Margin", "elementor") })));
1095
1339
  };
1096
1340
 
1097
1341
  // src/components/style-sections/typography-section/typography-section.tsx
1098
- var React48 = __toESM(require("react"));
1099
- var import_ui40 = require("@elementor/ui");
1342
+ var React51 = __toESM(require("react"));
1343
+ var import_ui43 = require("@elementor/ui");
1100
1344
 
1101
1345
  // src/components/collapsible-content.tsx
1102
- var React35 = __toESM(require("react"));
1103
- var import_react10 = require("react");
1104
- var import_ui28 = require("@elementor/ui");
1105
- var import_i18n16 = require("@wordpress/i18n");
1346
+ var React39 = __toESM(require("react"));
1347
+ var import_react11 = require("react");
1348
+ var import_ui32 = require("@elementor/ui");
1349
+ var import_i18n21 = require("@wordpress/i18n");
1106
1350
  var CollapsibleContent = ({ children, defaultOpen = false }) => {
1107
- const [open, setOpen] = (0, import_react10.useState)(defaultOpen);
1351
+ const [open, setOpen] = (0, import_react11.useState)(defaultOpen);
1108
1352
  const handleToggle = () => {
1109
1353
  setOpen((prevOpen) => !prevOpen);
1110
1354
  };
1111
- return /* @__PURE__ */ React35.createElement(import_ui28.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React35.createElement(
1112
- import_ui28.Button,
1355
+ return /* @__PURE__ */ React39.createElement(import_ui32.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React39.createElement(
1356
+ import_ui32.Button,
1113
1357
  {
1114
1358
  fullWidth: true,
1115
1359
  size: "small",
1116
1360
  color: "secondary",
1117
1361
  variant: "outlined",
1118
1362
  onClick: handleToggle,
1119
- endIcon: /* @__PURE__ */ React35.createElement(CollapseIcon, { open })
1363
+ endIcon: /* @__PURE__ */ React39.createElement(CollapseIcon, { open })
1120
1364
  },
1121
- open ? (0, import_i18n16.__)("Show less", "elementor") : (0, import_i18n16.__)("Show more", "elementor")
1122
- ), /* @__PURE__ */ React35.createElement(import_ui28.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
1365
+ open ? (0, import_i18n21.__)("Show less", "elementor") : (0, import_i18n21.__)("Show more", "elementor")
1366
+ ), /* @__PURE__ */ React39.createElement(import_ui32.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
1123
1367
  };
1124
1368
 
1125
1369
  // src/components/style-sections/typography-section/font-family-field.tsx
1126
- var React36 = __toESM(require("react"));
1127
- var import_editor_controls22 = require("@elementor/editor-controls");
1128
- var import_ui29 = require("@elementor/ui");
1129
- var import_i18n17 = require("@wordpress/i18n");
1370
+ var React40 = __toESM(require("react"));
1371
+ var import_editor_controls27 = require("@elementor/editor-controls");
1372
+ var import_ui33 = require("@elementor/ui");
1373
+ var import_i18n22 = require("@wordpress/i18n");
1130
1374
 
1131
1375
  // src/sync/get-elementor-config.ts
1132
1376
  var getElementorConfig = () => {
@@ -1140,158 +1384,167 @@ var FontFamilyField = () => {
1140
1384
  if (!fontFamilies) {
1141
1385
  return null;
1142
1386
  }
1143
- return /* @__PURE__ */ React36.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n17.__)("Font Family", "elementor"))), /* @__PURE__ */ React36.createElement(import_ui29.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React36.createElement(import_editor_controls22.FontFamilyControl, { fontFamilies }))));
1387
+ return /* @__PURE__ */ React40.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.ControlLabel, null, (0, import_i18n22.__)("Font Family", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls27.FontFamilyControl, { fontFamilies }))));
1144
1388
  };
1145
1389
  var getFontFamilies = () => {
1146
1390
  const { controls } = getElementorConfig();
1147
- const options5 = controls?.font?.options;
1148
- if (!options5) {
1391
+ const options7 = controls?.font?.options;
1392
+ if (!options7) {
1149
1393
  return null;
1150
1394
  }
1151
- return options5;
1395
+ return options7;
1152
1396
  };
1153
1397
 
1154
1398
  // src/components/style-sections/typography-section/font-size-field.tsx
1155
- var React37 = __toESM(require("react"));
1156
- var import_editor_controls23 = require("@elementor/editor-controls");
1157
- var import_ui30 = require("@elementor/ui");
1158
- var import_i18n18 = require("@wordpress/i18n");
1399
+ var React41 = __toESM(require("react"));
1400
+ var import_editor_controls28 = require("@elementor/editor-controls");
1401
+ var import_ui34 = require("@elementor/ui");
1402
+ var import_i18n23 = require("@wordpress/i18n");
1159
1403
  var FontSizeField = () => {
1160
- return /* @__PURE__ */ React37.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n18.__)("Font Size", "elementor"))), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(import_editor_controls23.SizeControl, null))));
1404
+ return /* @__PURE__ */ React41.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls28.ControlLabel, null, (0, import_i18n23.__)("Font Size", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls28.SizeControl, null))));
1161
1405
  };
1162
1406
 
1163
1407
  // src/components/style-sections/typography-section/font-weight-field.tsx
1164
- var React38 = __toESM(require("react"));
1165
- var import_editor_controls24 = require("@elementor/editor-controls");
1166
- var import_ui31 = require("@elementor/ui");
1167
- var import_i18n19 = require("@wordpress/i18n");
1408
+ var React42 = __toESM(require("react"));
1409
+ var import_editor_controls29 = require("@elementor/editor-controls");
1410
+ var import_ui35 = require("@elementor/ui");
1411
+ var import_i18n24 = require("@wordpress/i18n");
1168
1412
  var fontWeightOptions = [
1169
- { label: (0, import_i18n19.__)("Light - 400", "elementor"), value: "400" },
1170
- { label: (0, import_i18n19.__)("Regular - 500", "elementor"), value: "500" },
1171
- { label: (0, import_i18n19.__)("Semi Bold - 600", "elementor"), value: "600" },
1172
- { label: (0, import_i18n19.__)("Bold - 700", "elementor"), value: "700" },
1173
- { label: (0, import_i18n19.__)("Black - 900", "elementor"), value: "900" }
1413
+ { label: (0, import_i18n24.__)("Light - 400", "elementor"), value: "400" },
1414
+ { label: (0, import_i18n24.__)("Regular - 500", "elementor"), value: "500" },
1415
+ { label: (0, import_i18n24.__)("Semi Bold - 600", "elementor"), value: "600" },
1416
+ { label: (0, import_i18n24.__)("Bold - 700", "elementor"), value: "700" },
1417
+ { label: (0, import_i18n24.__)("Black - 900", "elementor"), value: "900" }
1174
1418
  ];
1175
1419
  var FontWeightField = () => {
1176
- return /* @__PURE__ */ React38.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls24.ControlLabel, null, (0, import_i18n19.__)("Font Weight", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls24.SelectControl, { options: fontWeightOptions }))));
1420
+ return /* @__PURE__ */ React42.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n24.__)("Font Weight", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls29.SelectControl, { options: fontWeightOptions }))));
1177
1421
  };
1178
1422
 
1179
1423
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
1180
- var React39 = __toESM(require("react"));
1181
- var import_editor_controls25 = require("@elementor/editor-controls");
1182
- var import_ui32 = require("@elementor/ui");
1183
- var import_i18n20 = require("@wordpress/i18n");
1424
+ var React43 = __toESM(require("react"));
1425
+ var import_editor_controls30 = require("@elementor/editor-controls");
1426
+ var import_ui36 = require("@elementor/ui");
1427
+ var import_i18n25 = require("@wordpress/i18n");
1184
1428
  var LetterSpacingField = () => {
1185
- return /* @__PURE__ */ React39.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls25.ControlLabel, null, (0, import_i18n20.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls25.SizeControl, null))));
1429
+ return /* @__PURE__ */ React43.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n25.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React43.createElement(import_ui36.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(import_editor_controls30.SizeControl, null))));
1186
1430
  };
1187
1431
 
1188
1432
  // src/components/style-sections/typography-section/text-alignment-field.tsx
1189
- var React40 = __toESM(require("react"));
1190
- var import_editor_controls26 = require("@elementor/editor-controls");
1191
- var import_icons9 = require("@elementor/icons");
1192
- var import_ui33 = require("@elementor/ui");
1193
- var import_i18n21 = require("@wordpress/i18n");
1194
- var options2 = [
1433
+ var React44 = __toESM(require("react"));
1434
+ var import_editor_controls31 = require("@elementor/editor-controls");
1435
+ var import_icons13 = require("@elementor/icons");
1436
+ var import_ui37 = require("@elementor/ui");
1437
+ var import_i18n26 = require("@wordpress/i18n");
1438
+ var options4 = [
1195
1439
  {
1196
1440
  value: "left",
1197
- label: (0, import_i18n21.__)("Left", "elementor"),
1198
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(import_icons9.AlignLeftIcon, { fontSize: size })
1441
+ label: (0, import_i18n26.__)("Left", "elementor"),
1442
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignLeftIcon, { fontSize: size })
1199
1443
  },
1200
1444
  {
1201
1445
  value: "center",
1202
- label: (0, import_i18n21.__)("Center", "elementor"),
1203
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(import_icons9.AlignCenterIcon, { fontSize: size })
1446
+ label: (0, import_i18n26.__)("Center", "elementor"),
1447
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignCenterIcon, { fontSize: size })
1204
1448
  },
1205
1449
  {
1206
1450
  value: "right",
1207
- label: (0, import_i18n21.__)("Right", "elementor"),
1208
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(import_icons9.AlignRightIcon, { fontSize: size })
1451
+ label: (0, import_i18n26.__)("Right", "elementor"),
1452
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignRightIcon, { fontSize: size })
1209
1453
  },
1210
1454
  {
1211
1455
  value: "justify",
1212
- label: (0, import_i18n21.__)("Justify", "elementor"),
1213
- renderContent: ({ size }) => /* @__PURE__ */ React40.createElement(import_icons9.AlignJustifiedIcon, { fontSize: size })
1456
+ label: (0, import_i18n26.__)("Justify", "elementor"),
1457
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignJustifiedIcon, { fontSize: size })
1214
1458
  }
1215
1459
  ];
1216
1460
  var TextAlignmentField = () => {
1217
- return /* @__PURE__ */ React40.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(import_editor_controls26.ControlLabel, null, (0, import_i18n21.__)("Alignment", "elementor"))), /* @__PURE__ */ React40.createElement(import_ui33.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React40.createElement(import_editor_controls26.ToggleControl, { options: options2 }))));
1461
+ return /* @__PURE__ */ React44.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n26.__)("Alignment", "elementor"))), /* @__PURE__ */ React44.createElement(import_ui37.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React44.createElement(import_editor_controls31.ToggleControl, { options: options4 }))));
1218
1462
  };
1219
1463
 
1220
1464
  // src/components/style-sections/typography-section/text-color-field.tsx
1221
- var React41 = __toESM(require("react"));
1222
- var import_editor_controls27 = require("@elementor/editor-controls");
1223
- var import_ui34 = require("@elementor/ui");
1224
- var import_i18n22 = require("@wordpress/i18n");
1465
+ var React45 = __toESM(require("react"));
1466
+ var import_editor_controls32 = require("@elementor/editor-controls");
1467
+ var import_ui38 = require("@elementor/ui");
1468
+ var import_i18n27 = require("@wordpress/i18n");
1225
1469
  var TextColorField = () => {
1226
- return /* @__PURE__ */ React41.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls27.ControlLabel, null, (0, import_i18n22.__)("Text Color", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(import_editor_controls27.ColorControl, null))));
1470
+ return /* @__PURE__ */ React45.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n27.__)("Text Color", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls32.ColorControl, null))));
1227
1471
  };
1228
1472
 
1229
1473
  // src/components/style-sections/typography-section/text-direction-field.tsx
1230
- var React42 = __toESM(require("react"));
1231
- var import_editor_controls28 = require("@elementor/editor-controls");
1232
- var import_icons10 = require("@elementor/icons");
1233
- var import_ui35 = require("@elementor/ui");
1234
- var import_i18n23 = require("@wordpress/i18n");
1235
- var options3 = [
1474
+ var React46 = __toESM(require("react"));
1475
+ var import_editor_controls33 = require("@elementor/editor-controls");
1476
+ var import_icons14 = require("@elementor/icons");
1477
+ var import_ui39 = require("@elementor/ui");
1478
+ var import_i18n28 = require("@wordpress/i18n");
1479
+ var options5 = [
1236
1480
  {
1237
1481
  value: "ltr",
1238
- label: (0, import_i18n23.__)("Left to Right", "elementor"),
1239
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(import_icons10.TextDirectionLtrIcon, { fontSize: size })
1482
+ label: (0, import_i18n28.__)("Left to Right", "elementor"),
1483
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionLtrIcon, { fontSize: size })
1240
1484
  },
1241
1485
  {
1242
1486
  value: "rtl",
1243
- label: (0, import_i18n23.__)("Right to Left", "elementor"),
1244
- renderContent: ({ size }) => /* @__PURE__ */ React42.createElement(import_icons10.TextDirectionRtlIcon, { fontSize: size })
1487
+ label: (0, import_i18n28.__)("Right to Left", "elementor"),
1488
+ renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionRtlIcon, { fontSize: size })
1245
1489
  }
1246
1490
  ];
1247
1491
  var TextDirectionField = () => {
1248
- return /* @__PURE__ */ React42.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(import_editor_controls28.ControlLabel, null, (0, import_i18n23.__)("Direction", "elementor"))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React42.createElement(import_editor_controls28.ToggleControl, { options: options3 }))));
1492
+ return /* @__PURE__ */ React46.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n28.__)("Direction", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React46.createElement(import_editor_controls33.ToggleControl, { options: options5 }))));
1249
1493
  };
1250
1494
 
1251
1495
  // src/components/style-sections/typography-section/text-stroke-field.tsx
1252
- var React44 = __toESM(require("react"));
1253
- var import_editor_controls29 = require("@elementor/editor-controls");
1254
- var import_i18n25 = require("@wordpress/i18n");
1255
-
1256
- // src/components/collapsible-field.tsx
1257
- var React43 = __toESM(require("react"));
1258
- var import_react11 = require("react");
1259
- var import_icons11 = require("@elementor/icons");
1260
- var import_ui36 = require("@elementor/ui");
1261
- var import_i18n24 = require("@wordpress/i18n");
1262
- var CollapsibleField = ({ label, children, defaultOpen = false }) => {
1263
- const [open, setOpen] = (0, import_react11.useState)(defaultOpen);
1264
- const handleToggle = () => {
1265
- setOpen((prevOpen) => !prevOpen);
1266
- };
1267
- return /* @__PURE__ */ React43.createElement(import_ui36.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(import_ui36.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { py: 0.5 } }, label, /* @__PURE__ */ React43.createElement(
1268
- import_ui36.IconButton,
1269
- {
1270
- onClick: handleToggle,
1271
- size: "tiny",
1272
- "aria-label": open ? (0, import_i18n24.__)("Close", "elementor") : (0, import_i18n24.__)("Expand", "elementor")
1496
+ var React47 = __toESM(require("react"));
1497
+ var import_editor_controls34 = require("@elementor/editor-controls");
1498
+ var import_i18n29 = require("@wordpress/i18n");
1499
+ var initTextStroke = {
1500
+ $$type: "stroke",
1501
+ value: {
1502
+ color: {
1503
+ $$type: "color",
1504
+ value: "#000000"
1273
1505
  },
1274
- open ? /* @__PURE__ */ React43.createElement(import_icons11.MinusIcon, { fontSize: "tiny" }) : /* @__PURE__ */ React43.createElement(import_icons11.PlusIcon, { fontSize: "tiny" })
1275
- )), /* @__PURE__ */ React43.createElement(import_ui36.Collapse, { in: open, unmountOnExit: true }, children));
1506
+ width: {
1507
+ $$type: "size",
1508
+ value: {
1509
+ unit: "px",
1510
+ size: 1
1511
+ }
1512
+ }
1513
+ }
1276
1514
  };
1277
-
1278
- // src/components/style-sections/typography-section/text-stroke-field.tsx
1279
1515
  var TextStrokeField = () => {
1280
- return /* @__PURE__ */ React44.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React44.createElement(CollapsibleField, { label: /* @__PURE__ */ React44.createElement(import_editor_controls29.ControlLabel, null, (0, import_i18n25.__)("Text Stroke", "elementor")) }, /* @__PURE__ */ React44.createElement(import_editor_controls29.StrokeControl, null)));
1516
+ const [textStroke, setTextStroke] = useStylesField("-webkit-text-stroke");
1517
+ const addTextStroke = () => {
1518
+ setTextStroke(initTextStroke);
1519
+ };
1520
+ const removeTextStroke = () => {
1521
+ setTextStroke(null);
1522
+ };
1523
+ const hasTextStroke = Boolean(textStroke);
1524
+ return /* @__PURE__ */ React47.createElement(
1525
+ AddOrRemoveContent,
1526
+ {
1527
+ label: (0, import_i18n29.__)("Text Stroke", "elementor"),
1528
+ isAdded: hasTextStroke,
1529
+ onAdd: addTextStroke,
1530
+ onRemove: removeTextStroke
1531
+ },
1532
+ /* @__PURE__ */ React47.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React47.createElement(import_editor_controls34.StrokeControl, null))
1533
+ );
1281
1534
  };
1282
1535
 
1283
1536
  // src/components/style-sections/typography-section/text-style-field.tsx
1284
- var React45 = __toESM(require("react"));
1285
- var import_editor_controls30 = require("@elementor/editor-controls");
1286
- var import_icons12 = require("@elementor/icons");
1287
- var import_ui37 = require("@elementor/ui");
1288
- var import_i18n26 = require("@wordpress/i18n");
1537
+ var React48 = __toESM(require("react"));
1538
+ var import_editor_controls35 = require("@elementor/editor-controls");
1539
+ var import_icons15 = require("@elementor/icons");
1540
+ var import_ui40 = require("@elementor/ui");
1541
+ var import_i18n30 = require("@wordpress/i18n");
1289
1542
  var buttonSize = "tiny";
1290
1543
  var TextStyleField = () => {
1291
1544
  const [fontStyle, setFontStyle] = useStylesField("font-style");
1292
1545
  const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
1293
1546
  const formats = [fontStyle, ...(textDecoration || "").split(" ")];
1294
- return /* @__PURE__ */ React45.createElement(import_ui37.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(import_ui37.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls30.ControlLabel, null, (0, import_i18n26.__)("Style", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui37.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React45.createElement(import_ui37.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React45.createElement(
1547
+ return /* @__PURE__ */ React48.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n30.__)("Style", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui40.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React48.createElement(import_ui40.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React48.createElement(
1295
1548
  ToggleButton,
1296
1549
  {
1297
1550
  value: "italic",
@@ -1299,8 +1552,8 @@ var TextStyleField = () => {
1299
1552
  "aria-label": "italic",
1300
1553
  sx: { marginLeft: "auto" }
1301
1554
  },
1302
- /* @__PURE__ */ React45.createElement(import_icons12.ItalicIcon, { fontSize: buttonSize })
1303
- ), /* @__PURE__ */ React45.createElement(
1555
+ /* @__PURE__ */ React48.createElement(import_icons15.ItalicIcon, { fontSize: buttonSize })
1556
+ ), /* @__PURE__ */ React48.createElement(
1304
1557
  ShorthandControl,
1305
1558
  {
1306
1559
  value: "line-through",
@@ -1308,8 +1561,8 @@ var TextStyleField = () => {
1308
1561
  updateValues: setTextDecoration,
1309
1562
  "aria-label": "line-through"
1310
1563
  },
1311
- /* @__PURE__ */ React45.createElement(import_icons12.StrikethroughIcon, { fontSize: buttonSize })
1312
- ), /* @__PURE__ */ React45.createElement(
1564
+ /* @__PURE__ */ React48.createElement(import_icons15.StrikethroughIcon, { fontSize: buttonSize })
1565
+ ), /* @__PURE__ */ React48.createElement(
1313
1566
  ShorthandControl,
1314
1567
  {
1315
1568
  value: "underline",
@@ -1317,7 +1570,7 @@ var TextStyleField = () => {
1317
1570
  updateValues: setTextDecoration,
1318
1571
  "aria-label": "underline"
1319
1572
  },
1320
- /* @__PURE__ */ React45.createElement(import_icons12.UnderlineIcon, { fontSize: buttonSize })
1573
+ /* @__PURE__ */ React48.createElement(import_icons15.UnderlineIcon, { fontSize: buttonSize })
1321
1574
  ))));
1322
1575
  };
1323
1576
  var ShorthandControl = ({
@@ -1336,52 +1589,52 @@ var ShorthandControl = ({
1336
1589
  updateValues([...valuesArr, newValue].join(" "));
1337
1590
  }
1338
1591
  };
1339
- return /* @__PURE__ */ React45.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
1592
+ return /* @__PURE__ */ React48.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
1340
1593
  };
1341
1594
  var ToggleButton = ({ onChange, ...props }) => {
1342
1595
  const handleChange = (_e, newValue) => {
1343
1596
  onChange(newValue);
1344
1597
  };
1345
- return /* @__PURE__ */ React45.createElement(import_ui37.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
1598
+ return /* @__PURE__ */ React48.createElement(import_ui40.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
1346
1599
  };
1347
1600
 
1348
1601
  // src/components/style-sections/typography-section/transform-field.tsx
1349
- var React46 = __toESM(require("react"));
1350
- var import_editor_controls31 = require("@elementor/editor-controls");
1351
- var import_icons13 = require("@elementor/icons");
1352
- var import_ui38 = require("@elementor/ui");
1353
- var import_i18n27 = require("@wordpress/i18n");
1354
- var options4 = [
1602
+ var React49 = __toESM(require("react"));
1603
+ var import_editor_controls36 = require("@elementor/editor-controls");
1604
+ var import_icons16 = require("@elementor/icons");
1605
+ var import_ui41 = require("@elementor/ui");
1606
+ var import_i18n31 = require("@wordpress/i18n");
1607
+ var options6 = [
1355
1608
  {
1356
1609
  value: "capitalize",
1357
- label: (0, import_i18n27.__)("Capitalize", "elementor"),
1358
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons13.LetterCaseIcon, { fontSize: size })
1610
+ label: (0, import_i18n31.__)("Capitalize", "elementor"),
1611
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseIcon, { fontSize: size })
1359
1612
  },
1360
1613
  {
1361
1614
  value: "uppercase",
1362
- label: (0, import_i18n27.__)("Uppercase", "elementor"),
1363
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons13.LetterCaseUpperIcon, { fontSize: size })
1615
+ label: (0, import_i18n31.__)("Uppercase", "elementor"),
1616
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseUpperIcon, { fontSize: size })
1364
1617
  },
1365
1618
  {
1366
1619
  value: "lowercase",
1367
- label: (0, import_i18n27.__)("Lowercase", "elementor"),
1368
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons13.LetterCaseLowerIcon, { fontSize: size })
1620
+ label: (0, import_i18n31.__)("Lowercase", "elementor"),
1621
+ renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseLowerIcon, { fontSize: size })
1369
1622
  }
1370
1623
  ];
1371
- var TransformField = () => /* @__PURE__ */ React46.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls31.ControlLabel, null, (0, import_i18n27.__)("Transform", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui38.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React46.createElement(import_editor_controls31.ToggleControl, { options: options4 }))));
1624
+ var TransformField = () => /* @__PURE__ */ React49.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n31.__)("Transform", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui41.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React49.createElement(import_editor_controls36.ToggleControl, { options: options6 }))));
1372
1625
 
1373
1626
  // src/components/style-sections/typography-section/word-spacing-field.tsx
1374
- var React47 = __toESM(require("react"));
1375
- var import_editor_controls32 = require("@elementor/editor-controls");
1376
- var import_ui39 = require("@elementor/ui");
1377
- var import_i18n28 = require("@wordpress/i18n");
1627
+ var React50 = __toESM(require("react"));
1628
+ var import_editor_controls37 = require("@elementor/editor-controls");
1629
+ var import_ui42 = require("@elementor/ui");
1630
+ var import_i18n32 = require("@wordpress/i18n");
1378
1631
  var WordSpacingField = () => {
1379
- return /* @__PURE__ */ React47.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n28.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.SizeControl, null))));
1632
+ return /* @__PURE__ */ React50.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.ControlLabel, null, (0, import_i18n32.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls37.SizeControl, null))));
1380
1633
  };
1381
1634
 
1382
1635
  // src/components/style-sections/typography-section/typography-section.tsx
1383
1636
  var TypographySection = () => {
1384
- return /* @__PURE__ */ React48.createElement(import_ui40.Stack, { gap: 1.5 }, /* @__PURE__ */ React48.createElement(FontFamilyField, null), /* @__PURE__ */ React48.createElement(FontWeightField, null), /* @__PURE__ */ React48.createElement(FontSizeField, null), /* @__PURE__ */ React48.createElement(import_ui40.Divider, null), /* @__PURE__ */ React48.createElement(TextColorField, null), /* @__PURE__ */ React48.createElement(CollapsibleContent, null, /* @__PURE__ */ React48.createElement(import_ui40.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React48.createElement(LetterSpacingField, null), /* @__PURE__ */ React48.createElement(WordSpacingField, null), /* @__PURE__ */ React48.createElement(import_ui40.Divider, null), /* @__PURE__ */ React48.createElement(TextAlignmentField, null), /* @__PURE__ */ React48.createElement(TextStyleField, null), /* @__PURE__ */ React48.createElement(TransformField, null), /* @__PURE__ */ React48.createElement(TextDirectionField, null), /* @__PURE__ */ React48.createElement(TextStrokeField, null))));
1637
+ return /* @__PURE__ */ React51.createElement(import_ui43.Stack, { gap: 1.5 }, /* @__PURE__ */ React51.createElement(FontFamilyField, null), /* @__PURE__ */ React51.createElement(FontWeightField, null), /* @__PURE__ */ React51.createElement(FontSizeField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextColorField, null), /* @__PURE__ */ React51.createElement(CollapsibleContent, null, /* @__PURE__ */ React51.createElement(import_ui43.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React51.createElement(LetterSpacingField, null), /* @__PURE__ */ React51.createElement(WordSpacingField, null), /* @__PURE__ */ React51.createElement(import_ui43.Divider, null), /* @__PURE__ */ React51.createElement(TextAlignmentField, null), /* @__PURE__ */ React51.createElement(TextStyleField, null), /* @__PURE__ */ React51.createElement(TransformField, null), /* @__PURE__ */ React51.createElement(TextDirectionField, null), /* @__PURE__ */ React51.createElement(TextStrokeField, null))));
1385
1638
  };
1386
1639
 
1387
1640
  // src/components/style-tab.tsx
@@ -1390,7 +1643,7 @@ var StyleTab = () => {
1390
1643
  const currentClassesProp = useCurrentClassesProp();
1391
1644
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
1392
1645
  const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
1393
- return /* @__PURE__ */ React49.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React49.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React49.createElement(CssClassSelectorSection, null), /* @__PURE__ */ React49.createElement(import_ui41.Divider, null), /* @__PURE__ */ React49.createElement(SectionsList, null, /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Layout", "elementor") }, /* @__PURE__ */ React49.createElement(LayoutSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Spacing", "elementor") }, /* @__PURE__ */ React49.createElement(SpacingSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Size", "elementor") }, /* @__PURE__ */ React49.createElement(SizeSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Position", "elementor") }, /* @__PURE__ */ React49.createElement(PositionSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Typography", "elementor") }, /* @__PURE__ */ React49.createElement(TypographySection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Background", "elementor") }, /* @__PURE__ */ React49.createElement(BackgroundSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Border", "elementor") }, /* @__PURE__ */ React49.createElement(BorderSection, null)), /* @__PURE__ */ React49.createElement(Section, { title: (0, import_i18n29.__)("Effects", "elementor") }, /* @__PURE__ */ React49.createElement(EffectsSection, null)))));
1646
+ return /* @__PURE__ */ React52.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React52.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React52.createElement(CssClassSelector, null), /* @__PURE__ */ React52.createElement(import_ui44.Divider, null), /* @__PURE__ */ React52.createElement(SectionsList, null, /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Layout", "elementor") }, /* @__PURE__ */ React52.createElement(LayoutSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Spacing", "elementor") }, /* @__PURE__ */ React52.createElement(SpacingSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Size", "elementor") }, /* @__PURE__ */ React52.createElement(SizeSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Position", "elementor") }, /* @__PURE__ */ React52.createElement(PositionSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Typography", "elementor") }, /* @__PURE__ */ React52.createElement(TypographySection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Background", "elementor") }, /* @__PURE__ */ React52.createElement(BackgroundSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Border", "elementor") }, /* @__PURE__ */ React52.createElement(BorderSection, null)), /* @__PURE__ */ React52.createElement(Section, { title: (0, import_i18n33.__)("Effects", "elementor") }, /* @__PURE__ */ React52.createElement(EffectsSection, null)))));
1394
1647
  };
1395
1648
  function useActiveStyleDefId(currentClassesProp) {
1396
1649
  const [activeStyledDefId, setActiveStyledDefId] = (0, import_react12.useState)(null);
@@ -1423,11 +1676,11 @@ function useCurrentClassesProp() {
1423
1676
  // src/components/editing-panel-tabs.tsx
1424
1677
  var EditingPanelTabs = () => {
1425
1678
  const { element } = useElement();
1426
- const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui42.useTabs)("settings");
1679
+ const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui45.useTabs)("settings");
1427
1680
  return (
1428
1681
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
1429
1682
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
1430
- /* @__PURE__ */ React50.createElement(import_react13.Fragment, { key: element.id }, /* @__PURE__ */ React50.createElement(import_ui42.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React50.createElement(import_ui42.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React50.createElement(import_ui42.Tab, { label: (0, import_i18n30.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React50.createElement(import_ui42.Tab, { label: (0, import_i18n30.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React50.createElement(import_ui42.Divider, null), /* @__PURE__ */ React50.createElement(import_ui42.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React50.createElement(SettingsTab, null)), /* @__PURE__ */ React50.createElement(import_ui42.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React50.createElement(StyleTab, null))))
1683
+ /* @__PURE__ */ React53.createElement(import_react13.Fragment, { key: element.id }, /* @__PURE__ */ React53.createElement(import_ui45.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React53.createElement(import_ui45.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React53.createElement(import_ui45.Tab, { label: (0, import_i18n34.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React53.createElement(import_ui45.Divider, null), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React53.createElement(SettingsTab, null)), /* @__PURE__ */ React53.createElement(import_ui45.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React53.createElement(StyleTab, null))))
1431
1684
  );
1432
1685
  };
1433
1686
 
@@ -1440,8 +1693,8 @@ var EditingPanel = () => {
1440
1693
  if (!element || !elementType) {
1441
1694
  return null;
1442
1695
  }
1443
- const panelTitle = (0, import_i18n31.__)("Edit %s", "elementor").replace("%s", elementType.title);
1444
- return /* @__PURE__ */ React51.createElement(import_ui43.ErrorBoundary, { fallback: /* @__PURE__ */ React51.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React51.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React51.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React51.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React51.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React51.createElement(import_editor_controls33.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React51.createElement(import_editor_controls33.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React51.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React51.createElement(EditingPanelTabs, null)))))));
1696
+ const panelTitle = (0, import_i18n35.__)("Edit %s", "elementor").replace("%s", elementType.title);
1697
+ return /* @__PURE__ */ React54.createElement(import_ui46.ErrorBoundary, { fallback: /* @__PURE__ */ React54.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React54.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React54.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React54.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React54.createElement(import_editor_controls38.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React54.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React54.createElement(EditingPanelTabs, null)))))));
1445
1698
  };
1446
1699
 
1447
1700
  // src/panel.ts
@@ -1498,16 +1751,16 @@ var EditingPanelHooks = () => {
1498
1751
  };
1499
1752
 
1500
1753
  // src/dynamics/components/dynamic-selection-control.tsx
1501
- var React54 = __toESM(require("react"));
1754
+ var React57 = __toESM(require("react"));
1502
1755
  var import_react19 = require("react");
1503
- var import_editor_controls36 = require("@elementor/editor-controls");
1504
- var import_icons15 = require("@elementor/icons");
1505
- var import_ui45 = require("@elementor/ui");
1506
- var import_i18n33 = require("@wordpress/i18n");
1756
+ var import_editor_controls41 = require("@elementor/editor-controls");
1757
+ var import_icons18 = require("@elementor/icons");
1758
+ var import_ui48 = require("@elementor/ui");
1759
+ var import_i18n37 = require("@wordpress/i18n");
1507
1760
 
1508
1761
  // src/dynamics/dynamic-control.tsx
1509
- var React52 = __toESM(require("react"));
1510
- var import_editor_controls34 = require("@elementor/editor-controls");
1762
+ var React55 = __toESM(require("react"));
1763
+ var import_editor_controls39 = require("@elementor/editor-controls");
1511
1764
 
1512
1765
  // src/dynamics/hooks/use-dynamic-tag.ts
1513
1766
  var import_react17 = require("react");
@@ -1534,7 +1787,7 @@ var getAtomicDynamicTags = () => {
1534
1787
  };
1535
1788
 
1536
1789
  // src/dynamics/utils.ts
1537
- var import_editor_props = require("@elementor/editor-props");
1790
+ var import_editor_props2 = require("@elementor/editor-props");
1538
1791
  var DYNAMIC_PROP_TYPE_KEY = "dynamic";
1539
1792
  var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
1540
1793
  var getDynamicPropType = (propType) => {
@@ -1542,7 +1795,7 @@ var getDynamicPropType = (propType) => {
1542
1795
  return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
1543
1796
  };
1544
1797
  var isDynamicPropValue = (prop) => {
1545
- return (0, import_editor_props.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
1798
+ return (0, import_editor_props2.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
1546
1799
  };
1547
1800
  var supportsDynamic = (propType) => {
1548
1801
  return !!getDynamicPropType(propType);
@@ -1578,7 +1831,7 @@ var useDynamicTag = (propName, tagName) => {
1578
1831
 
1579
1832
  // src/dynamics/dynamic-control.tsx
1580
1833
  var DynamicControl = ({ bind, children }) => {
1581
- const { value, setValue, bind: propName } = (0, import_editor_controls34.useBoundProp)();
1834
+ const { value, setValue, bind: propName } = (0, import_editor_controls39.useBoundProp)();
1582
1835
  const { name = "", settings } = value?.value ?? {};
1583
1836
  const dynamicTag = useDynamicTag(propName, name);
1584
1837
  if (!dynamicTag) {
@@ -1598,24 +1851,24 @@ var DynamicControl = ({ bind, children }) => {
1598
1851
  }
1599
1852
  });
1600
1853
  };
1601
- return /* @__PURE__ */ React52.createElement(import_editor_controls34.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
1854
+ return /* @__PURE__ */ React55.createElement(import_editor_controls39.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
1602
1855
  };
1603
1856
 
1604
1857
  // src/dynamics/components/dynamic-selection.tsx
1605
- var React53 = __toESM(require("react"));
1858
+ var React56 = __toESM(require("react"));
1606
1859
  var import_react18 = require("react");
1607
- var import_editor_controls35 = require("@elementor/editor-controls");
1608
- var import_icons14 = require("@elementor/icons");
1609
- var import_ui44 = require("@elementor/ui");
1610
- var import_i18n32 = require("@wordpress/i18n");
1860
+ var import_editor_controls40 = require("@elementor/editor-controls");
1861
+ var import_icons17 = require("@elementor/icons");
1862
+ var import_ui47 = require("@elementor/ui");
1863
+ var import_i18n36 = require("@wordpress/i18n");
1611
1864
  var SIZE3 = "tiny";
1612
1865
  var DynamicSelection = ({ onSelect }) => {
1613
1866
  const [searchValue, setSearchValue] = (0, import_react18.useState)("");
1614
1867
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
1615
- const { bind, value: currentValue, setValue } = (0, import_editor_controls35.useBoundProp)();
1868
+ const { bind, value: currentValue, setValue } = (0, import_editor_controls40.useBoundProp)();
1616
1869
  const { setPropValue: updatePropValueHistory } = usePropValueHistory();
1617
1870
  const isCurrentValueDynamic = isDynamicPropValue(currentValue);
1618
- const options5 = useFilteredOptions(bind, searchValue);
1871
+ const options7 = useFilteredOptions(bind, searchValue);
1619
1872
  const handleSearch = (event) => {
1620
1873
  setSearchValue(event.target.value);
1621
1874
  };
@@ -1626,22 +1879,22 @@ var DynamicSelection = ({ onSelect }) => {
1626
1879
  setValue({ $$type: "dynamic", value: { name: value, settings: {} } });
1627
1880
  onSelect?.();
1628
1881
  };
1629
- return /* @__PURE__ */ React53.createElement(import_ui44.Stack, null, /* @__PURE__ */ React53.createElement(import_ui44.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React53.createElement(
1630
- import_ui44.TextField,
1882
+ return /* @__PURE__ */ React56.createElement(import_ui47.Stack, null, /* @__PURE__ */ React56.createElement(import_ui47.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React56.createElement(
1883
+ import_ui47.TextField,
1631
1884
  {
1632
1885
  fullWidth: true,
1633
1886
  size: SIZE3,
1634
1887
  value: searchValue,
1635
1888
  onChange: handleSearch,
1636
- placeholder: (0, import_i18n32.__)("Search dynamic tag", "elementor"),
1889
+ placeholder: (0, import_i18n36.__)("Search dynamic tag", "elementor"),
1637
1890
  InputProps: {
1638
- startAdornment: /* @__PURE__ */ React53.createElement(import_ui44.InputAdornment, { position: "start" }, /* @__PURE__ */ React53.createElement(import_icons14.SearchIcon, { fontSize: SIZE3 }))
1891
+ startAdornment: /* @__PURE__ */ React56.createElement(import_ui47.InputAdornment, { position: "start" }, /* @__PURE__ */ React56.createElement(import_icons17.SearchIcon, { fontSize: SIZE3 }))
1639
1892
  }
1640
1893
  }
1641
- )), /* @__PURE__ */ React53.createElement(import_ui44.Divider, null), /* @__PURE__ */ React53.createElement(import_ui44.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options5.length > 0 ? /* @__PURE__ */ React53.createElement(import_ui44.MenuList, { role: "listbox", tabIndex: 0 }, options5.map(([category, items], index) => /* @__PURE__ */ React53.createElement(import_react18.Fragment, { key: index }, /* @__PURE__ */ React53.createElement(import_ui44.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items.map(({ value, label: tagLabel }) => {
1894
+ )), /* @__PURE__ */ React56.createElement(import_ui47.Divider, null), /* @__PURE__ */ React56.createElement(import_ui47.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options7.length > 0 ? /* @__PURE__ */ React56.createElement(import_ui47.MenuList, { role: "listbox", tabIndex: 0 }, options7.map(([category, items2], index) => /* @__PURE__ */ React56.createElement(import_react18.Fragment, { key: index }, /* @__PURE__ */ React56.createElement(import_ui47.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items2.map(({ value, label: tagLabel }) => {
1642
1895
  const isSelected = isCurrentValueDynamic && value === currentValue?.value?.name;
1643
- return /* @__PURE__ */ React53.createElement(
1644
- import_ui44.MenuItem,
1896
+ return /* @__PURE__ */ React56.createElement(
1897
+ import_ui47.MenuItem,
1645
1898
  {
1646
1899
  key: value,
1647
1900
  selected: isSelected,
@@ -1651,20 +1904,20 @@ var DynamicSelection = ({ onSelect }) => {
1651
1904
  },
1652
1905
  tagLabel
1653
1906
  );
1654
- })))) : /* @__PURE__ */ React53.createElement(import_ui44.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React53.createElement(import_icons14.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React53.createElement(import_ui44.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n32.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React53.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React53.createElement(import_ui44.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React53.createElement(
1655
- import_ui44.Link,
1907
+ })))) : /* @__PURE__ */ React56.createElement(import_ui47.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React56.createElement(import_icons17.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n36.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React56.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React56.createElement(import_ui47.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React56.createElement(
1908
+ import_ui47.Link,
1656
1909
  {
1657
1910
  color: "secondary",
1658
1911
  variant: "caption",
1659
1912
  component: "button",
1660
1913
  onClick: () => setSearchValue("")
1661
1914
  },
1662
- (0, import_i18n32.__)("Clear the filters", "elementor")
1663
- ), "\xA0", (0, import_i18n32.__)("and try again.", "elementor")))));
1915
+ (0, import_i18n36.__)("Clear the filters", "elementor")
1916
+ ), "\xA0", (0, import_i18n36.__)("and try again.", "elementor")))));
1664
1917
  };
1665
1918
  var useFilteredOptions = (bind, searchValue) => {
1666
1919
  const dynamicTags = usePropDynamicTags(bind);
1667
- const options5 = dynamicTags.reduce((categories, { name, label, group }) => {
1920
+ const options7 = dynamicTags.reduce((categories, { name, label, group }) => {
1668
1921
  const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
1669
1922
  if (!isVisible) {
1670
1923
  return categories;
@@ -1675,17 +1928,17 @@ var useFilteredOptions = (bind, searchValue) => {
1675
1928
  categories.get(group)?.push({ label, value: name });
1676
1929
  return categories;
1677
1930
  }, /* @__PURE__ */ new Map());
1678
- return [...options5];
1931
+ return [...options7];
1679
1932
  };
1680
1933
 
1681
1934
  // src/dynamics/components/dynamic-selection-control.tsx
1682
1935
  var SIZE4 = "tiny";
1683
1936
  var DynamicSelectionControl = () => {
1684
- const { bind, value, setValue } = (0, import_editor_controls36.useBoundProp)();
1937
+ const { bind, value, setValue } = (0, import_editor_controls41.useBoundProp)();
1685
1938
  const { getPropValue: getPropValueFromHistory } = usePropValueHistory();
1686
1939
  const { name: tagName = "" } = value?.value || {};
1687
1940
  const selectionPopoverId = (0, import_react19.useId)();
1688
- const selectionPopoverState = (0, import_ui45.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
1941
+ const selectionPopoverState = (0, import_ui48.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
1689
1942
  const dynamicTag = useDynamicTag(bind, tagName);
1690
1943
  const removeDynamicTag = () => {
1691
1944
  const propValue = getPropValueFromHistory(bind);
@@ -1694,70 +1947,70 @@ var DynamicSelectionControl = () => {
1694
1947
  if (!dynamicTag) {
1695
1948
  throw new Error(`Dynamic tag ${tagName} not found`);
1696
1949
  }
1697
- return /* @__PURE__ */ React54.createElement(import_ui45.Box, null, /* @__PURE__ */ React54.createElement(
1698
- import_ui45.UnstableTag,
1950
+ return /* @__PURE__ */ React57.createElement(import_ui48.Box, null, /* @__PURE__ */ React57.createElement(
1951
+ import_ui48.UnstableTag,
1699
1952
  {
1700
1953
  fullWidth: true,
1701
1954
  showActionsOnHover: true,
1702
1955
  label: dynamicTag.label,
1703
- startIcon: /* @__PURE__ */ React54.createElement(import_icons15.DatabaseIcon, { fontSize: SIZE4 }),
1704
- ...(0, import_ui45.bindTrigger)(selectionPopoverState),
1705
- actions: /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React54.createElement(
1706
- import_ui45.IconButton,
1956
+ startIcon: /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4 }),
1957
+ ...(0, import_ui48.bindTrigger)(selectionPopoverState),
1958
+ actions: /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React57.createElement(
1959
+ import_ui48.IconButton,
1707
1960
  {
1708
1961
  size: SIZE4,
1709
1962
  onClick: removeDynamicTag,
1710
- "aria-label": (0, import_i18n33.__)("Remove dynamic value", "elementor")
1963
+ "aria-label": (0, import_i18n37.__)("Remove dynamic value", "elementor")
1711
1964
  },
1712
- /* @__PURE__ */ React54.createElement(import_icons15.XIcon, { fontSize: SIZE4 })
1965
+ /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 })
1713
1966
  ))
1714
1967
  }
1715
- ), /* @__PURE__ */ React54.createElement(
1716
- import_ui45.Popover,
1968
+ ), /* @__PURE__ */ React57.createElement(
1969
+ import_ui48.Popover,
1717
1970
  {
1718
1971
  disablePortal: true,
1719
1972
  disableScrollLock: true,
1720
1973
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
1721
- ...(0, import_ui45.bindPopover)(selectionPopoverState)
1974
+ ...(0, import_ui48.bindPopover)(selectionPopoverState)
1722
1975
  },
1723
- /* @__PURE__ */ React54.createElement(import_ui45.Stack, null, /* @__PURE__ */ React54.createElement(import_ui45.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React54.createElement(import_icons15.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React54.createElement(import_ui45.Typography, { variant: "subtitle2" }, (0, import_i18n33.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React54.createElement(import_ui45.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React54.createElement(import_icons15.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React54.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
1976
+ /* @__PURE__ */ React57.createElement(import_ui48.Stack, null, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, (0, import_i18n37.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
1724
1977
  ));
1725
1978
  };
1726
1979
  var DynamicSettingsPopover = ({ dynamicTag }) => {
1727
1980
  const popupId = (0, import_react19.useId)();
1728
- const settingsPopupState = (0, import_ui45.usePopupState)({ variant: "popover", popupId });
1981
+ const settingsPopupState = (0, import_ui48.usePopupState)({ variant: "popover", popupId });
1729
1982
  const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
1730
1983
  if (!hasDynamicSettings) {
1731
1984
  return null;
1732
1985
  }
1733
- return /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(
1734
- import_ui45.IconButton,
1986
+ return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(
1987
+ import_ui48.IconButton,
1735
1988
  {
1736
1989
  size: SIZE4,
1737
- ...(0, import_ui45.bindTrigger)(settingsPopupState),
1738
- "aria-label": (0, import_i18n33.__)("Settings", "elementor")
1990
+ ...(0, import_ui48.bindTrigger)(settingsPopupState),
1991
+ "aria-label": (0, import_i18n37.__)("Settings", "elementor")
1739
1992
  },
1740
- /* @__PURE__ */ React54.createElement(import_icons15.SettingsIcon, { fontSize: SIZE4 })
1741
- ), /* @__PURE__ */ React54.createElement(
1742
- import_ui45.Popover,
1993
+ /* @__PURE__ */ React57.createElement(import_icons18.SettingsIcon, { fontSize: SIZE4 })
1994
+ ), /* @__PURE__ */ React57.createElement(
1995
+ import_ui48.Popover,
1743
1996
  {
1744
1997
  disableScrollLock: true,
1745
1998
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
1746
- ...(0, import_ui45.bindPopover)(settingsPopupState)
1999
+ ...(0, import_ui48.bindPopover)(settingsPopupState)
1747
2000
  },
1748
- /* @__PURE__ */ React54.createElement(import_ui45.Paper, { component: import_ui45.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React54.createElement(import_ui45.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React54.createElement(import_icons15.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React54.createElement(import_ui45.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React54.createElement(import_ui45.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React54.createElement(import_icons15.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React54.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
2001
+ /* @__PURE__ */ React57.createElement(import_ui48.Paper, { component: import_ui48.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React57.createElement(import_icons18.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React57.createElement(import_ui48.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React57.createElement(import_ui48.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React57.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
1749
2002
  ));
1750
2003
  };
1751
2004
  var DynamicSettings = ({ controls }) => {
1752
2005
  const tabs = controls.filter(({ type }) => type === "section");
1753
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui45.useTabs)(0);
2006
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui48.useTabs)(0);
1754
2007
  if (!tabs.length) {
1755
2008
  return null;
1756
2009
  }
1757
- return /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(import_ui45.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React54.createElement(import_ui45.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React54.createElement(import_ui45.Divider, null), tabs.map(({ value }, index) => {
1758
- return /* @__PURE__ */ React54.createElement(import_ui45.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React54.createElement(import_ui45.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
2010
+ return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(import_ui48.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React57.createElement(import_ui48.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React57.createElement(import_ui48.Divider, null), tabs.map(({ value }, index) => {
2011
+ return /* @__PURE__ */ React57.createElement(import_ui48.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React57.createElement(import_ui48.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
1759
2012
  if (item.type === "control") {
1760
- return /* @__PURE__ */ React54.createElement(Control3, { key: item.value.bind, control: item.value });
2013
+ return /* @__PURE__ */ React57.createElement(Control3, { key: item.value.bind, control: item.value });
1761
2014
  }
1762
2015
  return null;
1763
2016
  })));
@@ -1767,24 +2020,24 @@ var Control3 = ({ control }) => {
1767
2020
  if (!getControlByType(control.type)) {
1768
2021
  return null;
1769
2022
  }
1770
- return /* @__PURE__ */ React54.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React54.createElement(import_editor_controls36.ControlLabel, null, control.label) : null, /* @__PURE__ */ React54.createElement(Control, { type: control.type, props: control.props }));
2023
+ return /* @__PURE__ */ React57.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React57.createElement(import_editor_controls41.ControlLabel, null, control.label) : null, /* @__PURE__ */ React57.createElement(Control, { type: control.type, props: control.props }));
1771
2024
  };
1772
2025
 
1773
2026
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
1774
- var React55 = __toESM(require("react"));
1775
- var import_editor_controls37 = require("@elementor/editor-controls");
1776
- var import_icons16 = require("@elementor/icons");
1777
- var import_i18n34 = require("@wordpress/i18n");
2027
+ var React58 = __toESM(require("react"));
2028
+ var import_editor_controls42 = require("@elementor/editor-controls");
2029
+ var import_icons19 = require("@elementor/icons");
2030
+ var import_i18n38 = require("@wordpress/i18n");
1778
2031
  var usePropDynamicAction = () => {
1779
- const { bind } = (0, import_editor_controls37.useBoundProp)();
2032
+ const { bind } = (0, import_editor_controls42.useBoundProp)();
1780
2033
  const { elementType } = useElement();
1781
2034
  const propType = elementType.propsSchema[bind];
1782
2035
  const visible = !!propType && supportsDynamic(propType);
1783
2036
  return {
1784
2037
  visible,
1785
- icon: import_icons16.DatabaseIcon,
1786
- title: (0, import_i18n34.__)("Dynamic Tags", "elementor"),
1787
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React55.createElement(DynamicSelection, { onSelect: closePopover })
2038
+ icon: import_icons19.DatabaseIcon,
2039
+ title: (0, import_i18n38.__)("Dynamic Tags", "elementor"),
2040
+ popoverContent: ({ closePopover }) => /* @__PURE__ */ React58.createElement(DynamicSelection, { onSelect: closePopover })
1788
2041
  };
1789
2042
  };
1790
2043