@elementor/editor-editing-panel 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/index.js +852 -615
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +790 -544
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +13 -11
  7. package/src/components/conditional-tooltip-wrapper.tsx +52 -0
  8. package/src/components/css-class-selector.tsx +59 -19
  9. package/src/components/multi-combobox/types.ts +1 -0
  10. package/src/components/style-sections/border-section/border-radius-field.tsx +4 -4
  11. package/src/components/style-sections/border-section/border-width-field.tsx +4 -4
  12. package/src/components/style-sections/layout-section/align-items-field.tsx +40 -60
  13. package/src/components/style-sections/layout-section/align-self-child-field.tsx +72 -0
  14. package/src/components/style-sections/layout-section/flex-direction-field.tsx +2 -2
  15. package/src/components/style-sections/layout-section/flex-order-field.tsx +14 -8
  16. package/src/components/style-sections/layout-section/flex-size-field.tsx +164 -0
  17. package/src/components/style-sections/layout-section/gap-control-field.tsx +18 -0
  18. package/src/components/style-sections/layout-section/justify-content-field.tsx +51 -78
  19. package/src/components/style-sections/layout-section/layout-section.tsx +9 -2
  20. package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +52 -0
  21. package/src/components/style-sections/layout-section/wrap-field.tsx +1 -1
  22. package/src/components/style-sections/position-section/position-section.tsx +3 -3
  23. package/src/components/style-sections/typography-section/line-height-field.tsx +21 -0
  24. package/src/components/style-sections/typography-section/text-style-field.tsx +31 -8
  25. package/src/components/style-sections/typography-section/typography-section.tsx +3 -1
  26. package/src/components/style-tab.tsx +2 -11
  27. package/src/contexts/style-context.tsx +2 -2
  28. package/src/controls-registry/controls-registry.tsx +4 -0
  29. package/src/dynamics/components/dynamic-selection-control.tsx +8 -5
  30. package/src/dynamics/components/dynamic-selection.tsx +10 -8
  31. package/src/dynamics/dynamic-control.tsx +9 -11
  32. package/src/dynamics/utils.ts +20 -3
  33. package/src/hooks/use-style-prop-history.ts +1 -1
  34. package/src/hooks/use-styles-field.ts +2 -0
package/dist/index.js CHANGED
@@ -28,13 +28,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
33
  replaceControl: () => replaceControl,
34
- useBoundProp: () => import_editor_controls43.useBoundProp
34
+ useBoundProp: () => import_editor_controls47.useBoundProp
35
35
  });
36
- module.exports = __toCommonJS(src_exports);
37
- var import_editor_controls43 = require("@elementor/editor-controls");
36
+ module.exports = __toCommonJS(index_exports);
37
+ var import_editor_controls47 = require("@elementor/editor-controls");
38
38
 
39
39
  // src/control-replacement.tsx
40
40
  var import_editor_controls = require("@elementor/editor-controls");
@@ -46,7 +46,7 @@ var import_editor_panels3 = require("@elementor/editor-panels");
46
46
  var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
47
47
 
48
48
  // src/hooks/use-close-editor-panel.ts
49
- var import_react14 = require("react");
49
+ var import_react16 = require("react");
50
50
  var import_editor_elements8 = require("@elementor/editor-elements");
51
51
  var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
52
52
 
@@ -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 React54 = __toESM(require("react"));
58
- var import_editor_controls38 = require("@elementor/editor-controls");
57
+ var React60 = __toESM(require("react"));
58
+ var import_editor_controls42 = 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_ui46 = require("@elementor/ui");
62
- var import_i18n35 = require("@wordpress/i18n");
61
+ var import_ui52 = require("@elementor/ui");
62
+ var import_i18n40 = 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 React53 = __toESM(require("react"));
134
- var import_react13 = require("react");
135
- var import_ui45 = require("@elementor/ui");
136
- var import_i18n34 = require("@wordpress/i18n");
133
+ var React59 = __toESM(require("react"));
134
+ var import_react15 = require("react");
135
+ var import_ui51 = require("@elementor/ui");
136
+ var import_i18n39 = require("@wordpress/i18n");
137
137
 
138
138
  // src/components/settings-tab.tsx
139
139
  var React9 = __toESM(require("react"));
@@ -150,7 +150,9 @@ var controlTypes = {
150
150
  text: { component: import_editor_controls2.TextControl, layout: "two-columns" },
151
151
  textarea: { component: import_editor_controls2.TextAreaControl, layout: "full" },
152
152
  size: { component: import_editor_controls2.SizeControl, layout: "two-columns" },
153
- select: { component: import_editor_controls2.SelectControl, layout: "two-columns" }
153
+ select: { component: import_editor_controls2.SelectControl, layout: "two-columns" },
154
+ link: { component: import_editor_controls2.LinkControl, layout: "full" },
155
+ url: { component: import_editor_controls2.UrlControl, layout: "full" }
154
156
  };
155
157
  var getControlByType = (type) => controlTypes[type]?.component;
156
158
  var getLayoutByType = (type) => controlTypes[type].layout;
@@ -283,13 +285,12 @@ var Control2 = ({ control }) => {
283
285
  };
284
286
 
285
287
  // src/components/style-tab.tsx
286
- var React52 = __toESM(require("react"));
287
- var import_react12 = require("react");
288
+ var React58 = __toESM(require("react"));
289
+ var import_react14 = require("react");
288
290
  var import_editor_elements5 = require("@elementor/editor-elements");
289
291
  var import_editor_responsive = require("@elementor/editor-responsive");
290
- var import_editor_styles = require("@elementor/editor-styles");
291
- var import_ui44 = require("@elementor/ui");
292
- var import_i18n33 = require("@wordpress/i18n");
292
+ var import_ui50 = require("@elementor/ui");
293
+ var import_i18n38 = require("@wordpress/i18n");
293
294
 
294
295
  // src/contexts/classes-prop-context.tsx
295
296
  var React10 = __toESM(require("react"));
@@ -322,18 +323,55 @@ function useStyle() {
322
323
  }
323
324
 
324
325
  // src/components/css-class-selector.tsx
325
- var React13 = __toESM(require("react"));
326
+ var React14 = __toESM(require("react"));
326
327
  var import_editor_elements2 = require("@elementor/editor-elements");
327
328
  var import_editor_props = require("@elementor/editor-props");
328
- var import_ui9 = require("@elementor/ui");
329
+ var import_editor_styles_repository = require("@elementor/editor-styles-repository");
330
+ var import_ui10 = require("@elementor/ui");
329
331
  var import_i18n = require("@wordpress/i18n");
330
332
 
331
- // src/components/multi-combobox/multi-combobox.tsx
333
+ // src/components/conditional-tooltip-wrapper.tsx
334
+ var import_react6 = require("react");
332
335
  var React12 = __toESM(require("react"));
333
- var import_ui8 = require("@elementor/ui");
336
+ var import_ui7 = require("@elementor/ui");
337
+ var ConditionalTooltipWrapper = ({ maxWidth, title }) => {
338
+ const elRef = (0, import_react6.useRef)(null);
339
+ const [isOverflown, setIsOverflown] = (0, import_react6.useState)(false);
340
+ (0, import_react6.useEffect)(() => {
341
+ const onResize = () => {
342
+ const element = elRef.current;
343
+ if (element) {
344
+ setIsOverflown(element.scrollWidth > element.clientWidth);
345
+ }
346
+ };
347
+ onResize();
348
+ window.addEventListener("resize", onResize);
349
+ return () => {
350
+ window.removeEventListener("resize", onResize);
351
+ };
352
+ }, []);
353
+ if (isOverflown) {
354
+ return /* @__PURE__ */ React12.createElement(import_ui7.Tooltip, { title, placement: "top" }, /* @__PURE__ */ React12.createElement(Content, { maxWidth, ref: elRef, title }));
355
+ }
356
+ return /* @__PURE__ */ React12.createElement(Content, { maxWidth, ref: elRef, title });
357
+ };
358
+ var Content = React12.forwardRef(({ maxWidth, title, ...rest }, ref) => /* @__PURE__ */ React12.createElement(
359
+ import_ui7.Box,
360
+ {
361
+ ref,
362
+ position: "relative",
363
+ sx: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth },
364
+ ...rest
365
+ },
366
+ title
367
+ ));
368
+
369
+ // src/components/multi-combobox/multi-combobox.tsx
370
+ var React13 = __toESM(require("react"));
371
+ var import_ui9 = require("@elementor/ui");
334
372
 
335
373
  // src/components/multi-combobox/use-combobox-actions.ts
336
- var import_ui7 = require("@elementor/ui");
374
+ var import_ui8 = require("@elementor/ui");
337
375
  var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
338
376
  action: {
339
377
  is: (opt) => typeof opt !== "string" && "action" in opt,
@@ -367,7 +405,7 @@ var useComboboxActions = (applied, actions, optionsLabel, onSelect) => ({
367
405
  }
368
406
  }
369
407
  });
