@elementor/editor-editing-panel 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -15,6 +15,7 @@ import {
15
15
  useCreateActionsByProvider,
16
16
  useProviders
17
17
  } from "@elementor/editor-styles-repository";
18
+ import { MapPinIcon } from "@elementor/icons";
18
19
  import { createLocation } from "@elementor/locations";
19
20
  import { Chip as Chip2, Stack as Stack2, Typography as Typography2 } from "@elementor/ui";
20
21
  import { __ as __3 } from "@wordpress/i18n";
@@ -109,7 +110,7 @@ import {
109
110
  function MultiCombobox({
110
111
  actions = [],
111
112
  selected,
112
- options: options11,
113
+ options: options12,
113
114
  onSelect,
114
115
  ...props
115
116
  }) {
@@ -127,23 +128,23 @@ function MultiCombobox({
127
128
  handleHomeEndKeys: true,
128
129
  disabled: loading,
129
130
  value: selected,
130
- options: options11,
131
+ options: options12,
131
132
  renderGroup: (params) => /* @__PURE__ */ React4.createElement(Group, { ...params }),
132
133
  renderInput: (params) => /* @__PURE__ */ React4.createElement(TextField, { ...params }),
133
134
  onChange: (_, selectedOrInputValue, reason) => {
134
135
  const inputValue = selectedOrInputValue.find((option) => typeof option === "string");
135
136
  const optionsAndActions = selectedOrInputValue.filter((option) => typeof option !== "string");
136
137
  if (reason === "createOption") {
137
- const [firstAction] = filterActions(actions, { options: options11, inputValue: inputValue ?? "" });
138
- if (firstAction) {
138
+ const [firstAction] = filterActions(actions, { options: options12, inputValue: inputValue ?? "" });
139
+ if (firstAction.value) {
139
140
  return run(firstAction.apply, firstAction.value);
140
141
  }
141
142
  }
142
143
  const action = optionsAndActions.find((value) => isAction(value));
143
- if (reason === "selectOption" && action) {
144
+ if (reason === "selectOption" && action?.value) {
144
145
  return run(action.apply, action.value);
145
146
  }
146
- const fixedValues = options11.filter((option) => !!option.fixed);
147
+ const fixedValues = options12.filter((option) => !!option.fixed);
147
148
  onSelect?.([.../* @__PURE__ */ new Set([...optionsAndActions, ...fixedValues])]);
148
149
  },
149
150
  getOptionLabel: (option) => typeof option === "string" ? option : option.label,
@@ -151,7 +152,7 @@ function MultiCombobox({
151
152
  if (typeof option === "string") {
152
153
  return option;
153
154
  }
154
- return option.key ?? option.value;
155
+ return option.key ?? option.value ?? option.label;
155
156
  },
156
157
  filterOptions: (optionList, params) => {
157
158
  const selectedValues = selected.map((option) => option.value);
@@ -163,7 +164,8 @@ function MultiCombobox({
163
164
  )
164
165
  ];
165
166
  },
166
- groupBy: (option) => option.group ?? ""
167
+ groupBy: (option) => option.group ?? "",
168
+ renderOption: (optionProps, { label }) => /* @__PURE__ */ React4.createElement("li", { ...optionProps, style: { display: "block", textOverflow: "ellipsis" } }, label)
167
169
  }
168
170
  );
169
171
  }
@@ -200,8 +202,8 @@ function useActionRunner() {
200
202
  };
201
203
  return { run, loading };
202
204
  }
203
- function filterActions(actions, { options: options11, inputValue }) {
204
- return actions.filter((action) => action.condition(options11, inputValue)).map((action, index) => ({
205
+ function filterActions(actions, { options: options12, inputValue }) {
206
+ return actions.filter((action) => action.condition(options12, inputValue)).map((action, index) => ({
205
207
  label: action.label(inputValue),
206
208
  value: inputValue,
207
209
  group: action.group,
@@ -282,8 +284,9 @@ function CssClassMenu({ styleId, provider, popupState, handleRename, anchorEl })
282
284
  },
283
285
  getMenuItemsByProvider({ provider, styleId, handleRename, closeMenu: popupState.close }),
284
286
  /* @__PURE__ */ React5.createElement(ListSubheader, { sx: { typography: "caption", color: "text.secondary", pb: 0.5, pt: 1 } }, __("Pseudo classes", "elementor")),
287
+ /* @__PURE__ */ React5.createElement(StateMenuItem, { key: "normal", state: null, styleId, closeMenu: popupState.close }),
285
288
  STATES.map((state) => {
286
- return /* @__PURE__ */ React5.createElement(StateMenuItem, { key: state, state, styleId });
289
+ return /* @__PURE__ */ React5.createElement(StateMenuItem, { key: state, state, styleId, closeMenu: popupState.close });
287
290
  })
288
291
  );
289
292
  }
@@ -293,12 +296,15 @@ function getMenuItemsByProvider({
293
296
  handleRename,
294
297
  closeMenu
295
298
  }) {
299
+ if (!styleId) {
300
+ return [];
301
+ }
296
302
  const providerInstance = stylesRepository2.getProviderByKey(provider);
297
303
  const providerActions = providerInstance?.actions;
298
304
  const [canUpdate, canDelete] = [providerActions?.update, providerActions?.delete];
299
305
  const actions = [
300
306
  canUpdate && /* @__PURE__ */ React5.createElement(RenameClassMenuItem, { key: "rename-class", handleRename, closeMenu }),
301
- canDelete && /* @__PURE__ */ React5.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId })
307
+ canDelete && /* @__PURE__ */ React5.createElement(UnapplyClassMenuItem, { key: "unapply-class", styleId, closeMenu })
302
308
  ].filter(Boolean);
303
309
  if (actions.length) {
304
310
  actions.unshift(
@@ -315,7 +321,7 @@ function getMenuItemsByProvider({
315
321
  }
316
322
  return actions;
317
323
  }
318
- function StateMenuItem({ state, styleId, ...props }) {
324
+ function StateMenuItem({ state, styleId, closeMenu, ...props }) {
319
325
  const { id: activeId, setId: setActiveId, setMetaState: setActiveMetaState, meta } = useStyle();
320
326
  const { state: activeState } = meta;
321
327
  const isActive = styleId === activeId;
@@ -331,14 +337,25 @@ function StateMenuItem({ state, styleId, ...props }) {
331
337
  setActiveId(styleId);
332
338
  }
333
339
  setActiveMetaState(state);
340
+ closeMenu();
334
341
  }
335
342
  },
336
- state
343
+ state ? state : "Normal"
337
344
  );
338
345
  }
339
- function UnapplyClassMenuItem({ styleId, ...props }) {
346
+ function UnapplyClassMenuItem({ styleId, closeMenu, ...props }) {
340
347
  const unapplyClass = useUnapplyClass(styleId);
341
- return /* @__PURE__ */ React5.createElement(StyledMenuItem, { ...props, onClick: unapplyClass }, __("Remove", "elementor"));
348
+ return /* @__PURE__ */ React5.createElement(
349
+ StyledMenuItem,
350
+ {
351
+ ...props,
352
+ onClick: () => {
353
+ unapplyClass();
354
+ closeMenu();
355
+ }
356
+ },
357
+ __("Remove", "elementor")
358
+ );
342
359
  }
343
360
  function RenameClassMenuItem({
344
361
  handleRename,
@@ -367,11 +384,12 @@ function CssClassItem({
367
384
  provider,
368
385
  isActive,
369
386
  color: colorProp,
387
+ icon,
370
388
  chipProps,
371
389
  onClickActive,
372
390
  renameLabel
373
391
  }) {
374
- const { meta } = useStyle();
392
+ const { meta, setMetaState } = useStyle();
375
393
  const popupState = usePopupState({ variant: "popover" });
376
394
  const [chipRef, setChipRef] = useState2(null);
377
395
  const { onDelete, ...chipGroupProps } = chipProps;
@@ -389,21 +407,30 @@ function CssClassItem({
389
407
  const color = error ? "error" : colorProp;
390
408
  const providerActions = stylesRepository3.getProviderByKey(provider)?.actions;
391
409
  const allowRename = Boolean(providerActions?.update);
410
+ const isShowingState = isActive && meta.state;
392
411
  return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(UnstableChipGroup, { ref: setChipRef, ...chipGroupProps, "aria-label": `Edit ${label}`, role: "group" }, /* @__PURE__ */ React6.createElement(
393
412
  Chip,
394
413
  {
395
414
  size: CHIP_SIZE,
396
415
  label: isEditing ? /* @__PURE__ */ React6.createElement(EditableField, { ref, error, ...getEditableProps() }) : /* @__PURE__ */ React6.createElement(EllipsisWithTooltip, { maxWidth: "10ch", title: label, as: "div" }),
397
- variant: isActive && !meta.state ? "filled" : "standard",
416
+ variant: isActive && !meta.state && !isEditing ? "filled" : "standard",
417
+ shape: "rounded",
418
+ icon,
398
419
  color,
399
420
  onClick: () => {
400
- if (isActive && allowRename) {
421
+ if (isShowingState) {
422
+ setMetaState(null);
423
+ return;
424
+ }
425
+ if (allowRename && isActive) {
401
426
  openEditMode();
427
+ return;
402
428
  }
403
429
  onClickActive(id);
404
430
  },
405
431
  "aria-pressed": isActive,
406
432
  sx: {
433
+ cursor: isActive && allowRename && !isShowingState ? "text" : "pointer",
407
434
  "&.Mui-focusVisible": {
408
435
  boxShadow: "none !important"
409
436
  }
@@ -412,12 +439,19 @@ function CssClassItem({
412
439
  ), !isEditing && /* @__PURE__ */ React6.createElement(
413
440
  Chip,
414
441
  {
442
+ icon: isShowingState ? void 0 : /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "tiny" }),
415
443
  size: CHIP_SIZE,
416
- label: /* @__PURE__ */ React6.createElement(Stack, { direction: "row", gap: 0.5, alignItems: "center" }, isActive && meta.state && /* @__PURE__ */ React6.createElement(Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "inherit" })),
444
+ label: isShowingState ? /* @__PURE__ */ React6.createElement(Stack, { direction: "row", gap: 0.5, alignItems: "center" }, /* @__PURE__ */ React6.createElement(Typography, { variant: "inherit" }, meta.state), /* @__PURE__ */ React6.createElement(DotsVerticalIcon, { fontSize: "tiny" })) : void 0,
417
445
  variant: "filled",
446
+ shape: "rounded",
418
447
  color,
419
448
  ...bindTrigger(popupState),
420
- "aria-label": __2("Open CSS Class Menu", "elementor")
449
+ "aria-label": __2("Open CSS Class Menu", "elementor"),
450
+ sx: {
451
+ paddingRight: 0,
452
+ ...!isShowingState ? { paddingLeft: 0 } : {},
453
+ ".MuiChip-label": isShowingState ? { paddingRight: 0 } : { padding: 0 }
454
+ }
421
455
  }
422
456
  )), /* @__PURE__ */ React6.createElement(
423
457
  CssClassMenu,
@@ -442,29 +476,30 @@ var validateLabel = (newLabel) => {
442
476
 
443
477
  // src/components/css-classes/css-class-selector.tsx
444
478
  var ID = "elementor-css-class-selector";
445
- var TAGS_LIMIT = 8;
479
+ var TAGS_LIMIT = 50;
446
480
  var EMPTY_OPTION = {
447
481
  label: __3("local", "elementor"),
448
- value: "",
482
+ value: null,
449
483
  fixed: true,
450
484
  color: "primary",
485
+ icon: /* @__PURE__ */ React7.createElement(MapPinIcon, null),
451
486
  provider: ELEMENTS_STYLES_PROVIDER_KEY
452
487
  };
453
488
  var { Slot: ClassSelectorActionsSlot, inject: injectIntoClassSelectorActions } = createLocation();
454
489
  function CssClassSelector() {
455
- const options11 = useOptions();
490
+ const options12 = useOptions();
456
491
  const { value: appliedIds, setValue: setAppliedIds, pushValue: pushAppliedId } = useAppliedClassesIds();
457
492
  const { id: activeId, setId: setActiveId } = useStyle();
458
493
  const actions = useCreateActions({ pushAppliedId, setActiveId });
459
494
  const handleApply = useHandleApply(appliedIds, setAppliedIds);
460
- const applied = useAppliedOptions(options11, appliedIds);
495
+ const applied = useAppliedOptions(options12, appliedIds);
461
496
  const active = applied.find((option) => option.value === activeId) ?? EMPTY_OPTION;
462
497
  return /* @__PURE__ */ React7.createElement(Stack2, { gap: 1, p: 2 }, /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 1, alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React7.createElement(Typography2, { component: "label", variant: "caption", htmlFor: ID }, __3("CSS classes", "elementor")), /* @__PURE__ */ React7.createElement(Stack2, { direction: "row", gap: 1 }, /* @__PURE__ */ React7.createElement(ClassSelectorActionsSlot, null))), /* @__PURE__ */ React7.createElement(
463
498
  MultiCombobox,
464
499
  {
465
500
  id: ID,
466
501
  size: "tiny",
467
- options: options11,
502
+ options: options12,
468
503
  selected: applied,
469
504
  onSelect: handleApply,
470
505
  limitTags: TAGS_LIMIT,
@@ -473,8 +508,10 @@ function CssClassSelector() {
473
508
  renderTags: (values, getTagProps) => values.map((value, index) => {
474
509
  const chipProps = getTagProps({ index });
475
510
  const isActive = value.value === active?.value;
476
- const isElementsProvider = value.provider === ELEMENTS_STYLES_PROVIDER_KEY;
477
511
  const renameLabel = (newLabel) => {
512
+ if (!value.value) {
513
+ throw new Error(`Cannot rename a class without style id`);
514
+ }
478
515
  return updateClassByProvider(value.provider, { label: newLabel, id: value.value });
479
516
  };
480
517
  return /* @__PURE__ */ React7.createElement(
@@ -486,8 +523,9 @@ function CssClassSelector() {
486
523
  id: value.value,
487
524
  isActive,
488
525
  color: isActive && value.color ? value.color : "default",
526
+ icon: value.icon,
489
527
  chipProps,
490
- onClickActive: () => setActiveId(isElementsProvider ? null : value.value),
528
+ onClickActive: () => setActiveId(value.value),
491
529
  renameLabel
492
530
  }
493
531
  );
@@ -517,6 +555,7 @@ function useOptions() {
517
555
  value: styleDef.id,
518
556
  fixed: isElements,
519
557
  color: isElements ? "primary" : "global",
558
+ icon: isElements ? /* @__PURE__ */ React7.createElement(MapPinIcon, null) : null,
520
559
  provider: provider.key,
521
560
  group: provider.labels?.plural
522
561
  };
@@ -545,8 +584,8 @@ function useCreateActions({
545
584
  };
546
585
  });
547
586
  }
548
- function useAppliedOptions(options11, appliedIds) {
549
- const applied = options11.filter((option) => appliedIds.includes(option.value));
587
+ function useAppliedOptions(options12, appliedIds) {
588
+ const applied = options12.filter((option) => option.value && appliedIds.includes(option.value));
550
589
  const hasElementsProviderStyleApplied = applied.some(
551
590
  (option) => option.provider === ELEMENTS_STYLES_PROVIDER_KEY
552
591
  );
@@ -602,14 +641,14 @@ function useHandleApply(appliedIds, setAppliedIds) {
602
641
  import { __createPanel as createPanel } from "@elementor/editor-panels";
603
642
 
604
643
  // src/components/editing-panel.tsx
605
- import * as React63 from "react";
644
+ import * as React64 from "react";
606
645
  import { ControlActionsProvider, ControlReplacementProvider } from "@elementor/editor-controls";
607
646
  import { useSelectedElement } from "@elementor/editor-elements";
608
647
  import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
609
- import { RocketIcon } from "@elementor/icons";
648
+ import { AtomIcon } from "@elementor/icons";
610
649
  import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
611
650
  import { ErrorBoundary } from "@elementor/ui";
612
- import { __ as __42 } from "@wordpress/i18n";
651
+ import { __ as __43 } from "@wordpress/i18n";
613
652
 
614
653
  // src/controls-actions.ts
615
654
  import { createMenu } from "@elementor/menus";
@@ -665,10 +704,10 @@ function EditorPanelErrorFallback() {
665
704
  }
666
705
 
667
706
  // src/components/editing-panel-tabs.tsx
668
- import * as React62 from "react";
707
+ import * as React63 from "react";
669
708
  import { Fragment as Fragment8 } from "react";
670
709
  import { Divider as Divider5, Stack as Stack13, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
671
- import { __ as __41 } from "@wordpress/i18n";
710
+ import { __ as __42 } from "@wordpress/i18n";
672
711
 
673
712
  // src/components/settings-tab.tsx
674
713
  import * as React15 from "react";
@@ -705,12 +744,13 @@ var getLayoutByType = (type) => controlTypes[type].layout;
705
744
  // src/controls-registry/control.tsx
706
745
  var Control = ({ props, type }) => {
707
746
  const ControlByType = getControlByType(type);
747
+ const { element } = useElement();
708
748
  if (!ControlByType) {
709
749
  throw new ControlTypeNotFoundError({
710
750
  context: { controlType: type }
711
751
  });
712
752
  }
713
- return /* @__PURE__ */ React10.createElement(ControlByType, { ...props });
753
+ return /* @__PURE__ */ React10.createElement(ControlByType, { ...props, context: { elementId: element.id } });
714
754
  };
715
755
 
716
756
  // src/controls-registry/control-type-container.tsx
@@ -839,20 +879,194 @@ var Control2 = ({ control }) => {
839
879
  };
840
880
 
841
881
  // src/components/style-tab.tsx
842
- import * as React61 from "react";
882
+ import * as React62 from "react";
843
883
  import { useState as useState7 } from "react";
844
- import { useElementSetting as useElementSetting4, useElementStyles } from "@elementor/editor-elements";
884
+ import { getElementStyles, useElementSetting as useElementSetting5 } from "@elementor/editor-elements";
885
+ import { CLASSES_PROP_KEY } from "@elementor/editor-props";
845
886
  import { useActiveBreakpoint } from "@elementor/editor-responsive";
846
887
  import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
847
888
  import { Divider as Divider4 } from "@elementor/ui";
848
- import { __ as __40 } from "@wordpress/i18n";
889
+ import { __ as __41 } from "@wordpress/i18n";
890
+
891
+ // src/contexts/styles-inheritance-context.tsx
892
+ import * as React16 from "react";
893
+ import { createContext as createContext4, useContext as useContext4 } from "react";
894
+ import { useElementSetting as useElementSetting4 } from "@elementor/editor-elements";
895
+ import { classesPropTypeUtil as classesPropTypeUtil2 } from "@elementor/editor-props";
896
+ import { getBreakpointsTree } from "@elementor/editor-responsive";
897
+ import { stylesRepository as stylesRepository5 } from "@elementor/editor-styles-repository";
898
+
899
+ // src/styles-inheritance/utils.ts
900
+ var DEFAULT_STATE = "normal";
901
+ var DEFAULT_BREAKPOINT = "desktop";
902
+ var getStateKey = (state) => state ?? DEFAULT_STATE;
903
+ var getBreakpointKey = (breakpoint) => breakpoint ?? DEFAULT_BREAKPOINT;
904
+
905
+ // src/styles-inheritance/create-snapshots-manager.ts
906
+ function createSnapshotsManager(getStylesByMeta, breakpointsRoot) {
907
+ const breakpointsInheritancePaths = makeBreakpointsInheritancePaths(breakpointsRoot);
908
+ const allBreakpointStatesSnapshots = {};
909
+ const buildMissingSnapshotsForBreakpoint = (currentBreakpointId, parentBreakpoint, state) => {
910
+ const currentBreakpointKey = getBreakpointKey(currentBreakpointId);
911
+ const stateKey = getStateKey(state);
912
+ if (!allBreakpointStatesSnapshots[currentBreakpointKey]) {
913
+ allBreakpointStatesSnapshots[currentBreakpointKey] = {
914
+ [DEFAULT_STATE]: buildStateSnapshotSlot(
915
+ getStylesByMeta({ breakpoint: currentBreakpointId, state: null }),
916
+ parentBreakpoint,
917
+ {},
918
+ null
919
+ )
920
+ };
921
+ }
922
+ if (state && !allBreakpointStatesSnapshots[currentBreakpointKey][stateKey]) {
923
+ allBreakpointStatesSnapshots[currentBreakpointKey][stateKey] = buildStateSnapshotSlot(
924
+ getStylesByMeta({ breakpoint: currentBreakpointId, state }),
925
+ parentBreakpoint,
926
+ allBreakpointStatesSnapshots[currentBreakpointKey],
927
+ state
928
+ );
929
+ }
930
+ };
931
+ return (meta) => {
932
+ const { breakpoint, state } = meta;
933
+ const stateKey = getStateKey(state);
934
+ const breakpointKey = getBreakpointKey(breakpoint);
935
+ if (allBreakpointStatesSnapshots[breakpointKey]?.[stateKey]) {
936
+ return allBreakpointStatesSnapshots[breakpointKey][stateKey].snapshot;
937
+ }
938
+ const breakpointsChain = [...breakpointsInheritancePaths[breakpointKey], breakpoint];
939
+ breakpointsChain.forEach((breakpointId, index) => {
940
+ const parentBreakpointId = index > 0 ? breakpointsChain[index - 1] : null;
941
+ buildMissingSnapshotsForBreakpoint(
942
+ breakpointId,
943
+ parentBreakpointId ? allBreakpointStatesSnapshots[parentBreakpointId] : void 0,
944
+ state
945
+ );
946
+ });
947
+ return allBreakpointStatesSnapshots[breakpointKey]?.[stateKey]?.snapshot;
948
+ };
949
+ }
950
+ function makeBreakpointsInheritancePaths(root) {
951
+ const breakpoints = {};
952
+ const traverse = (node, parent) => {
953
+ const { id, children } = node;
954
+ breakpoints[id] = parent ? [...parent] : [];
955
+ children?.forEach((child) => {
956
+ traverse(child, [...breakpoints[id] ?? [], id]);
957
+ });
958
+ };
959
+ traverse(root);
960
+ return breakpoints;
961
+ }
962
+ function buildStateSnapshotSlot(styles, parentBreakpoint, currentBreakpoint, state) {
963
+ const initialSlot = buildInitialSnapshotFromStyles(styles);
964
+ if (!state) {
965
+ return {
966
+ snapshot: mergeSnapshots([initialSlot.snapshot, parentBreakpoint?.[DEFAULT_STATE]?.snapshot]),
967
+ stateSpecificSnapshot: void 0
968
+ };
969
+ }
970
+ return {
971
+ snapshot: mergeSnapshots([
972
+ initialSlot.snapshot,
973
+ parentBreakpoint?.[state]?.stateSpecificSnapshot,
974
+ currentBreakpoint[DEFAULT_STATE]?.snapshot
975
+ ]),
976
+ stateSpecificSnapshot: mergeSnapshots([
977
+ initialSlot.stateSpecificSnapshot,
978
+ parentBreakpoint?.[state]?.stateSpecificSnapshot
979
+ ])
980
+ };
981
+ }
982
+ function buildInitialSnapshotFromStyles(styles) {
983
+ const snapshot = {};
984
+ styles.forEach((styleVariantWithId) => {
985
+ const {
986
+ styleVariant: { props }
987
+ } = styleVariantWithId;
988
+ Object.entries(props).forEach(([key, value]) => {
989
+ if (!snapshot[key]) {
990
+ snapshot[key] = [];
991
+ }
992
+ const snapshotPropValue = {
993
+ ...styleVariantWithId,
994
+ value
995
+ };
996
+ snapshot[key].push(snapshotPropValue);
997
+ });
998
+ });
999
+ return {
1000
+ snapshot,
1001
+ stateSpecificSnapshot: snapshot
1002
+ };
1003
+ }
1004
+ function mergeSnapshots(snapshots) {
1005
+ const snapshot = {};
1006
+ snapshots.filter(Boolean).forEach(
1007
+ (currentSnapshot) => Object.entries(currentSnapshot).forEach(([key, values]) => {
1008
+ if (!snapshot[key]) {
1009
+ snapshot[key] = [];
1010
+ }
1011
+ snapshot[key] = snapshot[key].concat(values);
1012
+ })
1013
+ );
1014
+ return snapshot;
1015
+ }
1016
+
1017
+ // src/styles-inheritance/create-styles-inheritance.ts
1018
+ function createStylesInheritance(styleDefs, breakpointsRoot) {
1019
+ const styleVariantsByMeta = buildStyleVariantsByMetaMapping(styleDefs);
1020
+ const getStyles = ({ breakpoint, state }) => styleVariantsByMeta?.[getBreakpointKey(breakpoint)]?.[getStateKey(state)] ?? [];
1021
+ return createSnapshotsManager(getStyles, breakpointsRoot);
1022
+ }
1023
+ function buildStyleVariantsByMetaMapping(styleDefs) {
1024
+ const breakpointStateSlots = {};
1025
+ styleDefs.forEach((styleDef) => {
1026
+ styleDef.variants.forEach((styleVariant) => {
1027
+ const { meta } = styleVariant;
1028
+ const { state, breakpoint } = meta;
1029
+ const breakpointKey = getBreakpointKey(breakpoint);
1030
+ const stateKey = getStateKey(state);
1031
+ if (!breakpointStateSlots[breakpointKey]) {
1032
+ breakpointStateSlots[breakpointKey] = {};
1033
+ }
1034
+ const breakpointNode = breakpointStateSlots[breakpointKey];
1035
+ if (!breakpointNode[stateKey]) {
1036
+ breakpointNode[stateKey] = [];
1037
+ }
1038
+ breakpointNode[stateKey].push({
1039
+ styleId: styleDef.id,
1040
+ styleVariant
1041
+ });
1042
+ });
1043
+ });
1044
+ return breakpointStateSlots;
1045
+ }
1046
+
1047
+ // src/contexts/styles-inheritance-context.tsx
1048
+ var Context4 = createContext4(null);
1049
+ function StyleInheritanceProvider({ children }) {
1050
+ const styleDefs = useAppliedStyles();
1051
+ const breakpointsTree = getBreakpointsTree();
1052
+ const getSnapshot = createStylesInheritance(styleDefs, breakpointsTree);
1053
+ return /* @__PURE__ */ React16.createElement(Context4.Provider, { value: { getSnapshot } }, children);
1054
+ }
1055
+ var useAppliedStyles = () => {
1056
+ const { element } = useElement();
1057
+ const currentClassesProp = useClassesProp();
1058
+ const classesProp = useElementSetting4(element.id, currentClassesProp);
1059
+ const appliedStyles = classesPropTypeUtil2.extract(classesProp);
1060
+ const allStyles = stylesRepository5.all();
1061
+ return allStyles.filter((style) => appliedStyles?.includes(style.id));
1062
+ };
849
1063
 
850
1064
  // src/components/style-sections/background-section/background-section.tsx
851
- import * as React17 from "react";
1065
+ import * as React18 from "react";
852
1066
  import { BackgroundControl } from "@elementor/editor-controls";
853
1067
 
854
1068
  // src/controls-registry/styles-field.tsx
855
- import * as React16 from "react";
1069
+ import * as React17 from "react";
856
1070
  import { PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
857
1071
  import { getStylesSchema } from "@elementor/editor-styles";
858
1072
 
@@ -1006,39 +1220,39 @@ var StylesField = ({ bind, children }) => {
1006
1220
  const setValues = (newValue) => {
1007
1221
  setValue(newValue[bind]);
1008
1222
  };
1009
- return /* @__PURE__ */ React16.createElement(PropProvider2, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React16.createElement(PropKeyProvider2, { bind }, children));
1223
+ return /* @__PURE__ */ React17.createElement(PropProvider2, { propType, value: values, setValue: setValues }, /* @__PURE__ */ React17.createElement(PropKeyProvider2, { bind }, children));
1010
1224
  };
1011
1225
 
1012
1226
  // src/components/style-sections/background-section/background-section.tsx
1013
1227
  var BackgroundSection = () => {
1014
- return /* @__PURE__ */ React17.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React17.createElement(BackgroundControl, null));
1228
+ return /* @__PURE__ */ React18.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React18.createElement(BackgroundControl, null));
1015
1229
  };
1016
1230
 
1017
1231
  // src/components/style-sections/border-section/border-section.tsx
1018
- import * as React27 from "react";
1232
+ import * as React28 from "react";
1019
1233
 
1020
1234
  // src/components/panel-divider.tsx
1021
- import * as React18 from "react";
1235
+ import * as React19 from "react";
1022
1236
  import { Divider as Divider3 } from "@elementor/ui";
1023
- var PanelDivider = () => /* @__PURE__ */ React18.createElement(Divider3, { sx: { my: 0.5 } });
1237
+ var PanelDivider = () => /* @__PURE__ */ React19.createElement(Divider3, { sx: { my: 0.5 } });
1024
1238
 
1025
1239
  // src/components/section-content.tsx
1026
- import * as React19 from "react";
1240
+ import * as React20 from "react";
1027
1241
  import { Stack as Stack5 } from "@elementor/ui";
1028
- var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React19.createElement(Stack5, { gap, sx: { ...sx } }, children);
1242
+ var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React20.createElement(Stack5, { gap, sx: { ...sx } }, children);
1029
1243
 
1030
1244
  // src/components/style-sections/border-section/border-field.tsx
1031
- import * as React25 from "react";
1245
+ import * as React26 from "react";
1032
1246
  import { __ as __8 } from "@wordpress/i18n";
1033
1247
 
1034
1248
  // src/components/add-or-remove-content.tsx
1035
- import * as React20 from "react";
1249
+ import * as React21 from "react";
1036
1250
  import { ControlLabel as ControlLabel2 } from "@elementor/editor-controls";
1037
1251
  import { MinusIcon, PlusIcon } from "@elementor/icons";
1038
1252
  import { Collapse as Collapse2, IconButton as IconButton2, Stack as Stack6 } from "@elementor/ui";
1039
1253
  var SIZE2 = "tiny";
1040
1254
  var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
1041
- return /* @__PURE__ */ React20.createElement(SectionContent, null, /* @__PURE__ */ React20.createElement(
1255
+ return /* @__PURE__ */ React21.createElement(SectionContent, null, /* @__PURE__ */ React21.createElement(
1042
1256
  Stack6,
1043
1257
  {
1044
1258
  direction: "row",
@@ -1047,22 +1261,22 @@ var AddOrRemoveContent = ({ isAdded, label, onAdd, onRemove, children }) => {
1047
1261
  alignItems: "center"
1048
1262
  }
1049
1263
  },
1050
- /* @__PURE__ */ React20.createElement(ControlLabel2, null, label),
1051
- isAdded ? /* @__PURE__ */ React20.createElement(IconButton2, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React20.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React20.createElement(IconButton2, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React20.createElement(PlusIcon, { fontSize: SIZE2 }))
1052
- ), /* @__PURE__ */ React20.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React20.createElement(SectionContent, null, children)));
1264
+ /* @__PURE__ */ React21.createElement(ControlLabel2, null, label),
1265
+ isAdded ? /* @__PURE__ */ React21.createElement(IconButton2, { size: SIZE2, onClick: onRemove, "aria-label": "Remove" }, /* @__PURE__ */ React21.createElement(MinusIcon, { fontSize: SIZE2 })) : /* @__PURE__ */ React21.createElement(IconButton2, { size: SIZE2, onClick: onAdd, "aria-label": "Add" }, /* @__PURE__ */ React21.createElement(PlusIcon, { fontSize: SIZE2 }))
1266
+ ), /* @__PURE__ */ React21.createElement(Collapse2, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React21.createElement(SectionContent, null, children)));
1053
1267
  };
1054
1268
 
1055
1269
  // src/components/style-sections/border-section/border-color-field.tsx
1056
- import * as React21 from "react";
1270
+ import * as React22 from "react";
1057
1271
  import { ColorControl, ControlLabel as ControlLabel3 } from "@elementor/editor-controls";
1058
1272
  import { Grid } from "@elementor/ui";
1059
1273
  import { __ as __5 } from "@wordpress/i18n";
1060
1274
  var BorderColorField = () => {
1061
- return /* @__PURE__ */ React21.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React21.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React21.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(ControlLabel3, null, __5("Border color", "elementor"))), /* @__PURE__ */ React21.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React21.createElement(ColorControl, null))));
1275
+ return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-color" }, /* @__PURE__ */ React22.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React22.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React22.createElement(ControlLabel3, null, __5("Border color", "elementor"))), /* @__PURE__ */ React22.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React22.createElement(ColorControl, null))));
1062
1276
  };
1063
1277
 
1064
1278
  // src/components/style-sections/border-section/border-style-field.tsx
1065
- import * as React22 from "react";
1279
+ import * as React23 from "react";
1066
1280
  import { ControlLabel as ControlLabel4, SelectControl as SelectControl2 } from "@elementor/editor-controls";
1067
1281
  import { Grid as Grid2 } from "@elementor/ui";
1068
1282
  import { __ as __6 } from "@wordpress/i18n";
@@ -1078,11 +1292,11 @@ var borderStyles = [
1078
1292
  { value: "outset", label: __6("Outset", "elementor") }
1079
1293
  ];
1080
1294
  var BorderStyleField = () => {
1081
- return /* @__PURE__ */ React22.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React22.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React22.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React22.createElement(ControlLabel4, null, __6("Border type", "elementor"))), /* @__PURE__ */ React22.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React22.createElement(SelectControl2, { options: borderStyles }))));
1295
+ return /* @__PURE__ */ React23.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React23.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React23.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React23.createElement(ControlLabel4, null, __6("Border type", "elementor"))), /* @__PURE__ */ React23.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React23.createElement(SelectControl2, { options: borderStyles }))));
1082
1296
  };
1083
1297
 
1084
1298
  // src/components/style-sections/border-section/border-width-field.tsx
1085
- import * as React24 from "react";
1299
+ import * as React25 from "react";
1086
1300
  import { EqualUnequalSizesControl } from "@elementor/editor-controls";
1087
1301
  import { borderWidthPropTypeUtil } from "@elementor/editor-props";
1088
1302
  import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
@@ -1098,7 +1312,7 @@ function useDirection() {
1098
1312
  }
1099
1313
 
1100
1314
  // src/components/style-sections/layout-section/utils/rotated-icon.tsx
1101
- import * as React23 from "react";
1315
+ import * as React24 from "react";
1102
1316
  import { useRef } from "react";
1103
1317
  import { useTheme as useTheme2 } from "@elementor/ui";
1104
1318
  var CLOCKWISE_ANGLES = {
@@ -1116,7 +1330,7 @@ var COUNTER_CLOCKWISE_ANGLES = {
1116
1330
  var RotatedIcon = ({ icon: Icon, size, isClockwise = true, offset = 0 }) => {
1117
1331
  const rotate = useRef(useGetTargetAngle(isClockwise, offset));
1118
1332
  rotate.current = useGetTargetAngle(isClockwise, offset, rotate);
1119
- return /* @__PURE__ */ React23.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
1333
+ return /* @__PURE__ */ React24.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
1120
1334
  };
1121
1335
  var useGetTargetAngle = (isClockwise, offset, existingRef) => {
1122
1336
  const [direction] = useStylesField("flex-direction");
@@ -1136,33 +1350,33 @@ var InlineEndIcon = withDirection(SideLeftIcon);
1136
1350
  var getEdges = (isSiteRtl) => [
1137
1351
  {
1138
1352
  label: __7("Top", "elementor"),
1139
- icon: /* @__PURE__ */ React24.createElement(SideTopIcon, { fontSize: "tiny" }),
1353
+ icon: /* @__PURE__ */ React25.createElement(SideTopIcon, { fontSize: "tiny" }),
1140
1354
  bind: "block-start"
1141
1355
  },
1142
1356
  {
1143
1357
  label: isSiteRtl ? __7("Left", "elementor") : __7("Right", "elementor"),
1144
- icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: InlineStartIcon, size: "tiny" }),
1358
+ icon: /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: InlineStartIcon, size: "tiny" }),
1145
1359
  bind: "inline-end"
1146
1360
  },
1147
1361
  {
1148
1362
  label: __7("Bottom", "elementor"),
1149
- icon: /* @__PURE__ */ React24.createElement(SideBottomIcon, { fontSize: "tiny" }),
1363
+ icon: /* @__PURE__ */ React25.createElement(SideBottomIcon, { fontSize: "tiny" }),
1150
1364
  bind: "block-end"
1151
1365
  },
1152
1366
  {
1153
1367
  label: isSiteRtl ? __7("Right", "elementor") : __7("Left", "elementor"),
1154
- icon: /* @__PURE__ */ React24.createElement(RotatedIcon, { icon: InlineEndIcon, size: "tiny" }),
1368
+ icon: /* @__PURE__ */ React25.createElement(RotatedIcon, { icon: InlineEndIcon, size: "tiny" }),
1155
1369
  bind: "inline-start"
1156
1370
  }
1157
1371
  ];
1158
1372
  var BorderWidthField = () => {
1159
1373
  const { isSiteRtl } = useDirection();
1160
- return /* @__PURE__ */ React24.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React24.createElement(
1374
+ return /* @__PURE__ */ React25.createElement(StylesField, { bind: "border-width" }, /* @__PURE__ */ React25.createElement(
1161
1375
  EqualUnequalSizesControl,
1162
1376
  {
1163
1377
  items: getEdges(isSiteRtl),
1164
1378
  label: __7("Border width", "elementor"),
1165
- icon: /* @__PURE__ */ React24.createElement(SideAllIcon, { fontSize: "tiny" }),
1379
+ icon: /* @__PURE__ */ React25.createElement(SideAllIcon, { fontSize: "tiny" }),
1166
1380
  tooltipLabel: __7("Adjust borders", "elementor"),
1167
1381
  multiSizePropTypeUtil: borderWidthPropTypeUtil
1168
1382
  }
@@ -1188,7 +1402,7 @@ var BorderField = () => {
1188
1402
  });
1189
1403
  };
1190
1404
  const hasBorder = Object.values(border ?? {}).some(Boolean);
1191
- return /* @__PURE__ */ React25.createElement(
1405
+ return /* @__PURE__ */ React26.createElement(
1192
1406
  AddOrRemoveContent,
1193
1407
  {
1194
1408
  label: __8("Border", "elementor"),
@@ -1196,14 +1410,14 @@ var BorderField = () => {
1196
1410
  onAdd: addBorder,
1197
1411
  onRemove: removeBorder
1198
1412
  },
1199
- /* @__PURE__ */ React25.createElement(BorderWidthField, null),
1200
- /* @__PURE__ */ React25.createElement(BorderColorField, null),
1201
- /* @__PURE__ */ React25.createElement(BorderStyleField, null)
1413
+ /* @__PURE__ */ React26.createElement(BorderWidthField, null),
1414
+ /* @__PURE__ */ React26.createElement(BorderColorField, null),
1415
+ /* @__PURE__ */ React26.createElement(BorderStyleField, null)
1202
1416
  );
1203
1417
  };
1204
1418
 
1205
1419
  // src/components/style-sections/border-section/border-radius-field.tsx
1206
- import * as React26 from "react";
1420
+ import * as React27 from "react";
1207
1421
  import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
1208
1422
  import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
1209
1423
  import {
@@ -1226,33 +1440,33 @@ var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __9("Bottom left", "elementor")
1226
1440
  var getCorners = (isSiteRtl) => [
1227
1441
  {
1228
1442
  label: getStartStartLabel(isSiteRtl),
1229
- icon: /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: StartStartIcon, size: "tiny" }),
1443
+ icon: /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartStartIcon, size: "tiny" }),
1230
1444
  bind: "start-start"
1231
1445
  },
1232
1446
  {
1233
1447
  label: getStartEndLabel(isSiteRtl),
1234
- icon: /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: StartEndIcon, size: "tiny" }),
1448
+ icon: /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: StartEndIcon, size: "tiny" }),
1235
1449
  bind: "start-end"
1236
1450
  },
1237
- {
1238
- label: getEndEndLabel(isSiteRtl),
1239
- icon: /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: EndEndIcon, size: "tiny" }),
1240
- bind: "end-end"
1241
- },
1242
1451
  {
1243
1452
  label: getEndStartLabel(isSiteRtl),
1244
- icon: /* @__PURE__ */ React26.createElement(RotatedIcon, { icon: EndStartIcon, size: "tiny" }),
1453
+ icon: /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndStartIcon, size: "tiny" }),
1245
1454
  bind: "end-start"
1455
+ },
1456
+ {
1457
+ label: getEndEndLabel(isSiteRtl),
1458
+ icon: /* @__PURE__ */ React27.createElement(RotatedIcon, { icon: EndEndIcon, size: "tiny" }),
1459
+ bind: "end-end"
1246
1460
  }
1247
1461
  ];
1248
1462
  var BorderRadiusField = () => {
1249
1463
  const { isSiteRtl } = useDirection();
1250
- return /* @__PURE__ */ React26.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React26.createElement(
1464
+ return /* @__PURE__ */ React27.createElement(StylesField, { bind: "border-radius" }, /* @__PURE__ */ React27.createElement(
1251
1465
  EqualUnequalSizesControl2,
1252
1466
  {
1253
1467
  items: getCorners(isSiteRtl),
1254
1468
  label: __9("Border radius", "elementor"),
1255
- icon: /* @__PURE__ */ React26.createElement(BorderCornersIcon, { fontSize: "tiny" }),
1469
+ icon: /* @__PURE__ */ React27.createElement(BorderCornersIcon, { fontSize: "tiny" }),
1256
1470
  tooltipLabel: __9("Adjust corners", "elementor"),
1257
1471
  multiSizePropTypeUtil: borderRadiusPropTypeUtil
1258
1472
  }
@@ -1260,17 +1474,17 @@ var BorderRadiusField = () => {
1260
1474
  };
1261
1475
 
1262
1476
  // src/components/style-sections/border-section/border-section.tsx
1263
- var BorderSection = () => /* @__PURE__ */ React27.createElement(SectionContent, null, /* @__PURE__ */ React27.createElement(BorderRadiusField, null), /* @__PURE__ */ React27.createElement(PanelDivider, null), /* @__PURE__ */ React27.createElement(BorderField, null));
1477
+ var BorderSection = () => /* @__PURE__ */ React28.createElement(SectionContent, null, /* @__PURE__ */ React28.createElement(BorderRadiusField, null), /* @__PURE__ */ React28.createElement(PanelDivider, null), /* @__PURE__ */ React28.createElement(BorderField, null));
1264
1478
 
1265
1479
  // src/components/style-sections/effects-section/effects-section.tsx
1266
- import * as React28 from "react";
1480
+ import * as React29 from "react";
1267
1481
  import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
1268
1482
  var EffectsSection = () => {
1269
- return /* @__PURE__ */ React28.createElement(SectionContent, null, /* @__PURE__ */ React28.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React28.createElement(BoxShadowRepeaterControl, null)));
1483
+ return /* @__PURE__ */ React29.createElement(SectionContent, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "box-shadow" }, /* @__PURE__ */ React29.createElement(BoxShadowRepeaterControl, null)));
1270
1484
  };
1271
1485
 
1272
1486
  // src/components/style-sections/layout-section/layout-section.tsx
1273
- import * as React38 from "react";
1487
+ import * as React39 from "react";
1274
1488
  import { ControlLabel as ControlLabel13 } from "@elementor/editor-controls";
1275
1489
  import { useParentElement } from "@elementor/editor-elements";
1276
1490
  import { __ as __19 } from "@wordpress/i18n";
@@ -1301,7 +1515,7 @@ function useComputedStyle(elementId) {
1301
1515
  }
1302
1516
 
1303
1517
  // src/components/style-sections/layout-section/align-items-field.tsx
1304
- import * as React29 from "react";
1518
+ import * as React30 from "react";
1305
1519
  import { ControlLabel as ControlLabel5, ToggleControl } from "@elementor/editor-controls";
1306
1520
  import {
1307
1521
  LayoutAlignCenterIcon as CenterIcon,
@@ -1321,35 +1535,35 @@ var options = [
1321
1535
  {
1322
1536
  value: "start",
1323
1537
  label: __10("Start", "elementor"),
1324
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
1538
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
1325
1539
  showTooltip: true
1326
1540
  },
1327
1541
  {
1328
1542
  value: "center",
1329
1543
  label: __10("Center", "elementor"),
1330
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
1544
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
1331
1545
  showTooltip: true
1332
1546
  },
1333
1547
  {
1334
1548
  value: "end",
1335
1549
  label: __10("End", "elementor"),
1336
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
1550
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
1337
1551
  showTooltip: true
1338
1552
  },
1339
1553
  {
1340
1554
  value: "stretch",
1341
1555
  label: __10("Stretch", "elementor"),
1342
- renderContent: ({ size }) => /* @__PURE__ */ React29.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps }),
1556
+ renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps }),
1343
1557
  showTooltip: true
1344
1558
  }
1345
1559
  ];
1346
1560
  var AlignItemsField = () => {
1347
1561
  const { isSiteRtl } = useDirection();
1348
- return /* @__PURE__ */ React29.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React29.createElement(ThemeProvider, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React29.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React29.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React29.createElement(ControlLabel5, null, __10("Align items", "elementor"))), /* @__PURE__ */ React29.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React29.createElement(ToggleControl, { options }))))));
1562
+ return /* @__PURE__ */ React30.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(ThemeProvider, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "align-items" }, /* @__PURE__ */ React30.createElement(Grid3, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(Grid3, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(ControlLabel5, null, __10("Align items", "elementor"))), /* @__PURE__ */ React30.createElement(Grid3, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React30.createElement(ToggleControl, { options }))))));
1349
1563
  };
1350
1564
 
1351
1565
  // src/components/style-sections/layout-section/align-self-child-field.tsx
1352
- import * as React30 from "react";
1566
+ import * as React31 from "react";
1353
1567
  import { ControlLabel as ControlLabel6, ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
1354
1568
  import {
1355
1569
  LayoutAlignCenterIcon as CenterIcon2,
@@ -1369,40 +1583,40 @@ var options2 = [
1369
1583
  {
1370
1584
  value: "start",
1371
1585
  label: __11("Start", "elementor"),
1372
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
1586
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
1373
1587
  showTooltip: true
1374
1588
  },
1375
1589
  {
1376
1590
  value: "center",
1377
1591
  label: __11("Center", "elementor"),
1378
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
1592
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
1379
1593
  showTooltip: true
1380
1594
  },
1381
1595
  {
1382
1596
  value: "end",
1383
1597
  label: __11("End", "elementor"),
1384
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
1598
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
1385
1599
  showTooltip: true
1386
1600
  },
1387
1601
  {
1388
1602
  value: "stretch",
1389
1603
  label: __11("Stretch", "elementor"),
1390
- renderContent: ({ size }) => /* @__PURE__ */ React30.createElement(RotatedIcon, { icon: JustifyIcon2, size, ...iconProps2 }),
1604
+ renderContent: ({ size }) => /* @__PURE__ */ React31.createElement(RotatedIcon, { icon: JustifyIcon2, size, ...iconProps2 }),
1391
1605
  showTooltip: true
1392
1606
  }
1393
1607
  ];
1394
1608
  var AlignSelfChild = () => {
1395
1609
  const { isSiteRtl } = useDirection();
1396
- return /* @__PURE__ */ React30.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React30.createElement(ThemeProvider2, null, /* @__PURE__ */ React30.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React30.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React30.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React30.createElement(ControlLabel6, null, __11("Align self", "elementor"))), /* @__PURE__ */ React30.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React30.createElement(ToggleControl2, { options: options2 }))))));
1610
+ return /* @__PURE__ */ React31.createElement(DirectionProvider2, { rtl: isSiteRtl }, /* @__PURE__ */ React31.createElement(ThemeProvider2, null, /* @__PURE__ */ React31.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React31.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React31.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React31.createElement(ControlLabel6, null, __11("Align self", "elementor"))), /* @__PURE__ */ React31.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React31.createElement(ToggleControl2, { options: options2 }))))));
1397
1611
  };