370
- var filter = (0, import_ui7.createFilterOptions)();
408
+ var filter = (0, import_ui8.createFilterOptions)();
371
409
  var createActionOption = (groupLabel, action, inputValue) => ({
372
410
  value: "",
373
411
  label: inputValue,
@@ -382,7 +420,7 @@ var createActionOption = (groupLabel, action, inputValue) => ({
382
420
  var MultiCombobox = ({
383
421
  actions = {},
384
422
  selected,
385
- options: options7,
423
+ options: options10,
386
424
  optionsLabel,
387
425
  onSelect,
388
426
  onCreate,
@@ -395,8 +433,8 @@ var MultiCombobox = ({
395
433
  optionsLabel,
396
434
  onSelect
397
435
  );
398
- return /* @__PURE__ */ React12.createElement(
399
- import_ui8.Autocomplete,
436
+ return /* @__PURE__ */ React13.createElement(
437
+ import_ui9.Autocomplete,
400
438
  {
401
439
  ...props,
402
440
  freeSolo: true,
@@ -406,10 +444,10 @@ var MultiCombobox = ({
406
444
  disableClearable: true,
407
445
  handleHomeEndKeys: true,
408
446
  value: selected,
409
- options: options7,
447
+ options: options10,
410
448
  renderGroup,
411
- renderInput: (params) => /* @__PURE__ */ React12.createElement(import_ui8.TextField, { ...params }),
412
- getLimitTagsText: (more) => /* @__PURE__ */ React12.createElement(import_ui8.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
449
+ renderInput: (params) => /* @__PURE__ */ React13.createElement(import_ui9.TextField, { ...params }),
450
+ getLimitTagsText: (more) => /* @__PURE__ */ React13.createElement(import_ui9.Chip, { size: "tiny", variant: "standard", label: `+${more}`, clickable: true }),
413
451
  onChange: (_, selectedOrTypedValue, reason) => {
414
452
  if (reason === "createOption") {
415
453
  const typedValue = selectedOrTypedValue.find((option) => typeof option === "string");
@@ -420,7 +458,7 @@ var MultiCombobox = ({
420
458
  return actionProps.onChange(action);
421
459
  }
422
460
  const selectedValues = selectedOrTypedValue.filter((v) => typeof v !== "string");
423
- const fixedValues = options7.filter((option) => option.fixed);
461
+ const fixedValues = options10.filter((option) => option.fixed);
424
462
  optionProps.onChange([.../* @__PURE__ */ new Set([...fixedValues, ...selectedValues])]);
425
463
  },
426
464
  getOptionLabel: (option) => {
@@ -441,39 +479,46 @@ var MultiCombobox = ({
441
479
  }
442
480
  );
443
481
  };
444
- var renderGroup = (params) => /* @__PURE__ */ React12.createElement(Group, { key: params.key }, /* @__PURE__ */ React12.createElement(GroupHeader, null, params.group), /* @__PURE__ */ React12.createElement(GroupItems, null, params.children));
445
- var Group = (0, import_ui8.styled)("li")`
482
+ var renderGroup = (params) => /* @__PURE__ */ React13.createElement(Group, { key: params.key }, /* @__PURE__ */ React13.createElement(GroupHeader, null, params.group), /* @__PURE__ */ React13.createElement(GroupItems, null, params.children));
483
+ var Group = (0, import_ui9.styled)("li")`
446
484
  &:not( :last-of-type ) {
447
485
  border-bottom: 1px solid ${({ theme }) => theme.palette.divider};
448
486
  }
449
487
  `;
450
- var GroupHeader = (0, import_ui8.styled)(import_ui8.Box)(({ theme }) => ({
488
+ var GroupHeader = (0, import_ui9.styled)(import_ui9.Box)(({ theme }) => ({
451
489
  position: "sticky",
452
490
  top: "-8px",
453
491
  padding: theme.spacing(1, 2),
454
492
  color: theme.palette.text.tertiary
455
493
  }));
456
- var GroupItems = (0, import_ui8.styled)("ul")`
494
+ var GroupItems = (0, import_ui9.styled)("ul")`
457
495
  padding: 0;
458
496
  `;
459
497
 
460
498
  // src/components/css-class-selector.tsx
461
499
  var ID = "elementor-css-class-selector";
462
500
  var TAGS_LIMIT = 8;
501
+ var EMPTY_OPTION = {
502
+ label: (0, import_i18n.__)("local", "elementor"),
503
+ value: "",
504
+ fixed: true,
505
+ color: "primary",
506
+ provider: import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY
507
+ };
463
508
  function CssClassSelector() {
464
- const options7 = useOptions();
509
+ const options10 = useOptions();
510
+ const [appliedIds, setAppliedIds] = useAppliedClassesIds();
465
511
  const { id: activeId, setId: setActiveId } = useStyle();
466
- const [appliedIds] = useAppliedClassesIds();
467
- const handleApply = useHandleApply();
512
+ const handleApply = useHandleApply(appliedIds, setAppliedIds);
468
513
  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);
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(
514
+ const applied = useAppliedOptions(options10, appliedIds);
515
+ const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
516
+ return /* @__PURE__ */ React14.createElement(import_ui10.Stack, { gap: 1, p: 2 }, /* @__PURE__ */ React14.createElement(import_ui10.Typography, { component: "label", variant: "caption", htmlFor: ID }, (0, import_i18n.__)("CSS Classes", "elementor")), /* @__PURE__ */ React14.createElement(
472
517
  MultiCombobox,
473
518
  {
474
519
  id: ID,
475
520
  size: "tiny",
476
- options: options7,
521
+ options: options10,
477
522
  selected: applied,
478
523
  onSelect: handleApply,
479
524
  limitTags: TAGS_LIMIT,
@@ -481,17 +526,18 @@ function CssClassSelector() {
481
526
  renderTags: (values, getTagProps) => values.map((value, index) => {
482
527
  const chipProps = getTagProps({ index });
483
528
  const isActive = value.value === active?.value;
484
- return /* @__PURE__ */ React13.createElement(
485
- import_ui9.Chip,
529
+ return /* @__PURE__ */ React14.createElement(
530
+ import_ui10.Chip,
486
531
  {
487
532
  ...chipProps,
488
533
  key: chipProps.key,
489
534
  size: "small",
490
- label: value.label,
535
+ label: /* @__PURE__ */ React14.createElement(ConditionalTooltipWrapper, { maxWidth: "10ch", title: value.label }),
491
536
  variant: isActive ? "filled" : "standard",
492
537
  color: isActive && value.color ? value.color : "default",
493
538
  onClick: () => handleActivate(value),
494
- onDelete: null
539
+ onDelete: null,
540
+ "aria-pressed": isActive
495
541
  }
496
542
  );
497
543
  })
@@ -500,13 +546,31 @@ function CssClassSelector() {
500
546
  }
501
547
  function useOptions() {
502
548
  const { element } = useElement();
503
- const styleDefs = (0, import_editor_elements2.useElementStyles)(element.id);
504
- return Object.values(styleDefs).map((styleDef) => ({
505
- label: styleDef.label,
506
- value: styleDef.id,
507
- fixed: true,
508
- color: "primary"
509
- }));
549
+ return (0, import_editor_styles_repository.useAllStylesByProvider)({ elementId: element.id }).flatMap(([providerKey, styleDefs]) => {
550
+ const isElements = providerKey === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY;
551
+ if (isElements && styleDefs.length === 0) {
552
+ return [EMPTY_OPTION];
553
+ }
554
+ return styleDefs.map((styleDef) => {
555
+ return {
556
+ label: styleDef.label,
557
+ value: styleDef.id,
558
+ fixed: isElements,
559
+ color: isElements ? "primary" : "global",
560
+ provider: providerKey
561
+ };
562
+ });
563
+ });
564
+ }
565
+ function useAppliedOptions(options10, appliedIds) {
566
+ const applied = appliedIds.map((id) => options10.find((option) => option.value === id)).filter((option) => !!option);
567
+ const hasElementsProviderStyleApplied = applied.some(
568
+ (option) => option.provider === import_editor_styles_repository.ELEMENTS_STYLES_PROVIDER_KEY
569
+ );
570
+ if (!hasElementsProviderStyleApplied) {
571
+ applied.unshift(EMPTY_OPTION);
572
+ }
573
+ return applied;
510
574
  }
511
575
  function useAppliedClassesIds() {
512
576
  const { element } = useElement();
@@ -522,11 +586,10 @@ function useAppliedClassesIds() {
522
586
  };
523
587
  return [value, setValue];
524
588
  }
525
- function useHandleApply() {
589
+ function useHandleApply(appliedIds, setAppliedIds) {
526
590
  const { id: activeId, setId: setActiveId } = useStyle();
527
- const [appliedIds, setAppliedIds] = useAppliedClassesIds();
528
591
  return (selectedOptions) => {
529
- const selectedValues = selectedOptions.map(({ value }) => value);
592
+ const selectedValues = selectedOptions.map(({ value }) => value).filter((value) => value !== EMPTY_OPTION.value);
530
593
  const isSameClassesAlreadyApplied = selectedValues.length === appliedIds.length && selectedValues.every((value) => appliedIds.includes(value));
531
594
  if (isSameClassesAlreadyApplied) {
532
595
  return;
@@ -545,23 +608,24 @@ function useHandleApply() {
545
608
  }
546
609
 
547
610
  // src/components/style-sections/background-section/background-section.tsx
548
- var React16 = __toESM(require("react"));
611
+ var React17 = __toESM(require("react"));
549
612
  var import_editor_controls7 = require("@elementor/editor-controls");
550
- var import_ui11 = require("@elementor/ui");
613
+ var import_ui12 = require("@elementor/ui");
551
614
 
552
615
  // src/controls-registry/styles-field.tsx
553
- var React14 = __toESM(require("react"));
616
+ var React15 = __toESM(require("react"));
554
617
  var import_editor_controls5 = require("@elementor/editor-controls");
555
618
 
556
619
  // src/hooks/use-styles-field.ts
557
- var import_react6 = require("react");
620
+ var import_react7 = require("react");
558
621
  var import_editor_elements3 = require("@elementor/editor-elements");
622
+ var import_i18n2 = require("@wordpress/i18n");
559
623
  var useStylesField = (propName) => {
560
624
  const { element } = useElement();
561
625
  const { id, meta } = useStyle();
562
626
  const classesProp = useClassesProp();
563
- const previousValue = (0, import_react6.useRef)(null);
564
- const onChangeCallbacks = (0, import_react6.useRef)(/* @__PURE__ */ new Set());
627
+ const previousValue = (0, import_react7.useRef)(null);
628
+ const onChangeCallbacks = (0, import_react7.useRef)(/* @__PURE__ */ new Set());
565
629
  const value = (0, import_editor_elements3.useElementStyleProp)({
566
630
  elementID: element.id,
567
631
  styleDefID: id,
@@ -574,13 +638,14 @@ var useStylesField = (propName) => {
574
638
  styleDefID: id,
575
639
  props: { [propName]: newValue },
576
640
  meta,
577
- bind: classesProp
641
+ bind: classesProp,
642
+ label: (0, import_i18n2.__)("local", "elementor")
578
643
  });
579
644
  };
580
645
  const registerChangeListener = (callback) => {
581
646
  onChangeCallbacks.current.add(callback);
582
647
  };
583
- (0, import_react6.useEffect)(() => {
648
+ (0, import_react7.useEffect)(() => {
584
649
  onChangeCallbacks.current.forEach((cb) => {
585
650
  cb(value, previousValue.current);
586
651
  });
@@ -592,40 +657,40 @@ var useStylesField = (propName) => {
592
657
  // src/controls-registry/styles-field.tsx
593
658
  var StylesField = ({ bind, children }) => {
594
659
  const [value, setValue] = useStylesField(bind);
595
- return /* @__PURE__ */ React14.createElement(import_editor_controls5.BoundPropProvider, { setValue, value, bind }, children);
660
+ return /* @__PURE__ */ React15.createElement(import_editor_controls5.BoundPropProvider, { setValue, value, bind }, children);
596
661
  };
597
662
 
598
663
  // src/components/style-sections/background-section/background-color-field.tsx
599
- var React15 = __toESM(require("react"));
664
+ var React16 = __toESM(require("react"));
600
665
  var import_editor_controls6 = require("@elementor/editor-controls");
601
- var import_ui10 = require("@elementor/ui");
602
- var import_i18n2 = require("@wordpress/i18n");
666
+ var import_ui11 = require("@elementor/ui");
667
+ var import_i18n3 = require("@wordpress/i18n");
603
668
  var BackgroundColorField = () => {
604
- return /* @__PURE__ */ React15.createElement(StylesField, { bind: "background-color" }, /* @__PURE__ */ React15.createElement(import_ui10.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React15.createElement(import_ui10.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React15.createElement(import_editor_controls6.ControlLabel, null, (0, import_i18n2.__)("Color", "elementor"))), /* @__PURE__ */ React15.createElement(import_ui10.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React15.createElement(import_editor_controls6.ColorControl, null))));
669
+ return /* @__PURE__ */ React16.createElement(StylesField, { bind: "background-color" }, /* @__PURE__ */ React16.createElement(import_ui11.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React16.createElement(import_ui11.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React16.createElement(import_editor_controls6.ControlLabel, null, (0, import_i18n3.__)("Color", "elementor"))), /* @__PURE__ */ React16.createElement(import_ui11.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React16.createElement(import_editor_controls6.ColorControl, null))));
605
670
  };
606
671
 
607
672
  // src/components/style-sections/background-section/background-section.tsx
608
673
  var BackgroundSection = () => {
609
- return /* @__PURE__ */ React16.createElement(import_ui11.Stack, { gap: 1.5 }, /* @__PURE__ */ React16.createElement(StylesField, { bind: "background-image" }, /* @__PURE__ */ React16.createElement(import_editor_controls7.BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React16.createElement(BackgroundColorField, null));
674
+ return /* @__PURE__ */ React17.createElement(import_ui12.Stack, { gap: 1.5 }, /* @__PURE__ */ React17.createElement(StylesField, { bind: "background-image" }, /* @__PURE__ */ React17.createElement(import_editor_controls7.BackgroundOverlayRepeaterControl, null)), /* @__PURE__ */ React17.createElement(BackgroundColorField, null));
610
675
  };
611
676
 
612
677
  // src/components/style-sections/border-section/border-section.tsx
613
- var React23 = __toESM(require("react"));
614
- var import_ui15 = require("@elementor/ui");
678
+ var React24 = __toESM(require("react"));
679
+ var import_ui16 = require("@elementor/ui");
615
680
 
616
681
  // src/components/style-sections/border-section/border-field.tsx
617
- var React21 = __toESM(require("react"));
618
- var import_i18n6 = require("@wordpress/i18n");
682
+ var React22 = __toESM(require("react"));
683
+ var import_i18n7 = require("@wordpress/i18n");
619
684
 
620
685
  // src/components/add-or-remove-content.tsx
621
- var React17 = __toESM(require("react"));
686
+ var React18 = __toESM(require("react"));
622
687
  var import_editor_controls8 = require("@elementor/editor-controls");
623
688
  var import_icons3 = require("@elementor/icons");
624
- var import_ui12 = require("@elementor/ui");
689
+ var import_ui13 = require("@elementor/ui");
625
690
  var SIZE2 = "tiny";
626
691
  var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
627
- return /* @__PURE__ */ React17.createElement(import_ui12.Stack, { gap: 1.5 }, /* @__PURE__ */ React17.createElement(
628
- import_ui12.Stack,
692
+ return /* @__PURE__ */ React18.createElement(import_ui13.Stack, { gap: 1.5 }, /* @__PURE__ */ React18.createElement(
693
+ import_ui13.Stack,
629
694
  {
630
695
  direction: "row",
631
696
  sx: {
@@ -633,75 +698,76 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
633
698
  alignItems: "center"
634
699
  }
635
700
  },
636
- /* @__PURE__ */ React17.createElement(import_editor_controls8.ControlLabel, null, label),
637
- isAdded ? /* @__PURE__ */ React17.createElement(import_ui12.IconButton, { size: SIZE2, onClick: onRemove }, /* @__PURE__ */ React17.createElement(import_icons3.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React17.createElement(import_ui12.IconButton, { size: SIZE2, onClick: onAdd }, /* @__PURE__ */ React17.createElement(import_icons3.PlusIcon, { fontSize: SIZE2 }))
638
- ), /* @__PURE__ */ React17.createElement(import_ui12.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React17.createElement(import_ui12.Stack, { gap: 1.5 }, children)));
701
+ /* @__PURE__ */ React18.createElement(import_editor_controls8.ControlLabel, null, label),
702
+ isAdded ? /* @__PURE__ */ React18.createElement(import_ui13.IconButton, { size: SIZE2, onClick: onRemove }, /* @__PURE__ */ React18.createElement(import_icons3.MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React18.createElement(import_ui13.IconButton, { size: SIZE2, onClick: onAdd }, /* @__PURE__ */ React18.createElement(import_icons3.PlusIcon, { fontSize: SIZE2 }))
703
+ ), /* @__PURE__ */ React18.createElement(import_ui13.Collapse, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React18.createElement(import_ui13.Stack, { gap: 1.5 }, children)));
639
704
  };
640
705
 
641
706
  // src/components/style-sections/border-section/border-color-field.tsx
642
- var React18 = __toESM(require("react"));
707
+ var React19 = __toESM(require("react"));
643
708
  var import_editor_controls9 = require("@elementor/editor-controls");
644
- var import_ui13 = require("@elementor/ui");
645
- var import_i18n3 = require("@wordpress/i18n");
709
+ var import_ui14 = require("@elementor/ui");
710
+ var import_i18n4 = require("@wordpress/i18n");
646
711
  var BorderColorField = () => {
647
- return /* @__PURE__ */ React18.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React18.createElement(import_ui13.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React18.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React18.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n3.__)("Border Color", "elementor"))), /* @__PURE__ */ React18.createElement(import_ui13.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React18.createElement(import_editor_controls9.ColorControl, null))));
712
+ return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls9.ControlLabel, null, (0, import_i18n4.__)("Border Color", "elementor"))), /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls9.ColorControl, null))));
648
713
  };
649
714
 
650
715
  // src/components/style-sections/border-section/border-style-field.tsx
651
- var React19 = __toESM(require("react"));
716
+ var React20 = __toESM(require("react"));
652
717
  var import_editor_controls10 = require("@elementor/editor-controls");
653
- var import_ui14 = require("@elementor/ui");
654
- var import_i18n4 = require("@wordpress/i18n");
718
+ var import_ui15 = require("@elementor/ui");
719
+ var import_i18n5 = require("@wordpress/i18n");
655
720
  var borderStyles = [
656
- { value: "none", label: (0, import_i18n4.__)("None", "elementor") },
657
- { value: "solid", label: (0, import_i18n4.__)("Solid", "elementor") },
658
- { value: "dashed", label: (0, import_i18n4.__)("Dashed", "elementor") },
659
- { value: "dotted", label: (0, import_i18n4.__)("Dotted", "elementor") },
660
- { value: "double", label: (0, import_i18n4.__)("Double", "elementor") },
661
- { value: "groove", label: (0, import_i18n4.__)("Groove", "elementor") },
662
- { value: "ridge", label: (0, import_i18n4.__)("Ridge", "elementor") },
663
- { value: "inset", label: (0, import_i18n4.__)("Inset", "elementor") },
664
- { value: "outset", label: (0, import_i18n4.__)("Outset", "elementor") }
721
+ { value: "none", label: (0, import_i18n5.__)("None", "elementor") },
722
+ { value: "solid", label: (0, import_i18n5.__)("Solid", "elementor") },
723
+ { value: "dashed", label: (0, import_i18n5.__)("Dashed", "elementor") },
724
+ { value: "dotted", label: (0, import_i18n5.__)("Dotted", "elementor") },
725
+ { value: "double", label: (0, import_i18n5.__)("Double", "elementor") },
726
+ { value: "groove", label: (0, import_i18n5.__)("Groove", "elementor") },
727
+ { value: "ridge", label: (0, import_i18n5.__)("Ridge", "elementor") },
728
+ { value: "inset", label: (0, import_i18n5.__)("Inset", "elementor") },
729
+ { value: "outset", label: (0, import_i18n5.__)("Outset", "elementor") }
665
730
  ];
666
731
  var BorderStyleField = () => {
667
- return /* @__PURE__ */ React19.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls10.ControlLabel, null, (0, import_i18n4.__)("Border Type", "elementor"))), /* @__PURE__ */ React19.createElement(import_ui14.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React19.createElement(import_editor_controls10.SelectControl, { options: borderStyles }))));
732
+ return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React20.createElement(import_ui15.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React20.createElement(import_ui15.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls10.ControlLabel, null, (0, import_i18n5.__)("Border Type", "elementor"))), /* @__PURE__ */ React20.createElement(import_ui15.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React20.createElement(import_editor_controls10.SelectControl, { options: borderStyles }))));
668
733
  };
669
734
 
670
735
  // src/components/style-sections/border-section/border-width-field.tsx
671
- var React20 = __toESM(require("react"));
736
+ var React21 = __toESM(require("react"));
672
737
  var import_editor_controls11 = require("@elementor/editor-controls");
738
+ var import_editor_props2 = require("@elementor/editor-props");
673
739
  var import_icons4 = require("@elementor/icons");
674
- var import_i18n5 = require("@wordpress/i18n");
740
+ var import_i18n6 = require("@wordpress/i18n");
675
741
  var edges = [
676
742
  {
677
- label: (0, import_i18n5.__)("Top", "elementor"),
678
- icon: /* @__PURE__ */ React20.createElement(import_icons4.SideTopIcon, { fontSize: "tiny" }),
743
+ label: (0, import_i18n6.__)("Top", "elementor"),
744
+ icon: /* @__PURE__ */ React21.createElement(import_icons4.SideTopIcon, { fontSize: "tiny" }),
679
745
  bind: "top"
680
746
  },
681
747
  {
682
- label: (0, import_i18n5.__)("Right", "elementor"),
683
- icon: /* @__PURE__ */ React20.createElement(import_icons4.SideRightIcon, { fontSize: "tiny" }),
748
+ label: (0, import_i18n6.__)("Right", "elementor"),
749
+ icon: /* @__PURE__ */ React21.createElement(import_icons4.SideRightIcon, { fontSize: "tiny" }),
684
750
  bind: "right"
685
751
  },
686
752
  {
687
- label: (0, import_i18n5.__)("Bottom", "elementor"),
688
- icon: /* @__PURE__ */ React20.createElement(import_icons4.SideBottomIcon, { fontSize: "tiny" }),
753
+ label: (0, import_i18n6.__)("Bottom", "elementor"),
754
+ icon: /* @__PURE__ */ React21.createElement(import_icons4.SideBottomIcon, { fontSize: "tiny" }),
689
755
  bind: "bottom"
690
756
  },
691
757
  {
692
- label: (0, import_i18n5.__)("Left", "elementor"),
693
- icon: /* @__PURE__ */ React20.createElement(import_icons4.SideLeftIcon, { fontSize: "tiny" }),
758
+ label: (0, import_i18n6.__)("Left", "elementor"),
759
+ icon: /* @__PURE__ */ React21.createElement(import_icons4.SideLeftIcon, { fontSize: "tiny" }),
694
760
  bind: "left"
695
761
  }
696
762
  ];
697
763
  var BorderWidthField = () => {
698
- return /* @__PURE__ */ React20.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React20.createElement(
764
+ return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React21.createElement(
699
765
  import_editor_controls11.EqualUnequalSizesControl,
700
766
  {
701
- label: (0, import_i18n5.__)("Border Width", "elementor"),
702
- icon: /* @__PURE__ */ React20.createElement(import_icons4.SideAllIcon, { fontSize: "tiny" }),
703
767
  items: edges,
704
- multiSizeType: "border-width"
768
+ label: (0, import_i18n6.__)("Border Width", "elementor"),
769
+ icon: /* @__PURE__ */ React21.createElement(import_icons4.SideAllIcon, { fontSize: "tiny" }),
770
+ multiSizePropTypeUtil: import_editor_props2.borderWidthPropTypeUtil
705
771
  }
706
772
  ));
707
773
  };
@@ -729,260 +795,327 @@ var BorderField = () => {
729
795
  setBorderStyle(null);
730
796
  };
731
797
  const hasBorder = Boolean(borderWidth || borderColor || borderStyle);
732
- return /* @__PURE__ */ React21.createElement(
798
+ return /* @__PURE__ */ React22.createElement(
733
799
  AddOrRemoveContent,
734
800
  {
735
- label: (0, import_i18n6.__)("Border", "elementor"),
801
+ label: (0, import_i18n7.__)("Border", "elementor"),
736
802
  isAdded: hasBorder,
737
803
  onAdd: addBorder,
738
804
  onRemove: removeBorder
739
805
  },
740
- /* @__PURE__ */ React21.createElement(BorderWidthField, null),
741
- /* @__PURE__ */ React21.createElement(BorderColorField, null),
742
- /* @__PURE__ */ React21.createElement(BorderStyleField, null)
806
+ /* @__PURE__ */ React22.createElement(BorderWidthField, null),
807
+ /* @__PURE__ */ React22.createElement(BorderColorField, null),
808
+ /* @__PURE__ */ React22.createElement(BorderStyleField, null)
743
809
  );
744
810
  };
745
811
 
746
812
  // src/components/style-sections/border-section/border-radius-field.tsx
747
- var React22 = __toESM(require("react"));
813
+ var React23 = __toESM(require("react"));
748
814
  var import_editor_controls12 = require("@elementor/editor-controls");
815
+ var import_editor_props3 = require("@elementor/editor-props");
749
816
  var import_icons5 = require("@elementor/icons");
750
- var import_i18n7 = require("@wordpress/i18n");
817
+ var import_i18n8 = require("@wordpress/i18n");
751
818
  var corners = [
752
819
  {
753
- label: (0, import_i18n7.__)("Top Left", "elementor"),
754
- icon: /* @__PURE__ */ React22.createElement(import_icons5.RadiusTopLeftIcon, { fontSize: "tiny" }),
820
+ label: (0, import_i18n8.__)("Top Left", "elementor"),
821
+ icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusTopLeftIcon, { fontSize: "tiny" }),
755
822
  bind: "top-left"
756
823
  },
757
824
  {
758
- label: (0, import_i18n7.__)("Top Right", "elementor"),
759
- icon: /* @__PURE__ */ React22.createElement(import_icons5.RadiusTopRightIcon, { fontSize: "tiny" }),
825
+ label: (0, import_i18n8.__)("Top Right", "elementor"),
826
+ icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusTopRightIcon, { fontSize: "tiny" }),
760
827
  bind: "top-right"
761
828
  },
762
829
  {
763
- label: (0, import_i18n7.__)("Bottom Right", "elementor"),
764
- icon: /* @__PURE__ */ React22.createElement(import_icons5.RadiusBottomRightIcon, { fontSize: "tiny" }),
830
+ label: (0, import_i18n8.__)("Bottom Right", "elementor"),
831
+ icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusBottomRightIcon, { fontSize: "tiny" }),
765
832
  bind: "bottom-right"
766
833
  },
767
834
  {
768
- label: (0, import_i18n7.__)("Bottom Left", "elementor"),
769
- icon: /* @__PURE__ */ React22.createElement(import_icons5.RadiusBottomLeftIcon, { fontSize: "tiny" }),
835
+ label: (0, import_i18n8.__)("Bottom Left", "elementor"),
836
+ icon: /* @__PURE__ */ React23.createElement(import_icons5.RadiusBottomLeftIcon, { fontSize: "tiny" }),
770
837
  bind: "bottom-left"
771
838
  }
772
839
  ];
773
840
  var BorderRadiusField = () => {
774
- return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React22.createElement(
841
+ return /* @__PURE__ */ React23.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React23.createElement(
775
842
  import_editor_controls12.EqualUnequalSizesControl,
776
843
  {
777
- label: (0, import_i18n7.__)("Border Radius", "elementor"),
778
- icon: /* @__PURE__ */ React22.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
779
844
  items: corners,
780
- multiSizeType: "border-radius"
845
+ label: (0, import_i18n8.__)("Border Radius", "elementor"),
846
+ icon: /* @__PURE__ */ React23.createElement(import_icons5.BorderCornersIcon, { fontSize: "tiny" }),
847
+ multiSizePropTypeUtil: import_editor_props3.borderRadiusPropTypeUtil
781
848
  }
782
849
  ));
783
850
  };
784
851
 
785
852
  // src/components/style-sections/border-section/border-section.tsx
786
- var BorderSection = () => /* @__PURE__ */ React23.createElement(import_ui15.Stack, { gap: 1.5 }, /* @__PURE__ */ React23.createElement(BorderRadiusField, null), /* @__PURE__ */ React23.createElement(import_ui15.Divider, null), /* @__PURE__ */ React23.createElement(BorderField, null));
853
+ var BorderSection = () => /* @__PURE__ */ React24.createElement(import_ui16.Stack, { gap: 1.5 }, /* @__PURE__ */ React24.createElement(BorderRadiusField, null), /* @__PURE__ */ React24.createElement(import_ui16.Divider, null), /* @__PURE__ */ React24.createElement(BorderField, null));
787
854
 
788
855
  // src/components/style-sections/effects-section/effects-section.tsx
789
- var React24 = __toESM(require("react"));
856
+ var React25 = __toESM(require("react"));
790
857
  var import_editor_controls13 = require("@elementor/editor-controls");
791
- var import_ui16 = require("@elementor/ui");
858
+ var import_ui17 = require("@elementor/ui");
792
859
  var EffectsSection = () => {
793
- return /* @__PURE__ */ React24.createElement(import_ui16.Stack, { gap: 1.5 }, /* @__PURE__ */ React24.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React24.createElement(import_editor_controls13.BoxShadowRepeaterControl, null)));
860
+ return /* @__PURE__ */ React25.createElement(import_ui17.Stack, { gap: 1.5 }, /* @__PURE__ */ React25.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React25.createElement(import_editor_controls13.BoxShadowRepeaterControl, null)));
794
861
  };
795
862
 
796
863
  // src/components/style-sections/layout-section/layout-section.tsx
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");
864
+ var React36 = __toESM(require("react"));
865
+ var import_editor_controls23 = require("@elementor/editor-controls");
866
+ var import_ui29 = require("@elementor/ui");
867
+ var import_i18n18 = require("@wordpress/i18n");
801
868
 
802
869
  // src/components/style-sections/layout-section/align-items-field.tsx
803
- var React25 = __toESM(require("react"));
870
+ var React27 = __toESM(require("react"));
804
871
  var import_editor_controls14 = require("@elementor/editor-controls");
805
872
  var import_icons6 = require("@elementor/icons");
806
- var import_ui18 = require("@elementor/ui");
807
- var import_i18n8 = require("@wordpress/i18n");
873
+ var import_ui20 = require("@elementor/ui");
874
+ var import_i18n9 = require("@wordpress/i18n");
808
875
 
809
876
  // src/hooks/use-direction.ts
810
- var import_ui17 = require("@elementor/ui");
877
+ var import_ui18 = require("@elementor/ui");
811
878
  function useDirection() {
812
- const theme = (0, import_ui17.useTheme)(), extendedWindow = window;
879
+ const theme = (0, import_ui18.useTheme)(), extendedWindow = window;
813
880
  const isUiRtl = "rtl" === theme.direction, isSiteRtl = !!extendedWindow.elementorFrontend?.config?.is_rtl;
814
881
  return { isSiteRtl, isUiRtl };
815
882
  }
816
883
 
884
+ // src/components/style-sections/layout-section/utils/rotated-icon.tsx
885
+ var React26 = __toESM(require("react"));
886
+ var import_react8 = require("react");
887
+ var import_ui19 = require("@elementor/ui");
888
+ var CLOCKWISE_ANGLES = {
889
+ row: 0,
890
+ column: 90,
891
+ "row-reverse": 180,
892
+ "column-reverse": 270
893
+ };
894
+ var COUNTER_CLOCKWISE_ANGLES = {
895
+ row: 0,
896
+ column: -90,
897
+ "row-reverse": -180,
898
+ "column-reverse": -270
899
+ };
900
+ var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
901
+ const rotate = (0, import_react8.useRef)(useGetTargetAngle(isClockwise, offset));
902
+ rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
903
+ return /* @__PURE__ */ React26.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
904
+ };
905
+ var useGetTargetAngle = (isClockwise, offset, existingRef) => {
906
+ const [direction] = useStylesField("flex-direction");
907
+ const isRtl = "rtl" === (0, import_ui19.useTheme)().direction;
908
+ const rotationMultiplier = isRtl ? -1 : 1;
909
+ const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
910
+ const currentAngle = existingRef ? existingRef.current * rotationMultiplier : angleMap[direction?.value || "row"] + offset;
911
+ const targetAngle = angleMap[direction?.value || "row"] + offset;
912
+ const diffToTargetAngle = (targetAngle - currentAngle + 360) % 360;
913
+ const formattedDiff = (diffToTargetAngle + 180) % 360 - 180;
914
+ return (currentAngle + formattedDiff) * rotationMultiplier;
915
+ };
916
+
817
917
  // src/components/style-sections/layout-section/align-items-field.tsx
918
+ var StartIcon = (0, import_ui20.withDirection)(import_icons6.LayoutAlignLeftIcon);
919
+ var EndIcon = (0, import_ui20.withDirection)(import_icons6.LayoutAlignRightIcon);
920
+ var iconProps = {
921
+ isClockwise: false,
922
+ offset: 90
923
+ };
924
+ var options = [
925
+ {
926
+ value: "start",
927
+ label: (0, import_i18n9.__)("Start", "elementor"),
928
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
929
+ showTooltip: true
930
+ },
931
+ {
932
+ value: "center",
933
+ label: (0, import_i18n9.__)("Center", "elementor"),
934
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons6.LayoutAlignCenterIcon, size, ...iconProps }),
935
+ showTooltip: true
936
+ },
937
+ {
938
+ value: "end",
939
+ label: (0, import_i18n9.__)("End", "elementor"),
940
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
941
+ showTooltip: true
942
+ },
943
+ {
944
+ value: "stretch",
945
+ label: (0, import_i18n9.__)("Stretch", "elementor"),
946
+ renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: import_icons6.LayoutDistributeVerticalIcon, size, ...iconProps }),
947
+ showTooltip: true
948
+ }
949
+ ];
818
950
  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 }))))));
951
+ const { isSiteRtl } = useDirection();
952
+ return /* @__PURE__ */ React27.createElement(import_ui20.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React27.createElement(import_ui20.ThemeProvider, null, /* @__PURE__ */ React27.createElement(StylesField, { bind: "align-items" }, /* @__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_controls14.ControlLabel, null, (0, import_i18n9.__)("Align items", "elementor"))), /* @__PURE__ */ React27.createElement(import_ui20.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React27.createElement(import_editor_controls14.ToggleControl, { options }))))));
821
953
  };
822
- var useOptions2 = () => {
823
- const StartIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignLeftIcon), EndIcon = (0, import_ui18.withDirection)(import_icons6.LayoutAlignRightIcon);
824
- return [
825
- {
826
- value: "start",
827
- label: (0, import_i18n8.__)("Start", "elementor"),
828
- renderContent: ({ size }) => /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: StartIcon, size }),
829
- showTooltip: true
830
- },
831
- {
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
848
- }
849
- ];
954
+
955
+ // src/components/style-sections/layout-section/align-self-child-field.tsx
956
+ var React28 = __toESM(require("react"));
957
+ var import_editor_controls15 = require("@elementor/editor-controls");
958
+ var import_icons7 = require("@elementor/icons");
959
+ var import_ui21 = require("@elementor/ui");
960
+ var import_i18n10 = require("@wordpress/i18n");
961
+ var StartIcon2 = (0, import_ui21.withDirection)(import_icons7.LayoutAlignLeftIcon);
962
+ var EndIcon2 = (0, import_ui21.withDirection)(import_icons7.LayoutAlignRightIcon);
963
+ var iconProps2 = {
964
+ isClockwise: false,
965
+ offset: 90
850
966
  };
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
- );
967
+ var options2 = [
968
+ {
969
+ value: "start",
970
+ label: (0, import_i18n10.__)("Start", "elementor"),
971
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
972
+ showTooltip: true
973
+ },
974
+ {
975
+ value: "center",
976
+ label: (0, import_i18n10.__)("Center", "elementor"),
977
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons7.LayoutAlignCenterIcon, size, ...iconProps2 }),
978
+ showTooltip: true
979
+ },
980
+ {
981
+ value: "end",
982
+ label: (0, import_i18n10.__)("End", "elementor"),
983
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
984
+ showTooltip: true
985
+ },
986
+ {
987
+ value: "stretch",
988
+ label: (0, import_i18n10.__)("Stretch", "elementor"),
989
+ renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(RotatedIcon, { icon: import_icons7.LayoutDistributeVerticalIcon, size, ...iconProps2 }),
990
+ showTooltip: true
991
+ }
992
+ ];
993
+ var AlignSelfChild = () => {
994
+ const { isSiteRtl } = useDirection();
995
+ return /* @__PURE__ */ React28.createElement(import_ui21.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React28.createElement(import_ui21.ThemeProvider, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "align-self" }, /* @__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_controls15.ControlLabel, null, (0, import_i18n10.__)("Align self", "elementor"))), /* @__PURE__ */ React28.createElement(import_ui21.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React28.createElement(import_editor_controls15.ToggleControl, { options: options2 }))))));
866
996
  };