1398
1612
 
1399
1613
  // src/components/style-sections/layout-section/display-field.tsx
1400
- import * as React31 from "react";
1614
+ import * as React32 from "react";
1401
1615
  import { ControlLabel as ControlLabel7, ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
1402
1616
  import { Stack as Stack7 } from "@elementor/ui";
1403
1617
  import { __ as __12 } from "@wordpress/i18n";
1404
1618
  var DisplayField = () => {
1405
- const options11 = [
1619
+ const options12 = [
1406
1620
  {
1407
1621
  value: "block",
1408
1622
  renderContent: () => __12("Block", "elementor"),
@@ -1428,11 +1642,11 @@ var DisplayField = () => {
1428
1642
  showTooltip: true
1429
1643
  }
1430
1644
  ];
1431
- return /* @__PURE__ */ React31.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React31.createElement(Stack7, { gap: 1 }, /* @__PURE__ */ React31.createElement(ControlLabel7, null, __12("Display", "elementor")), /* @__PURE__ */ React31.createElement(ToggleControl3, { options: options11, fullWidth: true })));
1645
+ return /* @__PURE__ */ React32.createElement(StylesField, { bind: "display" }, /* @__PURE__ */ React32.createElement(Stack7, { gap: 1 }, /* @__PURE__ */ React32.createElement(ControlLabel7, null, __12("Display", "elementor")), /* @__PURE__ */ React32.createElement(ToggleControl3, { options: options12, fullWidth: true })));
1432
1646
  };
1433
1647
 
1434
1648
  // src/components/style-sections/layout-section/flex-direction-field.tsx
1435
- import * as React32 from "react";
1649
+ import * as React33 from "react";
1436
1650
  import { ControlLabel as ControlLabel8, ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
1437
1651
  import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
1438
1652
  import { DirectionProvider as DirectionProvider3, Grid as Grid5, ThemeProvider as ThemeProvider3, withDirection as withDirection5 } from "@elementor/ui";
@@ -1443,14 +1657,14 @@ var options3 = [
1443
1657
  label: __13("Row", "elementor"),
1444
1658
  renderContent: ({ size }) => {
1445
1659
  const StartIcon5 = withDirection5(ArrowRightIcon);
1446
- return /* @__PURE__ */ React32.createElement(StartIcon5, { fontSize: size });
1660
+ return /* @__PURE__ */ React33.createElement(StartIcon5, { fontSize: size });
1447
1661
  },
1448
1662
  showTooltip: true
1449
1663
  },
1450
1664
  {
1451
1665
  value: "column",
1452
1666
  label: __13("Column", "elementor"),
1453
- renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ArrowDownSmallIcon, { fontSize: size }),
1667
+ renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(ArrowDownSmallIcon, { fontSize: size }),
1454
1668
  showTooltip: true
1455
1669
  },
1456
1670
  {
@@ -1458,24 +1672,24 @@ var options3 = [
1458
1672
  label: __13("Reversed row", "elementor"),
1459
1673
  renderContent: ({ size }) => {
1460
1674
  const EndIcon5 = withDirection5(ArrowLeftIcon);
1461
- return /* @__PURE__ */ React32.createElement(EndIcon5, { fontSize: size });
1675
+ return /* @__PURE__ */ React33.createElement(EndIcon5, { fontSize: size });
1462
1676
  },
1463
1677
  showTooltip: true
1464
1678
  },
1465
1679
  {
1466
1680
  value: "column-reverse",
1467
1681
  label: __13("Reversed column", "elementor"),
1468
- renderContent: ({ size }) => /* @__PURE__ */ React32.createElement(ArrowUpSmallIcon, { fontSize: size }),
1682
+ renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(ArrowUpSmallIcon, { fontSize: size }),
1469
1683
  showTooltip: true
1470
1684
  }
1471
1685
  ];
1472
1686
  var FlexDirectionField = () => {
1473
1687
  const { isSiteRtl } = useDirection();
1474
- return /* @__PURE__ */ React32.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React32.createElement(ThemeProvider3, null, /* @__PURE__ */ React32.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React32.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React32.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React32.createElement(ControlLabel8, null, __13("Direction", "elementor"))), /* @__PURE__ */ React32.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React32.createElement(ToggleControl4, { options: options3 }))))));
1688
+ return /* @__PURE__ */ React33.createElement(DirectionProvider3, { rtl: isSiteRtl }, /* @__PURE__ */ React33.createElement(ThemeProvider3, null, /* @__PURE__ */ React33.createElement(StylesField, { bind: "flex-direction" }, /* @__PURE__ */ React33.createElement(Grid5, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(Grid5, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel8, null, __13("Direction", "elementor"))), /* @__PURE__ */ React33.createElement(Grid5, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(ToggleControl4, { options: options3 }))))));
1475
1689
  };
1476
1690
 
1477
1691
  // src/components/style-sections/layout-section/flex-order-field.tsx
1478
- import * as React33 from "react";
1692
+ import * as React34 from "react";
1479
1693
  import { useState as useState4 } from "react";
1480
1694
  import {
1481
1695
  ControlLabel as ControlLabel9,
@@ -1498,19 +1712,19 @@ var items = [
1498
1712
  {
1499
1713
  value: FIRST,
1500
1714
  label: __14("First", "elementor"),
1501
- renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(ArrowUpSmallIcon2, { fontSize: size }),
1715
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(ArrowUpSmallIcon2, { fontSize: size }),
1502
1716
  showTooltip: true
1503
1717
  },
1504
1718
  {
1505
1719
  value: LAST,
1506
1720
  label: __14("Last", "elementor"),
1507
- renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(ArrowDownSmallIcon2, { fontSize: size }),
1721
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(ArrowDownSmallIcon2, { fontSize: size }),
1508
1722
  showTooltip: true
1509
1723
  },
1510
1724
  {
1511
1725
  value: CUSTOM,
1512
1726
  label: __14("Custom", "elementor"),
1513
- renderContent: ({ size }) => /* @__PURE__ */ React33.createElement(PencilIcon, { fontSize: size }),
1727
+ renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(PencilIcon, { fontSize: size }),
1514
1728
  showTooltip: true
1515
1729
  }
1516
1730
  ];
@@ -1525,7 +1739,7 @@ var FlexOrderField = () => {
1525
1739
  }
1526
1740
  setOrder({ $$type: "number", value: orderValueMap[group] });
1527
1741
  };
1528
- return /* @__PURE__ */ React33.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React33.createElement(ThemeProvider4, null, /* @__PURE__ */ React33.createElement(SectionContent, null, /* @__PURE__ */ React33.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel9, null, __14("Order", "elementor"))), /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
1742
+ return /* @__PURE__ */ React34.createElement(DirectionProvider4, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider4, null, /* @__PURE__ */ React34.createElement(SectionContent, null, /* @__PURE__ */ React34.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel9, null, __14("Order", "elementor"))), /* @__PURE__ */ React34.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(
1529
1743
  ControlToggleButtonGroup,
1530
1744
  {
1531
1745
  items,
@@ -1533,7 +1747,7 @@ var FlexOrderField = () => {
1533
1747
  onChange: handleToggleButtonChange,
1534
1748
  exclusive: true
1535
1749
  }
1536
- ))), CUSTOM === groupControlValue && /* @__PURE__ */ React33.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React33.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel9, null, __14("Custom order", "elementor"))), /* @__PURE__ */ React33.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React33.createElement(
1750
+ ))), CUSTOM === groupControlValue && /* @__PURE__ */ React34.createElement(StylesField, { bind: "order" }, /* @__PURE__ */ React34.createElement(Grid6, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid6, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel9, null, __14("Custom order", "elementor"))), /* @__PURE__ */ React34.createElement(Grid6, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(
1537
1751
  NumberControl,
1538
1752
  {
1539
1753
  min: FIRST_DEFAULT_VALUE + 1,
@@ -1553,7 +1767,7 @@ var getGroupControlValue = (order) => {
1553
1767
  };
1554
1768
 
1555
1769
  // src/components/style-sections/layout-section/flex-size-field.tsx
1556
- import * as React34 from "react";
1770
+ import * as React35 from "react";
1557
1771
  import { useMemo as useMemo2, useState as useState5 } from "react";
1558
1772
  import {
1559
1773
  ControlLabel as ControlLabel10,
@@ -1569,19 +1783,19 @@ var items2 = [
1569
1783
  {
1570
1784
  value: "flex-grow",
1571
1785
  label: __15("Grow", "elementor"),
1572
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(ExpandIcon, { fontSize: size }),
1786
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ExpandIcon, { fontSize: size }),
1573
1787
  showTooltip: true
1574
1788
  },
1575
1789
  {
1576
1790
  value: "flex-shrink",
1577
1791
  label: __15("Shrink", "elementor"),
1578
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(ShrinkIcon, { fontSize: size }),
1792
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(ShrinkIcon, { fontSize: size }),
1579
1793
  showTooltip: true
1580
1794
  },
1581
1795
  {
1582
1796
  value: "custom",
1583
1797
  label: __15("Custom", "elementor"),
1584
- renderContent: ({ size }) => /* @__PURE__ */ React34.createElement(PencilIcon2, { fontSize: size }),
1798
+ renderContent: ({ size }) => /* @__PURE__ */ React35.createElement(PencilIcon2, { fontSize: size }),
1585
1799
  showTooltip: true
1586
1800
  }
1587
1801
  ];
@@ -1605,7 +1819,7 @@ var FlexSizeField = () => {
1605
1819
  setGrowField(null);
1606
1820
  setShrinkField({ $$type: "number", value: DEFAULT });
1607
1821
  };
1608
- return /* @__PURE__ */ React34.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React34.createElement(ThemeProvider5, null, /* @__PURE__ */ React34.createElement(SectionContent, null, /* @__PURE__ */ React34.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel10, null, __15("Size", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(
1822
+ return /* @__PURE__ */ React35.createElement(DirectionProvider5, { rtl: isSiteRtl }, /* @__PURE__ */ React35.createElement(ThemeProvider5, null, /* @__PURE__ */ React35.createElement(SectionContent, null, /* @__PURE__ */ React35.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel10, null, __15("Size", "elementor"))), /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React35.createElement(
1609
1823
  ControlToggleButtonGroup2,
1610
1824
  {
1611
1825
  value: activeGroup,
@@ -1613,9 +1827,9 @@ var FlexSizeField = () => {
1613
1827
  items: items2,
1614
1828
  exclusive: true
1615
1829
  }
1616
- ))), "custom" === activeGroup && /* @__PURE__ */ React34.createElement(FlexCustomField, null))));
1830
+ ))), "custom" === activeGroup && /* @__PURE__ */ React35.createElement(FlexCustomField, null))));
1617
1831
  };
1618
- var FlexCustomField = () => /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React34.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel10, null, __15("Grow", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React34.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel10, null, __15("Shrink", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React34.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React34.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel10, null, __15("Basis", "elementor"))), /* @__PURE__ */ React34.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React34.createElement(SizeControl2, { extendedValues: ["auto"] })))));
1832
+ var FlexCustomField = () => /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-grow" }, /* @__PURE__ */ React35.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel10, null, __15("Grow", "elementor"))), /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React35.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-shrink" }, /* @__PURE__ */ React35.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel10, null, __15("Shrink", "elementor"))), /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React35.createElement(NumberControl2, { min: 0, shouldForceInt: true })))), /* @__PURE__ */ React35.createElement(StylesField, { bind: "flex-basis" }, /* @__PURE__ */ React35.createElement(Grid7, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6 }, /* @__PURE__ */ React35.createElement(ControlLabel10, null, __15("Basis", "elementor"))), /* @__PURE__ */ React35.createElement(Grid7, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React35.createElement(SizeControl2, { extendedValues: ["auto"] })))));
1619
1833
  var getActiveGroup = ({
1620
1834
  grow,
1621
1835
  shrink,
@@ -1637,16 +1851,16 @@ var getActiveGroup = ({
1637
1851
  };
1638
1852
 
1639
1853
  // src/components/style-sections/layout-section/gap-control-field.tsx
1640
- import * as React35 from "react";
1854
+ import * as React36 from "react";
1641
1855
  import { GapControl } from "@elementor/editor-controls";
1642
1856
  import { Stack as Stack8 } from "@elementor/ui";
1643
1857
  import { __ as __16 } from "@wordpress/i18n";
1644
1858
  var GapControlField = () => {
1645
- return /* @__PURE__ */ React35.createElement(Stack8, { gap: 1 }, /* @__PURE__ */ React35.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React35.createElement(GapControl, { label: __16("Gaps", "elementor") })));
1859
+ return /* @__PURE__ */ React36.createElement(Stack8, { gap: 1 }, /* @__PURE__ */ React36.createElement(StylesField, { bind: "gap" }, /* @__PURE__ */ React36.createElement(GapControl, { label: __16("Gaps", "elementor") })));
1646
1860
  };
1647
1861
 
1648
1862
  // src/components/style-sections/layout-section/justify-content-field.tsx
1649
- import * as React36 from "react";
1863
+ import * as React37 from "react";
1650
1864
  import { ControlLabel as ControlLabel11, ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
1651
1865
  import {
1652
1866
  JustifyBottomIcon,
@@ -1668,47 +1882,47 @@ var options4 = [
1668
1882
  {
1669
1883
  value: "start",
1670
1884
  label: __17("Start", "elementor"),
1671
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
1885
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: StartIcon3, size, ...iconProps3 }),
1672
1886
  showTooltip: true
1673
1887
  },
1674
1888
  {
1675
1889
  value: "center",
1676
1890
  label: __17("Center", "elementor"),
1677
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: CenterIcon3, size, ...iconProps3 }),
1891
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: CenterIcon3, size, ...iconProps3 }),
1678
1892
  showTooltip: true
1679
1893
  },
1680
1894
  {
1681
1895
  value: "end",
1682
1896
  label: __17("End", "elementor"),
1683
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
1897
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: EndIcon3, size, ...iconProps3 }),
1684
1898
  showTooltip: true
1685
1899
  },
1686
1900
  {
1687
1901
  value: "space-between",
1688
1902
  label: __17("Space between", "elementor"),
1689
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps3 }),
1903
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps3 }),
1690
1904
  showTooltip: true
1691
1905
  },
1692
1906
  {
1693
1907
  value: "space-around",
1694
1908
  label: __17("Space around", "elementor"),
1695
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps3 }),
1909
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps3 }),
1696
1910
  showTooltip: true
1697
1911
  },
1698
1912
  {
1699
1913
  value: "space-evenly",
1700
1914
  label: __17("Space evenly", "elementor"),
1701
- renderContent: ({ size }) => /* @__PURE__ */ React36.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps3 }),
1915
+ renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps3 }),
1702
1916
  showTooltip: true
1703
1917
  }
1704
1918
  ];
1705
1919
  var JustifyContentField = () => {
1706
1920
  const { isSiteRtl } = useDirection();
1707
- return /* @__PURE__ */ React36.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React36.createElement(ThemeProvider6, null, /* @__PURE__ */ React36.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React36.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React36.createElement(ControlLabel11, null, __17("Justify content", "elementor")), /* @__PURE__ */ React36.createElement(ToggleControl5, { options: options4, fullWidth: true })))));
1921
+ return /* @__PURE__ */ React37.createElement(DirectionProvider6, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider6, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React37.createElement(Stack9, { gap: 1 }, /* @__PURE__ */ React37.createElement(ControlLabel11, null, __17("Justify content", "elementor")), /* @__PURE__ */ React37.createElement(ToggleControl5, { options: options4, fullWidth: true })))));
1708
1922
  };
1709
1923
 
1710
1924
  // src/components/style-sections/layout-section/wrap-field.tsx
1711
- import * as React37 from "react";
1925
+ import * as React38 from "react";
1712
1926
  import { ControlLabel as ControlLabel12, ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
1713
1927
  import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
1714
1928
  import { DirectionProvider as DirectionProvider7, Grid as Grid8, ThemeProvider as ThemeProvider7 } from "@elementor/ui";
@@ -1717,25 +1931,25 @@ var options5 = [
1717
1931
  {
1718
1932
  value: "nowrap",
1719
1933
  label: __18("No wrap", "elementor"),
1720
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(ArrowRightIcon2, { fontSize: size }),
1934
+ renderContent: ({ size }) => /* @__PURE__ */ React38.createElement(ArrowRightIcon2, { fontSize: size }),
1721
1935
  showTooltip: true
1722
1936
  },
1723
1937
  {
1724
1938
  value: "wrap",
1725
1939
  label: __18("Wrap", "elementor"),
1726
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(ArrowBackIcon, { fontSize: size }),
1940
+ renderContent: ({ size }) => /* @__PURE__ */ React38.createElement(ArrowBackIcon, { fontSize: size }),
1727
1941
  showTooltip: true
1728
1942
  },
1729
1943
  {
1730
1944
  value: "wrap-reverse",
1731
1945
  label: __18("Reversed wrap", "elementor"),
1732
- renderContent: ({ size }) => /* @__PURE__ */ React37.createElement(ArrowForwardIcon, { fontSize: size }),
1946
+ renderContent: ({ size }) => /* @__PURE__ */ React38.createElement(ArrowForwardIcon, { fontSize: size }),
1733
1947
  showTooltip: true
1734
1948
  }
1735
1949
  ];
1736
1950
  var WrapField = () => {
1737
1951
  const { isSiteRtl } = useDirection();
1738
- return /* @__PURE__ */ React37.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React37.createElement(ThemeProvider7, null, /* @__PURE__ */ React37.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React37.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React37.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React37.createElement(ControlLabel12, null, __18("Wrap", "elementor"))), /* @__PURE__ */ React37.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React37.createElement(ToggleControl6, { options: options5 }))))));
1952
+ return /* @__PURE__ */ React38.createElement(DirectionProvider7, { rtl: isSiteRtl }, /* @__PURE__ */ React38.createElement(ThemeProvider7, null, /* @__PURE__ */ React38.createElement(StylesField, { bind: "flex-wrap" }, /* @__PURE__ */ React38.createElement(Grid8, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React38.createElement(Grid8, { item: true, xs: 6 }, /* @__PURE__ */ React38.createElement(ControlLabel12, null, __18("Wrap", "elementor"))), /* @__PURE__ */ React38.createElement(Grid8, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React38.createElement(ToggleControl6, { options: options5 }))))));
1739
1953
  };
1740
1954
 
1741
1955
  // src/components/style-sections/layout-section/layout-section.tsx
@@ -1744,17 +1958,17 @@ var LayoutSection = () => {
1744
1958
  const { element } = useElement();
1745
1959
  const parent = useParentElement(element.id);
1746
1960
  const parentStyle = useComputedStyle(parent?.id || null);
1747
- return /* @__PURE__ */ React38.createElement(SectionContent, null, /* @__PURE__ */ React38.createElement(DisplayField, null), ("flex" === display?.value || "inline-flex" === display?.value) && /* @__PURE__ */ React38.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React38.createElement(FlexChildFields, null));
1961
+ return /* @__PURE__ */ React39.createElement(SectionContent, null, /* @__PURE__ */ React39.createElement(DisplayField, null), ("flex" === display?.value || "inline-flex" === display?.value) && /* @__PURE__ */ React39.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React39.createElement(FlexChildFields, null));
1748
1962
  };
1749
- var FlexFields = () => /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(FlexDirectionField, null), /* @__PURE__ */ React38.createElement(JustifyContentField, null), /* @__PURE__ */ React38.createElement(AlignItemsField, null), /* @__PURE__ */ React38.createElement(PanelDivider, null), /* @__PURE__ */ React38.createElement(GapControlField, null), /* @__PURE__ */ React38.createElement(WrapField, null));
1750
- var FlexChildFields = () => /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(PanelDivider, null), /* @__PURE__ */ React38.createElement(ControlLabel13, null, __19("Flex child", "elementor")), /* @__PURE__ */ React38.createElement(AlignSelfChild, null), /* @__PURE__ */ React38.createElement(FlexOrderField, null), /* @__PURE__ */ React38.createElement(FlexSizeField, null));
1963
+ var FlexFields = () => /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(FlexDirectionField, null), /* @__PURE__ */ React39.createElement(JustifyContentField, null), /* @__PURE__ */ React39.createElement(AlignItemsField, null), /* @__PURE__ */ React39.createElement(PanelDivider, null), /* @__PURE__ */ React39.createElement(GapControlField, null), /* @__PURE__ */ React39.createElement(WrapField, null));
1964
+ var FlexChildFields = () => /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(PanelDivider, null), /* @__PURE__ */ React39.createElement(ControlLabel13, null, __19("Flex child", "elementor")), /* @__PURE__ */ React39.createElement(AlignSelfChild, null), /* @__PURE__ */ React39.createElement(FlexOrderField, null), /* @__PURE__ */ React39.createElement(FlexSizeField, null));
1751
1965
 
1752
1966
  // src/components/style-sections/position-section/position-section.tsx
1753
- import * as React42 from "react";
1967
+ import * as React43 from "react";
1754
1968
  import { useSessionStorage } from "@elementor/session";
1755
1969
 
1756
1970
  // src/components/style-sections/position-section/dimensions-field.tsx
1757
- import * as React39 from "react";
1971
+ import * as React40 from "react";
1758
1972
  import { ControlLabel as ControlLabel14, SizeControl as SizeControl3 } from "@elementor/editor-controls";
1759
1973
  import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
1760
1974
  import { Grid as Grid9, Stack as Stack10, withDirection as withDirection7 } from "@elementor/ui";
@@ -1762,23 +1976,23 @@ import { __ as __20 } from "@wordpress/i18n";
1762
1976
  var InlineStartIcon2 = withDirection7(SideLeftIcon2);
1763
1977
  var InlineEndIcon2 = withDirection7(SideRightIcon2);
1764
1978
  var sideIcons = {
1765
- "inset-block-start": /* @__PURE__ */ React39.createElement(SideTopIcon2, { fontSize: "tiny" }),
1766
- "inset-block-end": /* @__PURE__ */ React39.createElement(SideBottomIcon2, { fontSize: "tiny" }),
1767
- "inset-inline-start": /* @__PURE__ */ React39.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
1768
- "inset-inline-end": /* @__PURE__ */ React39.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
1979
+ "inset-block-start": /* @__PURE__ */ React40.createElement(SideTopIcon2, { fontSize: "tiny" }),
1980
+ "inset-block-end": /* @__PURE__ */ React40.createElement(SideBottomIcon2, { fontSize: "tiny" }),
1981
+ "inset-inline-start": /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
1982
+ "inset-inline-end": /* @__PURE__ */ React40.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
1769
1983
  };
1770
1984
  var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __20("Right", "elementor") : __20("Left", "elementor");
1771
1985
  var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __20("Left", "elementor") : __20("Right", "elementor");
1772
1986
  var DimensionsField = () => {
1773
1987
  const { isSiteRtl } = useDirection();
1774
- return /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(DimensionField, { side: "inset-block-start", label: __20("Top", "elementor") }), /* @__PURE__ */ React39.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })), /* @__PURE__ */ React39.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React39.createElement(DimensionField, { side: "inset-block-end", label: __20("Bottom", "elementor") }), /* @__PURE__ */ React39.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })));
1988
+ return /* @__PURE__ */ React40.createElement(React40.Fragment, null, /* @__PURE__ */ React40.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(DimensionField, { side: "inset-block-start", label: __20("Top", "elementor") }), /* @__PURE__ */ React40.createElement(DimensionField, { side: "inset-inline-end", label: getInlineEndLabel(isSiteRtl) })), /* @__PURE__ */ React40.createElement(Stack10, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(DimensionField, { side: "inset-block-end", label: __20("Bottom", "elementor") }), /* @__PURE__ */ React40.createElement(DimensionField, { side: "inset-inline-start", label: getInlineStartLabel(isSiteRtl) })));
1775
1989
  };
1776
1990
  var DimensionField = ({ side, label }) => {
1777
- return /* @__PURE__ */ React39.createElement(Grid9, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React39.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(ControlLabel14, null, label)), /* @__PURE__ */ React39.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React39.createElement(StylesField, { bind: side }, /* @__PURE__ */ React39.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
1991
+ return /* @__PURE__ */ React40.createElement(Grid9, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React40.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(ControlLabel14, null, label)), /* @__PURE__ */ React40.createElement(Grid9, { item: true, xs: 12 }, /* @__PURE__ */ React40.createElement(StylesField, { bind: side }, /* @__PURE__ */ React40.createElement(SizeControl3, { startIcon: sideIcons[side], extendedValues: ["auto"] }))));
1778
1992
  };