867
997
 
868
998
  // src/components/style-sections/layout-section/display-field.tsx
869
- var React26 = __toESM(require("react"));
870
- var import_editor_controls15 = require("@elementor/editor-controls");
871
- var import_ui19 = require("@elementor/ui");
872
- var import_i18n9 = require("@wordpress/i18n");
999
+ var React29 = __toESM(require("react"));
1000
+ var import_editor_controls16 = require("@elementor/editor-controls");
1001
+ var import_ui22 = require("@elementor/ui");
1002
+ var import_i18n11 = require("@wordpress/i18n");
873
1003
  var DisplayField = () => {
874
- const options7 = [
1004
+ const options10 = [
875
1005
  {
876
1006
  value: "block",
877
- renderContent: () => (0, import_i18n9.__)("Block", "elementor"),
878
- label: (0, import_i18n9.__)("Block", "elementor")
1007
+ renderContent: () => (0, import_i18n11.__)("Block", "elementor"),
1008
+ label: (0, import_i18n11.__)("Block", "elementor")
879
1009
  },
880
1010
  {
881
1011
  value: "flex",
882
- renderContent: () => (0, import_i18n9.__)("Flex", "elementor"),
883
- label: (0, import_i18n9.__)("Flex", "elementor")
1012
+ renderContent: () => (0, import_i18n11.__)("Flex", "elementor"),
1013
+ label: (0, import_i18n11.__)("Flex", "elementor")
884
1014
  }
885
1015
  ];
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 })));
1016
+ return /* @__PURE__ */ React29.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React29.createElement(import_ui22.Stack, { gap: 1 }, /* @__PURE__ */ React29.createElement(import_editor_controls16.ControlLabel, null, (0, import_i18n11.__)("Display", "elementor")), /* @__PURE__ */ React29.createElement(import_editor_controls16.ToggleControl, { options: options10, fullWidth: true })));
887
1017
  };
888
1018
 
889
1019
  // 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 = [
1020
+ var React30 = __toESM(require("react"));
1021
+ var import_editor_controls17 = require("@elementor/editor-controls");
1022
+ var import_icons8 = require("@elementor/icons");
1023
+ var import_ui23 = require("@elementor/ui");
1024
+ var import_i18n12 = require("@wordpress/i18n");
1025
+ var options3 = [
896
1026
  {
897
1027
  value: "row",
898
- label: (0, import_i18n10.__)("Row", "elementor"),
1028
+ label: (0, import_i18n12.__)("Row", "elementor"),
899
1029
  renderContent: ({ size }) => {
900
- const StartIcon = (0, import_ui20.withDirection)(import_icons7.ArrowRightIcon);
901
- return /* @__PURE__ */ React27.createElement(StartIcon, { fontSize: size });
1030
+ const StartIcon4 = (0, import_ui23.withDirection)(import_icons8.ArrowRightIcon);
1031
+ return /* @__PURE__ */ React30.createElement(StartIcon4, { fontSize: size });
902
1032
  },
903
1033
  showTooltip: true
904
1034
  },
905
1035
  {
906
1036
  value: "column",
907
- label: (0, import_i18n10.__)("Column", "elementor"),
908
- renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowDownSmallIcon, { fontSize: size }),
1037
+ label: (0, import_i18n12.__)("Column", "elementor"),
1038
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
909
1039
  showTooltip: true
910
1040
  },