1779
1993
 
1780
1994
  // src/components/style-sections/position-section/position-field.tsx
1781
- import * as React40 from "react";
1995
+ import * as React41 from "react";
1782
1996
  import { ControlLabel as ControlLabel15, SelectControl as SelectControl3 } from "@elementor/editor-controls";
1783
1997
  import { Grid as Grid10 } from "@elementor/ui";
1784
1998
  import { __ as __21 } from "@wordpress/i18n";
@@ -1790,16 +2004,16 @@ var positionOptions = [
1790
2004
  { label: __21("Sticky", "elementor"), value: "sticky" }
1791
2005
  ];
1792
2006
  var PositionField = ({ onChange }) => {
1793
- return /* @__PURE__ */ React40.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React40.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React40.createElement(ControlLabel15, null, __21("Position", "elementor"))), /* @__PURE__ */ React40.createElement(Grid10, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React40.createElement(SelectControl3, { options: positionOptions, onChange }))));
2007
+ return /* @__PURE__ */ React41.createElement(StylesField, { bind: "position" }, /* @__PURE__ */ React41.createElement(Grid10, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel15, null, __21("Position", "elementor"))), /* @__PURE__ */ React41.createElement(Grid10, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React41.createElement(SelectControl3, { options: positionOptions, onChange }))));
1794
2008
  };
1795
2009
 
1796
2010
  // src/components/style-sections/position-section/z-index-field.tsx
1797
- import * as React41 from "react";
2011
+ import * as React42 from "react";
1798
2012
  import { ControlLabel as ControlLabel16, NumberControl as NumberControl3 } from "@elementor/editor-controls";
1799
2013
  import { Grid as Grid11 } from "@elementor/ui";
1800
2014
  import { __ as __22 } from "@wordpress/i18n";
1801
2015
  var ZIndexField = () => {
1802
- return /* @__PURE__ */ React41.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React41.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React41.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(ControlLabel16, null, __22("Z-index", "elementor"))), /* @__PURE__ */ React41.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React41.createElement(NumberControl3, null))));
2016
+ return /* @__PURE__ */ React42.createElement(StylesField, { bind: "z-index" }, /* @__PURE__ */ React42.createElement(Grid11, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(ControlLabel16, null, __22("Z-index", "elementor"))), /* @__PURE__ */ React42.createElement(Grid11, { item: true, xs: 6 }, /* @__PURE__ */ React42.createElement(NumberControl3, null))));
1803
2017
  };
1804
2018
 
1805
2019
  // src/components/style-sections/position-section/position-section.tsx
@@ -1831,7 +2045,7 @@ var PositionSection = () => {
1831
2045
  }
1832
2046
  };
1833
2047
  const isNotStatic = positionValue && positionValue?.value !== "static";
1834
- return /* @__PURE__ */ React42.createElement(SectionContent, null, /* @__PURE__ */ React42.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(DimensionsField, null), /* @__PURE__ */ React42.createElement(ZIndexField, null)) : null);
2048
+ return /* @__PURE__ */ React43.createElement(SectionContent, null, /* @__PURE__ */ React43.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(DimensionsField, null), /* @__PURE__ */ React43.createElement(ZIndexField, null)) : null);
1835
2049
  };
1836
2050
  var usePersistDimensions = () => {
1837
2051
  const { id: styleDefID, meta } = useStyle();
@@ -1841,13 +2055,13 @@ var usePersistDimensions = () => {
1841
2055
  };
1842
2056
 
1843
2057
  // src/components/style-sections/size-section/size-section.tsx
1844
- import * as React44 from "react";
2058
+ import * as React45 from "react";
1845
2059
  import { ControlLabel as ControlLabel18, SizeControl as SizeControl4 } from "@elementor/editor-controls";
1846
2060
  import { Grid as Grid13, Stack as Stack11 } from "@elementor/ui";
1847
2061
  import { __ as __24 } from "@wordpress/i18n";
1848
2062
 
1849
2063
  // src/components/style-sections/size-section/overflow-field.tsx
1850
- import * as React43 from "react";
2064
+ import * as React44 from "react";
1851
2065
  import { ControlLabel as ControlLabel17, ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
1852
2066
  import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
1853
2067
  import { Grid as Grid12 } from "@elementor/ui";
@@ -1856,69 +2070,69 @@ var options6 = [
1856
2070
  {
1857
2071
  value: "visible",
1858
2072
  label: __23("Visible", "elementor"),
1859
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(EyeIcon, { fontSize: size }),
2073
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(EyeIcon, { fontSize: size }),
1860
2074
  showTooltip: true
1861
2075
  },
1862
2076
  {
1863
2077
  value: "hidden",
1864
2078
  label: __23("Hidden", "elementor"),
1865
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(EyeOffIcon, { fontSize: size }),
2079
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(EyeOffIcon, { fontSize: size }),
1866
2080
  showTooltip: true
1867
2081
  },
1868
2082
  {
1869
2083
  value: "auto",
1870
2084
  label: __23("Auto", "elementor"),
1871
- renderContent: ({ size }) => /* @__PURE__ */ React43.createElement(LetterAIcon, { fontSize: size }),
2085
+ renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(LetterAIcon, { fontSize: size }),
1872
2086
  showTooltip: true
1873
2087
  }
1874
2088
  ];
1875
2089
  var OverflowField = () => {
1876
- return /* @__PURE__ */ React43.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React43.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React43.createElement(ControlLabel17, null, __23("Overflow", "elementor"))), /* @__PURE__ */ React43.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React43.createElement(ToggleControl7, { options: options6 }))));
2090
+ return /* @__PURE__ */ React44.createElement(StylesField, { bind: "overflow" }, /* @__PURE__ */ React44.createElement(Grid12, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid12, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel17, null, __23("Overflow", "elementor"))), /* @__PURE__ */ React44.createElement(Grid12, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(ToggleControl7, { options: options6 }))));
1877
2091
  };
1878
2092
 
1879
2093
  // src/components/style-sections/size-section/size-section.tsx
1880
2094
  var SizeSection = () => {
1881
- return /* @__PURE__ */ React44.createElement(SectionContent, null, /* @__PURE__ */ React44.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "width", label: __24("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "height", label: __24("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React44.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(
2095
+ return /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(SizeField, { bind: "width", label: __24("Width", "elementor"), extendedValues: ["auto"] })), /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(SizeField, { bind: "height", label: __24("Height", "elementor"), extendedValues: ["auto"] }))), /* @__PURE__ */ React45.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(
1882
2096
  SizeField,
1883
2097
  {
1884
2098
  bind: "min-width",
1885
2099
  label: __24("Min width", "elementor"),
1886
2100
  extendedValues: ["auto"]
1887
2101
  }
1888
- )), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(
2102
+ )), /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(
1889
2103
  SizeField,
1890
2104
  {
1891
2105
  bind: "min-height",
1892
2106
  label: __24("Min height", "elementor"),
1893
2107
  extendedValues: ["auto"]
1894
2108
  }
1895
- ))), /* @__PURE__ */ React44.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "max-width", label: __24("Max width", "elementor") })), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(SizeField, { bind: "max-height", label: __24("Max height", "elementor") }))), /* @__PURE__ */ React44.createElement(PanelDivider, null), /* @__PURE__ */ React44.createElement(Stack11, null, /* @__PURE__ */ React44.createElement(OverflowField, null)));
2109
+ ))), /* @__PURE__ */ React45.createElement(Grid13, { container: true, gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(SizeField, { bind: "max-width", label: __24("Max width", "elementor") })), /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 6 }, /* @__PURE__ */ React45.createElement(SizeField, { bind: "max-height", label: __24("Max height", "elementor") }))), /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(Stack11, null, /* @__PURE__ */ React45.createElement(OverflowField, null)));
1896
2110
  };
1897
2111
  var SizeField = ({ label, bind, extendedValues }) => {
1898
- return /* @__PURE__ */ React44.createElement(StylesField, { bind }, /* @__PURE__ */ React44.createElement(Grid13, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(ControlLabel18, null, label)), /* @__PURE__ */ React44.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React44.createElement(SizeControl4, { extendedValues }))));
2112
+ return /* @__PURE__ */ React45.createElement(StylesField, { bind }, /* @__PURE__ */ React45.createElement(Grid13, { container: true, gap: 1, alignItems: "center" }, /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(ControlLabel18, null, label)), /* @__PURE__ */ React45.createElement(Grid13, { item: true, xs: 12 }, /* @__PURE__ */ React45.createElement(SizeControl4, { extendedValues }))));
1899
2113
  };
1900
2114
 
1901
2115
  // src/components/style-sections/spacing-section/spacing-section.tsx
1902
- import * as React45 from "react";
2116
+ import * as React46 from "react";
1903
2117
  import { LinkedDimensionsControl } from "@elementor/editor-controls";
1904
2118
  import { __ as __25 } from "@wordpress/i18n";
1905
2119
  var SpacingSection = () => {
1906
2120
  const { isSiteRtl } = useDirection();
1907
- return /* @__PURE__ */ React45.createElement(SectionContent, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React45.createElement(LinkedDimensionsControl, { label: __25("Padding", "elementor"), isSiteRtl })), /* @__PURE__ */ React45.createElement(PanelDivider, null), /* @__PURE__ */ React45.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React45.createElement(
2121
+ return /* @__PURE__ */ React46.createElement(SectionContent, null, /* @__PURE__ */ React46.createElement(StylesField, { bind: "margin" }, /* @__PURE__ */ React46.createElement(
1908
2122
  LinkedDimensionsControl,
1909
2123
  {
1910
2124
  label: __25("Margin", "elementor"),
1911
2125
  isSiteRtl,
1912
2126
  extendedValues: ["auto"]
1913
2127
  }
1914
- )));
2128
+ )), /* @__PURE__ */ React46.createElement(PanelDivider, null), /* @__PURE__ */ React46.createElement(StylesField, { bind: "padding" }, /* @__PURE__ */ React46.createElement(LinkedDimensionsControl, { label: __25("Padding", "elementor"), isSiteRtl })));
1915
2129
  };
1916
2130
 
1917
2131
  // src/components/style-sections/typography-section/typography-section.tsx
1918
- import * as React60 from "react";
2132
+ import * as React61 from "react";
1919
2133
 
1920
2134
  // src/components/collapsible-content.tsx
1921
- import * as React46 from "react";
2135
+ import * as React47 from "react";
1922
2136
  import { useState as useState6 } from "react";
1923
2137
  import { Button, Collapse as Collapse3, Stack as Stack12 } from "@elementor/ui";
1924
2138
  import { __ as __26 } from "@wordpress/i18n";
@@ -1927,7 +2141,7 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
1927
2141
  const handleToggle = () => {
1928
2142
  setOpen((prevOpen) => !prevOpen);
1929
2143
  };
1930
- return /* @__PURE__ */ React46.createElement(Stack12, null, /* @__PURE__ */ React46.createElement(
2144
+ return /* @__PURE__ */ React47.createElement(Stack12, null, /* @__PURE__ */ React47.createElement(
1931
2145
  Button,
1932
2146
  {
1933
2147
  fullWidth: true,
@@ -1935,18 +2149,21 @@ var CollapsibleContent = ({ children, defaultOpen = false }) => {
1935
2149
  color: "secondary",
1936
2150
  variant: "outlined",
1937
2151
  onClick: handleToggle,
1938
- endIcon: /* @__PURE__ */ React46.createElement(CollapseIcon, { open }),
2152
+ endIcon: /* @__PURE__ */ React47.createElement(CollapseIcon, { open }),
1939
2153
  sx: { my: 0.5 }
1940
2154
  },
1941
2155
  open ? __26("Show less", "elementor") : __26("Show more", "elementor")
1942
- ), /* @__PURE__ */ React46.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
2156
+ ), /* @__PURE__ */ React47.createElement(Collapse3, { in: open, timeout: "auto", unmountOnExit: true }, children));
1943
2157
  };
1944
2158
 
1945
2159
  // src/components/style-sections/typography-section/font-family-field.tsx
1946
- import * as React47 from "react";
1947
- import { useMemo as useMemo3 } from "react";
2160
+ import * as React48 from "react";
1948
2161
  import { ControlLabel as ControlLabel19, FontFamilyControl } from "@elementor/editor-controls";
1949
2162
  import { Grid as Grid14 } from "@elementor/ui";
2163
+ import { __ as __28 } from "@wordpress/i18n";
2164
+
2165
+ // src/components/style-sections/typography-section/hooks/use-font-families.ts
2166
+ import { useMemo as useMemo3 } from "react";
1950
2167
  import { __ as __27 } from "@wordpress/i18n";
1951
2168
 
1952
2169
  // src/sync/get-elementor-config.ts
@@ -1955,254 +2172,229 @@ var getElementorConfig = () => {
1955
2172
  return extendedWindow.elementor?.config ?? {};
1956
2173
  };
1957
2174
 
1958
- // src/components/style-sections/typography-section/font-family-field.tsx
2175
+ // src/components/style-sections/typography-section/hooks/use-font-families.ts
1959
2176
  var supportedCategories = {
1960
2177
  system: __27("System", "elementor"),
1961
2178
  custom: __27("Custom Fonts", "elementor"),
1962
2179
  googlefonts: __27("Google Fonts", "elementor")
1963
2180
  };
1964
- var FontFamilyField = () => {
1965
- const fontFamilies = useFontFamilies();
1966
- if (Object.keys(fontFamilies).length === 0) {
1967
- return null;
1968
- }
1969
- return /* @__PURE__ */ React47.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React47.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React47.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React47.createElement(ControlLabel19, null, __27("Font family", "elementor"))), /* @__PURE__ */ React47.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React47.createElement(FontFamilyControl, { fontFamilies }))));
1970
- };
1971
2181
  var getFontFamilies = () => {
1972
2182
  const { controls } = getElementorConfig();
1973
- const options11 = controls?.font?.options;
1974
- if (!options11) {
2183
+ const options12 = controls?.font?.options;
2184
+ if (!options12) {
1975
2185
  return null;
1976
2186
  }
1977
- return options11;
2187
+ return options12;
1978
2188
  };
1979
2189
  var useFontFamilies = () => {
1980
2190
  const fontFamilies = getFontFamilies();
1981
- return useMemo3(
1982
- () => Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
1983
- const categoryLabel = supportedCategories[category];
1984
- const existingCategory = acc[categoryLabel];
1985
- if (!categoryLabel) {
2191
+ return useMemo3(() => {
2192
+ const categoriesOrder = ["system", "custom", "googlefonts"];
2193
+ return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
2194
+ if (!supportedCategories[category]) {
1986
2195
  return acc;
1987
2196
  }
1988
- if (!existingCategory) {
1989
- acc[categoryLabel] = [];
2197
+ const categoryIndex = categoriesOrder.indexOf(category);
2198
+ if (!acc[categoryIndex]) {
2199
+ acc[categoryIndex] = {
2200
+ label: supportedCategories[category],
2201
+ fonts: []
2202
+ };
1990
2203
  }
1991
- acc[categoryLabel].push(font);
2204
+ acc[categoryIndex].fonts.push(font);
1992
2205
  return acc;
1993
- }, {}),
1994
- [fontFamilies]
1995
- );
2206
+ }, []).filter(Boolean);
2207
+ }, [fontFamilies]);
2208
+ };
2209
+
2210
+ // src/components/style-sections/typography-section/font-family-field.tsx
2211
+ var FontFamilyField = () => {
2212
+ const fontFamilies = useFontFamilies();
2213
+ if (fontFamilies.length === 0) {
2214
+ return null;
2215
+ }
2216
+ return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-family" }, /* @__PURE__ */ React48.createElement(Grid14, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid14, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel19, null, __28("Font family", "elementor"))), /* @__PURE__ */ React48.createElement(Grid14, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React48.createElement(FontFamilyControl, { fontFamilies }))));
1996
2217
  };
1997
2218
 
1998
2219
  // src/components/style-sections/typography-section/font-size-field.tsx
1999
- import * as React48 from "react";
2220
+ import * as React49 from "react";
2000
2221
  import { ControlLabel as ControlLabel20, SizeControl as SizeControl5 } from "@elementor/editor-controls";
2001
2222
  import { Grid as Grid15 } from "@elementor/ui";
2002
- import { __ as __28 } from "@wordpress/i18n";
2223
+ import { __ as __29 } from "@wordpress/i18n";
2003
2224
  var FontSizeField = () => {
2004
- return /* @__PURE__ */ React48.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React48.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React48.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(ControlLabel20, null, __28("Font size", "elementor"))), /* @__PURE__ */ React48.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React48.createElement(SizeControl5, null))));
2225
+ return /* @__PURE__ */ React49.createElement(StylesField, { bind: "font-size" }, /* @__PURE__ */ React49.createElement(Grid15, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel20, null, __29("Font size", "elementor"))), /* @__PURE__ */ React49.createElement(Grid15, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(SizeControl5, null))));
2005
2226
  };
2006
2227
 
2007
2228
  // src/components/style-sections/typography-section/font-style-field.tsx
2008
- import * as React49 from "react";
2229
+ import * as React50 from "react";
2009
2230
  import { ControlLabel as ControlLabel21, ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
2010
2231
  import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
2011
2232
  import { Grid as Grid16 } from "@elementor/ui";
2012
- import { __ as __29 } from "@wordpress/i18n";
2233
+ import { __ as __30 } from "@wordpress/i18n";
2013
2234
  var options7 = [
2014
2235
  {
2015
2236
  value: "normal",
2016
- label: __29("Normal", "elementor"),
2017
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(MinusIcon2, { fontSize: size }),
2237
+ label: __30("Normal", "elementor"),
2238
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(MinusIcon2, { fontSize: size }),
2018
2239
  showTooltip: true
2019
2240
  },
2020
2241
  {
2021
2242
  value: "italic",
2022
- label: __29("Italic", "elementor"),
2023
- renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ItalicIcon, { fontSize: size }),
2243
+ label: __30("Italic", "elementor"),
2244
+ renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ItalicIcon, { fontSize: size }),
2024
2245
  showTooltip: true
2025
2246
  }