911
1041
  {
912
1042
  value: "row-reverse",
913
- label: (0, import_i18n10.__)("Row reverse", "elementor"),
1043
+ label: (0, import_i18n12.__)("Reversed row", "elementor"),
914
1044
  renderContent: ({ size }) => {
915
- const EndIcon = (0, import_ui20.withDirection)(import_icons7.ArrowLeftIcon);
916
- return /* @__PURE__ */ React27.createElement(EndIcon, { fontSize: size });
1045
+ const EndIcon4 = (0, import_ui23.withDirection)(import_icons8.ArrowLeftIcon);
1046
+ return /* @__PURE__ */ React30.createElement(EndIcon4, { fontSize: size });
917
1047
  },
918
1048
  showTooltip: true
919
1049
  },
920
1050
  {
921
1051
  value: "column-reverse",
922
- label: (0, import_i18n10.__)("Column reverse", "elementor"),
923
- renderContent: ({ size }) => /* @__PURE__ */ React27.createElement(import_icons7.ArrowUpSmallIcon, { fontSize: size }),
1052
+ label: (0, import_i18n12.__)("Reversed column", "elementor"),
1053
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
924
1054
  showTooltip: true
925
1055
  }
926
1056
  ];
927
1057
  var FlexDirectionField = () => {
928
1058
  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 }))))));
1059
+ return /* @__PURE__ */ React30.createElement(import_ui23.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(import_ui23.ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "flex-direction" }, /* @__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_controls17.ControlLabel, null, (0, import_i18n12.__)("Direction", "elementor"))), /* @__PURE__ */ React30.createElement(import_ui23.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(import_editor_controls17.ToggleControl, { options: options3 }))))));
930
1060
  };
931
1061
 
932
1062
  // 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");
1063
+ var React31 = __toESM(require("react"));
1064
+ var import_react9 = require("react");
1065
+ var import_editor_controls18 = require("@elementor/editor-controls");
1066
+ var import_icons9 = require("@elementor/icons");
1067
+ var import_ui24 = require("@elementor/ui");
1068
+ var import_i18n13 = require("@wordpress/i18n");
939
1069
  var FIRST_DEFAULT_VALUE = -99999;
940
1070
  var LAST_DEFAULT_VALUE = 99999;
941
1071
  var FIRST = "first";
942
1072
  var LAST = "last";
943
1073
  var CUSTOM = "custom";
1074
+ var orderValueMap = {
1075
+ [FIRST]: FIRST_DEFAULT_VALUE,
1076
+ [LAST]: LAST_DEFAULT_VALUE
1077
+ };
944
1078
  var items = [
945
1079
  {
946
1080
  value: FIRST,
947
- label: (0, import_i18n11.__)("First", "elementor"),
948
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowUpSmallIcon, { fontSize: size }),
1081
+ label: (0, import_i18n13.__)("First", "elementor"),
1082
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.ArrowUpSmallIcon, { fontSize: size }),
949
1083
  showTooltip: true
950
1084
  },
951
1085
  {
952
1086
  value: LAST,
953
- label: (0, import_i18n11.__)("Last", "elementor"),
954
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.ArrowDownSmallIcon, { fontSize: size }),
1087
+ label: (0, import_i18n13.__)("Last", "elementor"),
1088
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.ArrowDownSmallIcon, { fontSize: size }),
955
1089
  showTooltip: true
956
1090
  },
957
1091
  {
958
1092
  value: CUSTOM,
959
- label: (0, import_i18n11.__)("Custom", "elementor"),
960
- renderContent: ({ size }) => /* @__PURE__ */ React28.createElement(import_icons8.PencilIcon, { fontSize: size }),
1093
+ label: (0, import_i18n13.__)("Custom", "elementor"),
1094
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(import_icons9.PencilIcon, { fontSize: size }),
961
1095
  showTooltip: true
962
1096
  }
963
1097
  ];
964
1098
  var FlexOrderField = () => {
965
1099
  const { isSiteRtl } = useDirection(), [order, setOrder] = useStylesField("order");
966
- const [groupControlValue, setGroupControlValue] = (0, import_react7.useState)(getGroupControlValue(order));
1100
+ const [groupControlValue, setGroupControlValue] = (0, import_react9.useState)(getGroupControlValue(order?.value || null));
967
1101
  const handleToggleButtonChange = (group) => {
968
1102
  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);
1103
+ if (!group || group === CUSTOM) {
1104
+ setOrder(null);
1105
+ return;
1106
+ }
1107
+ setOrder({ $$type: "number", value: orderValueMap[group] });
975
1108
  };
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,
1109
+ return /* @__PURE__ */ React31.createElement(import_ui24.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(import_ui24.ThemeProvider, null, /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n13.__)("Order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
1110
+ import_editor_controls18.ControlToggleButtonGroup,
978
1111
  {
979
1112
  items,
980
1113
  value: groupControlValue,
981
1114
  onChange: handleToggleButtonChange,
982
1115
  exclusive: true
983
1116
  }
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,
1117
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React31.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(import_editor_controls18.ControlLabel, null, (0, import_i18n13.__)("Custom order", "elementor"))), /* @__PURE__ */ React31.createElement(import_ui24.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React31.createElement(
1118
+ import_editor_controls18.NumberControl,
986
1119
  {
987
1120
  min: FIRST_DEFAULT_VALUE + 1,
988
1121
  max: LAST_DEFAULT_VALUE - 1,
@@ -1000,139 +1133,213 @@ var getGroupControlValue = (order) => {
1000
1133
  return 0 === order || order ? CUSTOM : null;
1001
1134
  };
1002
1135
 
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");
1009
- var JustifyContentField = () => {
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 [
1016
- {
1017
- value: "start",
1018
- label: (0, import_i18n12.__)("Start", "elementor"),
1019
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: StartIcon, size }),
1020
- showTooltip: true
1021
- },
1022
- {
1023
- value: "center",
1024
- label: (0, import_i18n12.__)("Center", "elementor"),
1025
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyCenterIcon, size }),
1026
- showTooltip: true
1027
- },
1028
- {
1029
- value: "end",
1030
- label: (0, import_i18n12.__)("End", "elementor"),
1031
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: EndIcon, size }),
1032
- showTooltip: true
1033
- },
1034
- {
1035
- value: "space-between",
1036
- label: (0, import_i18n12.__)("Space between", "elementor"),
1037
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceBetweenVerticalIcon, size }),
1038
- showTooltip: true
1039
- },
1040
- {
1041
- value: "space-around",
1042
- label: (0, import_i18n12.__)("Space around", "elementor"),
1043
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifySpaceAroundVerticalIcon, size }),
1044
- showTooltip: true
1045
- },
1046
- {
1047
- value: "space-evenly",
1048
- label: (0, import_i18n12.__)("Space evenly", "elementor"),
1049
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon2, { icon: import_icons9.JustifyDistributeVerticalIcon, size }),
1050
- showTooltip: true
1051
- }
1052
- ];
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"));
1136
+ // src/components/style-sections/layout-section/flex-size-field.tsx
1137
+ var React32 = __toESM(require("react"));
1073
1138
  var import_editor_controls19 = require("@elementor/editor-controls");
1074
1139
  var import_icons10 = require("@elementor/icons");
1075
- var import_ui23 = require("@elementor/ui");
1076
- var import_i18n13 = require("@wordpress/i18n");
1077
- var options2 = [
1140
+ var import_ui25 = require("@elementor/ui");
1141
+ var import_i18n14 = require("@wordpress/i18n");
1142
+ var DEFAULT = 1;
1143
+ var items2 = [
1078
1144
  {
1079
- value: "nowrap",
1080
- label: (0, import_i18n13.__)("No wrap", "elementor"),
1081
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowRightIcon, { fontSize: size }),
1145
+ value: "flex-grow",
1146
+ label: (0, import_i18n14.__)("Grow", "elementor"),
1147
+ renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ExpandIcon, { fontSize: size }),
1082
1148
  showTooltip: true
1083
1149
  },
1084
1150
  {
1085
- value: "wrap",
1086
- label: (0, import_i18n13.__)("Wrap", "elementor"),
1087
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowBackIcon, { fontSize: size }),
1151
+ value: "flex-shrink",
1152
+ label: (0, import_i18n14.__)("Shrink", "elementor"),
1153
+ renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.ShrinkIcon, { fontSize: size }),
1088
1154
  showTooltip: true
1089
1155
  },
1090
1156
  {
1091
- value: "wrap-reverse",
1092
- label: (0, import_i18n13.__)("Wrap reverse", "elementor"),
1093
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(import_icons10.ArrowForwardIcon, { fontSize: size }),
1157
+ value: "custom",
1158
+ label: (0, import_i18n14.__)("Custom", "elementor"),
1159
+ renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(import_icons10.PencilIcon, { fontSize: size }),
1160
+ showTooltip: true
1161
+ }
1162
+ ];
1163
+ var FlexSizeField = () => {
1164
+ const { isSiteRtl } = useDirection(), [growField, setGrowField] = useStylesField("flex-grow"), [shrinkField, setShrinkField] = useStylesField("flex-shrink"), [basisField, setBasisField] = useStylesField("flex-basis");
1165
+ const grow = growField?.value || null, shrink = shrinkField?.value || null, basis = basisField?.value || null;
1166
+ const currentGroup = React32.useMemo(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = React32.useState(currentGroup);
1167
+ const onChangeGroup = (group = null) => {
1168
+ setActiveGroup(group);
1169
+ setBasisField(null);
1170
+ if (!group || group === "custom") {
1171
+ setGrowField(null);
1172
+ setShrinkField(null);
1173
+ return;
1174
+ }
1175
+ if (group === "flex-grow") {
1176
+ setGrowField({ $$type: "number", value: DEFAULT });
1177
+ setShrinkField(null);
1178
+ return;
1179
+ }
1180
+ setGrowField(null);
1181
+ setShrinkField({ $$type: "number", value: DEFAULT });
1182
+ };
1183
+ return /* @__PURE__ */ React32.createElement(import_ui25.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(import_ui25.ThemeProvider, null, /* @__PURE__ */ React32.createElement(import_ui25.Stack, { gap: 2 }, /* @__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_i18n14.__)("Size", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(
1184
+ import_editor_controls19.ControlToggleButtonGroup,
1185
+ {
1186
+ value: activeGroup,
1187
+ onChange: onChangeGroup,
1188
+ items: items2,
1189
+ exclusive: true
1190
+ }
1191
+ ))), "custom" === activeGroup && /* @__PURE__ */ React32.createElement(FlexCustomField, null))));
1192
+ };
1193
+ var FlexCustomField = () => /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-grow" }, /* @__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_i18n14.__)("Grow", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-shrink" }, /* @__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_i18n14.__)("Shrink", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.NumberControl, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-basis" }, /* @__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_i18n14.__)("Basis", "elementor"))), /* @__PURE__ */ React32.createElement(import_ui25.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(import_editor_controls19.SizeControl, null)))));
1194
+ var getActiveGroup = ({
1195
+ grow,
1196
+ shrink,
1197
+ basis
1198
+ }) => {
1199
+ if (null === grow && null === shrink && !basis) {
1200
+ return null;
1201
+ }
1202
+ if (shrink && grow || basis) {
1203
+ return "custom";
1204
+ }
1205
+ if (grow === DEFAULT) {
1206
+ return "flex-grow";
1207
+ }
1208
+ if (shrink === DEFAULT) {
1209
+ return "flex-shrink";
1210
+ }
1211
+ return "custom";
1212
+ };
1213
+
1214
+ // src/components/style-sections/layout-section/gap-control-field.tsx
1215
+ var React33 = __toESM(require("react"));
1216
+ var import_editor_controls20 = require("@elementor/editor-controls");
1217
+ var import_ui26 = require("@elementor/ui");
1218
+ var import_i18n15 = require("@wordpress/i18n");
1219
+ var GapControlField = () => {
1220
+ return /* @__PURE__ */ React33.createElement(import_ui26.Stack, { gap: 1 }, /* @__PURE__ */ React33.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React33.createElement(import_editor_controls20.GapControl, { label: (0, import_i18n15.__)("Gaps", "elementor") })));
1221
+ };
1222
+
1223
+ // src/components/style-sections/layout-section/justify-content-field.tsx
1224
+ var React34 = __toESM(require("react"));
1225
+ var import_editor_controls21 = require("@elementor/editor-controls");
1226
+ var import_icons11 = require("@elementor/icons");
1227
+ var import_ui27 = require("@elementor/ui");
1228
+ var import_i18n16 = require("@wordpress/i18n");
1229
+ var StartIcon3 = (0, import_ui27.withDirection)(import_icons11.JustifyTopIcon);
1230
+ var EndIcon3 = (0, import_ui27.withDirection)(import_icons11.JustifyBottomIcon);
1231
+ var iconProps3 = {
1232
+ isClockwise: true,
1233
+ offset: -90
1234
+ };
1235
+ var options4 = [
1236
+ {
1237
+ value: "start",
1238
+ label: (0, import_i18n16.__)("Start", "elementor"),
1239
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
1240
+ showTooltip: true
1241
+ },
1242
+ {
1243
+ value: "center",
1244
+ label: (0, import_i18n16.__)("Center", "elementor"),
1245
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifyCenterIcon, size, ...iconProps3 }),
1246
+ showTooltip: true
1247
+ },
1248
+ {
1249
+ value: "end",
1250
+ label: (0, import_i18n16.__)("End", "elementor"),
1251
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
1252
+ showTooltip: true
1253
+ },
1254
+ {
1255
+ value: "space-between",
1256
+ label: (0, import_i18n16.__)("Space between", "elementor"),
1257
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceBetweenVerticalIcon, size, ...iconProps3 }),
1258
+ showTooltip: true
1259
+ },
1260
+ {
1261
+ value: "space-around",
1262
+ label: (0, import_i18n16.__)("Space around", "elementor"),
1263
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifySpaceAroundVerticalIcon, size, ...iconProps3 }),
1264
+ showTooltip: true
1265
+ },
1266
+ {
1267
+ value: "space-evenly",
1268
+ label: (0, import_i18n16.__)("Space evenly", "elementor"),
1269
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(RotatedIcon, { icon: import_icons11.JustifyDistributeVerticalIcon, size, ...iconProps3 }),
1270
+ showTooltip: true
1271
+ }
1272
+ ];
1273
+ var JustifyContentField = () => {
1274
+ const { isSiteRtl } = useDirection();
1275
+ return /* @__PURE__ */ React34.createElement(import_ui27.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(import_ui27.ThemeProvider, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React34.createElement(import_ui27.Stack, { gap: 1 }, /* @__PURE__ */ React34.createElement(import_editor_controls21.ControlLabel, null, (0, import_i18n16.__)("Justify content", "elementor")), /* @__PURE__ */ React34.createElement(import_editor_controls21.ToggleControl, { options: options4, fullWidth: true })))));
1276
+ };
1277
+
1278
+ // src/components/style-sections/layout-section/wrap-field.tsx
1279
+ var React35 = __toESM(require("react"));
1280
+ var import_editor_controls22 = require("@elementor/editor-controls");
1281
+ var import_icons12 = require("@elementor/icons");
1282
+ var import_ui28 = require("@elementor/ui");
1283
+ var import_i18n17 = require("@wordpress/i18n");
1284
+ var options5 = [
1285
+ {
1286
+ value: "nowrap",
1287
+ label: (0, import_i18n17.__)("No wrap", "elementor"),
1288
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowRightIcon, { fontSize: size }),
1289
+ showTooltip: true
1290
+ },
1291
+ {
1292
+ value: "wrap",
1293
+ label: (0, import_i18n17.__)("Wrap", "elementor"),
1294
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowBackIcon, { fontSize: size }),
1295
+ showTooltip: true
1296
+ },
1297
+ {
1298
+ value: "wrap-reverse",
1299
+ label: (0, import_i18n17.__)("Reversed wrap", "elementor"),
1300
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(import_icons12.ArrowForwardIcon, { fontSize: size }),
1094
1301
  showTooltip: true
1095
1302
  }
1096
1303
  ];
1097
1304
  var WrapField = () => {
1098
1305
  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 }))))));
1306
+ return /* @__PURE__ */ React35.createElement(import_ui28.DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(import_ui28.ThemeProvider, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React35.createElement(import_ui28.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(import_editor_controls22.ControlLabel, null, (0, import_i18n17.__)("Wrap", "elementor"))), /* @__PURE__ */ React35.createElement(import_ui28.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React35.createElement(import_editor_controls22.ToggleControl, { options: options5 }))))));
1100
1307
  };
1101
1308
 
1102
1309
  // src/components/style-sections/layout-section/layout-section.tsx
1103
1310
  var LayoutSection = () => {
1104
1311
  const [display] = useStylesField("display");
1105
- return /* @__PURE__ */ React31.createElement(import_ui24.Stack, { gap: 2 }, /* @__PURE__ */ React31.createElement(DisplayField, null), "flex" === display && /* @__PURE__ */ React31.createElement(FlexFields, null));
1312
+ return /* @__PURE__ */ React36.createElement(import_ui29.Stack, { gap: 2 }, /* @__PURE__ */ React36.createElement(DisplayField, null), "flex" === display?.value && /* @__PURE__ */ React36.createElement(FlexFields, null));
1106
1313
  };
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));
1314
+ var FlexFields = () => /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(FlexDirectionField, null), /* @__PURE__ */ React36.createElement(JustifyContentField, null), /* @__PURE__ */ React36.createElement(AlignItemsField, null), /* @__PURE__ */ React36.createElement(import_ui29.Divider, null), /* @__PURE__ */ React36.createElement(GapControlField, null), /* @__PURE__ */ React36.createElement(WrapField, null), /* @__PURE__ */ React36.createElement(import_ui29.Divider, null), /* @__PURE__ */ React36.createElement(import_editor_controls23.ControlLabel, null, (0, import_i18n18.__)("Flex child", "elementor")), /* @__PURE__ */ React36.createElement(AlignSelfChild, null), /* @__PURE__ */ React36.createElement(FlexOrderField, null), /* @__PURE__ */ React36.createElement(FlexSizeField, null));
1108
1315
 
1109
1316
  // src/components/style-sections/position-section/position-section.tsx
1110
- var React35 = __toESM(require("react"));
1111
- var import_react10 = require("react");
1112
- var import_ui28 = require("@elementor/ui");
1317
+ var React40 = __toESM(require("react"));
1318
+ var import_react12 = require("react");
1319
+ var import_ui33 = require("@elementor/ui");
1113
1320
 
1114
1321
  // src/hooks/use-style-prop-history.ts
1115
- var import_react9 = require("react");
1322
+ var import_react11 = require("react");
1116
1323
  var import_editor_elements4 = require("@elementor/editor-elements");
1117
1324
 
1118
1325
  // src/hooks/use-prop-value-history.ts
1119
- var import_react8 = require("react");
1326
+ var import_react10 = require("react");
1120
1327
  var import_utils2 = require("@elementor/utils");
1121
1328
  var PROPS_VALUES_HISTORY_PREFIX = "elementor/editor-editing-panel/prop-value-history";
1122
1329
  var usePropValueHistory = () => {
1123
1330
  const { element } = useElement();
1124
1331
  const elementKey = `${PROPS_VALUES_HISTORY_PREFIX}/${element.id}`;
1125
- const getElementPropsHistory = (0, import_react8.useCallback)(() => {
1332
+ const getElementPropsHistory = (0, import_react10.useCallback)(() => {
1126
1333
  return (0, import_utils2.getSessionStorageItem)(elementKey);
1127
1334
  }, [elementKey]);
1128
- const getPropValue = (0, import_react8.useCallback)(
1335
+ const getPropValue = (0, import_react10.useCallback)(
1129
1336
  (propKey) => {
1130
1337
  const elementPropValues = getElementPropsHistory();
1131
1338
  return elementPropValues?.[propKey] ?? null;
1132
1339
  },
1133
1340
  [getElementPropsHistory]
1134
1341
  );
1135
- const setPropValue = (0, import_react8.useCallback)(
1342
+ const setPropValue = (0, import_react10.useCallback)(
1136
1343
  (propKey, propValue) => {
1137
1344
  const elementPropValues = getElementPropsHistory();
1138
1345
  const updatedElementPropValues = { ...elementPropValues, [propKey]: propValue };
@@ -1140,7 +1347,7 @@ var usePropValueHistory = () => {
1140
1347
  },
1141
1348
  [getElementPropsHistory, elementKey]
1142
1349
  );
1143
- const removeProp = (0, import_react8.useCallback)(
1350
+ const removeProp = (0, import_react10.useCallback)(
1144
1351
  (propKey) => {
1145
1352
  const elementPropValues = getElementPropsHistory();
1146
1353
  const updatedElementPropValues = Object.fromEntries(
@@ -1150,7 +1357,7 @@ var usePropValueHistory = () => {
1150
1357
  },
1151
1358
  [getElementPropsHistory, elementKey]
1152
1359
  );
1153
- return (0, import_react8.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
1360
+ return (0, import_react10.useMemo)(() => ({ getPropValue, setPropValue, removeProp }), [getPropValue, removeProp, setPropValue]);
1154
1361
  };
1155
1362
 
1156
1363
  // src/hooks/use-style-prop-history.ts
@@ -1158,10 +1365,10 @@ var useStylePropsHistory = (props) => {
1158
1365
  const { element } = useElement();
1159
1366
  const { id: styleDefID, meta } = useStyle();
1160
1367
  const { getPropValue, setPropValue, removeProp } = usePropValueHistory();
1161
- const styleDef = (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID];
1368
+ const styleDef = styleDefID ? (0, import_editor_elements4.getElementStyles)(element.id)?.[styleDefID] : null;
1162
1369
  const styleVariant = styleDef ? (0, import_editor_elements4.getVariantByMeta)(styleDef, meta) : null;
1163
1370
  const styleVariantPath = `${styleDefID}-${styleVariant?.meta.breakpoint}-${styleVariant?.meta.state}`;
1164
- const saveStylePropsHistory = (0, import_react9.useCallback)(() => {
1371
+ const saveStylePropsHistory = (0, import_react11.useCallback)(() => {
1165
1372
  props.forEach((propKey) => {
1166
1373
  const propValue = styleVariant?.props[propKey];
1167
1374
  if (propValue) {
@@ -1170,7 +1377,7 @@ var useStylePropsHistory = (props) => {
1170
1377
  }
1171
1378
  });
1172
1379
  }, [props, setPropValue, styleVariant?.props, styleVariantPath]);
1173
- const updateStylePropsFromHistory = (0, import_react9.useCallback)(() => {
1380
+ const updateStylePropsFromHistory = (0, import_react11.useCallback)(() => {
1174
1381
  const propValuesFromHistory = props.reduce((allProps, currentPropKey) => {
1175
1382
  const propPath = `${styleVariantPath}-${currentPropKey}`;
1176
1383
  const propHistory = getPropValue(propPath);
@@ -1190,7 +1397,7 @@ var useStylePropsHistory = (props) => {
1190
1397
  });
1191
1398
  }
1192
1399
  }, [element.id, getPropValue, meta, props, removeProp, styleDefID, styleVariantPath]);
1193
- const clearCurrentStyleProps = (0, import_react9.useCallback)(() => {
1400
+ const clearCurrentStyleProps = (0, import_react11.useCallback)(() => {
1194
1401
  const resetValues = props.reduce(
1195
1402
  (allProps, currentPropKey) => ({
1196
1403
  ...allProps,
@@ -1206,53 +1413,53 @@ var useStylePropsHistory = (props) => {
1206
1413
  bind: "classes"
1207
1414
  });
1208
1415
  }, [element.id, meta, props, styleDefID]);
1209
- return (0, import_react9.useMemo)(
1416
+ return (0, import_react11.useMemo)(
1210
1417
  () => ({ saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps }),
1211
1418
  [saveStylePropsHistory, updateStylePropsFromHistory, clearCurrentStyleProps]
1212
1419
  );
1213
1420
  };
1214
1421
 
1215
1422
  // src/components/style-sections/position-section/dimensions-field.tsx
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");
1423
+ var React37 = __toESM(require("react"));
1424
+ var import_editor_controls24 = require("@elementor/editor-controls");
1425
+ var import_icons13 = require("@elementor/icons");
1426
+ var import_ui30 = require("@elementor/ui");
1427
+ var import_i18n19 = require("@wordpress/i18n");
1221
1428
  var sideIcons = {
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" })
1429
+ left: /* @__PURE__ */ React37.createElement(import_icons13.SideLeftIcon, { fontSize: "tiny" }),
1430
+ right: /* @__PURE__ */ React37.createElement(import_icons13.SideRightIcon, { fontSize: "tiny" }),
1431
+ top: /* @__PURE__ */ React37.createElement(import_icons13.SideTopIcon, { fontSize: "tiny" }),
1432
+ bottom: /* @__PURE__ */ React37.createElement(import_icons13.SideBottomIcon, { fontSize: "tiny" })
1226
1433
  };
1227
1434
  var DimensionsField = () => {
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") })));
1435
+ return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "top", label: (0, import_i18n19.__)("Top", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "right", label: (0, import_i18n19.__)("Right", "elementor") })), /* @__PURE__ */ React37.createElement(import_ui30.Stack, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(DimensionField, { side: "bottom", label: (0, import_i18n19.__)("Bottom", "elementor") }), /* @__PURE__ */ React37.createElement(DimensionField, { side: "left", label: (0, import_i18n19.__)("Left", "elementor") })));
1229
1436
  };
1230
1437
  var DimensionField = ({ side, label }) => {
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] }))));
1438
+ return /* @__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_controls24.ControlLabel, null, label)), /* @__PURE__ */ React37.createElement(import_ui30.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React37.createElement(StylesField, { bind: side }, /* @__PURE__ */ React37.createElement(import_editor_controls24.SizeControl, { startIcon: sideIcons[side] }))));
1232
1439
  };
1233
1440
 
1234
1441
  // src/components/style-sections/position-section/position-field.tsx
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");
1442
+ var React38 = __toESM(require("react"));
1443
+ var import_editor_controls25 = require("@elementor/editor-controls");
1444
+ var import_ui31 = require("@elementor/ui");
1445
+ var import_i18n20 = require("@wordpress/i18n");
1239
1446
  var positionOptions = [
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" }
1447
+ { label: (0, import_i18n20.__)("Static", "elementor"), value: "static" },
1448
+ { label: (0, import_i18n20.__)("Relative", "elementor"), value: "relative" },
1449
+ { label: (0, import_i18n20.__)("Absolute", "elementor"), value: "absolute" },
1450
+ { label: (0, import_i18n20.__)("Fixed", "elementor"), value: "fixed" }
1244
1451
  ];
1245
1452
  var PositionField = () => {
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 }))));
1453
+ return /* @__PURE__ */ React38.createElement(StylesField, { bind: "position" }, /* @__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_controls25.ControlLabel, null, (0, import_i18n20.__)("Position", "elementor"))), /* @__PURE__ */ React38.createElement(import_ui31.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(import_editor_controls25.SelectControl, { options: positionOptions }))));
1247
1454
  };
1248
1455
 
1249
1456
  // src/components/style-sections/position-section/z-index-field.tsx
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");
1457
+ var React39 = __toESM(require("react"));
1458
+ var import_editor_controls26 = require("@elementor/editor-controls");
1459
+ var import_ui32 = require("@elementor/ui");
1460
+ var import_i18n21 = require("@wordpress/i18n");
1254
1461
  var ZIndexField = () => {
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))));
1462
+ return /* @__PURE__ */ React39.createElement(StylesField, { bind: "z-index" }, /* @__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_controls26.ControlLabel, null, (0, import_i18n21.__)("Z-Index", "elementor"))), /* @__PURE__ */ React39.createElement(import_ui32.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React39.createElement(import_editor_controls26.NumberControl, null))));
1256
1463
  };
1257
1464
 
1258
1465
  // src/components/style-sections/position-section/position-section.tsx
@@ -1260,12 +1467,12 @@ var dimensionsPropKeys = ["top", "bottom", "left", "right"];
1260
1467
  var PositionSection = () => {
1261
1468
  const [positionValue] = useStylesField("position");
1262
1469
  usePositionChangeHandler();
1263
- const isNotStatic = positionValue && positionValue !== "static";
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);
1470
+ const isNotStatic = positionValue && positionValue?.value !== "static";
1471
+ return /* @__PURE__ */ React40.createElement(import_ui33.Stack, { gap: 1.5 }, /* @__PURE__ */ React40.createElement(PositionField, null), isNotStatic ? /* @__PURE__ */ React40.createElement(React40.Fragment, null, /* @__PURE__ */ React40.createElement(DimensionsField, null), /* @__PURE__ */ React40.createElement(ZIndexField, null)) : null);
1265
1472
  };
1266
1473
  var usePositionChangeHandler = () => {
1267
1474
  const dimensionsHistory = useStylePropsHistory(dimensionsPropKeys);
1268
- const onPositionChange = (0, import_react10.useCallback)(
1475
+ const onPositionChange = (0, import_react12.useCallback)(
1269
1476
  (newPositionValue, previousPosition) => {
1270
1477
  if (!dimensionsHistory) {
1271
1478
  return;
@@ -1286,91 +1493,91 @@ var usePositionChangeHandler = () => {
1286
1493
  };
1287
1494
 
1288
1495
  // src/components/style-sections/size-section/size-section.tsx
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");
1496
+ var React42 = __toESM(require("react"));
1497
+ var import_editor_controls28 = require("@elementor/editor-controls");
1498
+ var import_ui35 = require("@elementor/ui");
1499
+ var import_i18n23 = require("@wordpress/i18n");
1293
1500
 
1294
1501
  // src/components/style-sections/size-section/overflow-field.tsx
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 = [
1502
+ var React41 = __toESM(require("react"));
1503
+ var import_editor_controls27 = require("@elementor/editor-controls");
1504
+ var import_icons14 = require("@elementor/icons");
1505
+ var import_ui34 = require("@elementor/ui");
1506
+ var import_i18n22 = require("@wordpress/i18n");
1507
+ var options6 = [
1301
1508
  {
1302
1509
  value: "visible",
1303
- label: (0, import_i18n18.__)("Visible", "elementor"),
1304
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeIcon, { fontSize: size }),
1510
+ label: (0, import_i18n22.__)("Visible", "elementor"),
1511
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.EyeIcon, { fontSize: size }),
1305
1512
  showTooltip: true
1306
1513
  },
1307
1514
  {
1308
1515
  value: "hidden",
1309
- label: (0, import_i18n18.__)("Hidden", "elementor"),
1310
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.EyeOffIcon, { fontSize: size }),
1516
+ label: (0, import_i18n22.__)("Hidden", "elementor"),
1517
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.EyeOffIcon, { fontSize: size }),
1311
1518
  showTooltip: true
1312
1519
  },
1313
1520
  {
1314
1521
  value: "auto",
1315
- label: (0, import_i18n18.__)("Auto", "elementor"),
1316
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(import_icons12.ExpandBottomIcon, { fontSize: size }),
1522
+ label: (0, import_i18n22.__)("Auto", "elementor"),
1523
+ renderContent: ({ size }) => /* @__PURE__ */ React41.createElement(import_icons14.ExpandBottomIcon, { fontSize: size }),
1317
1524
  showTooltip: true
1318
1525
  }
1319
1526
  ];
1320
1527
  var OverflowField = () => {
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 }))));
1528
+ return /* @__PURE__ */ React41.createElement(StylesField, { bind: "overflow" }, /* @__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.__)("Overflow", "elementor"))), /* @__PURE__ */ React41.createElement(import_ui34.Grid, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React41.createElement(import_editor_controls27.ToggleControl, { options: options6 }))));
1322
1529
  };
1323
1530
 
1324
1531
  // src/components/style-sections/size-section/size-section.tsx
1325
1532
  var SizeSection = () => {
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)));
1533
+ return /* @__PURE__ */ React42.createElement(import_ui35.Stack, { gap: 1.5 }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "width", label: (0, import_i18n23.__)("Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "height", label: (0, import_i18n23.__)("Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-width", label: (0, import_i18n23.__)("Min. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "min-height", label: (0, import_i18n23.__)("Min. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-width", label: (0, import_i18n23.__)("Max. Width", "elementor") })), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(SizeField, { bind: "max-height", label: (0, import_i18n23.__)("Max. Height", "elementor") }))), /* @__PURE__ */ React42.createElement(import_ui35.Divider, null), /* @__PURE__ */ React42.createElement(import_ui35.Stack, null, /* @__PURE__ */ React42.createElement(OverflowField, null)));
1327
1534
  };
1328
1535
  var SizeField = ({ label, bind }) => {
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))));
1536
+ return /* @__PURE__ */ React42.createElement(StylesField, { bind }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls28.ControlLabel, null, label)), /* @__PURE__ */ React42.createElement(import_ui35.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React42.createElement(import_editor_controls28.SizeControl, null))));
1330
1537
  };
1331
1538
 