2026
2247
  ];
2027
- var FontStyleField = () => /* @__PURE__ */ React49.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React49.createElement(Grid16, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel21, null, __29("Font Style", "elementor"))), /* @__PURE__ */ React49.createElement(Grid16, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React49.createElement(ToggleControl8, { options: options7 }))));
2248
+ var FontStyleField = () => /* @__PURE__ */ React50.createElement(StylesField, { bind: "font-style" }, /* @__PURE__ */ React50.createElement(Grid16, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(Grid16, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(ControlLabel21, null, __30("Font style", "elementor"))), /* @__PURE__ */ React50.createElement(Grid16, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React50.createElement(ToggleControl8, { options: options7 }))));
2028
2249
 
2029
2250
  // src/components/style-sections/typography-section/font-weight-field.tsx
2030
- import * as React50 from "react";
2251
+ import * as React51 from "react";
2031
2252
  import { ControlLabel as ControlLabel22, SelectControl as SelectControl4 } from "@elementor/editor-controls";
2032
2253
  import { Grid as Grid17 } from "@elementor/ui";
2033
- import { __ as __30 } from "@wordpress/i18n";
2254
+ import { __ as __31 } from "@wordpress/i18n";
2034
2255
  var fontWeightOptions = [
2035
- { value: "100", label: __30("100 - Thin", "elementor") },
2036
- { value: "200", label: __30("200 - Extra light", "elementor") },
2037
- { value: "300", label: __30("300 - Light", "elementor") },
2038
- { value: "400", label: __30("400 - Normal", "elementor") },
2039
- { value: "500", label: __30("500 - Medium", "elementor") },
2040
- { value: "600", label: __30("600 - Semi bold", "elementor") },
2041
- { value: "700", label: __30("700 - Bold", "elementor") },
2042
- { value: "800", label: __30("800 - Extra bold", "elementor") },
2043
- { value: "900", label: __30("900 - Black", "elementor") }
2256
+ { value: "100", label: __31("100 - Thin", "elementor") },
2257
+ { value: "200", label: __31("200 - Extra light", "elementor") },
2258
+ { value: "300", label: __31("300 - Light", "elementor") },
2259
+ { value: "400", label: __31("400 - Normal", "elementor") },
2260
+ { value: "500", label: __31("500 - Medium", "elementor") },
2261
+ { value: "600", label: __31("600 - Semi bold", "elementor") },
2262
+ { value: "700", label: __31("700 - Bold", "elementor") },
2263
+ { value: "800", label: __31("800 - Extra bold", "elementor") },
2264
+ { value: "900", label: __31("900 - Black", "elementor") }
2044
2265
  ];
2045
2266
  var FontWeightField = () => {
2046
- return /* @__PURE__ */ React50.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React50.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React50.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React50.createElement(ControlLabel22, null, __30("Font weight", "elementor"))), /* @__PURE__ */ React50.createElement(Grid17, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React50.createElement(SelectControl4, { options: fontWeightOptions }))));
2267
+ return /* @__PURE__ */ React51.createElement(StylesField, { bind: "font-weight" }, /* @__PURE__ */ React51.createElement(Grid17, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid17, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel22, null, __31("Font weight", "elementor"))), /* @__PURE__ */ React51.createElement(Grid17, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React51.createElement(SelectControl4, { options: fontWeightOptions }))));
2047
2268
  };
2048
2269
 
2049
2270
  // src/components/style-sections/typography-section/letter-spacing-field.tsx
2050
- import * as React51 from "react";
2271
+ import * as React52 from "react";
2051
2272
  import { ControlLabel as ControlLabel23, SizeControl as SizeControl6 } from "@elementor/editor-controls";
2052
2273
  import { Grid as Grid18 } from "@elementor/ui";
2053
- import { __ as __31 } from "@wordpress/i18n";
2274
+ import { __ as __32 } from "@wordpress/i18n";
2054
2275
  var LetterSpacingField = () => {
2055
- return /* @__PURE__ */ React51.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React51.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React51.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(ControlLabel23, null, __31("Letter spacing", "elementor"))), /* @__PURE__ */ React51.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React51.createElement(SizeControl6, null))));
2276
+ return /* @__PURE__ */ React52.createElement(StylesField, { bind: "letter-spacing" }, /* @__PURE__ */ React52.createElement(Grid18, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel23, null, __32("Letter spacing", "elementor"))), /* @__PURE__ */ React52.createElement(Grid18, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(SizeControl6, null))));
2056
2277
  };
2057
2278
 
2058
2279
  // src/components/style-sections/typography-section/line-height-field.tsx
2059
- import * as React52 from "react";
2280
+ import * as React53 from "react";
2060
2281
  import { ControlLabel as ControlLabel24, SizeControl as SizeControl7 } from "@elementor/editor-controls";
2061
2282
  import { Grid as Grid19 } from "@elementor/ui";
2062
- import { __ as __32 } from "@wordpress/i18n";
2283
+ import { __ as __33 } from "@wordpress/i18n";
2063
2284
  var LineHeightField = () => {
2064
- return /* @__PURE__ */ React52.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React52.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React52.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(ControlLabel24, null, __32("Line height", "elementor"))), /* @__PURE__ */ React52.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React52.createElement(SizeControl7, null))));
2285
+ return /* @__PURE__ */ React53.createElement(StylesField, { bind: "line-height" }, /* @__PURE__ */ React53.createElement(Grid19, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel24, null, __33("Line height", "elementor"))), /* @__PURE__ */ React53.createElement(Grid19, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(SizeControl7, null))));
2065
2286
  };
2066
2287
 
2067
2288
  // src/components/style-sections/typography-section/text-alignment-field.tsx
2068
- import * as React53 from "react";
2289
+ import * as React54 from "react";
2069
2290
  import { ControlLabel as ControlLabel25, ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
2070
2291
  import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
2071
2292
  import { Grid as Grid20, withDirection as withDirection8 } from "@elementor/ui";
2072
- import { __ as __33 } from "@wordpress/i18n";
2293
+ import { __ as __34 } from "@wordpress/i18n";
2073
2294
  var StartIcon4 = withDirection8(AlignLeftIcon);
2074
2295
  var EndIcon4 = withDirection8(AlignRightIcon);
2075
2296
  var options8 = [
2076
2297
  {
2077
2298
  value: "start",
2078
- label: __33("Start", "elementor"),
2079
- renderContent: () => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: StartIcon4, size: "tiny" }),
2299
+ label: __34("Start", "elementor"),
2300
+ renderContent: () => /* @__PURE__ */ React54.createElement(RotatedIcon, { icon: StartIcon4, size: "tiny" }),
2080
2301
  showTooltip: true
2081
2302
  },
2082
2303
  {
2083
2304
  value: "center",
2084
- label: __33("Center", "elementor"),
2085
- renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(AlignCenterIcon, { fontSize: size }),
2305
+ label: __34("Center", "elementor"),
2306
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(AlignCenterIcon, { fontSize: size }),
2086
2307
  showTooltip: true
2087
2308
  },
2088
2309
  {
2089
2310
  value: "end",
2090
- label: __33("End", "elementor"),
2091
- renderContent: () => /* @__PURE__ */ React53.createElement(RotatedIcon, { icon: EndIcon4, size: "tiny" }),
2311
+ label: __34("End", "elementor"),
2312
+ renderContent: () => /* @__PURE__ */ React54.createElement(RotatedIcon, { icon: EndIcon4, size: "tiny" }),
2092
2313
  showTooltip: true
2093
2314
  },
2094
2315
  {
2095
2316
  value: "justify",
2096
- label: __33("Justify", "elementor"),
2097
- renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(AlignJustifiedIcon, { fontSize: size }),
2317
+ label: __34("Justify", "elementor"),
2318
+ renderContent: ({ size }) => /* @__PURE__ */ React54.createElement(AlignJustifiedIcon, { fontSize: size }),
2098
2319
  showTooltip: true
2099
2320
  }
2100
2321
  ];
2101
2322
  var TextAlignmentField = () => {
2102
- return /* @__PURE__ */ React53.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React53.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React53.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React53.createElement(ControlLabel25, null, __33("Alignment", "elementor"))), /* @__PURE__ */ React53.createElement(Grid20, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React53.createElement(ToggleControl9, { options: options8 }))));
2323
+ return /* @__PURE__ */ React54.createElement(StylesField, { bind: "text-align" }, /* @__PURE__ */ React54.createElement(Grid20, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid20, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel25, null, __34("Alignment", "elementor"))), /* @__PURE__ */ React54.createElement(Grid20, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React54.createElement(ToggleControl9, { options: options8 }))));
2103
2324
  };
2104
2325
 
2105
2326
  // src/components/style-sections/typography-section/text-color-field.tsx
2106
- import * as React54 from "react";
2327
+ import * as React55 from "react";
2107
2328
  import { ColorControl as ColorControl2, ControlLabel as ControlLabel26 } from "@elementor/editor-controls";
2108
2329
  import { Grid as Grid21 } from "@elementor/ui";
2109
- import { __ as __34 } from "@wordpress/i18n";
2330
+ import { __ as __35 } from "@wordpress/i18n";
2110
2331
  var TextColorField = () => {
2111
- return /* @__PURE__ */ React54.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React54.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React54.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ControlLabel26, null, __34("Text color", "elementor"))), /* @__PURE__ */ React54.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React54.createElement(ColorControl2, null))));
2332
+ return /* @__PURE__ */ React55.createElement(StylesField, { bind: "color" }, /* @__PURE__ */ React55.createElement(Grid21, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel26, null, __35("Text color", "elementor"))), /* @__PURE__ */ React55.createElement(Grid21, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ColorControl2, null))));
2112
2333
  };
2113
2334
 
2114
2335
  // src/components/style-sections/typography-section/text-decoration-field.tsx
2115
- import * as React55 from "react";
2116
- import { ControlLabel as ControlLabel27 } from "@elementor/editor-controls";
2117
- import { StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
2118
- import { Grid as Grid22, ToggleButton as ToggleButtonBase, ToggleButtonGroup } from "@elementor/ui";
2119
- import { __ as __35 } from "@wordpress/i18n";
2120
- var buttonSize = "tiny";
2121
- var TextDecorationField = () => {
2122
- const [textDecoration, setTextDecoration] = useStylesField("text-decoration");
2123
- const formats = [...(textDecoration?.value || "").split(" ")];
2124
- const handleSetTextDecoration = (newValue) => {
2125
- if (newValue === null) {
2126
- return setTextDecoration(null);
2127
- }
2128
- setTextDecoration({
2129
- $$type: "string",
2130
- value: newValue
2131
- });
2132
- };
2133
- return /* @__PURE__ */ React55.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React55.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React55.createElement(ControlLabel27, null, __35("Style", "elementor"))), /* @__PURE__ */ React55.createElement(Grid22, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React55.createElement(ToggleButtonGroup, { value: formats }, /* @__PURE__ */ React55.createElement(
2134
- ShorthandControl,
2135
- {
2136
- value: "line-through",
2137
- currentValues: textDecoration?.value || "",
2138
- updateValues: handleSetTextDecoration,
2139
- "aria-label": "line-through"
2140
- },
2141
- /* @__PURE__ */ React55.createElement(StrikethroughIcon, { fontSize: buttonSize })
2142
- ), /* @__PURE__ */ React55.createElement(
2143
- ShorthandControl,
2144
- {
2145
- value: "underline",
2146
- currentValues: textDecoration?.value || "",
2147
- updateValues: handleSetTextDecoration,
2148
- "aria-label": "underline"
2149
- },
2150
- /* @__PURE__ */ React55.createElement(UnderlineIcon, { fontSize: buttonSize })
2151
- ))));
2152
- };
2153
- var ShorthandControl = ({
2154
- children,
2155
- value,
2156
- currentValues,
2157
- updateValues,
2158
- "aria-label": ariaLabel
2159
- }) => {
2160
- const valuesArr = currentValues.split(" ").filter(Boolean);
2161
- const selected = valuesArr.includes(value);
2162
- const toggleValue = (newValue) => {
2163
- if (selected) {
2164
- updateValues(valuesArr.filter((v) => v !== newValue).join(" ") || null);
2165
- } else {
2166
- updateValues([...valuesArr, newValue].join(" "));
2167
- }
2168
- };
2169
- return /* @__PURE__ */ React55.createElement(ToggleButton, { value, onChange: toggleValue, selected, "aria-label": ariaLabel }, children);
2170
- };
2171
- var ToggleButton = ({ onChange, ...props }) => {
2172
- const handleChange = (_e, newValue) => {
2173
- onChange(newValue);
2174
- };
2175
- return /* @__PURE__ */ React55.createElement(ToggleButtonBase, { ...props, onChange: handleChange, size: buttonSize });
2176
- };
2336
+ import * as React56 from "react";
2337
+ import { ControlLabel as ControlLabel27, ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
2338
+ import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
2339
+ import { Grid as Grid22 } from "@elementor/ui";
2340
+ import { __ as __36 } from "@wordpress/i18n";
2341
+ var options9 = [
2342
+ {
2343
+ value: "none",
2344
+ label: __36("None", "elementor"),
2345
+ renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(MinusIcon3, { fontSize: size }),
2346
+ showTooltip: true,
2347
+ exclusive: true
2348
+ },
2349
+ {
2350
+ value: "underline",
2351
+ label: __36("Underline", "elementor"),
2352
+ renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(UnderlineIcon, { fontSize: size }),
2353
+ showTooltip: true
2354
+ },
2355
+ {
2356
+ value: "line-through",
2357
+ label: __36("Line-through", "elementor"),
2358
+ renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(StrikethroughIcon, { fontSize: size }),
2359
+ showTooltip: true
2360
+ },
2361
+ {
2362
+ value: "overline",
2363
+ label: __36("Overline", "elementor"),
2364
+ renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(OverlineIcon, { fontSize: size }),
2365
+ showTooltip: true
2366
+ }
2367
+ ];
2368
+ var TextDecorationField = () => /* @__PURE__ */ React56.createElement(StylesField, { bind: "text-decoration" }, /* @__PURE__ */ React56.createElement(Grid22, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid22, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel27, null, __36("Line decoration", "elementor"))), /* @__PURE__ */ React56.createElement(Grid22, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React56.createElement(ToggleControl10, { options: options9, exclusive: false }))));
2177
2369
 
2178
2370
  // src/components/style-sections/typography-section/text-direction-field.tsx
2179
- import * as React56 from "react";
2180
- import { ControlLabel as ControlLabel28, ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
2371
+ import * as React57 from "react";
2372
+ import { ControlLabel as ControlLabel28, ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
2181
2373
  import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
2182
2374
  import { Grid as Grid23 } from "@elementor/ui";
2183
- import { __ as __36 } from "@wordpress/i18n";
2184
- var options9 = [
2375
+ import { __ as __37 } from "@wordpress/i18n";
2376
+ var options10 = [
2185
2377
  {
2186
2378
  value: "ltr",
2187
- label: __36("Left to right", "elementor"),
2188
- renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(TextDirectionLtrIcon, { fontSize: size }),
2379
+ label: __37("Left to right", "elementor"),
2380
+ renderContent: ({ size }) => /* @__PURE__ */ React57.createElement(TextDirectionLtrIcon, { fontSize: size }),
2189
2381
  showTooltip: true
2190
2382
  },
2191
2383
  {
2192
2384
  value: "rtl",
2193
- label: __36("Right to left", "elementor"),
2194
- renderContent: ({ size }) => /* @__PURE__ */ React56.createElement(TextDirectionRtlIcon, { fontSize: size }),
2385
+ label: __37("Right to left", "elementor"),
2386
+ renderContent: ({ size }) => /* @__PURE__ */ React57.createElement(TextDirectionRtlIcon, { fontSize: size }),
2195
2387
  showTooltip: true
2196
2388
  }
2197
2389
  ];
2198
2390
  var TextDirectionField = () => {
2199
- return /* @__PURE__ */ React56.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React56.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React56.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React56.createElement(ControlLabel28, null, __36("Direction", "elementor"))), /* @__PURE__ */ React56.createElement(Grid23, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React56.createElement(ToggleControl10, { options: options9 }))));
2391
+ return /* @__PURE__ */ React57.createElement(StylesField, { bind: "direction" }, /* @__PURE__ */ React57.createElement(Grid23, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React57.createElement(Grid23, { item: true, xs: 6 }, /* @__PURE__ */ React57.createElement(ControlLabel28, null, __37("Direction", "elementor"))), /* @__PURE__ */ React57.createElement(Grid23, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React57.createElement(ToggleControl11, { options: options10 }))));
2200
2392
  };
2201
2393
 
2202
2394
  // src/components/style-sections/typography-section/text-stroke-field.tsx
2203
- import * as React57 from "react";
2395
+ import * as React58 from "react";
2204
2396
  import { StrokeControl } from "@elementor/editor-controls";