1332
1539
  // src/components/style-sections/spacing-section/spacing-section.tsx
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");
1540
+ var React43 = __toESM(require("react"));
1541
+ var import_editor_controls29 = require("@elementor/editor-controls");
1542
+ var import_ui36 = require("@elementor/ui");
1543
+ var import_i18n24 = require("@wordpress/i18n");
1337
1544
  var SpacingSection = () => {
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") })));
1545
+ return /* @__PURE__ */ React43.createElement(import_ui36.Stack, { gap: 1.5 }, /* @__PURE__ */ React43.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React43.createElement(import_editor_controls29.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Padding", "elementor") })), /* @__PURE__ */ React43.createElement(import_ui36.Divider, null), /* @__PURE__ */ React43.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React43.createElement(import_editor_controls29.LinkedDimensionsControl, { label: (0, import_i18n24.__)("Margin", "elementor") })));
1339
1546
  };
1340
1547
 
1341
1548
  // src/components/style-sections/typography-section/typography-section.tsx
1342
- var React51 = __toESM(require("react"));
1343
- var import_ui43 = require("@elementor/ui");
1549
+ var React57 = __toESM(require("react"));
1550
+ var import_ui49 = require("@elementor/ui");
1344
1551
 
1345
1552
  // src/components/collapsible-content.tsx
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");
1553
+ var React44 = __toESM(require("react"));
1554
+ var import_react13 = require("react");
1555
+ var import_ui37 = require("@elementor/ui");
1556
+ var import_i18n25 = require("@wordpress/i18n");
1350
1557
  var CollapsibleContent = ({ children, defaultOpen = false }) => {
1351
- const [open, setOpen] = (0, import_react11.useState)(defaultOpen);
1558
+ const [open, setOpen] = (0, import_react13.useState)(defaultOpen);
1352
1559
  const handleToggle = () => {
1353
1560
  setOpen((prevOpen) => !prevOpen);
1354
1561
  };
1355
- return /* @__PURE__ */ React39.createElement(import_ui32.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React39.createElement(
1356
- import_ui32.Button,
1562
+ return /* @__PURE__ */ React44.createElement(import_ui37.Stack, { sx: { py: 0.5 } }, /* @__PURE__ */ React44.createElement(
1563
+ import_ui37.Button,
1357
1564
  {
1358
1565
  fullWidth: true,
1359
1566
  size: "small",
1360
1567
  color: "secondary",
1361
1568
  variant: "outlined",
1362
1569
  onClick: handleToggle,
1363
- endIcon: /* @__PURE__ */ React39.createElement(CollapseIcon, { open })
1570
+ endIcon: /* @__PURE__ */ React44.createElement(CollapseIcon, { open })
1364
1571
  },
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));
1572
+ open ? (0, import_i18n25.__)("Show less", "elementor") : (0, import_i18n25.__)("Show more", "elementor")
1573
+ ), /* @__PURE__ */ React44.createElement(import_ui37.Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
1367
1574
  };
1368
1575
 
1369
1576
  // src/components/style-sections/typography-section/font-family-field.tsx
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");
1577
+ var React45 = __toESM(require("react"));
1578
+ var import_editor_controls30 = require("@elementor/editor-controls");
1579
+ var import_ui38 = require("@elementor/ui");
1580
+ var import_i18n26 = require("@wordpress/i18n");
1374
1581
 
1375
1582
  // src/sync/get-elementor-config.ts
1376
1583
  var getElementorConfig = () => {
@@ -1384,118 +1591,127 @@ var FontFamilyField = () => {
1384
1591
  if (!fontFamilies) {
1385
1592
  return null;
1386
1593
  }
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 }))));
1594
+ return /* @__PURE__ */ React45.createElement(StylesField, { bind: "font-family" }, /* @__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_controls30.ControlLabel, null, (0, import_i18n26.__)("Font Family", "elementor"))), /* @__PURE__ */ React45.createElement(import_ui38.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(import_editor_controls30.FontFamilyControl, { fontFamilies }))));
1388
1595
  };
1389
1596
  var getFontFamilies = () => {
1390
1597
  const { controls } = getElementorConfig();
1391
- const options7 = controls?.font?.options;
1392
- if (!options7) {
1598
+ const options10 = controls?.font?.options;
1599
+ if (!options10) {
1393
1600
  return null;
1394
1601
  }
1395
- return options7;
1602
+ return options10;
1396
1603
  };
1397
1604
 
1398
1605
  // src/components/style-sections/typography-section/font-size-field.tsx
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");
1606
+ var React46 = __toESM(require("react"));
1607
+ var import_editor_controls31 = require("@elementor/editor-controls");
1608
+ var import_ui39 = require("@elementor/ui");
1609
+ var import_i18n27 = require("@wordpress/i18n");
1403
1610
  var FontSizeField = () => {
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))));
1611
+ return /* @__PURE__ */ React46.createElement(StylesField, { bind: "font-size" }, /* @__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_controls31.ControlLabel, null, (0, import_i18n27.__)("Font Size", "elementor"))), /* @__PURE__ */ React46.createElement(import_ui39.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React46.createElement(import_editor_controls31.SizeControl, null))));
1405
1612
  };
1406
1613
 
1407
1614
  // src/components/style-sections/typography-section/font-weight-field.tsx
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");
1615
+ var React47 = __toESM(require("react"));
1616
+ var import_editor_controls32 = require("@elementor/editor-controls");
1617
+ var import_ui40 = require("@elementor/ui");
1618
+ var import_i18n28 = require("@wordpress/i18n");
1412
1619
  var fontWeightOptions = [
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" }
1620
+ { label: (0, import_i18n28.__)("Light - 400", "elementor"), value: "400" },
1621
+ { label: (0, import_i18n28.__)("Regular - 500", "elementor"), value: "500" },
1622
+ { label: (0, import_i18n28.__)("Semi Bold - 600", "elementor"), value: "600" },
1623
+ { label: (0, import_i18n28.__)("Bold - 700", "elementor"), value: "700" },
1624
+ { label: (0, import_i18n28.__)("Black - 900", "elementor"), value: "900" }
1418
1625
  ];
1419
1626
  var FontWeightField = () => {
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 }))));
1627
+ return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.ControlLabel, null, (0, import_i18n28.__)("Font Weight", "elementor"))), /* @__PURE__ */ React47.createElement(import_ui40.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(import_editor_controls32.SelectControl, { options: fontWeightOptions }))));
1421
1628
  };
1422
1629
 
1423
1630
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
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");
1631
+ var React48 = __toESM(require("react"));
1632
+ var import_editor_controls33 = require("@elementor/editor-controls");
1633
+ var import_ui41 = require("@elementor/ui");
1634
+ var import_i18n29 = require("@wordpress/i18n");
1428
1635
  var LetterSpacingField = () => {
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))));
1636
+ return /* @__PURE__ */ React48.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls33.ControlLabel, null, (0, import_i18n29.__)("Letter Spacing", "elementor"))), /* @__PURE__ */ React48.createElement(import_ui41.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(import_editor_controls33.SizeControl, null))));
1637
+ };
1638
+
1639
+ // src/components/style-sections/typography-section/line-height-field.tsx
1640
+ var React49 = __toESM(require("react"));
1641
+ var import_editor_controls34 = require("@elementor/editor-controls");
1642
+ var import_ui42 = require("@elementor/ui");
1643
+ var import_i18n30 = require("@wordpress/i18n");
1644
+ var LineHeightField = () => {
1645
+ return /* @__PURE__ */ React49.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls34.ControlLabel, null, (0, import_i18n30.__)("Line Height", "elementor"))), /* @__PURE__ */ React49.createElement(import_ui42.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(import_editor_controls34.SizeControl, null))));
1430
1646
  };
1431
1647
 
1432
1648
  // src/components/style-sections/typography-section/text-alignment-field.tsx
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 = [
1649
+ var React50 = __toESM(require("react"));
1650
+ var import_editor_controls35 = require("@elementor/editor-controls");
1651
+ var import_icons15 = require("@elementor/icons");
1652
+ var import_ui43 = require("@elementor/ui");
1653
+ var import_i18n31 = require("@wordpress/i18n");
1654
+ var options7 = [
1439
1655
  {
1440
1656
  value: "left",
1441
- label: (0, import_i18n26.__)("Left", "elementor"),
1442
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignLeftIcon, { fontSize: size })
1657
+ label: (0, import_i18n31.__)("Left", "elementor"),
1658
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignLeftIcon, { fontSize: size })
1443
1659
  },
1444
1660
  {
1445
1661
  value: "center",
1446
- label: (0, import_i18n26.__)("Center", "elementor"),
1447
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignCenterIcon, { fontSize: size })
1662
+ label: (0, import_i18n31.__)("Center", "elementor"),
1663
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignCenterIcon, { fontSize: size })
1448
1664
  },
1449
1665
  {
1450
1666
  value: "right",
1451
- label: (0, import_i18n26.__)("Right", "elementor"),
1452
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignRightIcon, { fontSize: size })
1667
+ label: (0, import_i18n31.__)("Right", "elementor"),
1668
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignRightIcon, { fontSize: size })
1453
1669
  },
1454
1670
  {
1455
1671
  value: "justify",
1456
- label: (0, import_i18n26.__)("Justify", "elementor"),
1457
- renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(import_icons13.AlignJustifiedIcon, { fontSize: size })
1672
+ label: (0, import_i18n31.__)("Justify", "elementor"),
1673
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(import_icons15.AlignJustifiedIcon, { fontSize: size })
1458
1674
  }
1459
1675
  ];
1460
1676
  var TextAlignmentField = () => {
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 }))));
1677
+ return /* @__PURE__ */ React50.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(import_editor_controls35.ControlLabel, null, (0, import_i18n31.__)("Alignment", "elementor"))), /* @__PURE__ */ React50.createElement(import_ui43.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(import_editor_controls35.ToggleControl, { options: options7 }))));
1462
1678
  };
1463
1679
 
1464
1680
  // src/components/style-sections/typography-section/text-color-field.tsx
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");
1681
+ var React51 = __toESM(require("react"));
1682
+ var import_editor_controls36 = require("@elementor/editor-controls");
1683
+ var import_ui44 = require("@elementor/ui");
1684
+ var import_i18n32 = require("@wordpress/i18n");
1469
1685
  var TextColorField = () => {
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))));
1686
+ return /* @__PURE__ */ React51.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React51.createElement(import_ui44.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls36.ControlLabel, null, (0, import_i18n32.__)("Text Color", "elementor"))), /* @__PURE__ */ React51.createElement(import_ui44.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(import_editor_controls36.ColorControl, null))));
1471
1687
  };
1472
1688
 
1473
1689
  // src/components/style-sections/typography-section/text-direction-field.tsx
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 = [
1690
+ var React52 = __toESM(require("react"));
1691
+ var import_editor_controls37 = require("@elementor/editor-controls");
1692
+ var import_icons16 = require("@elementor/icons");
1693
+ var import_ui45 = require("@elementor/ui");
1694
+ var import_i18n33 = require("@wordpress/i18n");
1695
+ var options8 = [
1480
1696
  {
1481
1697
  value: "ltr",
1482
- label: (0, import_i18n28.__)("Left to Right", "elementor"),
1483
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionLtrIcon, { fontSize: size })
1698
+ label: (0, import_i18n33.__)("Left to Right", "elementor"),
1699
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons16.TextDirectionLtrIcon, { fontSize: size })
1484
1700
  },
1485
1701
  {
1486
1702
  value: "rtl",
1487
- label: (0, import_i18n28.__)("Right to Left", "elementor"),
1488
- renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(import_icons14.TextDirectionRtlIcon, { fontSize: size })
1703
+ label: (0, import_i18n33.__)("Right to Left", "elementor"),
1704
+ renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(import_icons16.TextDirectionRtlIcon, { fontSize: size })
1489
1705
  }
1490
1706
  ];
1491
1707
  var TextDirectionField = () => {
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 }))));
1708
+ return /* @__PURE__ */ React52.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React52.createElement(import_ui45.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(import_ui45.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(import_editor_controls37.ControlLabel, null, (0, import_i18n33.__)("Direction", "elementor"))), /* @__PURE__ */ React52.createElement(import_ui45.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React52.createElement(import_editor_controls37.ToggleControl, { options: options8 }))));
1493
1709
  };
1494
1710
 
1495
1711
  // src/components/style-sections/typography-section/text-stroke-field.tsx
1496
- var React47 = __toESM(require("react"));
1497
- var import_editor_controls34 = require("@elementor/editor-controls");
1498
- var import_i18n29 = require("@wordpress/i18n");
1712
+ var React53 = __toESM(require("react"));
1713
+ var import_editor_controls38 = require("@elementor/editor-controls");
1714
+ var import_i18n34 = require("@wordpress/i18n");
1499
1715
  var initTextStroke = {
1500
1716
  $$type: "stroke",
1501
1717
  value: {
@@ -1521,56 +1737,74 @@ var TextStrokeField = () => {
1521
1737
  setTextStroke(null);
1522
1738
  };
1523
1739
  const hasTextStroke = Boolean(textStroke);
1524
- return /* @__PURE__ */ React47.createElement(
1740
+ return /* @__PURE__ */ React53.createElement(
1525
1741
  AddOrRemoveContent,
1526
1742
  {
1527
- label: (0, import_i18n29.__)("Text Stroke", "elementor"),
1743
+ label: (0, import_i18n34.__)("Text Stroke", "elementor"),
1528
1744
  isAdded: hasTextStroke,
1529
1745
  onAdd: addTextStroke,
1530
1746
  onRemove: removeTextStroke
1531
1747
  },
1532
- /* @__PURE__ */ React47.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React47.createElement(import_editor_controls34.StrokeControl, null))
1748
+ /* @__PURE__ */ React53.createElement(StylesField, { bind: "-webkit-text-stroke" }, /* @__PURE__ */ React53.createElement(import_editor_controls38.StrokeControl, null))
1533
1749
  );
1534
1750
  };
1535
1751
 
1536
1752
  // src/components/style-sections/typography-section/text-style-field.tsx
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");
1753
+ var React54 = __toESM(require("react"));
1754
+ var import_editor_controls39 = require("@elementor/editor-controls");
1755
+ var import_icons17 = require("@elementor/icons");
1756
+ var import_ui46 = require("@elementor/ui");
1757
+ var import_i18n35 = require("@wordpress/i18n");
1542
1758
  var buttonSize = "tiny";
1543
1759
  var TextStyleField = () => {
1544
1760
  const [fontStyle, setFontStyle] = useStylesField("font-style");
1545
1761
  const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
1546
- const formats = [fontStyle, ...(textDecoration || "").split(" ")];
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(
1762
+ const formats = [fontStyle?.value, ...(textDecoration?.value || "").split(" ")];
1763
+ const handleSetFontStyle = (newValue) => {
1764
+ if (newValue === null) {
1765
+ return setFontStyle(null);
1766
+ }
1767
+ setFontStyle({
1768
+ $$type: "string",
1769
+ value: newValue
1770
+ });
1771
+ };
1772
+ const handleSetTextDecoration = (newValue) => {
1773
+ if (newValue === null) {
1774
+ return setTextDecoration(null);
1775
+ }
1776
+ setTextDecoration({
1777
+ $$type: "string",
1778
+ value: newValue
1779
+ });
1780
+ };
1781
+ return /* @__PURE__ */ React54.createElement(import_ui46.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(import_editor_controls39.ControlLabel, null, (0, import_i18n35.__)("Style", "elementor"))), /* @__PURE__ */ React54.createElement(import_ui46.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(import_ui46.ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React54.createElement(
1548
1782
  ToggleButton,
1549
1783
  {
1550
1784
  value: "italic",
1551
- onChange: (v) => setFontStyle(fontStyle === v ? null : v),
1785
+ onChange: (v) => handleSetFontStyle(fontStyle?.value === v ? null : v),
1552
1786
  "aria-label": "italic",
1553
1787
  sx: { marginLeft: "auto" }
1554
1788
  },
1555
- /* @__PURE__ */ React48.createElement(import_icons15.ItalicIcon, { fontSize: buttonSize })
1556
- ), /* @__PURE__ */ React48.createElement(
1789
+ /* @__PURE__ */ React54.createElement(import_icons17.ItalicIcon, { fontSize: buttonSize })
1790
+ ), /* @__PURE__ */ React54.createElement(
1557
1791
  ShorthandControl,
1558
1792
  {
1559
1793
  value: "line-through",
1560
- currentValues: textDecoration || "",
1561
- updateValues: setTextDecoration,
1794
+ currentValues: textDecoration?.value || "",
1795
+ updateValues: handleSetTextDecoration,
1562
1796
  "aria-label": "line-through"
1563
1797
  },
1564
- /* @__PURE__ */ React48.createElement(import_icons15.StrikethroughIcon, { fontSize: buttonSize })
1565
- ), /* @__PURE__ */ React48.createElement(
1798
+ /* @__PURE__ */ React54.createElement(import_icons17.StrikethroughIcon, { fontSize: buttonSize })
1799
+ ), /* @__PURE__ */ React54.createElement(
1566
1800
  ShorthandControl,
1567
1801
  {
1568
1802
  value: "underline",
1569
- currentValues: textDecoration || "",
1570
- updateValues: setTextDecoration,
1803
+ currentValues: textDecoration?.value || "",
1804
+ updateValues: handleSetTextDecoration,
1571
1805
  "aria-label": "underline"
1572
1806
  },
1573
- /* @__PURE__ */ React48.createElement(import_icons15.UnderlineIcon, { fontSize: buttonSize })
1807
+ /* @__PURE__ */ React54.createElement(import_icons17.UnderlineIcon, { fontSize: buttonSize })
1574
1808
  ))));
1575
1809
  };
1576
1810
  var ShorthandControl = ({
@@ -1589,52 +1823,52 @@ var ShorthandControl = ({
1589
1823
  updateValues([...valuesArr, newValue].join(" "));
1590
1824
  }
1591
1825
  };
1592
- return /* @__PURE__ */ React48.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
1826
+ return /* @__PURE__ */ React54.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
1593
1827
  };
1594
1828
  var ToggleButton = ({ onChange, ...props }) => {
1595
1829
  const handleChange = (_e, newValue) => {
1596
1830
  onChange(newValue);
1597
1831
  };
1598
- return /* @__PURE__ */ React48.createElement(import_ui40.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
1832
+ return /* @__PURE__ */ React54.createElement(import_ui46.ToggleButton, { ...props, onChange: handleChange, size: buttonSize });
1599
1833
  };
1600
1834
 
1601
1835
  // src/components/style-sections/typography-section/transform-field.tsx
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 = [
1836
+ var React55 = __toESM(require("react"));
1837
+ var import_editor_controls40 = require("@elementor/editor-controls");
1838
+ var import_icons18 = require("@elementor/icons");
1839
+ var import_ui47 = require("@elementor/ui");
1840
+ var import_i18n36 = require("@wordpress/i18n");
1841
+ var options9 = [
1608
1842
  {
1609
1843
  value: "capitalize",
1610
- label: (0, import_i18n31.__)("Capitalize", "elementor"),
1611
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseIcon, { fontSize: size })
1844
+ label: (0, import_i18n36.__)("Capitalize", "elementor"),
1845
+ renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseIcon, { fontSize: size })
1612
1846
  },
1613
1847
  {
1614
1848
  value: "uppercase",
1615
- label: (0, import_i18n31.__)("Uppercase", "elementor"),
1616
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseUpperIcon, { fontSize: size })
1849
+ label: (0, import_i18n36.__)("Uppercase", "elementor"),
1850
+ renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseUpperIcon, { fontSize: size })
1617
1851
  },
1618
1852
  {
1619
1853
  value: "lowercase",
1620
- label: (0, import_i18n31.__)("Lowercase", "elementor"),
1621
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(import_icons16.LetterCaseLowerIcon, { fontSize: size })
1854
+ label: (0, import_i18n36.__)("Lowercase", "elementor"),
1855
+ renderContent: ({ size }) => /* @__PURE__ */ React55.createElement(import_icons18.LetterCaseLowerIcon, { fontSize: size })
1622
1856
  }
1623
1857
  ];
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 }))));
1858
+ var TransformField = () => /* @__PURE__ */ React55.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React55.createElement(import_ui47.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(import_ui47.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(import_editor_controls40.ControlLabel, null, (0, import_i18n36.__)("Transform", "elementor"))), /* @__PURE__ */ React55.createElement(import_ui47.Grid, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(import_editor_controls40.ToggleControl, { options: options9 }))));
1625
1859
 
1626
1860
  // src/components/style-sections/typography-section/word-spacing-field.tsx
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");
1861
+ var React56 = __toESM(require("react"));
1862
+ var import_editor_controls41 = require("@elementor/editor-controls");
1863
+ var import_ui48 = require("@elementor/ui");
1864
+ var import_i18n37 = require("@wordpress/i18n");
1631
1865
  var WordSpacingField = () => {
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))));
1866
+ return /* @__PURE__ */ React56.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React56.createElement(import_ui48.Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(import_ui48.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls41.ControlLabel, null, (0, import_i18n37.__)("Word Spacing", "elementor"))), /* @__PURE__ */ React56.createElement(import_ui48.Grid, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(import_editor_controls41.SizeControl, null))));
1633
1867
  };
1634
1868
 
1635
1869
  // src/components/style-sections/typography-section/typography-section.tsx
1636
1870
  var TypographySection = () => {
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))));
1871
+ return /* @__PURE__ */ React57.createElement(import_ui49.Stack, { gap: 1.5 }, /* @__PURE__ */ React57.createElement(FontFamilyField, null), /* @__PURE__ */ React57.createElement(FontWeightField, null), /* @__PURE__ */ React57.createElement(FontSizeField, null), /* @__PURE__ */ React57.createElement(import_ui49.Divider, null), /* @__PURE__ */ React57.createElement(TextAlignmentField, null), /* @__PURE__ */ React57.createElement(TextColorField, null), /* @__PURE__ */ React57.createElement(CollapsibleContent, null, /* @__PURE__ */ React57.createElement(import_ui49.Stack, { gap: 1.5, sx: { pt: 1.5 } }, /* @__PURE__ */ React57.createElement(LineHeightField, null), /* @__PURE__ */ React57.createElement(LetterSpacingField, null), /* @__PURE__ */ React57.createElement(WordSpacingField, null), /* @__PURE__ */ React57.createElement(import_ui49.Divider, null), /* @__PURE__ */ React57.createElement(TextStyleField, null), /* @__PURE__ */ React57.createElement(TransformField, null), /* @__PURE__ */ React57.createElement(TextDirectionField, null), /* @__PURE__ */ React57.createElement(TextStrokeField, null))));
1638
1872
  };
1639
1873
 
1640
1874
  // src/components/style-tab.tsx
@@ -1643,13 +1877,12 @@ var StyleTab = () => {
1643
1877
  const currentClassesProp = useCurrentClassesProp();
1644
1878
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
1645
1879
  const breakpoint = (0, import_editor_responsive.useActiveBreakpoint)();
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)))));
1880
+ return /* @__PURE__ */ React58.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React58.createElement(StyleProvider, { meta: { breakpoint, state: null }, id: activeStyleDefId, setId: setActiveStyleDefId }, /* @__PURE__ */ React58.createElement(CssClassSelector, null), /* @__PURE__ */ React58.createElement(import_ui50.Divider, null), /* @__PURE__ */ React58.createElement(SectionsList, null, /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Layout", "elementor") }, /* @__PURE__ */ React58.createElement(LayoutSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Spacing", "elementor") }, /* @__PURE__ */ React58.createElement(SpacingSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Size", "elementor") }, /* @__PURE__ */ React58.createElement(SizeSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Position", "elementor") }, /* @__PURE__ */ React58.createElement(PositionSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Typography", "elementor") }, /* @__PURE__ */ React58.createElement(TypographySection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Background", "elementor") }, /* @__PURE__ */ React58.createElement(BackgroundSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Border", "elementor") }, /* @__PURE__ */ React58.createElement(BorderSection, null)), /* @__PURE__ */ React58.createElement(Section, { title: (0, import_i18n38.__)("Effects", "elementor") }, /* @__PURE__ */ React58.createElement(EffectsSection, null)))));
1647
1881
  };
1648
1882
  function useActiveStyleDefId(currentClassesProp) {
1649
- const [activeStyledDefId, setActiveStyledDefId] = (0, import_react12.useState)(null);
1883
+ const [activeStyledDefId, setActiveStyledDefId] = (0, import_react14.useState)(null);
1650
1884
  const fallback = useFirstElementStyleDef(currentClassesProp);
1651
- const newId = useGeneratedId();
1652
- return [activeStyledDefId || fallback?.id || newId, setActiveStyledDefId];
1885
+ return [activeStyledDefId || fallback?.id || null, setActiveStyledDefId];
1653
1886
  }
1654
1887
  function useFirstElementStyleDef(currentClassesProp) {
1655
1888
  const { element } = useElement();
@@ -1657,11 +1890,6 @@ function useFirstElementStyleDef(currentClassesProp) {
1657
1890
  const stylesDefs = (0, import_editor_elements5.useElementStyles)(element.id);
1658
1891
  return Object.values(stylesDefs).find((styleDef) => classesIds.includes(styleDef.id));
1659
1892
  }
1660
- function useGeneratedId() {
1661
- const { element } = useElement();
1662
- const stylesDefs = (0, import_editor_elements5.useElementStyles)(element.id);
1663
- return (0, import_editor_styles.generateId)(`e-${element.id}-`, Object.keys(stylesDefs));
1664
- }
1665
1893
  function useCurrentClassesProp() {
1666
1894
  const { elementType } = useElement();
1667
1895
  const prop = Object.entries(elementType.propsSchema).find(
@@ -1676,11 +1904,11 @@ function useCurrentClassesProp() {
1676
1904
  // src/components/editing-panel-tabs.tsx
1677
1905
  var EditingPanelTabs = () => {
1678
1906
  const { element } = useElement();
1679
- const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui45.useTabs)("settings");
1907
+ const { getTabProps, getTabPanelProps, getTabsProps } = (0, import_ui51.useTabs)("settings");
1680
1908
  return (
1681
1909
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
1682
1910
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
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))))
1911
+ /* @__PURE__ */ React59.createElement(import_react15.Fragment, { key: element.id }, /* @__PURE__ */ React59.createElement(import_ui51.Stack, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React59.createElement(import_ui51.Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React59.createElement(import_ui51.Tab, { label: (0, import_i18n39.__)("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React59.createElement(import_ui51.Tab, { label: (0, import_i18n39.__)("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React59.createElement(import_ui51.Divider, null), /* @__PURE__ */ React59.createElement(import_ui51.TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React59.createElement(SettingsTab, null)), /* @__PURE__ */ React59.createElement(import_ui51.TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React59.createElement(StyleTab, null))))
1684
1912
  );
1685
1913
  };
1686
1914
 
@@ -1693,8 +1921,8 @@ var EditingPanel = () => {
1693
1921
  if (!element || !elementType) {
1694
1922
  return null;
1695
1923
  }
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)))))));
1924
+ const panelTitle = (0, import_i18n40.__)("Edit %s", "elementor").replace("%s", elementType.title);
1925
+ return /* @__PURE__ */ React60.createElement(import_ui52.ErrorBoundary, { fallback: /* @__PURE__ */ React60.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React60.createElement(import_editor_panels.Panel, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeader, null, /* @__PURE__ */ React60.createElement(import_editor_panels.PanelHeaderTitle, null, panelTitle)), /* @__PURE__ */ React60.createElement(import_editor_panels.PanelBody, null, /* @__PURE__ */ React60.createElement(import_editor_controls42.ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React60.createElement(import_editor_controls42.ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React60.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React60.createElement(EditingPanelTabs, null)))))));
1698
1926
  };
1699
1927
 
1700
1928
  // src/panel.ts