2205
- import { __ as __37 } from "@wordpress/i18n";
2397
+ import { __ as __38 } from "@wordpress/i18n";
2206
2398
  var initTextStroke = {
2207
2399
  $$type: "stroke",
2208
2400
  value: {
@@ -2228,74 +2420,73 @@ var TextStrokeField = () => {
2228
2420
  setTextStroke(null);
2229
2421
  };
2230
2422
  const hasTextStroke = Boolean(textStroke);
2231
- return /* @__PURE__ */ React57.createElement(
2423
+ return /* @__PURE__ */ React58.createElement(
2232
2424
  AddOrRemoveContent,
2233
2425
  {
2234
- label: __37("Text stroke", "elementor"),
2426
+ label: __38("Text stroke", "elementor"),
2235
2427
  isAdded: hasTextStroke,
2236
2428
  onAdd: addTextStroke,
2237
2429
  onRemove: removeTextStroke
2238
2430
  },
2239
- /* @__PURE__ */ React57.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React57.createElement(StrokeControl, null))
2431
+ /* @__PURE__ */ React58.createElement(StylesField, { bind: "stroke" }, /* @__PURE__ */ React58.createElement(StrokeControl, null))
2240
2432
  );
2241
2433
  };
2242
2434
 
2243
2435
  // src/components/style-sections/typography-section/transform-field.tsx
2244
- import * as React58 from "react";
2245
- import { ControlLabel as ControlLabel29, ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
2246
- import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon3 } from "@elementor/icons";
2436
+ import * as React59 from "react";
2437
+ import { ControlLabel as ControlLabel29, ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
2438
+ import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
2247
2439
  import { Grid as Grid24 } from "@elementor/ui";
2248
- import { __ as __38 } from "@wordpress/i18n";
2249
- var options10 = [
2440
+ import { __ as __39 } from "@wordpress/i18n";
2441
+ var options11 = [
2250
2442
  {
2251
2443
  value: "none",
2252
- label: __38("None", "elementor"),
2253
- renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(MinusIcon3, { fontSize: size }),
2444
+ label: __39("None", "elementor"),
2445
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(MinusIcon4, { fontSize: size }),
2254
2446
  showTooltip: true
2255
2447
  },
2256
2448
  {
2257
2449
  value: "capitalize",
2258
- label: __38("Capitalize", "elementor"),
2259
- renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(LetterCaseIcon, { fontSize: size }),
2450
+ label: __39("Capitalize", "elementor"),
2451
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterCaseIcon, { fontSize: size }),
2260
2452
  showTooltip: true
2261
2453
  },
2262
2454
  {
2263
2455
  value: "uppercase",
2264
- label: __38("Uppercase", "elementor"),
2265
- renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(LetterCaseUpperIcon, { fontSize: size }),
2456
+ label: __39("Uppercase", "elementor"),
2457
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterCaseUpperIcon, { fontSize: size }),
2266
2458
  showTooltip: true
2267
2459
  },
2268
2460
  {
2269
2461
  value: "lowercase",
2270
- label: __38("Lowercase", "elementor"),
2271
- renderContent: ({ size }) => /* @__PURE__ */ React58.createElement(LetterCaseLowerIcon, { fontSize: size }),
2462
+ label: __39("Lowercase", "elementor"),
2463
+ renderContent: ({ size }) => /* @__PURE__ */ React59.createElement(LetterCaseLowerIcon, { fontSize: size }),
2272
2464
  showTooltip: true
2273
2465
  }
2274
2466
  ];
2275
- var TransformField = () => /* @__PURE__ */ React58.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React58.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React58.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React58.createElement(ControlLabel29, null, __38("Text transform", "elementor"))), /* @__PURE__ */ React58.createElement(Grid24, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React58.createElement(ToggleControl11, { options: options10 }))));
2467
+ var TransformField = () => /* @__PURE__ */ React59.createElement(StylesField, { bind: "text-transform" }, /* @__PURE__ */ React59.createElement(Grid24, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid24, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel29, null, __39("Text transform", "elementor"))), /* @__PURE__ */ React59.createElement(Grid24, { item: true, xs: 6, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React59.createElement(ToggleControl12, { options: options11 }))));
2276
2468
 
2277
2469
  // src/components/style-sections/typography-section/word-spacing-field.tsx
2278
- import * as React59 from "react";
2470
+ import * as React60 from "react";
2279
2471
  import { ControlLabel as ControlLabel30, SizeControl as SizeControl8 } from "@elementor/editor-controls";
2280
2472
  import { Grid as Grid25 } from "@elementor/ui";
2281
- import { __ as __39 } from "@wordpress/i18n";
2473
+ import { __ as __40 } from "@wordpress/i18n";
2282
2474
  var WordSpacingField = () => {
2283
- return /* @__PURE__ */ React59.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React59.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React59.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(ControlLabel30, null, __39("Word spacing", "elementor"))), /* @__PURE__ */ React59.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React59.createElement(SizeControl8, null))));
2475
+ return /* @__PURE__ */ React60.createElement(StylesField, { bind: "word-spacing" }, /* @__PURE__ */ React60.createElement(Grid25, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React60.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(ControlLabel30, null, __40("Word spacing", "elementor"))), /* @__PURE__ */ React60.createElement(Grid25, { item: true, xs: 6 }, /* @__PURE__ */ React60.createElement(SizeControl8, null))));
2284
2476
  };
2285
2477
 
2286
2478
  // src/components/style-sections/typography-section/typography-section.tsx
2287
2479
  var TypographySection = () => {
2288
- return /* @__PURE__ */ React60.createElement(SectionContent, null, /* @__PURE__ */ React60.createElement(FontFamilyField, null), /* @__PURE__ */ React60.createElement(FontWeightField, null), /* @__PURE__ */ React60.createElement(FontSizeField, null), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(TextAlignmentField, null), /* @__PURE__ */ React60.createElement(TextColorField, null), /* @__PURE__ */ React60.createElement(CollapsibleContent, null, /* @__PURE__ */ React60.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React60.createElement(LineHeightField, null), /* @__PURE__ */ React60.createElement(LetterSpacingField, null), /* @__PURE__ */ React60.createElement(WordSpacingField, null), /* @__PURE__ */ React60.createElement(PanelDivider, null), /* @__PURE__ */ React60.createElement(TextDecorationField, null), /* @__PURE__ */ React60.createElement(TransformField, null), /* @__PURE__ */ React60.createElement(TextDirectionField, null), /* @__PURE__ */ React60.createElement(FontStyleField, null), /* @__PURE__ */ React60.createElement(TextStrokeField, null))));
2480
+ return /* @__PURE__ */ React61.createElement(SectionContent, null, /* @__PURE__ */ React61.createElement(FontFamilyField, null), /* @__PURE__ */ React61.createElement(FontWeightField, null), /* @__PURE__ */ React61.createElement(FontSizeField, null), /* @__PURE__ */ React61.createElement(PanelDivider, null), /* @__PURE__ */ React61.createElement(TextAlignmentField, null), /* @__PURE__ */ React61.createElement(TextColorField, null), /* @__PURE__ */ React61.createElement(CollapsibleContent, null, /* @__PURE__ */ React61.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React61.createElement(LineHeightField, null), /* @__PURE__ */ React61.createElement(LetterSpacingField, null), /* @__PURE__ */ React61.createElement(WordSpacingField, null), /* @__PURE__ */ React61.createElement(PanelDivider, null), /* @__PURE__ */ React61.createElement(TextDecorationField, null), /* @__PURE__ */ React61.createElement(TransformField, null), /* @__PURE__ */ React61.createElement(TextDirectionField, null), /* @__PURE__ */ React61.createElement(FontStyleField, null), /* @__PURE__ */ React61.createElement(TextStrokeField, null))));
2289
2481
  };
2290
2482
 
2291
2483
  // src/components/style-tab.tsx
2292
- var CLASSES_PROP_KEY = "classes";
2293
2484
  var StyleTab = () => {
2294
2485
  const currentClassesProp = useCurrentClassesProp();
2295
2486
  const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
2296
2487
  const [activeStyleState, setActiveStyleState] = useState7(null);
2297
2488
  const breakpoint = useActiveBreakpoint();
2298
- return /* @__PURE__ */ React61.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React61.createElement(
2489
+ return /* @__PURE__ */ React62.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React62.createElement(
2299
2490
  StyleProvider,
2300
2491
  {
2301
2492
  meta: { breakpoint, state: activeStyleState },
@@ -2306,7 +2497,7 @@ var StyleTab = () => {
2306
2497
  },
2307
2498
  setMetaState: setActiveStyleState
2308
2499
  },
2309
- /* @__PURE__ */ React61.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React61.createElement(CssClassSelector, null), /* @__PURE__ */ React61.createElement(Divider4, null), /* @__PURE__ */ React61.createElement(SectionsList, null, /* @__PURE__ */ React61.createElement(Section, { title: __40("Layout", "elementor") }, /* @__PURE__ */ React61.createElement(LayoutSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Spacing", "elementor") }, /* @__PURE__ */ React61.createElement(SpacingSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Size", "elementor") }, /* @__PURE__ */ React61.createElement(SizeSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Position", "elementor") }, /* @__PURE__ */ React61.createElement(PositionSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Typography", "elementor") }, /* @__PURE__ */ React61.createElement(TypographySection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Background", "elementor") }, /* @__PURE__ */ React61.createElement(BackgroundSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Border", "elementor") }, /* @__PURE__ */ React61.createElement(BorderSection, null)), /* @__PURE__ */ React61.createElement(Section, { title: __40("Effects", "elementor") }, /* @__PURE__ */ React61.createElement(EffectsSection, null))))
2500
+ /* @__PURE__ */ React62.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React62.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React62.createElement(CssClassSelector, null), /* @__PURE__ */ React62.createElement(Divider4, null), /* @__PURE__ */ React62.createElement(SectionsList, null, /* @__PURE__ */ React62.createElement(Section, { title: __41("Layout", "elementor") }, /* @__PURE__ */ React62.createElement(LayoutSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Spacing", "elementor") }, /* @__PURE__ */ React62.createElement(SpacingSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Size", "elementor") }, /* @__PURE__ */ React62.createElement(SizeSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Position", "elementor") }, /* @__PURE__ */ React62.createElement(PositionSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Typography", "elementor") }, /* @__PURE__ */ React62.createElement(TypographySection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Background", "elementor") }, /* @__PURE__ */ React62.createElement(BackgroundSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Border", "elementor") }, /* @__PURE__ */ React62.createElement(BorderSection, null)), /* @__PURE__ */ React62.createElement(Section, { title: __41("Effects", "elementor") }, /* @__PURE__ */ React62.createElement(EffectsSection, null)))))
2310
2501
  ));
2311
2502
  };
2312
2503
  function useActiveStyleDefId(currentClassesProp) {
@@ -2316,8 +2507,8 @@ function useActiveStyleDefId(currentClassesProp) {
2316
2507
  }
2317
2508
  function useFirstElementStyleDef(currentClassesProp) {
2318
2509
  const { element } = useElement();
2319
- const classesIds = useElementSetting4(element.id, currentClassesProp)?.value || [];
2320
- const stylesDefs = useElementStyles(element.id);
2510
+ const classesIds = useElementSetting5(element.id, currentClassesProp)?.value || [];
2511
+ const stylesDefs = getElementStyles(element.id) ?? {};
2321
2512
  return Object.values(stylesDefs).find((styleDef) => classesIds.includes(styleDef.id));
2322
2513
  }
2323
2514
  function useCurrentClassesProp() {
@@ -2338,7 +2529,7 @@ var EditingPanelTabs = () => {
2338
2529
  return (
2339
2530
  // When switching between elements, the local states should be reset. We are using key to rerender the tabs.
2340
2531
  // Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
2341
- /* @__PURE__ */ React62.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React62.createElement(Stack13, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React62.createElement(Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React62.createElement(Tab, { label: __41("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React62.createElement(Tab, { label: __41("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React62.createElement(Divider5, null), /* @__PURE__ */ React62.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React62.createElement(SettingsTab, null)), /* @__PURE__ */ React62.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React62.createElement(StyleTab, null))))
2532
+ /* @__PURE__ */ React63.createElement(Fragment8, { key: element.id }, /* @__PURE__ */ React63.createElement(Stack13, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React63.createElement(Tabs, { variant: "fullWidth", indicatorColor: "secondary", textColor: "inherit", ...getTabsProps() }, /* @__PURE__ */ React63.createElement(Tab, { label: __42("General", "elementor"), ...getTabProps("settings") }), /* @__PURE__ */ React63.createElement(Tab, { label: __42("Style", "elementor"), ...getTabProps("style") })), /* @__PURE__ */ React63.createElement(Divider5, null), /* @__PURE__ */ React63.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React63.createElement(SettingsTab, null)), /* @__PURE__ */ React63.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React63.createElement(StyleTab, null))))
2342
2533
  );
2343
2534
  };
2344
2535
 
@@ -2351,8 +2542,8 @@ var EditingPanel = () => {
2351
2542
  if (!element || !elementType) {
2352
2543
  return null;
2353
2544
  }
2354
- const panelTitle = __42("Edit %s", "elementor").replace("%s", elementType.title);
2355
- return /* @__PURE__ */ React63.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React63.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React63.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React63.createElement(Panel, null, /* @__PURE__ */ React63.createElement(PanelHeader, null, /* @__PURE__ */ React63.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React63.createElement(RocketIcon, { fontSize: "small", sx: { color: "text.disabled" } })), /* @__PURE__ */ React63.createElement(PanelBody, null, /* @__PURE__ */ React63.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React63.createElement(ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React63.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React63.createElement(EditingPanelTabs, null))))))));
2545
+ const panelTitle = __43("Edit %s", "elementor").replace("%s", elementType.title);
2546
+ return /* @__PURE__ */ React64.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React64.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React64.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React64.createElement(Panel, null, /* @__PURE__ */ React64.createElement(PanelHeader, null, /* @__PURE__ */ React64.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React64.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React64.createElement(PanelBody, null, /* @__PURE__ */ React64.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React64.createElement(ControlReplacementProvider, { ...controlReplacement }, /* @__PURE__ */ React64.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React64.createElement(EditingPanelTabs, null))))))));
2356
2547
  };
2357
2548
 
2358
2549
  // src/panel.ts