@@ -1717,7 +1945,7 @@ var isAtomicWidgetSelected = () => {
1717
1945
  // src/hooks/use-close-editor-panel.ts
1718
1946
  var useCloseEditorPanel = () => {
1719
1947
  const { close } = usePanelActions();
1720
- return (0, import_react14.useEffect)(() => {
1948
+ return (0, import_react16.useEffect)(() => {
1721
1949
  return (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.commandStartEvent)("document/elements/delete"), (e) => {
1722
1950
  const selectedElement = (0, import_editor_elements8.getSelectedElements)()[0];
1723
1951
  const { container: deletedContainer } = e?.args;
@@ -1730,11 +1958,11 @@ var useCloseEditorPanel = () => {
1730
1958
  };
1731
1959
 
1732
1960
  // src/hooks/use-open-editor-panel.ts
1733
- var import_react15 = require("react");
1961
+ var import_react17 = require("react");
1734
1962
  var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
1735
1963
  var useOpenEditorPanel = () => {
1736
1964
  const { open } = usePanelActions();
1737
- (0, import_react15.useEffect)(() => {
1965
+ (0, import_react17.useEffect)(() => {
1738
1966
  return (0, import_editor_v1_adapters2.__privateListenTo)((0, import_editor_v1_adapters2.commandStartEvent)("panel/editor/open"), () => {
1739
1967
  if (isAtomicWidgetSelected()) {
1740
1968
  open();
@@ -1751,22 +1979,23 @@ var EditingPanelHooks = () => {
1751
1979
  };
1752
1980
 
1753
1981
  // src/dynamics/components/dynamic-selection-control.tsx
1754
- var React57 = __toESM(require("react"));
1755
- var import_react19 = require("react");
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");
1982
+ var React63 = __toESM(require("react"));
1983
+ var import_react21 = require("react");
1984
+ var import_editor_controls45 = require("@elementor/editor-controls");
1985
+ var import_icons20 = require("@elementor/icons");
1986
+ var import_ui54 = require("@elementor/ui");
1987
+ var import_i18n42 = require("@wordpress/i18n");
1760
1988
 
1761
1989
  // src/dynamics/dynamic-control.tsx
1762
- var React55 = __toESM(require("react"));
1763
- var import_editor_controls39 = require("@elementor/editor-controls");
1990
+ var React61 = __toESM(require("react"));
1991
+ var import_editor_controls43 = require("@elementor/editor-controls");
1992
+ var import_editor_props5 = require("@elementor/editor-props");
1764
1993
 
1765
1994
  // src/dynamics/hooks/use-dynamic-tag.ts
1766
- var import_react17 = require("react");
1995
+ var import_react19 = require("react");
1767
1996
 
1768
1997
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
1769
- var import_react16 = require("react");
1998
+ var import_react18 = require("react");
1770
1999
 
1771
2000
  // src/dynamics/sync/get-elementor-config.ts
1772
2001
  var getElementorConfig2 = () => {
@@ -1787,7 +2016,8 @@ var getAtomicDynamicTags = () => {
1787
2016
  };
1788
2017
 
1789
2018
  // src/dynamics/utils.ts
1790
- var import_editor_props2 = require("@elementor/editor-props");
2019
+ var import_editor_props4 = require("@elementor/editor-props");
2020
+ var import_schema = require("@elementor/schema");
1791
2021
  var DYNAMIC_PROP_TYPE_KEY = "dynamic";
1792
2022
  var isDynamicPropType = (prop) => prop.key === DYNAMIC_PROP_TYPE_KEY;
1793
2023
  var getDynamicPropType = (propType) => {
@@ -1795,11 +2025,18 @@ var getDynamicPropType = (propType) => {
1795
2025
  return dynamicPropType && isDynamicPropType(dynamicPropType) ? dynamicPropType : null;
1796
2026
  };
1797
2027
  var isDynamicPropValue = (prop) => {
1798
- return (0, import_editor_props2.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
2028
+ return (0, import_editor_props4.isTransformable)(prop) && prop.$$type === DYNAMIC_PROP_TYPE_KEY;
1799
2029
  };
1800
2030
  var supportsDynamic = (propType) => {
1801
2031
  return !!getDynamicPropType(propType);
1802
2032
  };
2033
+ var dynamicPropTypeUtil = (0, import_editor_props4.createPropUtils)(
2034
+ DYNAMIC_PROP_TYPE_KEY,
2035
+ import_schema.z.strictObject({
2036
+ name: import_schema.z.string(),
2037
+ settings: import_schema.z.record(import_schema.z.any()).optional()
2038
+ })
2039
+ );
1803
2040
 
1804
2041
  // src/dynamics/hooks/use-prop-dynamic-tags.ts
1805
2042
  var usePropDynamicTags = (propName) => {
@@ -1810,7 +2047,7 @@ var usePropDynamicTags = (propName) => {
1810
2047
  const propDynamicType = getDynamicPropType(propType);
1811
2048
  categories = propDynamicType?.settings.categories || [];
1812
2049
  }
1813
- return (0, import_react16.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
2050
+ return (0, import_react18.useMemo)(() => getDynamicTagsByCategories(categories), [categories.join()]);
1814
2051
  };
1815
2052
  var getDynamicTagsByCategories = (categories) => {
1816
2053
  const dynamicTags = getAtomicDynamicTags();
@@ -1826,13 +2063,13 @@ var getDynamicTagsByCategories = (categories) => {
1826
2063
  // src/dynamics/hooks/use-dynamic-tag.ts
1827
2064
  var useDynamicTag = (propName, tagName) => {
1828
2065
  const dynamicTags = usePropDynamicTags(propName);
1829
- return (0, import_react17.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
2066
+ return (0, import_react19.useMemo)(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
1830
2067
  };
1831
2068
 
1832
2069
  // src/dynamics/dynamic-control.tsx
1833
2070
  var DynamicControl = ({ bind, children }) => {
1834
- const { value, setValue, bind: propName } = (0, import_editor_controls39.useBoundProp)();
1835
- const { name = "", settings } = value?.value ?? {};
2071
+ const { value, setValue, bind: propName } = (0, import_editor_controls43.useBoundProp)(dynamicPropTypeUtil);
2072
+ const { name = "", settings } = value ?? {};
1836
2073
  const dynamicTag = useDynamicTag(propName, name);
1837
2074
  if (!dynamicTag) {
1838
2075
  throw new Error(`Dynamic tag ${name} not found`);
@@ -1841,60 +2078,59 @@ var DynamicControl = ({ bind, children }) => {
1841
2078
  const dynamicValue = settings?.[bind] ?? defaultValue;
1842
2079
  const setDynamicValue = (newValue) => {
1843
2080
  setValue({
1844
- $$type: "dynamic",
1845
- value: {
1846
- name,
1847
- settings: {
1848
- ...settings,
1849
- [bind]: newValue
1850
- }
2081
+ name,
2082
+ settings: {
2083
+ ...settings,
2084
+ // The value inside the dynamic is not a transformable value, so we need to store the whole object.
2085
+ [bind]: (0, import_editor_props5.isTransformable)(newValue) ? newValue.value : newValue
1851
2086
  }
1852
2087
  });
1853
2088
  };
1854
- return /* @__PURE__ */ React55.createElement(import_editor_controls39.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
2089
+ return /* @__PURE__ */ React61.createElement(import_editor_controls43.BoundPropProvider, { setValue: setDynamicValue, value: dynamicValue, bind }, children);
1855
2090
  };
1856
2091
 
1857
2092
  // src/dynamics/components/dynamic-selection.tsx
1858
- var React56 = __toESM(require("react"));
1859
- var import_react18 = require("react");
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");
2093
+ var React62 = __toESM(require("react"));
2094
+ var import_react20 = require("react");
2095
+ var import_editor_controls44 = require("@elementor/editor-controls");
2096
+ var import_icons19 = require("@elementor/icons");
2097
+ var import_ui53 = require("@elementor/ui");
2098
+ var import_i18n41 = require("@wordpress/i18n");
1864
2099
  var SIZE3 = "tiny";
1865
2100
  var DynamicSelection = ({ onSelect }) => {
1866
- const [searchValue, setSearchValue] = (0, import_react18.useState)("");
2101
+ const [searchValue, setSearchValue] = (0, import_react20.useState)("");
1867
2102
  const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
1868
- const { bind, value: currentValue, setValue } = (0, import_editor_controls40.useBoundProp)();
2103
+ const { value: anyValue } = (0, import_editor_controls44.useBoundProp)();
2104
+ const { bind, value: dynamicvalue, setValue } = (0, import_editor_controls44.useBoundProp)(dynamicPropTypeUtil);
1869
2105
  const { setPropValue: updatePropValueHistory } = usePropValueHistory();
1870
- const isCurrentValueDynamic = isDynamicPropValue(currentValue);
1871
- const options7 = useFilteredOptions(bind, searchValue);
2106
+ const isCurrentValueDynamic = !!dynamicvalue;
2107
+ const options10 = useFilteredOptions(bind, searchValue);
1872
2108
  const handleSearch = (event) => {
1873
2109
  setSearchValue(event.target.value);
1874
2110
  };
1875
2111
  const handleSetDynamicTag = (value) => {
1876
2112
  if (!isCurrentValueDynamic) {
1877
- updatePropValueHistory(bind, currentValue);
2113
+ updatePropValueHistory(bind, anyValue);
1878
2114
  }
1879
- setValue({ $$type: "dynamic", value: { name: value, settings: {} } });
2115
+ setValue({ name: value, settings: {} });
1880
2116
  onSelect?.();
1881
2117
  };
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,
2118
+ return /* @__PURE__ */ React62.createElement(import_ui53.Stack, null, /* @__PURE__ */ React62.createElement(import_ui53.Box, { px: 1.5, pb: 1 }, /* @__PURE__ */ React62.createElement(
2119
+ import_ui53.TextField,
1884
2120
  {
1885
2121
  fullWidth: true,
1886
2122
  size: SIZE3,
1887
2123
  value: searchValue,
1888
2124
  onChange: handleSearch,
1889
- placeholder: (0, import_i18n36.__)("Search dynamic tag", "elementor"),
2125
+ placeholder: (0, import_i18n41.__)("Search dynamic tag", "elementor"),
1890
2126
  InputProps: {
1891
- startAdornment: /* @__PURE__ */ React56.createElement(import_ui47.InputAdornment, { position: "start" }, /* @__PURE__ */ React56.createElement(import_icons17.SearchIcon, { fontSize: SIZE3 }))
2127
+ startAdornment: /* @__PURE__ */ React62.createElement(import_ui53.InputAdornment, { position: "start" }, /* @__PURE__ */ React62.createElement(import_icons19.SearchIcon, { fontSize: SIZE3 }))
1892
2128
  }
1893
2129
  }
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 }) => {
1895
- const isSelected = isCurrentValueDynamic && value === currentValue?.value?.name;
1896
- return /* @__PURE__ */ React56.createElement(
1897
- import_ui47.MenuItem,
2130
+ )), /* @__PURE__ */ React62.createElement(import_ui53.Divider, null), /* @__PURE__ */ React62.createElement(import_ui53.Box, { sx: { overflowY: "auto", height: 260, width: 220 } }, options10.length > 0 ? /* @__PURE__ */ React62.createElement(import_ui53.MenuList, { role: "listbox", tabIndex: 0 }, options10.map(([category, items3], index) => /* @__PURE__ */ React62.createElement(import_react20.Fragment, { key: index }, /* @__PURE__ */ React62.createElement(import_ui53.ListSubheader, { sx: { typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
2131
+ const isSelected = isCurrentValueDynamic && value === dynamicvalue?.name;
2132
+ return /* @__PURE__ */ React62.createElement(
2133
+ import_ui53.MenuItem,
1898
2134
  {
1899
2135
  key: value,
1900
2136
  selected: isSelected,
@@ -1904,20 +2140,20 @@ var DynamicSelection = ({ onSelect }) => {
1904
2140
  },
1905
2141
  tagLabel
1906
2142
  );
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,
2143
+ })))) : /* @__PURE__ */ React62.createElement(import_ui53.Stack, { alignItems: "center", p: 2.5, gap: 1.5 }, /* @__PURE__ */ React62.createElement(import_icons19.PhotoIcon, { fontSize: "large" }), /* @__PURE__ */ React62.createElement(import_ui53.Typography, { align: "center", variant: "caption", color: "text.secondary" }, (0, import_i18n41.__)("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React62.createElement("br", null), "\u201C", searchValue, "\u201D."), /* @__PURE__ */ React62.createElement(import_ui53.Typography, { align: "center", variant: "caption", color: "text.secondary" }, /* @__PURE__ */ React62.createElement(
2144
+ import_ui53.Link,
1909
2145
  {
1910
2146
  color: "secondary",
1911
2147
  variant: "caption",
1912
2148
  component: "button",
1913
2149
  onClick: () => setSearchValue("")
1914
2150
  },
1915
- (0, import_i18n36.__)("Clear the filters", "elementor")
1916
- ), "\xA0", (0, import_i18n36.__)("and try again.", "elementor")))));
2151
+ (0, import_i18n41.__)("Clear the filters", "elementor")
2152
+ ), "\xA0", (0, import_i18n41.__)("and try again.", "elementor")))));
1917
2153
  };
1918
2154
  var useFilteredOptions = (bind, searchValue) => {
1919
2155
  const dynamicTags = usePropDynamicTags(bind);
1920
- const options7 = dynamicTags.reduce((categories, { name, label, group }) => {
2156
+ const options10 = dynamicTags.reduce((categories, { name, label, group }) => {
1921
2157
  const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
1922
2158
  if (!isVisible) {
1923
2159
  return categories;
@@ -1928,89 +2164,90 @@ var useFilteredOptions = (bind, searchValue) => {
1928
2164
  categories.get(group)?.push({ label, value: name });
1929
2165
  return categories;
1930
2166
  }, /* @__PURE__ */ new Map());
1931
- return [...options7];
2167
+ return [...options10];
1932
2168
  };
1933
2169
 
1934
2170
  // src/dynamics/components/dynamic-selection-control.tsx
1935
2171
  var SIZE4 = "tiny";
1936
2172
  var DynamicSelectionControl = () => {
1937
- const { bind, value, setValue } = (0, import_editor_controls41.useBoundProp)();
2173
+ const { setValue: setAnyValue } = (0, import_editor_controls45.useBoundProp)();
2174
+ const { bind, value } = (0, import_editor_controls45.useBoundProp)(dynamicPropTypeUtil);
1938
2175
  const { getPropValue: getPropValueFromHistory } = usePropValueHistory();
1939
- const { name: tagName = "" } = value?.value || {};
1940
- const selectionPopoverId = (0, import_react19.useId)();
1941
- const selectionPopoverState = (0, import_ui48.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
2176
+ const { name: tagName = "" } = value;
2177
+ const selectionPopoverId = (0, import_react21.useId)();
2178
+ const selectionPopoverState = (0, import_ui54.usePopupState)({ variant: "popover", popupId: selectionPopoverId });
1942
2179
  const dynamicTag = useDynamicTag(bind, tagName);
1943
2180
  const removeDynamicTag = () => {
1944
2181
  const propValue = getPropValueFromHistory(bind);
1945
- setValue(propValue ?? null);
2182
+ setAnyValue(propValue ?? null);
1946
2183
  };
1947
2184
  if (!dynamicTag) {
1948
2185
  throw new Error(`Dynamic tag ${tagName} not found`);
1949
2186
  }
1950
- return /* @__PURE__ */ React57.createElement(import_ui48.Box, null, /* @__PURE__ */ React57.createElement(
1951
- import_ui48.UnstableTag,
2187
+ return /* @__PURE__ */ React63.createElement(import_ui54.Box, null, /* @__PURE__ */ React63.createElement(
2188
+ import_ui54.UnstableTag,
1952
2189
  {
1953
2190
  fullWidth: true,
1954
2191
  showActionsOnHover: true,
1955
2192
  label: dynamicTag.label,
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,
2193
+ startIcon: /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4 }),
2194
+ ...(0, import_ui54.bindTrigger)(selectionPopoverState),
2195
+ actions: /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React63.createElement(
2196
+ import_ui54.IconButton,
1960
2197
  {
1961
2198
  size: SIZE4,
1962
2199
  onClick: removeDynamicTag,
1963
- "aria-label": (0, import_i18n37.__)("Remove dynamic value", "elementor")
2200
+ "aria-label": (0, import_i18n42.__)("Remove dynamic value", "elementor")
1964
2201
  },
1965
- /* @__PURE__ */ React57.createElement(import_icons18.XIcon, { fontSize: SIZE4 })
2202
+ /* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 })
1966
2203
  ))
1967
2204
  }
1968
- ), /* @__PURE__ */ React57.createElement(
1969
- import_ui48.Popover,
2205
+ ), /* @__PURE__ */ React63.createElement(
2206
+ import_ui54.Popover,
1970
2207
  {
1971
2208
  disablePortal: true,
1972
2209
  disableScrollLock: true,
1973
2210
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
1974
- ...(0, import_ui48.bindPopover)(selectionPopoverState)
2211
+ ...(0, import_ui54.bindPopover)(selectionPopoverState)
1975
2212
  },
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 }))
2213
+ /* @__PURE__ */ React63.createElement(import_ui54.Stack, null, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui54.Typography, { variant: "subtitle2" }, (0, import_i18n42.__)("Dynamic Tags", "elementor")), /* @__PURE__ */ React63.createElement(import_ui54.IconButton, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
1977
2214
  ));
1978
2215
  };
1979
2216
  var DynamicSettingsPopover = ({ dynamicTag }) => {
1980
- const popupId = (0, import_react19.useId)();
1981
- const settingsPopupState = (0, import_ui48.usePopupState)({ variant: "popover", popupId });
2217
+ const popupId = (0, import_react21.useId)();
2218
+ const settingsPopupState = (0, import_ui54.usePopupState)({ variant: "popover", popupId });
1982
2219
  const hasDynamicSettings = !!dynamicTag.atomic_controls.length;
1983
2220
  if (!hasDynamicSettings) {
1984
2221
  return null;
1985
2222
  }
1986
- return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(
1987
- import_ui48.IconButton,
2223
+ return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
2224
+ import_ui54.IconButton,
1988
2225
  {
1989
2226
  size: SIZE4,
1990
- ...(0, import_ui48.bindTrigger)(settingsPopupState),
1991
- "aria-label": (0, import_i18n37.__)("Settings", "elementor")
2227
+ ...(0, import_ui54.bindTrigger)(settingsPopupState),
2228
+ "aria-label": (0, import_i18n42.__)("Settings", "elementor")
1992
2229
  },
1993
- /* @__PURE__ */ React57.createElement(import_icons18.SettingsIcon, { fontSize: SIZE4 })
1994
- ), /* @__PURE__ */ React57.createElement(
1995
- import_ui48.Popover,
2230
+ /* @__PURE__ */ React63.createElement(import_icons20.SettingsIcon, { fontSize: SIZE4 })
2231
+ ), /* @__PURE__ */ React63.createElement(
2232
+ import_ui54.Popover,
1996
2233
  {
1997
2234
  disableScrollLock: true,
1998
2235
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
1999
- ...(0, import_ui48.bindPopover)(settingsPopupState)
2236
+ ...(0, import_ui54.bindPopover)(settingsPopupState)
2000
2237
  },
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 }))
2238
+ /* @__PURE__ */ React63.createElement(import_ui54.Paper, { component: import_ui54.Stack, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React63.createElement(import_icons20.DatabaseIcon, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React63.createElement(import_ui54.Typography, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React63.createElement(import_ui54.IconButton, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React63.createElement(import_icons20.XIcon, { fontSize: SIZE4 }))), /* @__PURE__ */ React63.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
2002
2239
  ));
2003
2240
  };
2004
2241
  var DynamicSettings = ({ controls }) => {
2005
2242
  const tabs = controls.filter(({ type }) => type === "section");
2006
- const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui48.useTabs)(0);
2243
+ const { getTabsProps, getTabProps, getTabPanelProps } = (0, import_ui54.useTabs)(0);
2007
2244
  if (!tabs.length) {
2008
2245
  return null;
2009
2246
  }
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) => {
2247
+ return /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(import_ui54.Tabs, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React63.createElement(import_ui54.Tab, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React63.createElement(import_ui54.Divider, null), tabs.map(({ value }, index) => {
2248
+ return /* @__PURE__ */ React63.createElement(import_ui54.TabPanel, { key: index, sx: { flexGrow: 1 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React63.createElement(import_ui54.Stack, { gap: 1, px: 2 }, value.items.map((item) => {
2012
2249
  if (item.type === "control") {
2013
- return /* @__PURE__ */ React57.createElement(Control3, { key: item.value.bind, control: item.value });
2250
+ return /* @__PURE__ */ React63.createElement(Control3, { key: item.value.bind, control: item.value });
2014
2251
  }
2015
2252
  return null;
2016
2253
  })));
@@ -2020,24 +2257,24 @@ var Control3 = ({ control }) => {
2020
2257
  if (!getControlByType(control.type)) {
2021
2258
  return null;
2022
2259
  }
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 }));
2260
+ return /* @__PURE__ */ React63.createElement(DynamicControl, { bind: control.bind }, control.label ? /* @__PURE__ */ React63.createElement(import_editor_controls45.ControlLabel, null, control.label) : null, /* @__PURE__ */ React63.createElement(Control, { type: control.type, props: control.props }));
2024
2261
  };
2025
2262
 
2026
2263
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
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");
2264
+ var React64 = __toESM(require("react"));
2265
+ var import_editor_controls46 = require("@elementor/editor-controls");
2266
+ var import_icons21 = require("@elementor/icons");
2267
+ var import_i18n43 = require("@wordpress/i18n");
2031
2268
  var usePropDynamicAction = () => {
2032
- const { bind } = (0, import_editor_controls42.useBoundProp)();
2269
+ const { bind } = (0, import_editor_controls46.useBoundProp)();
2033
2270
  const { elementType } = useElement();
2034
2271
  const propType = elementType.propsSchema[bind];
2035
2272
  const visible = !!propType && supportsDynamic(propType);
2036
2273
  return {
2037
2274
  visible,
2038
- icon: import_icons19.DatabaseIcon,
2039
- title: (0, import_i18n38.__)("Dynamic Tags", "elementor"),
2040
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React58.createElement(DynamicSelection, { onSelect: closePopover })
2275
+ icon: import_icons21.DatabaseIcon,
2276
+ title: (0, import_i18n43.__)("Dynamic Tags", "elementor"),
2277
+ popoverContent: ({ closePopover }) => /* @__PURE__ */ React64.createElement(DynamicSelection, { onSelect: closePopover })
2041
2278
  };
2042
2279
  };
2043
2280