@@ -2363,12 +2554,12 @@ var { panel, usePanelActions, usePanelStatus } = createPanel({
2363
2554
 
2364
2555
  // src/init.ts
2365
2556
  import { injectIntoLogic } from "@elementor/editor";
2557
+ import { PrefetchUserData } from "@elementor/editor-current-user";
2366
2558
  import { __registerPanel as registerPanel } from "@elementor/editor-panels";
2367
2559
  import { blockCommand } from "@elementor/editor-v1-adapters";
2368
2560
 
2369
- // src/hooks/use-close-editor-panel.ts
2561
+ // src/hooks/use-open-editor-panel.ts
2370
2562
  import { useEffect as useEffect2 } from "react";
2371
- import { getSelectedElements as getSelectedElements2, isElementInContainer } from "@elementor/editor-elements";
2372
2563
  import { __privateListenTo as listenTo, commandStartEvent } from "@elementor/editor-v1-adapters";
2373
2564
 
2374
2565
  // src/sync/is-atomic-widget-selected.ts
@@ -2382,28 +2573,11 @@ var isAtomicWidgetSelected = () => {
2382
2573
  return !!widgetCache?.[selectedElements[0].type]?.atomic_controls;
2383
2574
  };
2384
2575
 
2385
- // src/hooks/use-close-editor-panel.ts
2386
- var useCloseEditorPanel = () => {
2387
- const { close } = usePanelActions();
2388
- return useEffect2(() => {
2389
- return listenTo(commandStartEvent("document/elements/delete"), (e) => {
2390
- const selectedElement = getSelectedElements2()[0];
2391
- const { container: deletedContainer } = e?.args;
2392
- const isSelectedElementInDeletedContainer = deletedContainer && selectedElement && isElementInContainer(selectedElement, deletedContainer);
2393
- if (isSelectedElementInDeletedContainer && isAtomicWidgetSelected()) {
2394
- close();
2395
- }
2396
- });
2397
- }, []);
2398
- };
2399
-
2400
2576
  // src/hooks/use-open-editor-panel.ts
2401
- import { useEffect as useEffect3 } from "react";
2402
- import { __privateListenTo as listenTo2, commandStartEvent as commandStartEvent2 } from "@elementor/editor-v1-adapters";
2403
2577
  var useOpenEditorPanel = () => {
2404
2578
  const { open } = usePanelActions();
2405
- useEffect3(() => {
2406
- return listenTo2(commandStartEvent2("panel/editor/open"), () => {
2579
+ useEffect2(() => {
2580
+ return listenTo(commandStartEvent("panel/editor/open"), () => {
2407
2581
  if (isAtomicWidgetSelected()) {
2408
2582
  open();
2409
2583
  }
@@ -2414,12 +2588,11 @@ var useOpenEditorPanel = () => {
2414
2588
  // src/components/editing-panel-hooks.tsx
2415
2589
  var EditingPanelHooks = () => {
2416
2590
  useOpenEditorPanel();
2417
- useCloseEditorPanel();
2418
2591
  return null;
2419
2592
  };
2420
2593
 
2421
2594
  // src/dynamics/components/dynamic-selection-control.tsx
2422
- import * as React67 from "react";
2595
+ import * as React68 from "react";
2423
2596
  import { useId as useId4 } from "react";
2424
2597
  import { ControlLabel as ControlLabel31, useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
2425
2598
  import { DatabaseIcon as DatabaseIcon2, SettingsIcon, XIcon as XIcon2 } from "@elementor/icons";
@@ -2441,12 +2614,12 @@ import {
2441
2614
  usePopupState as usePopupState3,
2442
2615
  useTabs as useTabs2
2443
2616
  } from "@elementor/ui";
2444
- import { __ as __44 } from "@wordpress/i18n";
2617
+ import { __ as __45 } from "@wordpress/i18n";
2445
2618
 
2446
2619
  // src/components/popover-content.tsx
2447
- import * as React64 from "react";
2620
+ import * as React65 from "react";
2448
2621
  import { Stack as Stack14 } from "@elementor/ui";
2449
- var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React64.createElement(Stack14, { alignItems, gap, p }, children);
2622
+ var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React65.createElement(Stack14, { alignItems, gap, p }, children);
2450
2623
 
2451
2624
  // src/hooks/use-persist-dynamic-value.ts
2452
2625
  import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
@@ -2457,7 +2630,7 @@ var usePersistDynamicValue = (propKey) => {
2457
2630
  };
2458
2631
 
2459
2632
  // src/dynamics/dynamic-control.tsx
2460
- import * as React65 from "react";
2633
+ import * as React66 from "react";
2461
2634
  import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
2462
2635
 
2463
2636
  // src/dynamics/hooks/use-dynamic-tag.ts
@@ -2559,11 +2732,11 @@ var DynamicControl = ({ bind, children }) => {
2559
2732
  });
2560
2733
  };
2561
2734
  const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
2562
- return /* @__PURE__ */ React65.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React65.createElement(PropKeyProvider3, { bind }, children));
2735
+ return /* @__PURE__ */ React66.createElement(PropProvider3, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React66.createElement(PropKeyProvider3, { bind }, children));
2563
2736
  };
2564
2737
 
2565
2738
  // src/dynamics/components/dynamic-selection.tsx
2566
- import * as React66 from "react";
2739
+ import * as React67 from "react";
2567
2740
  import { Fragment as Fragment9, useState as useState8 } from "react";
2568
2741
  import { useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
2569
2742
  import { DatabaseIcon, SearchIcon } from "@elementor/icons";
@@ -2579,7 +2752,7 @@ import {
2579
2752
  TextField as TextField2,
2580
2753
  Typography as Typography4
2581
2754
  } from "@elementor/ui";
2582
- import { __ as __43 } from "@wordpress/i18n";
2755
+ import { __ as __44 } from "@wordpress/i18n";
2583
2756
  var SIZE3 = "tiny";
2584
2757
  var DynamicSelection = ({ onSelect }) => {
2585
2758
  const [searchValue, setSearchValue] = useState8("");
@@ -2588,7 +2761,8 @@ var DynamicSelection = ({ onSelect }) => {
2588
2761
  const { bind, value: dynamicValue, setValue } = useBoundProp3(dynamicPropTypeUtil);
2589
2762
  const [, updatePropValueHistory] = usePersistDynamicValue(bind);
2590
2763
  const isCurrentValueDynamic = !!dynamicValue;
2591
- const options11 = useFilteredOptions(searchValue);
2764
+ const options12 = useFilteredOptions(searchValue);
2765
+ const hasNoDynamicTags = !options12.length && !searchValue.trim();
2592
2766
  const handleSearch = (event) => {
2593
2767
  setSearchValue(event.target.value);
2594
2768
  };
@@ -2599,21 +2773,27 @@ var DynamicSelection = ({ onSelect }) => {
2599
2773
  setValue({ name: value, settings: {} });
2600
2774
  onSelect?.();
2601
2775
  };
2602
- return /* @__PURE__ */ React66.createElement(Stack15, null, /* @__PURE__ */ React66.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React66.createElement(
2776
+ return /* @__PURE__ */ React67.createElement(Stack15, null, hasNoDynamicTags ? /* @__PURE__ */ React67.createElement(NoDynamicTags, null) : /* @__PURE__ */ React67.createElement(Fragment9, null, /* @__PURE__ */ React67.createElement(Box4, { px: 1.5, pb: 1 }, /* @__PURE__ */ React67.createElement(
2603
2777
  TextField2,
2604
2778
  {
2605
2779
  fullWidth: true,
2606
2780
  size: SIZE3,
2607
2781
  value: searchValue,
2608
2782
  onChange: handleSearch,
2609
- placeholder: __43("Search dynamic tags\u2026", "elementor"),
2783
+ placeholder: __44("Search dynamic tags\u2026", "elementor"),
2610
2784
  InputProps: {
2611
- startAdornment: /* @__PURE__ */ React66.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React66.createElement(SearchIcon, { fontSize: SIZE3 }))
2785
+ startAdornment: /* @__PURE__ */ React67.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React67.createElement(SearchIcon, { fontSize: SIZE3 }))
2612
2786
  }
2613
2787
  }
2614
- )), /* @__PURE__ */ React66.createElement(Divider6, null), /* @__PURE__ */ React66.createElement(Box4, { sx: { overflowY: "auto", height: 260, width: 220 } }, options11.length > 0 ? /* @__PURE__ */ React66.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options11.map(([category, items3], index) => /* @__PURE__ */ React66.createElement(Fragment9, { key: index }, /* @__PURE__ */ React66.createElement(ListSubheader2, { sx: { px: 1.5, typography: "caption", color: "text.tertiary" } }, dynamicGroups?.[category]?.title || category), items3.map(({ value, label: tagLabel }) => {
2788
+ )), /* @__PURE__ */ React67.createElement(Divider6, null), /* @__PURE__ */ React67.createElement(Box4, { sx: { overflowY: "auto", height: 260, width: 220 } }, options12.length > 0 ? /* @__PURE__ */ React67.createElement(MenuList, { role: "listbox", tabIndex: 0 }, options12.map(([category, items3], index) => /* @__PURE__ */ React67.createElement(Fragment9, { key: index }, /* @__PURE__ */ React67.createElement(
2789
+ ListSubheader2,
2790
+ {
2791
+ sx: { px: 1.5, typography: "caption", color: "text.tertiary" }
2792
+ },
2793
+ dynamicGroups?.[category]?.title || category
2794
+ ), items3.map(({ value, label: tagLabel }) => {
2615
2795
  const isSelected = isCurrentValueDynamic && value === dynamicValue?.name;
2616
- return /* @__PURE__ */ React66.createElement(
2796
+ return /* @__PURE__ */ React67.createElement(
2617
2797
  MenuItem2,
2618
2798
  {
2619
2799
  key: value,
@@ -2624,34 +2804,41 @@ var DynamicSelection = ({ onSelect }) => {
2624
2804
  },
2625
2805
  tagLabel
2626
2806
  );
2627
- })))) : /* @__PURE__ */ React66.createElement(
2628
- Stack15,
2629
- {
2630
- gap: 1,
2631
- alignItems: "center",
2632
- justifyContent: "center",
2633
- height: "100%",
2634
- p: 2.5,
2635
- color: "text.secondary",
2636
- sx: { pb: 3.5 }
2637
- },
2638
- /* @__PURE__ */ React66.createElement(DatabaseIcon, { fontSize: "large" }),
2639
- /* @__PURE__ */ React66.createElement(Typography4, { align: "center", variant: "subtitle2" }, __43("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React66.createElement("br", null), "\u201C", searchValue, "\u201D."),
2640
- /* @__PURE__ */ React66.createElement(Typography4, { align: "center", variant: "caption" }, __43("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React66.createElement(
2641
- Link,
2642
- {
2643
- color: "text.secondary",
2644
- variant: "caption",
2645
- component: "button",
2646
- onClick: () => setSearchValue("")
2647
- },
2648
- __43("Clear & try again", "elementor")
2649
- ))
2650
- )));
2807
+ })))) : /* @__PURE__ */ React67.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
2651
2808
  };
2809
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React67.createElement(
2810
+ Stack15,
2811
+ {
2812
+ gap: 1,
2813
+ alignItems: "center",
2814
+ justifyContent: "center",
2815
+ height: "100%",
2816
+ p: 2.5,
2817
+ color: "text.secondary",
2818
+ sx: { pb: 3.5 }
2819
+ },
2820
+ /* @__PURE__ */ React67.createElement(DatabaseIcon, { fontSize: "large" }),
2821
+ /* @__PURE__ */ React67.createElement(Typography4, { align: "center", variant: "subtitle2" }, __44("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React67.createElement("br", null), "\u201C", searchValue, "\u201D."),
2822
+ /* @__PURE__ */ React67.createElement(Typography4, { align: "center", variant: "caption" }, __44("Try something else.", "elementor"), "\xA0", /* @__PURE__ */ React67.createElement(Link, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __44("Clear & try again", "elementor")))
2823
+ );
2824
+ var NoDynamicTags = () => /* @__PURE__ */ React67.createElement(Box4, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React67.createElement(Divider6, null), /* @__PURE__ */ React67.createElement(
2825
+ Stack15,
2826
+ {
2827
+ gap: 1,
2828
+ alignItems: "center",
2829
+ justifyContent: "center",
2830
+ height: "100%",
2831
+ p: 2.5,
2832
+ color: "text.secondary",
2833
+ sx: { pb: 3.5 }
2834
+ },
2835
+ /* @__PURE__ */ React67.createElement(DatabaseIcon, { fontSize: "large" }),
2836
+ /* @__PURE__ */ React67.createElement(Typography4, { align: "center", variant: "subtitle2" }, __44("Streamline your workflow with dynamic tags", "elementor")),
2837
+ /* @__PURE__ */ React67.createElement(Typography4, { align: "center", variant: "caption" }, __44("You\u2019ll need Elementor Pro to use this feature.", "elementor"))
2838
+ ));
2652
2839
  var useFilteredOptions = (searchValue) => {
2653
2840
  const dynamicTags = usePropDynamicTags();
2654
- const options11 = dynamicTags.reduce((categories, { name, label, group }) => {
2841
+ const options12 = dynamicTags.reduce((categories, { name, label, group }) => {
2655
2842
  const isVisible = label.toLowerCase().includes(searchValue.trim().toLowerCase());
2656
2843
  if (!isVisible) {
2657
2844
  return categories;
@@ -2662,7 +2849,7 @@ var useFilteredOptions = (searchValue) => {
2662
2849
  categories.get(group)?.push({ label, value: name });
2663
2850
  return categories;
2664
2851
  }, /* @__PURE__ */ new Map());
2665
- return [...options11];
2852
+ return [...options12];
2666
2853
  };
2667
2854
 
2668
2855
  // src/dynamics/components/dynamic-selection-control.tsx
@@ -2681,25 +2868,25 @@ var DynamicSelectionControl = () => {
2681
2868
  if (!dynamicTag) {
2682
2869
  throw new Error(`Dynamic tag ${tagName} not found`);
2683
2870
  }
2684
- return /* @__PURE__ */ React67.createElement(Box5, null, /* @__PURE__ */ React67.createElement(
2871
+ return /* @__PURE__ */ React68.createElement(Box5, null, /* @__PURE__ */ React68.createElement(
2685
2872
  Tag,
2686
2873
  {
2687
2874
  fullWidth: true,
2688
2875
  showActionsOnHover: true,
2689
2876
  label: dynamicTag.label,
2690
- startIcon: /* @__PURE__ */ React67.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
2877
+ startIcon: /* @__PURE__ */ React68.createElement(DatabaseIcon2, { fontSize: SIZE4 }),
2691
2878
  ...bindTrigger2(selectionPopoverState),
2692
- actions: /* @__PURE__ */ React67.createElement(React67.Fragment, null, /* @__PURE__ */ React67.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React67.createElement(
2879
+ actions: /* @__PURE__ */ React68.createElement(React68.Fragment, null, /* @__PURE__ */ React68.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React68.createElement(
2693
2880
  IconButton3,
2694
2881
  {
2695
2882
  size: SIZE4,
2696
2883
  onClick: removeDynamicTag,
2697
- "aria-label": __44("Remove dynamic value", "elementor")
2884
+ "aria-label": __45("Remove dynamic value", "elementor")
2698
2885
  },
2699
- /* @__PURE__ */ React67.createElement(XIcon2, { fontSize: SIZE4 })
2886
+ /* @__PURE__ */ React68.createElement(XIcon2, { fontSize: SIZE4 })
2700
2887
  ))
2701
2888
  }
2702
- ), /* @__PURE__ */ React67.createElement(
2889
+ ), /* @__PURE__ */ React68.createElement(
2703
2890
  Popover2,
2704
2891
  {
2705
2892
  disablePortal: true,
@@ -2707,7 +2894,7 @@ var DynamicSelectionControl = () => {
2707
2894
  anchorOrigin: { vertical: "bottom", horizontal: "left" },
2708
2895
  ...bindPopover2(selectionPopoverState)
2709
2896
  },
2710
- /* @__PURE__ */ React67.createElement(Stack16, null, /* @__PURE__ */ React67.createElement(Stack16, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React67.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React67.createElement(Typography5, { variant: "subtitle2" }, __44("Dynamic tags", "elementor")), /* @__PURE__ */ React67.createElement(IconButton3, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React67.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React67.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
2897
+ /* @__PURE__ */ React68.createElement(Stack16, null, /* @__PURE__ */ React68.createElement(Stack16, { direction: "row", alignItems: "center", pl: 1.5, pr: 0.5, py: 1.5 }, /* @__PURE__ */ React68.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React68.createElement(Typography5, { variant: "subtitle2" }, __45("Dynamic tags", "elementor")), /* @__PURE__ */ React68.createElement(IconButton3, { size: SIZE4, sx: { ml: "auto" }, onClick: selectionPopoverState.close }, /* @__PURE__ */ React68.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React68.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
2711
2898
  ));
2712
2899
  };
2713
2900
  var DynamicSettingsPopover = ({ dynamicTag }) => {
@@ -2717,22 +2904,22 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
2717
2904
  if (!hasDynamicSettings) {
2718
2905
  return null;
2719
2906
  }
2720
- return /* @__PURE__ */ React67.createElement(React67.Fragment, null, /* @__PURE__ */ React67.createElement(
2907
+ return /* @__PURE__ */ React68.createElement(React68.Fragment, null, /* @__PURE__ */ React68.createElement(
2721
2908
  IconButton3,
2722
2909
  {
2723
2910
  size: SIZE4,
2724
2911
  ...bindTrigger2(settingsPopupState),
2725
- "aria-label": __44("Settings", "elementor")
2912
+ "aria-label": __45("Settings", "elementor")
2726
2913
  },
2727
- /* @__PURE__ */ React67.createElement(SettingsIcon, { fontSize: SIZE4 })
2728
- ), /* @__PURE__ */ React67.createElement(
2914
+ /* @__PURE__ */ React68.createElement(SettingsIcon, { fontSize: SIZE4 })
2915
+ ), /* @__PURE__ */ React68.createElement(
2729
2916
  Popover2,
2730
2917
  {
2731
2918
  disableScrollLock: true,
2732
2919
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
2733
2920
  ...bindPopover2(settingsPopupState)
2734
2921
  },
2735
- /* @__PURE__ */ React67.createElement(Paper, { component: Stack16, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React67.createElement(Stack16, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React67.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React67.createElement(Typography5, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React67.createElement(IconButton3, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React67.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React67.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
2922
+ /* @__PURE__ */ React68.createElement(Paper, { component: Stack16, sx: { minHeight: "300px", width: "220px" } }, /* @__PURE__ */ React68.createElement(Stack16, { direction: "row", alignItems: "center", px: 1.5, pt: 2, pb: 1 }, /* @__PURE__ */ React68.createElement(DatabaseIcon2, { fontSize: SIZE4, sx: { mr: 0.5 } }), /* @__PURE__ */ React68.createElement(Typography5, { variant: "subtitle2" }, dynamicTag.label), /* @__PURE__ */ React68.createElement(IconButton3, { sx: { ml: "auto" }, size: SIZE4, onClick: settingsPopupState.close }, /* @__PURE__ */ React68.createElement(XIcon2, { fontSize: SIZE4 }))), /* @__PURE__ */ React68.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls }))
2736
2923
  ));
2737
2924
  };
2738
2925
  var DynamicSettings = ({ controls }) => {
@@ -2741,10 +2928,10 @@ var DynamicSettings = ({ controls }) => {
2741
2928
  if (!tabs.length) {
2742
2929
  return null;
2743
2930
  }
2744
- return /* @__PURE__ */ React67.createElement(React67.Fragment, null, /* @__PURE__ */ React67.createElement(Tabs2, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React67.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React67.createElement(Divider7, null), tabs.map(({ value }, index) => {
2745
- return /* @__PURE__ */ React67.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React67.createElement(PopoverContent, { p: 1.5 }, value.items.map((item) => {
2931
+ return /* @__PURE__ */ React68.createElement(React68.Fragment, null, /* @__PURE__ */ React68.createElement(Tabs2, { indicatorColor: "secondary", textColor: "secondary", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React68.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React68.createElement(Divider7, null), tabs.map(({ value }, index) => {
2932
+ return /* @__PURE__ */ React68.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React68.createElement(PopoverContent, { p: 1.5 }, value.items.map((item) => {
2746
2933
  if (item.type === "control") {
2747
- return /* @__PURE__ */ React67.createElement(Control3, { key: item.value.bind, control: item.value });
2934
+ return /* @__PURE__ */ React68.createElement(Control3, { key: item.value.bind, control: item.value });
2748
2935
  }
2749
2936
  return null;
2750
2937
  })));
@@ -2754,22 +2941,22 @@ var Control3 = ({ control }) => {
2754
2941
  if (!getControlByType(control.type)) {
2755
2942
  return null;
2756
2943
  }
2757
- return /* @__PURE__ */ React67.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React67.createElement(Grid26, { container: true, gap: 1 }, control.label ? /* @__PURE__ */ React67.createElement(Grid26, { item: true, xs: 12 }, /* @__PURE__ */ React67.createElement(ControlLabel31, null, control.label)) : null, /* @__PURE__ */ React67.createElement(Grid26, { item: true, xs: 12 }, /* @__PURE__ */ React67.createElement(Control, { type: control.type, props: control.props }))));
2944
+ return /* @__PURE__ */ React68.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React68.createElement(Grid26, { container: true, gap: 1 }, control.label ? /* @__PURE__ */ React68.createElement(Grid26, { item: true, xs: 12 }, /* @__PURE__ */ React68.createElement(ControlLabel31, null, control.label)) : null, /* @__PURE__ */ React68.createElement(Grid26, { item: true, xs: 12 }, /* @__PURE__ */ React68.createElement(Control, { type: control.type, props: control.props }))));
2758
2945
  };
2759
2946
 
2760
2947
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
2761
- import * as React68 from "react";
2948
+ import * as React69 from "react";
2762
2949
  import { useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
2763
2950
  import { DatabaseIcon as DatabaseIcon3 } from "@elementor/icons";
2764
- import { __ as __45 } from "@wordpress/i18n";
2951
+ import { __ as __46 } from "@wordpress/i18n";
2765
2952
  var usePropDynamicAction = () => {
2766
2953
  const { propType } = useBoundProp5();
2767
2954
  const visible = !!propType && supportsDynamic(propType);
2768
2955
  return {
2769
2956
  visible,
2770
2957
  icon: DatabaseIcon3,
2771
- title: __45("Dynamic tags", "elementor"),
2772
- popoverContent: ({ closePopover }) => /* @__PURE__ */ React68.createElement(DynamicSelection, { onSelect: closePopover })
2958
+ title: __46("Dynamic tags", "elementor"),
2959
+ popoverContent: ({ closePopover }) => /* @__PURE__ */ React69.createElement(DynamicSelection, { onSelect: closePopover })
2773
2960
  };
2774
2961
  };
2775
2962
 
@@ -2794,6 +2981,10 @@ function init2() {
2794
2981
  id: "editing-panel-hooks",
2795
2982
  component: EditingPanelHooks
2796
2983
  });
2984
+ injectIntoLogic({
2985
+ id: "current-user-data",
2986
+ component: PrefetchUserData
2987
+ });
2797
2988
  init();
2798
2989
  }
2799
2990
  var blockV1Panel = () => {