@elementor/editor-editing-panel 1.45.0 → 1.47.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/CHANGELOG.md +90 -0
- package/dist/index.d.mts +22 -4
- package/dist/index.d.ts +22 -4
- package/dist/index.js +1187 -1051
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1027 -893
- package/dist/index.mjs.map +1 -1
- package/package.json +18 -17
- package/src/components/css-classes/css-class-menu.tsx +6 -8
- package/src/components/css-classes/css-class-selector.tsx +17 -11
- package/src/components/popover-scrollable-content.tsx +12 -0
- package/src/components/section-content.tsx +6 -16
- package/src/components/section.tsx +8 -4
- package/src/components/settings-tab.tsx +30 -4
- package/src/components/style-indicator.tsx +19 -15
- package/src/components/style-sections/background-section/background-section.tsx +4 -1
- package/src/components/style-sections/border-section/border-color-field.tsx +10 -16
- package/src/components/style-sections/border-section/border-field.tsx +4 -6
- package/src/components/style-sections/border-section/border-radius-field.tsx +4 -2
- package/src/components/style-sections/border-section/border-style-field.tsx +11 -16
- package/src/components/style-sections/border-section/border-width-field.tsx +4 -2
- package/src/components/style-sections/effects-section/effects-section.tsx +22 -2
- package/src/components/style-sections/layout-section/align-content-field.tsx +11 -12
- package/src/components/style-sections/layout-section/align-items-field.tsx +8 -11
- package/src/components/style-sections/layout-section/align-self-child-field.tsx +11 -16
- package/src/components/style-sections/layout-section/display-field.tsx +6 -6
- package/src/components/style-sections/layout-section/flex-direction-field.tsx +11 -14
- package/src/components/style-sections/layout-section/flex-order-field.tsx +32 -37
- package/src/components/style-sections/layout-section/flex-size-field.tsx +35 -58
- package/src/components/style-sections/layout-section/gap-control-field.tsx +5 -6
- package/src/components/style-sections/layout-section/justify-content-field.tsx +11 -12
- package/src/components/style-sections/layout-section/layout-section.tsx +2 -2
- package/src/components/style-sections/layout-section/opacity-control-field.tsx +21 -0
- package/src/components/style-sections/layout-section/utils/rotated-icon.tsx +1 -1
- package/src/components/style-sections/layout-section/wrap-field.tsx +10 -14
- package/src/components/style-sections/position-section/dimensions-field.tsx +4 -4
- package/src/components/style-sections/position-section/offset-field.tsx +12 -14
- package/src/components/style-sections/position-section/position-field.tsx +7 -11
- package/src/components/style-sections/position-section/position-section.tsx +6 -6
- package/src/components/style-sections/position-section/z-index-field.tsx +7 -11
- package/src/components/style-sections/size-section/object-fit-field.tsx +7 -11
- package/src/components/style-sections/size-section/object-position-field.tsx +4 -23
- package/src/components/style-sections/size-section/overflow-field.tsx +7 -11
- package/src/components/style-sections/size-section/size-section.tsx +10 -8
- package/src/components/style-sections/spacing-section/spacing-section.tsx +7 -4
- package/src/components/style-sections/typography-section/column-count-field.tsx +7 -11
- package/src/components/style-sections/typography-section/column-gap-field.tsx +9 -13
- package/src/components/style-sections/typography-section/font-family-field.tsx +9 -11
- package/src/components/style-sections/typography-section/font-size-field.tsx +9 -13
- package/src/components/style-sections/typography-section/font-style-field.tsx +13 -13
- package/src/components/style-sections/typography-section/font-weight-field.tsx +7 -11
- package/src/components/style-sections/typography-section/letter-spacing-field.tsx +9 -13
- package/src/components/style-sections/typography-section/line-height-field.tsx +9 -13
- package/src/components/style-sections/typography-section/text-alignment-field.tsx +11 -14
- package/src/components/style-sections/typography-section/text-color-field.tsx +7 -11
- package/src/components/style-sections/typography-section/text-decoration-field.tsx +7 -11
- package/src/components/style-sections/typography-section/text-direction-field.tsx +7 -11
- package/src/components/style-sections/typography-section/text-stroke-field.tsx +8 -8
- package/src/components/style-sections/typography-section/transform-field.tsx +7 -11
- package/src/components/style-sections/typography-section/typography-section.tsx +4 -2
- package/src/components/style-sections/typography-section/word-spacing-field.tsx +9 -13
- package/src/components/styles-field-layout.tsx +50 -0
- package/src/contexts/section-context.tsx +14 -0
- package/src/controls-registry/control-type-container.tsx +6 -2
- package/src/controls-registry/controls-registry.tsx +30 -10
- package/src/controls-registry/settings-field.tsx +65 -6
- package/src/controls-registry/styles-field.tsx +11 -5
- package/src/dynamics/components/dynamic-selection-control.tsx +20 -22
- package/src/dynamics/components/dynamic-selection.tsx +64 -79
- package/src/dynamics/hooks/use-prop-dynamic-action.tsx +1 -1
- package/src/hooks/use-default-panel-settings.ts +4 -0
- package/src/hooks/use-styles-field.ts +9 -3
- package/src/hooks/use-styles-fields.ts +4 -4
- package/src/index.ts +5 -0
- package/src/popover-action.tsx +11 -6
- package/src/provider-colors-registry.ts +20 -0
- package/src/styles-inheritance/components/infotip/label-chip.tsx +4 -5
- package/src/styles-inheritance/components/styles-inheritance-indicator.tsx +36 -41
- package/src/styles-inheritance/components/styles-inheritance-infotip.tsx +10 -24
- package/src/styles-inheritance/components/styles-inheritance-section-indicators.tsx +29 -44
- package/src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx +1 -17
- package/src/styles-inheritance/types.ts +0 -2
- package/src/styles-inheritance/utils.ts +17 -1
- package/src/sync/experiments-flags.ts +1 -0
- package/src/utils/get-styles-provider-color.ts +28 -0
- package/src/components/popover-content.tsx +0 -15
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
// src/sync/experiments-flags.ts
|
|
2
|
+
var EXPERIMENTAL_FEATURES = {
|
|
3
|
+
V_3_30: "e_v_3_30",
|
|
4
|
+
V_3_31: "e_v_3_31"
|
|
5
|
+
};
|
|
6
|
+
|
|
1
7
|
// src/index.ts
|
|
2
8
|
import { useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
|
|
3
9
|
|
|
@@ -5,6 +11,17 @@ import { useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
|
|
|
5
11
|
import { createControlReplacementsRegistry } from "@elementor/editor-controls";
|
|
6
12
|
var { registerControlReplacement, getControlReplacements } = createControlReplacementsRegistry();
|
|
7
13
|
|
|
14
|
+
// src/provider-colors-registry.ts
|
|
15
|
+
var DEFAULT_COLORS = {
|
|
16
|
+
name: "default",
|
|
17
|
+
getThemeColor: null
|
|
18
|
+
};
|
|
19
|
+
var providerColorsRegistry = /* @__PURE__ */ new Map();
|
|
20
|
+
var registerStyleProviderToColors = (provider, colors) => {
|
|
21
|
+
providerColorsRegistry.set(provider, colors);
|
|
22
|
+
};
|
|
23
|
+
var getStyleProviderColors = (provider) => providerColorsRegistry.get(provider) ?? DEFAULT_COLORS;
|
|
24
|
+
|
|
8
25
|
// src/components/css-classes/css-class-selector.tsx
|
|
9
26
|
import * as React8 from "react";
|
|
10
27
|
import { useRef, useState as useState4 } from "react";
|
|
@@ -19,7 +36,14 @@ import {
|
|
|
19
36
|
import { InfoAlert, WarningInfotip } from "@elementor/editor-ui";
|
|
20
37
|
import { ColorSwatchIcon, MapPinIcon } from "@elementor/icons";
|
|
21
38
|
import { createLocation } from "@elementor/locations";
|
|
22
|
-
import {
|
|
39
|
+
import {
|
|
40
|
+
Box as Box2,
|
|
41
|
+
Chip as Chip3,
|
|
42
|
+
FormLabel,
|
|
43
|
+
Link,
|
|
44
|
+
Stack as Stack3,
|
|
45
|
+
Typography as Typography3
|
|
46
|
+
} from "@elementor/ui";
|
|
23
47
|
import { __ as __4 } from "@wordpress/i18n";
|
|
24
48
|
|
|
25
49
|
// src/contexts/classes-prop-context.tsx
|
|
@@ -104,6 +128,27 @@ function useIsStyle() {
|
|
|
104
128
|
return !!useContext3(Context3);
|
|
105
129
|
}
|
|
106
130
|
|
|
131
|
+
// src/utils/get-styles-provider-color.ts
|
|
132
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY, isElementsStylesProvider } from "@elementor/editor-styles-repository";
|
|
133
|
+
var getStylesProviderColorName = (provider) => {
|
|
134
|
+
if (!provider || provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
|
|
135
|
+
return "default";
|
|
136
|
+
}
|
|
137
|
+
if (isElementsStylesProvider(provider)) {
|
|
138
|
+
return "accent";
|
|
139
|
+
}
|
|
140
|
+
return getStyleProviderColors(provider).name;
|
|
141
|
+
};
|
|
142
|
+
var getStylesProviderThemeColor = (provider) => {
|
|
143
|
+
if (!provider || provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
if (isElementsStylesProvider(provider)) {
|
|
147
|
+
return (theme) => theme.palette.accent.main;
|
|
148
|
+
}
|
|
149
|
+
return getStyleProviderColors(provider).getThemeColor;
|
|
150
|
+
};
|
|
151
|
+
|
|
107
152
|
// src/components/creatable-autocomplete/creatable-autocomplete.tsx
|
|
108
153
|
import * as React4 from "react";
|
|
109
154
|
import { useId, useMemo } from "react";
|
|
@@ -470,11 +515,7 @@ function CssClassProvider({ children, ...contextValue }) {
|
|
|
470
515
|
|
|
471
516
|
// src/components/css-classes/css-class-menu.tsx
|
|
472
517
|
import * as React6 from "react";
|
|
473
|
-
import {
|
|
474
|
-
isElementsStylesProvider,
|
|
475
|
-
stylesRepository as stylesRepository2,
|
|
476
|
-
useUserStylesCapability as useUserStylesCapability2
|
|
477
|
-
} from "@elementor/editor-styles-repository";
|
|
518
|
+
import { stylesRepository as stylesRepository2, useUserStylesCapability as useUserStylesCapability2 } from "@elementor/editor-styles-repository";
|
|
478
519
|
import { MenuItemInfotip, MenuListItem } from "@elementor/editor-ui";
|
|
479
520
|
import { bindMenu, Divider, Menu, MenuSubheader, Stack } from "@elementor/ui";
|
|
480
521
|
import { __ as __2 } from "@wordpress/i18n";
|
|
@@ -482,22 +523,17 @@ import { __ as __2 } from "@wordpress/i18n";
|
|
|
482
523
|
// src/components/style-indicator.tsx
|
|
483
524
|
import { styled as styled2 } from "@elementor/ui";
|
|
484
525
|
var StyleIndicator = styled2("div", {
|
|
485
|
-
shouldForwardProp: (prop) =>
|
|
526
|
+
shouldForwardProp: (prop) => !["isOverridden", "getColor"].includes(prop)
|
|
486
527
|
})`
|
|
487
528
|
width: 5px;
|
|
488
529
|
height: 5px;
|
|
489
530
|
border-radius: 50%;
|
|
490
|
-
background-color: ${({ theme,
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
return theme.palette.warning.light;
|
|
494
|
-
case "global":
|
|
495
|
-
return theme.palette.global.dark;
|
|
496
|
-
case "local":
|
|
497
|
-
return theme.palette.accent.main;
|
|
498
|
-
default:
|
|
499
|
-
return theme.palette.text.disabled;
|
|
531
|
+
background-color: ${({ theme, isOverridden, getColor }) => {
|
|
532
|
+
if (isOverridden) {
|
|
533
|
+
return theme.palette.warning.light;
|
|
500
534
|
}
|
|
535
|
+
const providerColor = getColor?.(theme);
|
|
536
|
+
return providerColor ?? theme.palette.text.disabled;
|
|
501
537
|
}};
|
|
502
538
|
`;
|
|
503
539
|
|
|
@@ -509,13 +545,6 @@ import { classesPropTypeUtil } from "@elementor/editor-props";
|
|
|
509
545
|
import { useGetStylesRepositoryCreateAction } from "@elementor/editor-styles-repository";
|
|
510
546
|
import { isExperimentActive, undoable } from "@elementor/editor-v1-adapters";
|
|
511
547
|
import { __ } from "@wordpress/i18n";
|
|
512
|
-
|
|
513
|
-
// src/sync/experiments-flags.ts
|
|
514
|
-
var EXPERIMENTAL_FEATURES = {
|
|
515
|
-
V_3_30: "e_v_3_30"
|
|
516
|
-
};
|
|
517
|
-
|
|
518
|
-
// src/components/css-classes/use-apply-and-unapply-class.ts
|
|
519
548
|
function useApplyClass() {
|
|
520
549
|
const { id: activeId, setId: setActiveId } = useStyle();
|
|
521
550
|
const { element } = useElement();
|
|
@@ -775,7 +804,6 @@ function StateMenuItem({ state, closeMenu, ...props }) {
|
|
|
775
804
|
const { userCan } = useUserStylesCapability2();
|
|
776
805
|
const modifiedStates = useModifiedStates(styleId);
|
|
777
806
|
const isUpdateAllowed = !state || userCan(provider ?? "").updateProps;
|
|
778
|
-
const indicatorVariant = !provider || isElementsStylesProvider(provider) ? "local" : "global";
|
|
779
807
|
const isStyled = modifiedStates[state ?? "normal"] ?? false;
|
|
780
808
|
const disabled = !isUpdateAllowed && !isStyled;
|
|
781
809
|
const isActive = styleId === activeId;
|
|
@@ -801,7 +829,13 @@ function StateMenuItem({ state, closeMenu, ...props }) {
|
|
|
801
829
|
showInfoTip: disabled,
|
|
802
830
|
content: __2("With your current role, you can only use existing states.", "elementor")
|
|
803
831
|
},
|
|
804
|
-
/* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(
|
|
832
|
+
/* @__PURE__ */ React6.createElement(Stack, { gap: 0.75, direction: "row", alignItems: "center" }, isStyled && /* @__PURE__ */ React6.createElement(
|
|
833
|
+
StyleIndicator,
|
|
834
|
+
{
|
|
835
|
+
"aria-label": __2("Has style", "elementor"),
|
|
836
|
+
getColor: getStylesProviderThemeColor(provider ?? "")
|
|
837
|
+
}
|
|
838
|
+
), state ?? "normal")
|
|
805
839
|
)
|
|
806
840
|
);
|
|
807
841
|
}
|
|
@@ -1025,16 +1059,7 @@ function CssClassSelector() {
|
|
|
1025
1059
|
})
|
|
1026
1060
|
}
|
|
1027
1061
|
)
|
|
1028
|
-
), !canEdit && /* @__PURE__ */ React8.createElement(
|
|
1029
|
-
InfoAlert,
|
|
1030
|
-
{
|
|
1031
|
-
content: __4(
|
|
1032
|
-
"With your current role, you can use existing classes but can\u2019t modify them.",
|
|
1033
|
-
"elementor"
|
|
1034
|
-
),
|
|
1035
|
-
sx: { mt: 1 }
|
|
1036
|
-
}
|
|
1037
|
-
));
|
|
1062
|
+
), !canEdit && /* @__PURE__ */ React8.createElement(InfoAlert, { sx: { mt: 1 } }, __4("With your current role, you can use existing classes but can\u2019t modify them.", "elementor")));
|
|
1038
1063
|
}
|
|
1039
1064
|
var EmptyState = ({ searchValue, onClear }) => /* @__PURE__ */ React8.createElement(Box2, { sx: { py: 4 } }, /* @__PURE__ */ React8.createElement(
|
|
1040
1065
|
Stack3,
|
|
@@ -1074,7 +1099,7 @@ function useOptions() {
|
|
|
1074
1099
|
label: styleDef.label,
|
|
1075
1100
|
value: styleDef.id,
|
|
1076
1101
|
fixed: isElements,
|
|
1077
|
-
color:
|
|
1102
|
+
color: getStylesProviderColorName(provider.getKey()),
|
|
1078
1103
|
icon: isElements ? /* @__PURE__ */ React8.createElement(MapPinIcon, null) : null,
|
|
1079
1104
|
provider: provider.getKey()
|
|
1080
1105
|
};
|
|
@@ -1142,7 +1167,7 @@ function useHandleSelect() {
|
|
|
1142
1167
|
import { __createPanel as createPanel } from "@elementor/editor-panels";
|
|
1143
1168
|
|
|
1144
1169
|
// src/components/editing-panel.tsx
|
|
1145
|
-
import * as
|
|
1170
|
+
import * as React86 from "react";
|
|
1146
1171
|
import { ControlActionsProvider, ControlReplacementsProvider } from "@elementor/editor-controls";
|
|
1147
1172
|
import { useSelectedElement } from "@elementor/editor-elements";
|
|
1148
1173
|
import { Panel, PanelBody, PanelHeader, PanelHeaderTitle } from "@elementor/editor-panels";
|
|
@@ -1150,7 +1175,7 @@ import { ThemeProvider as ThemeProvider2 } from "@elementor/editor-ui";
|
|
|
1150
1175
|
import { AtomIcon } from "@elementor/icons";
|
|
1151
1176
|
import { SessionStorageProvider as SessionStorageProvider3 } from "@elementor/session";
|
|
1152
1177
|
import { ErrorBoundary } from "@elementor/ui";
|
|
1153
|
-
import { __ as
|
|
1178
|
+
import { __ as __59 } from "@wordpress/i18n";
|
|
1154
1179
|
|
|
1155
1180
|
// src/controls-actions.ts
|
|
1156
1181
|
import { createMenu } from "@elementor/menus";
|
|
@@ -1169,14 +1194,13 @@ function Action({ title, visible = true, icon: Icon, onClick }) {
|
|
|
1169
1194
|
// src/popover-action.tsx
|
|
1170
1195
|
import * as React10 from "react";
|
|
1171
1196
|
import { useId as useId2 } from "react";
|
|
1172
|
-
import { PopoverHeader } from "@elementor/editor-ui";
|
|
1173
1197
|
import { bindPopover, bindToggle, IconButton as IconButton2, Popover, Tooltip as Tooltip2, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
1174
1198
|
var SIZE2 = "tiny";
|
|
1175
1199
|
function PopoverAction({
|
|
1176
1200
|
title,
|
|
1177
1201
|
visible = true,
|
|
1178
1202
|
icon: Icon,
|
|
1179
|
-
|
|
1203
|
+
content: PopoverContent
|
|
1180
1204
|
}) {
|
|
1181
1205
|
const id = useId2();
|
|
1182
1206
|
const popupState = usePopupState2({
|
|
@@ -1193,12 +1217,18 @@ function PopoverAction({
|
|
|
1193
1217
|
disableScrollLock: true,
|
|
1194
1218
|
anchorOrigin: {
|
|
1195
1219
|
vertical: "bottom",
|
|
1196
|
-
horizontal: "
|
|
1220
|
+
horizontal: "right"
|
|
1221
|
+
},
|
|
1222
|
+
transformOrigin: {
|
|
1223
|
+
vertical: "top",
|
|
1224
|
+
horizontal: "right"
|
|
1225
|
+
},
|
|
1226
|
+
PaperProps: {
|
|
1227
|
+
sx: { my: 2.5 }
|
|
1197
1228
|
},
|
|
1198
1229
|
...bindPopover(popupState)
|
|
1199
1230
|
},
|
|
1200
|
-
/* @__PURE__ */ React10.createElement(
|
|
1201
|
-
/* @__PURE__ */ React10.createElement(PopoverContent2, { closePopover: popupState.close })
|
|
1231
|
+
/* @__PURE__ */ React10.createElement(PopoverContent, { close: popupState.close })
|
|
1202
1232
|
));
|
|
1203
1233
|
}
|
|
1204
1234
|
|
|
@@ -1218,11 +1248,11 @@ function EditorPanelErrorFallback() {
|
|
|
1218
1248
|
}
|
|
1219
1249
|
|
|
1220
1250
|
// src/components/editing-panel-tabs.tsx
|
|
1221
|
-
import * as
|
|
1222
|
-
import { Fragment as
|
|
1223
|
-
import { isExperimentActive as
|
|
1224
|
-
import { Divider as Divider6, Stack as
|
|
1225
|
-
import { __ as
|
|
1251
|
+
import * as React85 from "react";
|
|
1252
|
+
import { Fragment as Fragment10 } from "react";
|
|
1253
|
+
import { isExperimentActive as isExperimentActive16 } from "@elementor/editor-v1-adapters";
|
|
1254
|
+
import { Divider as Divider6, Stack as Stack15, Tab, TabPanel, Tabs, useTabs } from "@elementor/ui";
|
|
1255
|
+
import { __ as __58 } from "@wordpress/i18n";
|
|
1226
1256
|
|
|
1227
1257
|
// src/contexts/scroll-context.tsx
|
|
1228
1258
|
import * as React12 from "react";
|
|
@@ -1280,6 +1310,10 @@ var defaultPanelSettingsContext = createContext6({
|
|
|
1280
1310
|
"e-flexbox": {
|
|
1281
1311
|
defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
|
|
1282
1312
|
defaultTab: "style"
|
|
1313
|
+
},
|
|
1314
|
+
"e-divider": {
|
|
1315
|
+
defaultSectionsExpanded: fallbackEditorSettings.defaultSectionsExpanded,
|
|
1316
|
+
defaultTab: "style"
|
|
1283
1317
|
}
|
|
1284
1318
|
});
|
|
1285
1319
|
var useDefaultPanelSettings = () => {
|
|
@@ -1308,7 +1342,7 @@ var useStateByElement = (key, initialValue) => {
|
|
|
1308
1342
|
// src/components/settings-tab.tsx
|
|
1309
1343
|
import * as React19 from "react";
|
|
1310
1344
|
import { ControlFormLabel } from "@elementor/editor-controls";
|
|
1311
|
-
import { isExperimentActive as
|
|
1345
|
+
import { isExperimentActive as isExperimentActive5 } from "@elementor/editor-v1-adapters";
|
|
1312
1346
|
import { SessionStorageProvider } from "@elementor/session";
|
|
1313
1347
|
import { Divider as Divider3 } from "@elementor/ui";
|
|
1314
1348
|
|
|
@@ -1318,7 +1352,9 @@ import * as React13 from "react";
|
|
|
1318
1352
|
// src/controls-registry/controls-registry.tsx
|
|
1319
1353
|
import {
|
|
1320
1354
|
ImageControl,
|
|
1355
|
+
KeyValueControl,
|
|
1321
1356
|
LinkControl,
|
|
1357
|
+
RepeatableControl,
|
|
1322
1358
|
SelectControl,
|
|
1323
1359
|
SizeControl,
|
|
1324
1360
|
SvgMediaControl,
|
|
@@ -1327,19 +1363,31 @@ import {
|
|
|
1327
1363
|
TextControl,
|
|
1328
1364
|
UrlControl
|
|
1329
1365
|
} from "@elementor/editor-controls";
|
|
1366
|
+
import {
|
|
1367
|
+
booleanPropTypeUtil,
|
|
1368
|
+
imagePropTypeUtil,
|
|
1369
|
+
imageSrcPropTypeUtil,
|
|
1370
|
+
keyValuePropTypeUtil,
|
|
1371
|
+
linkPropTypeUtil,
|
|
1372
|
+
sizePropTypeUtil,
|
|
1373
|
+
stringPropTypeUtil
|
|
1374
|
+
} from "@elementor/editor-props";
|
|
1330
1375
|
var controlTypes = {
|
|
1331
|
-
image: { component: ImageControl, layout: "full" },
|
|
1332
|
-
"svg-media": { component: SvgMediaControl, layout: "full" },
|
|
1333
|
-
text: { component: TextControl, layout: "full" },
|
|
1334
|
-
textarea: { component: TextAreaControl, layout: "full" },
|
|
1335
|
-
size: { component: SizeControl, layout: "two-columns" },
|
|
1336
|
-
select: { component: SelectControl, layout: "two-columns" },
|
|
1337
|
-
link: { component: LinkControl, layout: "
|
|
1338
|
-
url: { component: UrlControl, layout: "full" },
|
|
1339
|
-
switch: { component: SwitchControl, layout: "two-columns" }
|
|
1376
|
+
image: { component: ImageControl, layout: "full", propTypeUtil: imagePropTypeUtil },
|
|
1377
|
+
"svg-media": { component: SvgMediaControl, layout: "full", propTypeUtil: imageSrcPropTypeUtil },
|
|
1378
|
+
text: { component: TextControl, layout: "full", propTypeUtil: stringPropTypeUtil },
|
|
1379
|
+
textarea: { component: TextAreaControl, layout: "full", propTypeUtil: stringPropTypeUtil },
|
|
1380
|
+
size: { component: SizeControl, layout: "two-columns", propTypeUtil: sizePropTypeUtil },
|
|
1381
|
+
select: { component: SelectControl, layout: "two-columns", propTypeUtil: stringPropTypeUtil },
|
|
1382
|
+
link: { component: LinkControl, layout: "custom", propTypeUtil: linkPropTypeUtil },
|
|
1383
|
+
url: { component: UrlControl, layout: "full", propTypeUtil: stringPropTypeUtil },
|
|
1384
|
+
switch: { component: SwitchControl, layout: "two-columns", propTypeUtil: booleanPropTypeUtil },
|
|
1385
|
+
repeatable: { component: RepeatableControl, layout: "full", propTypeUtil: void 0 },
|
|
1386
|
+
"key-value": { component: KeyValueControl, layout: "full", propTypeUtil: keyValuePropTypeUtil }
|
|
1340
1387
|
};
|
|
1341
1388
|
var getControl = (type) => controlTypes[type]?.component;
|
|
1342
1389
|
var getDefaultLayout = (type) => controlTypes[type].layout;
|
|
1390
|
+
var getPropTypeUtil = (type) => controlTypes[type]?.propTypeUtil;
|
|
1343
1391
|
|
|
1344
1392
|
// src/controls-registry/control.tsx
|
|
1345
1393
|
var Control = ({ props, type }) => {
|
|
@@ -1357,6 +1405,9 @@ var Control = ({ props, type }) => {
|
|
|
1357
1405
|
import * as React14 from "react";
|
|
1358
1406
|
import { Box as Box4, styled as styled4 } from "@elementor/ui";
|
|
1359
1407
|
var ControlTypeContainer = ({ children, layout }) => {
|
|
1408
|
+
if (layout === "custom") {
|
|
1409
|
+
return children;
|
|
1410
|
+
}
|
|
1360
1411
|
return /* @__PURE__ */ React14.createElement(StyledContainer, { layout }, children);
|
|
1361
1412
|
};
|
|
1362
1413
|
var StyledContainer = styled4(Box4, {
|
|
@@ -1376,8 +1427,17 @@ var getGridLayout = (layout) => ({
|
|
|
1376
1427
|
|
|
1377
1428
|
// src/controls-registry/settings-field.tsx
|
|
1378
1429
|
import * as React15 from "react";
|
|
1430
|
+
import { useMemo as useMemo3 } from "react";
|
|
1379
1431
|
import { PropKeyProvider, PropProvider } from "@elementor/editor-controls";
|
|
1380
|
-
import {
|
|
1432
|
+
import { setDocumentModifiedStatus as setDocumentModifiedStatus2 } from "@elementor/editor-documents";
|
|
1433
|
+
import {
|
|
1434
|
+
getElementLabel as getElementLabel2,
|
|
1435
|
+
getElementSetting as getElementSetting2,
|
|
1436
|
+
updateElementSettings as updateElementSettings2,
|
|
1437
|
+
useElementSetting as useElementSetting2
|
|
1438
|
+
} from "@elementor/editor-elements";
|
|
1439
|
+
import { isExperimentActive as isExperimentActive3, undoable as undoable2 } from "@elementor/editor-v1-adapters";
|
|
1440
|
+
import { __ as __5 } from "@wordpress/i18n";
|
|
1381
1441
|
|
|
1382
1442
|
// src/controls-registry/create-top-level-object-type.ts
|
|
1383
1443
|
var createTopLevelOjectType = ({ schema }) => {
|
|
@@ -1393,26 +1453,69 @@ var createTopLevelOjectType = ({ schema }) => {
|
|
|
1393
1453
|
};
|
|
1394
1454
|
|
|
1395
1455
|
// src/controls-registry/settings-field.tsx
|
|
1396
|
-
var SettingsField = ({ bind, children }) => {
|
|
1456
|
+
var SettingsField = ({ bind, children, propDisplayName }) => {
|
|
1397
1457
|
const { element, elementType } = useElement();
|
|
1398
1458
|
const settingsValue = useElementSetting2(element.id, bind);
|
|
1399
1459
|
const value = { [bind]: settingsValue };
|
|
1400
1460
|
const propType = createTopLevelOjectType({ schema: elementType.propsSchema });
|
|
1461
|
+
const undoableUpdateElementProp = useUndoableUpdateElementProp({
|
|
1462
|
+
propKey: bind,
|
|
1463
|
+
elementId: element.id,
|
|
1464
|
+
propDisplayName
|
|
1465
|
+
});
|
|
1401
1466
|
const setValue = (newValue) => {
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
}
|
|
1467
|
+
const isVersion331Active = isExperimentActive3(EXPERIMENTAL_FEATURES.V_3_31);
|
|
1468
|
+
if (isVersion331Active) {
|
|
1469
|
+
undoableUpdateElementProp({ newValue });
|
|
1470
|
+
} else {
|
|
1471
|
+
updateElementSettings2({ id: element.id, props: newValue });
|
|
1472
|
+
}
|
|
1406
1473
|
};
|
|
1407
1474
|
return /* @__PURE__ */ React15.createElement(PropProvider, { propType, value, setValue }, /* @__PURE__ */ React15.createElement(PropKeyProvider, { bind }, children));
|
|
1408
1475
|
};
|
|
1476
|
+
function useUndoableUpdateElementProp({
|
|
1477
|
+
propKey,
|
|
1478
|
+
elementId,
|
|
1479
|
+
propDisplayName
|
|
1480
|
+
}) {
|
|
1481
|
+
return useMemo3(() => {
|
|
1482
|
+
return undoable2(
|
|
1483
|
+
{
|
|
1484
|
+
do: ({ newValue }) => {
|
|
1485
|
+
const prevPropValue = getElementSetting2(elementId, propKey);
|
|
1486
|
+
updateElementSettings2({ id: elementId, props: { ...newValue }, withHistory: false });
|
|
1487
|
+
setDocumentModifiedStatus2(true);
|
|
1488
|
+
return { [propKey]: prevPropValue };
|
|
1489
|
+
},
|
|
1490
|
+
undo: ({}, prevProps) => {
|
|
1491
|
+
updateElementSettings2({ id: elementId, props: prevProps, withHistory: false });
|
|
1492
|
+
}
|
|
1493
|
+
},
|
|
1494
|
+
{
|
|
1495
|
+
title: getElementLabel2(elementId),
|
|
1496
|
+
// translators: %s is the name of the property that was edited.
|
|
1497
|
+
subtitle: __5("%s edited", "elementor").replace("%s", propDisplayName)
|
|
1498
|
+
}
|
|
1499
|
+
);
|
|
1500
|
+
}, [propKey, elementId, propDisplayName]);
|
|
1501
|
+
}
|
|
1409
1502
|
|
|
1410
1503
|
// src/components/section.tsx
|
|
1411
1504
|
import * as React17 from "react";
|
|
1412
|
-
import { useId as useId3 } from "react";
|
|
1413
|
-
import { isExperimentActive as
|
|
1505
|
+
import { useId as useId3, useRef as useRef3 } from "react";
|
|
1506
|
+
import { isExperimentActive as isExperimentActive4 } from "@elementor/editor-v1-adapters";
|
|
1414
1507
|
import { Collapse as Collapse2, Divider as Divider2, ListItemButton, ListItemText, Stack as Stack5 } from "@elementor/ui";
|
|
1415
1508
|
|
|
1509
|
+
// src/contexts/section-context.tsx
|
|
1510
|
+
import { createContext as createContext7, useContext as useContext7 } from "react";
|
|
1511
|
+
var FALLBACK_SECTION_WIDTH = 320;
|
|
1512
|
+
var SectionRefContext = createContext7(null);
|
|
1513
|
+
var useSectionRef = () => useContext7(SectionRefContext);
|
|
1514
|
+
var useSectionWidth = () => {
|
|
1515
|
+
const sectionRef = useSectionRef();
|
|
1516
|
+
return sectionRef?.current?.offsetWidth ?? FALLBACK_SECTION_WIDTH;
|
|
1517
|
+
};
|
|
1518
|
+
|
|
1416
1519
|
// src/components/collapse-icon.tsx
|
|
1417
1520
|
import { ChevronDownIcon } from "@elementor/icons";
|
|
1418
1521
|
import { styled as styled5 } from "@elementor/ui";
|
|
@@ -1429,7 +1532,7 @@ var CollapseIcon = styled5(ChevronDownIcon, {
|
|
|
1429
1532
|
import * as React16 from "react";
|
|
1430
1533
|
import { useState as useState7 } from "react";
|
|
1431
1534
|
import { Button, Collapse, Stack as Stack4, styled as styled6 } from "@elementor/ui";
|
|
1432
|
-
import { __ as
|
|
1535
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
1433
1536
|
var IndicatorsWrapper = styled6("div")`
|
|
1434
1537
|
position: absolute;
|
|
1435
1538
|
top: 0;
|
|
@@ -1456,7 +1559,7 @@ var CollapsibleContent = ({ children, defaultOpen = false, titleEnd = null }) =>
|
|
|
1456
1559
|
endIcon: /* @__PURE__ */ React16.createElement(CollapseIcon, { open }),
|
|
1457
1560
|
sx: { my: 0.5 }
|
|
1458
1561
|
},
|
|
1459
|
-
open ?
|
|
1562
|
+
open ? __6("Show less", "elementor") : __6("Show more", "elementor")
|
|
1460
1563
|
), titleEnd && /* @__PURE__ */ React16.createElement(IndicatorsWrapper, null, getCollapsibleValue(titleEnd, open))), /* @__PURE__ */ React16.createElement(Collapse, { in: open, timeout: "auto", unmountOnExit: true }, children));
|
|
1461
1564
|
};
|
|
1462
1565
|
function getCollapsibleValue(value, isOpen) {
|
|
@@ -1469,13 +1572,14 @@ function getCollapsibleValue(value, isOpen) {
|
|
|
1469
1572
|
// src/components/section.tsx
|
|
1470
1573
|
function Section({ title, children, defaultExpanded = false, titleEnd }) {
|
|
1471
1574
|
const [isOpen, setIsOpen] = useStateByElement(title, !!defaultExpanded);
|
|
1575
|
+
const ref = useRef3(null);
|
|
1472
1576
|
const handleClick = () => {
|
|
1473
1577
|
setIsOpen(!isOpen);
|
|
1474
1578
|
};
|
|
1475
1579
|
const id = useId3();
|
|
1476
1580
|
const labelId = `label-${id}`;
|
|
1477
1581
|
const contentId = `content-${id}`;
|
|
1478
|
-
const isUsingTitleEnd =
|
|
1582
|
+
const isUsingTitleEnd = isExperimentActive4(EXPERIMENTAL_FEATURES.V_3_30);
|
|
1479
1583
|
return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(
|
|
1480
1584
|
ListItemButton,
|
|
1481
1585
|
{
|
|
@@ -1493,7 +1597,7 @@ function Section({ title, children, defaultExpanded = false, titleEnd }) {
|
|
|
1493
1597
|
}
|
|
1494
1598
|
), isUsingTitleEnd ? getCollapsibleValue(titleEnd, isOpen) : null),
|
|
1495
1599
|
/* @__PURE__ */ React17.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
|
|
1496
|
-
), /* @__PURE__ */ React17.createElement(Collapse2, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React17.createElement(Stack5, { gap: 2.5, p: 2 }, children)), /* @__PURE__ */ React17.createElement(Divider2, null));
|
|
1600
|
+
), /* @__PURE__ */ React17.createElement(Collapse2, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React17.createElement(SectionRefContext.Provider, { value: ref }, /* @__PURE__ */ React17.createElement(Stack5, { ref, gap: 2.5, p: 2 }, children))), /* @__PURE__ */ React17.createElement(Divider2, null));
|
|
1497
1601
|
}
|
|
1498
1602
|
|
|
1499
1603
|
// src/components/sections-list.tsx
|
|
@@ -1507,7 +1611,7 @@ function SectionsList(props) {
|
|
|
1507
1611
|
var SettingsTab = () => {
|
|
1508
1612
|
const { elementType, element } = useElement();
|
|
1509
1613
|
const settingsDefault = useDefaultPanelSettings();
|
|
1510
|
-
const isDefaultExpanded = (sectionId) =>
|
|
1614
|
+
const isDefaultExpanded = (sectionId) => isExperimentActive5(EXPERIMENTAL_FEATURES.V_3_30) ? settingsDefault.defaultSectionsExpanded.settings?.includes(sectionId) : true;
|
|
1511
1615
|
return /* @__PURE__ */ React19.createElement(SessionStorageProvider, { prefix: element.id }, /* @__PURE__ */ React19.createElement(SectionsList, null, elementType.controls.map(({ type, value }, index) => {
|
|
1512
1616
|
if (type === "control") {
|
|
1513
1617
|
return /* @__PURE__ */ React19.createElement(Control2, { key: value.bind, control: value });
|
|
@@ -1536,21 +1640,40 @@ var Control2 = ({ control }) => {
|
|
|
1536
1640
|
return null;
|
|
1537
1641
|
}
|
|
1538
1642
|
const layout = control.meta?.layout || getDefaultLayout(control.type);
|
|
1539
|
-
|
|
1643
|
+
const controlProps = populateChildControlProps(control.props);
|
|
1644
|
+
if (layout === "custom") {
|
|
1645
|
+
controlProps.label = control.label;
|
|
1646
|
+
}
|
|
1647
|
+
return /* @__PURE__ */ React19.createElement(SettingsField, { bind: control.bind, propDisplayName: control.label || control.bind }, control.meta?.topDivider && /* @__PURE__ */ React19.createElement(Divider3, null), /* @__PURE__ */ React19.createElement(ControlTypeContainer, { layout }, control.label && layout !== "custom" ? /* @__PURE__ */ React19.createElement(ControlFormLabel, null, control.label) : null, /* @__PURE__ */ React19.createElement(Control, { type: control.type, props: controlProps })));
|
|
1540
1648
|
};
|
|
1649
|
+
function populateChildControlProps(props) {
|
|
1650
|
+
if (props.childControlType) {
|
|
1651
|
+
const childComponent = getControl(props.childControlType);
|
|
1652
|
+
const childPropType = getPropTypeUtil(props.childControlType);
|
|
1653
|
+
props = {
|
|
1654
|
+
...props,
|
|
1655
|
+
childControlConfig: {
|
|
1656
|
+
component: childComponent,
|
|
1657
|
+
props: props.childControlProps || {},
|
|
1658
|
+
propTypeUtil: childPropType
|
|
1659
|
+
}
|
|
1660
|
+
};
|
|
1661
|
+
}
|
|
1662
|
+
return props;
|
|
1663
|
+
}
|
|
1541
1664
|
|
|
1542
1665
|
// src/components/style-tab.tsx
|
|
1543
|
-
import * as
|
|
1666
|
+
import * as React84 from "react";
|
|
1544
1667
|
import { useState as useState12 } from "react";
|
|
1545
1668
|
import { CLASSES_PROP_KEY } from "@elementor/editor-props";
|
|
1546
1669
|
import { useActiveBreakpoint } from "@elementor/editor-responsive";
|
|
1547
1670
|
import { SessionStorageProvider as SessionStorageProvider2 } from "@elementor/session";
|
|
1548
|
-
import { Divider as Divider5, Stack as
|
|
1549
|
-
import { __ as
|
|
1671
|
+
import { Divider as Divider5, Stack as Stack14 } from "@elementor/ui";
|
|
1672
|
+
import { __ as __57 } from "@wordpress/i18n";
|
|
1550
1673
|
|
|
1551
1674
|
// src/contexts/styles-inheritance-context.tsx
|
|
1552
1675
|
import * as React20 from "react";
|
|
1553
|
-
import { createContext as
|
|
1676
|
+
import { createContext as createContext8, useContext as useContext8 } from "react";
|
|
1554
1677
|
import { getWidgetsCache, useElementSetting as useElementSetting3 } from "@elementor/editor-elements";
|
|
1555
1678
|
import { classesPropTypeUtil as classesPropTypeUtil2 } from "@elementor/editor-props";
|
|
1556
1679
|
import { getBreakpointsTree } from "@elementor/editor-responsive";
|
|
@@ -1579,6 +1702,14 @@ var DEFAULT_STATE = "normal";
|
|
|
1579
1702
|
var DEFAULT_BREAKPOINT = "desktop";
|
|
1580
1703
|
var getStateKey = (state) => state ?? DEFAULT_STATE;
|
|
1581
1704
|
var getBreakpointKey = (breakpoint) => breakpoint ?? DEFAULT_BREAKPOINT;
|
|
1705
|
+
var getValueFromInheritanceChain = (inheritanceChain, styleId, meta) => inheritanceChain.find(
|
|
1706
|
+
({
|
|
1707
|
+
style,
|
|
1708
|
+
variant: {
|
|
1709
|
+
meta: { breakpoint, state }
|
|
1710
|
+
}
|
|
1711
|
+
}) => style.id === styleId && breakpoint === meta.breakpoint && state === meta.state
|
|
1712
|
+
);
|
|
1582
1713
|
|
|
1583
1714
|
// src/styles-inheritance/create-snapshots-manager.ts
|
|
1584
1715
|
function createSnapshotsManager(getStylesByMeta, breakpointsRoot) {
|
|
@@ -1783,7 +1914,7 @@ var getFilterPropType = (propType, path) => {
|
|
|
1783
1914
|
};
|
|
1784
1915
|
|
|
1785
1916
|
// src/contexts/styles-inheritance-context.tsx
|
|
1786
|
-
var Context4 =
|
|
1917
|
+
var Context4 = createContext8(null);
|
|
1787
1918
|
function StyleInheritanceProvider({ children }) {
|
|
1788
1919
|
const styleDefs = useAppliedStyles();
|
|
1789
1920
|
const breakpointsTree = getBreakpointsTree();
|
|
@@ -1791,7 +1922,7 @@ function StyleInheritanceProvider({ children }) {
|
|
|
1791
1922
|
return /* @__PURE__ */ React20.createElement(Context4.Provider, { value: { getSnapshot, getInheritanceChain } }, children);
|
|
1792
1923
|
}
|
|
1793
1924
|
function useStylesInheritanceSnapshot() {
|
|
1794
|
-
const context =
|
|
1925
|
+
const context = useContext8(Context4);
|
|
1795
1926
|
const { meta } = useStyle();
|
|
1796
1927
|
if (!context) {
|
|
1797
1928
|
throw new Error("useStylesInheritanceSnapshot must be used within a StyleInheritanceProvider");
|
|
@@ -1802,7 +1933,7 @@ function useStylesInheritanceSnapshot() {
|
|
|
1802
1933
|
return context.getSnapshot(meta) ?? null;
|
|
1803
1934
|
}
|
|
1804
1935
|
function useStylesInheritanceChain(path) {
|
|
1805
|
-
const context =
|
|
1936
|
+
const context = useContext8(Context4);
|
|
1806
1937
|
if (!context) {
|
|
1807
1938
|
throw new Error("useStylesInheritanceChain must be used within a StyleInheritanceProvider");
|
|
1808
1939
|
}
|
|
@@ -1859,38 +1990,40 @@ function useActiveAndAppliedClassId(id, appliedClassesIds) {
|
|
|
1859
1990
|
// src/components/style-sections/background-section/background-section.tsx
|
|
1860
1991
|
import * as React29 from "react";
|
|
1861
1992
|
import { BackgroundControl } from "@elementor/editor-controls";
|
|
1993
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
1862
1994
|
|
|
1863
1995
|
// src/controls-registry/styles-field.tsx
|
|
1864
|
-
import * as
|
|
1996
|
+
import * as React27 from "react";
|
|
1865
1997
|
import { ControlAdornmentsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2 } from "@elementor/editor-controls";
|
|
1866
1998
|
import { getStylesSchema as getStylesSchema2 } from "@elementor/editor-styles";
|
|
1999
|
+
import { isExperimentActive as isExperimentActive8 } from "@elementor/editor-v1-adapters";
|
|
1867
2000
|
|
|
1868
2001
|
// src/hooks/use-styles-fields.ts
|
|
1869
|
-
import { useMemo as
|
|
2002
|
+
import { useMemo as useMemo4 } from "react";
|
|
1870
2003
|
import {
|
|
1871
2004
|
createElementStyle,
|
|
1872
2005
|
deleteElementStyle,
|
|
1873
|
-
getElementLabel as
|
|
2006
|
+
getElementLabel as getElementLabel3
|
|
1874
2007
|
} from "@elementor/editor-elements";
|
|
1875
2008
|
import { getVariantByMeta } from "@elementor/editor-styles";
|
|
1876
2009
|
import { ELEMENTS_STYLES_RESERVED_LABEL } from "@elementor/editor-styles-repository";
|
|
1877
|
-
import { undoable as
|
|
1878
|
-
import { __ as
|
|
2010
|
+
import { undoable as undoable3 } from "@elementor/editor-v1-adapters";
|
|
2011
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
1879
2012
|
function useStylesFields(propNames) {
|
|
1880
2013
|
const { element } = useElement();
|
|
1881
|
-
const { id, meta, provider } = useStyle();
|
|
2014
|
+
const { id, meta, provider, canEdit } = useStyle();
|
|
1882
2015
|
const classesProp = useClassesProp();
|
|
1883
2016
|
const undoableUpdateStyle = useUndoableUpdateStyle();
|
|
1884
2017
|
const undoableCreateElementStyle = useUndoableCreateElementStyle();
|
|
1885
2018
|
useStylesRerender();
|
|
1886
|
-
const
|
|
2019
|
+
const values = getProps({
|
|
1887
2020
|
elementId: element.id,
|
|
1888
2021
|
styleId: id,
|
|
1889
2022
|
provider,
|
|
1890
2023
|
meta,
|
|
1891
2024
|
propNames
|
|
1892
2025
|
});
|
|
1893
|
-
const
|
|
2026
|
+
const setValues = (props) => {
|
|
1894
2027
|
if (id === null) {
|
|
1895
2028
|
undoableCreateElementStyle({
|
|
1896
2029
|
elementId: element.id,
|
|
@@ -1908,7 +2041,7 @@ function useStylesFields(propNames) {
|
|
|
1908
2041
|
props
|
|
1909
2042
|
});
|
|
1910
2043
|
};
|
|
1911
|
-
return
|
|
2044
|
+
return { values, setValues, canEdit };
|
|
1912
2045
|
}
|
|
1913
2046
|
function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
1914
2047
|
if (!provider || !styleId) {
|
|
@@ -1924,8 +2057,8 @@ function getProps({ styleId, elementId, provider, meta, propNames }) {
|
|
|
1924
2057
|
);
|
|
1925
2058
|
}
|
|
1926
2059
|
function useUndoableCreateElementStyle() {
|
|
1927
|
-
return
|
|
1928
|
-
return
|
|
2060
|
+
return useMemo4(() => {
|
|
2061
|
+
return undoable3(
|
|
1929
2062
|
{
|
|
1930
2063
|
do: (payload) => {
|
|
1931
2064
|
return createElementStyle({
|
|
@@ -1945,15 +2078,15 @@ function useUndoableCreateElementStyle() {
|
|
|
1945
2078
|
}
|
|
1946
2079
|
},
|
|
1947
2080
|
{
|
|
1948
|
-
title: ({ elementId }) =>
|
|
1949
|
-
subtitle:
|
|
2081
|
+
title: ({ elementId }) => getElementLabel3(elementId),
|
|
2082
|
+
subtitle: __7("Style edited", "elementor")
|
|
1950
2083
|
}
|
|
1951
2084
|
);
|
|
1952
2085
|
}, []);
|
|
1953
2086
|
}
|
|
1954
2087
|
function useUndoableUpdateStyle() {
|
|
1955
|
-
return
|
|
1956
|
-
return
|
|
2088
|
+
return useMemo4(() => {
|
|
2089
|
+
return undoable3(
|
|
1957
2090
|
{
|
|
1958
2091
|
do: ({ elementId, styleId, provider, meta, props }) => {
|
|
1959
2092
|
if (!provider.actions.updateProps) {
|
|
@@ -1978,8 +2111,8 @@ function useUndoableUpdateStyle() {
|
|
|
1978
2111
|
}
|
|
1979
2112
|
},
|
|
1980
2113
|
{
|
|
1981
|
-
title: ({ elementId }) =>
|
|
1982
|
-
subtitle:
|
|
2114
|
+
title: ({ elementId }) => getElementLabel3(elementId),
|
|
2115
|
+
subtitle: __7("Style edited", "elementor")
|
|
1983
2116
|
}
|
|
1984
2117
|
);
|
|
1985
2118
|
}, []);
|
|
@@ -1995,27 +2128,27 @@ function getCurrentProps(style, meta) {
|
|
|
1995
2128
|
|
|
1996
2129
|
// src/hooks/use-styles-field.ts
|
|
1997
2130
|
function useStylesField(propName) {
|
|
1998
|
-
const
|
|
2131
|
+
const { values, setValues, canEdit } = useStylesFields([propName]);
|
|
1999
2132
|
const value = values?.[propName] ?? null;
|
|
2000
2133
|
const setValue = (newValue) => {
|
|
2001
2134
|
setValues({
|
|
2002
2135
|
[propName]: newValue
|
|
2003
2136
|
});
|
|
2004
2137
|
};
|
|
2005
|
-
return
|
|
2138
|
+
return { value, setValue, canEdit };
|
|
2006
2139
|
}
|
|
2007
2140
|
|
|
2008
2141
|
// src/styles-inheritance/components/styles-inheritance-indicator.tsx
|
|
2009
|
-
import * as
|
|
2142
|
+
import * as React26 from "react";
|
|
2010
2143
|
import { useBoundProp } from "@elementor/editor-controls";
|
|
2011
2144
|
import { isEmpty as isEmpty2 } from "@elementor/editor-props";
|
|
2012
|
-
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as
|
|
2013
|
-
import { isExperimentActive as
|
|
2145
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4 } from "@elementor/editor-styles-repository";
|
|
2146
|
+
import { isExperimentActive as isExperimentActive7 } from "@elementor/editor-v1-adapters";
|
|
2014
2147
|
import { Tooltip as Tooltip6 } from "@elementor/ui";
|
|
2015
|
-
import { __ as
|
|
2148
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
2016
2149
|
|
|
2017
2150
|
// src/styles-inheritance/consts.ts
|
|
2018
|
-
import { isExperimentActive as
|
|
2151
|
+
import { isExperimentActive as isExperimentActive6 } from "@elementor/editor-v1-adapters";
|
|
2019
2152
|
var excludePropTypeTransformers = /* @__PURE__ */ new Set([
|
|
2020
2153
|
"background-color-overlay",
|
|
2021
2154
|
"background-image-overlay",
|
|
@@ -2028,37 +2161,25 @@ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
|
|
|
2028
2161
|
"image",
|
|
2029
2162
|
"background-overlay"
|
|
2030
2163
|
]);
|
|
2031
|
-
var isUsingIndicatorPopover = () =>
|
|
2164
|
+
var isUsingIndicatorPopover = () => isExperimentActive6("e_v_3_30");
|
|
2032
2165
|
|
|
2033
2166
|
// src/styles-inheritance/components/styles-inheritance-infotip.tsx
|
|
2034
|
-
import * as
|
|
2035
|
-
import { useMemo as
|
|
2167
|
+
import * as React25 from "react";
|
|
2168
|
+
import { useMemo as useMemo5, useState as useState9 } from "react";
|
|
2036
2169
|
import { createPropsResolver } from "@elementor/editor-canvas";
|
|
2170
|
+
import { PopoverHeader } from "@elementor/editor-ui";
|
|
2037
2171
|
import {
|
|
2038
2172
|
Backdrop,
|
|
2039
2173
|
Box as Box6,
|
|
2040
2174
|
Card,
|
|
2041
2175
|
CardContent,
|
|
2042
2176
|
ClickAwayListener,
|
|
2043
|
-
CloseButton,
|
|
2044
2177
|
IconButton as IconButton3,
|
|
2045
2178
|
Infotip,
|
|
2046
|
-
Stack as
|
|
2047
|
-
Tooltip as Tooltip5
|
|
2048
|
-
Typography as Typography5
|
|
2179
|
+
Stack as Stack6,
|
|
2180
|
+
Tooltip as Tooltip5
|
|
2049
2181
|
} from "@elementor/ui";
|
|
2050
|
-
import { __ as
|
|
2051
|
-
|
|
2052
|
-
// src/components/section-content.tsx
|
|
2053
|
-
import { createContext as createContext8, useContext as useContext8, useRef as useRef3 } from "react";
|
|
2054
|
-
import * as React21 from "react";
|
|
2055
|
-
import { Stack as Stack6 } from "@elementor/ui";
|
|
2056
|
-
var SectionContentRefContext = createContext8(null);
|
|
2057
|
-
var useSectionContentRef = () => useContext8(SectionContentRefContext);
|
|
2058
|
-
var SectionContent = ({ gap = 2, sx, children }) => {
|
|
2059
|
-
const ref = useRef3(null);
|
|
2060
|
-
return /* @__PURE__ */ React21.createElement(SectionContentRefContext.Provider, { value: ref }, /* @__PURE__ */ React21.createElement(Stack6, { gap, sx: { ...sx }, ref }, children));
|
|
2061
|
-
};
|
|
2182
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
2062
2183
|
|
|
2063
2184
|
// src/hooks/use-direction.ts
|
|
2064
2185
|
import { useTheme } from "@elementor/ui";
|
|
@@ -2082,8 +2203,8 @@ function useDirection() {
|
|
|
2082
2203
|
|
|
2083
2204
|
// src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
|
|
2084
2205
|
import { isValidElement, useEffect as useEffect3, useState as useState8 } from "react";
|
|
2085
|
-
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY } from "@elementor/editor-styles-repository";
|
|
2086
|
-
import { __ as
|
|
2206
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
|
|
2207
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
2087
2208
|
var MAXIMUM_ITEMS = 2;
|
|
2088
2209
|
var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
2089
2210
|
const [items3, setItems] = useState8([]);
|
|
@@ -2094,7 +2215,7 @@ var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
|
|
|
2094
2215
|
);
|
|
2095
2216
|
const validItems = normalizedItems.map((item) => ({
|
|
2096
2217
|
...item,
|
|
2097
|
-
displayLabel:
|
|
2218
|
+
displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __8("Base", "elementor")
|
|
2098
2219
|
})).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
|
|
2099
2220
|
setItems(validItems);
|
|
2100
2221
|
})();
|
|
@@ -2115,8 +2236,7 @@ var normalizeInheritanceItem = async (item, index, bind, resolve) => {
|
|
|
2115
2236
|
provider: item.provider || "",
|
|
2116
2237
|
breakpoint: breakpoint ?? DEFAULT_BREAKPOINT2,
|
|
2117
2238
|
displayLabel,
|
|
2118
|
-
value: await getTransformedValue(item, bind, resolve)
|
|
2119
|
-
chipColor: getChipColor(item)
|
|
2239
|
+
value: await getTransformedValue(item, bind, resolve)
|
|
2120
2240
|
};
|
|
2121
2241
|
};
|
|
2122
2242
|
var getTransformedValue = async (item, bind, resolve) => {
|
|
@@ -2138,23 +2258,13 @@ var getTransformedValue = async (item, bind, resolve) => {
|
|
|
2138
2258
|
return "";
|
|
2139
2259
|
}
|
|
2140
2260
|
};
|
|
2141
|
-
var getChipColor = (item) => {
|
|
2142
|
-
const { provider = "", style } = item;
|
|
2143
|
-
if (provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY) {
|
|
2144
|
-
return "default";
|
|
2145
|
-
}
|
|
2146
|
-
if (style?.label === "local") {
|
|
2147
|
-
return "accent";
|
|
2148
|
-
}
|
|
2149
|
-
return "global";
|
|
2150
|
-
};
|
|
2151
2261
|
|
|
2152
2262
|
// src/styles-inheritance/styles-inheritance-transformers-registry.tsx
|
|
2153
2263
|
import { createTransformersRegistry } from "@elementor/editor-canvas";
|
|
2154
2264
|
var stylesInheritanceTransformersRegistry = createTransformersRegistry();
|
|
2155
2265
|
|
|
2156
2266
|
// src/styles-inheritance/components/infotip/breakpoint-icon.tsx
|
|
2157
|
-
import * as
|
|
2267
|
+
import * as React21 from "react";
|
|
2158
2268
|
import { useBreakpoints } from "@elementor/editor-responsive";
|
|
2159
2269
|
import {
|
|
2160
2270
|
DesktopIcon,
|
|
@@ -2185,25 +2295,25 @@ var BreakpointIcon = ({ breakpoint }) => {
|
|
|
2185
2295
|
return null;
|
|
2186
2296
|
}
|
|
2187
2297
|
const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
|
|
2188
|
-
return /* @__PURE__ */
|
|
2298
|
+
return /* @__PURE__ */ React21.createElement(Tooltip3, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React21.createElement(IconComponent, { fontSize: SIZE3, sx: { mt: "2px" } }));
|
|
2189
2299
|
};
|
|
2190
2300
|
|
|
2191
2301
|
// src/styles-inheritance/components/infotip/label-chip.tsx
|
|
2192
|
-
import * as
|
|
2193
|
-
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as
|
|
2302
|
+
import * as React22 from "react";
|
|
2303
|
+
import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3 } from "@elementor/editor-styles-repository";
|
|
2194
2304
|
import { InfoCircleIcon } from "@elementor/icons";
|
|
2195
2305
|
import { Chip as Chip4, Tooltip as Tooltip4 } from "@elementor/ui";
|
|
2196
|
-
import { __ as
|
|
2306
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
2197
2307
|
var SIZE4 = "tiny";
|
|
2198
|
-
var LabelChip = ({ displayLabel, provider
|
|
2199
|
-
const isBaseStyle = provider ===
|
|
2200
|
-
const chipIcon = isBaseStyle ? /* @__PURE__ */
|
|
2201
|
-
return /* @__PURE__ */
|
|
2308
|
+
var LabelChip = ({ displayLabel, provider }) => {
|
|
2309
|
+
const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3;
|
|
2310
|
+
const chipIcon = isBaseStyle ? /* @__PURE__ */ React22.createElement(Tooltip4, { title: __9("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React22.createElement(InfoCircleIcon, { fontSize: SIZE4 })) : void 0;
|
|
2311
|
+
return /* @__PURE__ */ React22.createElement(
|
|
2202
2312
|
Chip4,
|
|
2203
2313
|
{
|
|
2204
2314
|
label: displayLabel,
|
|
2205
2315
|
size: SIZE4,
|
|
2206
|
-
color:
|
|
2316
|
+
color: getStylesProviderColorName(provider),
|
|
2207
2317
|
variant: "standard",
|
|
2208
2318
|
state: "enabled",
|
|
2209
2319
|
icon: chipIcon,
|
|
@@ -2224,10 +2334,10 @@ var LabelChip = ({ displayLabel, provider, chipColor }) => {
|
|
|
2224
2334
|
};
|
|
2225
2335
|
|
|
2226
2336
|
// src/styles-inheritance/components/infotip/value-component.tsx
|
|
2227
|
-
import * as
|
|
2337
|
+
import * as React23 from "react";
|
|
2228
2338
|
import { Typography as Typography4 } from "@elementor/ui";
|
|
2229
2339
|
var ValueComponent = ({ index, value }) => {
|
|
2230
|
-
return /* @__PURE__ */
|
|
2340
|
+
return /* @__PURE__ */ React23.createElement(
|
|
2231
2341
|
Typography4,
|
|
2232
2342
|
{
|
|
2233
2343
|
variant: "caption",
|
|
@@ -2245,37 +2355,36 @@ var ValueComponent = ({ index, value }) => {
|
|
|
2245
2355
|
};
|
|
2246
2356
|
|
|
2247
2357
|
// src/styles-inheritance/components/infotip/action-icons.tsx
|
|
2248
|
-
import * as
|
|
2358
|
+
import * as React24 from "react";
|
|
2249
2359
|
import { Box as Box5 } from "@elementor/ui";
|
|
2250
|
-
var ActionIcons = () => /* @__PURE__ */
|
|
2360
|
+
var ActionIcons = () => /* @__PURE__ */ React24.createElement(Box5, { display: "flex", gap: 0.5, alignItems: "center" });
|
|
2251
2361
|
|
|
2252
2362
|
// src/styles-inheritance/components/styles-inheritance-infotip.tsx
|
|
2253
|
-
var
|
|
2363
|
+
var SECTION_PADDING_INLINE = 32;
|
|
2254
2364
|
var StylesInheritanceInfotip = ({ inheritanceChain, propType, path, label, children }) => {
|
|
2255
2365
|
const [showInfotip, setShowInfotip] = useState9(false);
|
|
2256
2366
|
const toggleInfotip = () => setShowInfotip((prev) => !prev);
|
|
2257
2367
|
const closeInfotip = () => setShowInfotip(false);
|
|
2258
2368
|
const key = path.join(".");
|
|
2259
|
-
const
|
|
2260
|
-
const
|
|
2261
|
-
const resolve = useMemo4(() => {
|
|
2369
|
+
const sectionWidth = useSectionWidth() + SECTION_PADDING_INLINE;
|
|
2370
|
+
const resolve = useMemo5(() => {
|
|
2262
2371
|
return createPropsResolver({
|
|
2263
2372
|
transformers: stylesInheritanceTransformersRegistry,
|
|
2264
2373
|
schema: { [key]: propType }
|
|
2265
2374
|
});
|
|
2266
2375
|
}, [key, propType]);
|
|
2267
2376
|
const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
|
|
2268
|
-
const infotipContent = /* @__PURE__ */
|
|
2377
|
+
const infotipContent = /* @__PURE__ */ React25.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React25.createElement(
|
|
2269
2378
|
Card,
|
|
2270
2379
|
{
|
|
2271
2380
|
elevation: 0,
|
|
2272
2381
|
sx: {
|
|
2273
|
-
width: `${
|
|
2274
|
-
maxWidth:
|
|
2382
|
+
width: `${sectionWidth - SECTION_PADDING_INLINE}px`,
|
|
2383
|
+
maxWidth: 496,
|
|
2275
2384
|
overflowX: "hidden"
|
|
2276
2385
|
}
|
|
2277
2386
|
},
|
|
2278
|
-
/* @__PURE__ */
|
|
2387
|
+
/* @__PURE__ */ React25.createElement(
|
|
2279
2388
|
CardContent,
|
|
2280
2389
|
{
|
|
2281
2390
|
sx: {
|
|
@@ -2288,49 +2397,35 @@ var StylesInheritanceInfotip = ({ inheritanceChain, propType, path, label, child
|
|
|
2288
2397
|
}
|
|
2289
2398
|
}
|
|
2290
2399
|
},
|
|
2291
|
-
/* @__PURE__ */
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
slotProps: { icon: { fontSize: SIZE5 } },
|
|
2295
|
-
sx: { ml: "auto" },
|
|
2296
|
-
onClick: closeInfotip
|
|
2297
|
-
}
|
|
2298
|
-
)),
|
|
2299
|
-
/* @__PURE__ */ React26.createElement(
|
|
2300
|
-
Stack7,
|
|
2400
|
+
/* @__PURE__ */ React25.createElement(PopoverHeader, { title: __10("Style origin", "elementor"), onClose: closeInfotip }),
|
|
2401
|
+
/* @__PURE__ */ React25.createElement(
|
|
2402
|
+
Stack6,
|
|
2301
2403
|
{
|
|
2302
2404
|
gap: 1.5,
|
|
2303
2405
|
sx: { pl: 2, pr: 1, pb: 2, overflowX: "hidden", overflowY: "auto" },
|
|
2304
2406
|
role: "list"
|
|
2305
2407
|
},
|
|
2306
2408
|
items3.map((item, index) => {
|
|
2307
|
-
return /* @__PURE__ */
|
|
2409
|
+
return /* @__PURE__ */ React25.createElement(
|
|
2308
2410
|
Box6,
|
|
2309
2411
|
{
|
|
2310
2412
|
key: item.id,
|
|
2311
2413
|
display: "flex",
|
|
2312
2414
|
gap: 0.5,
|
|
2313
2415
|
role: "listitem",
|
|
2314
|
-
"aria-label":
|
|
2416
|
+
"aria-label": __10("Inheritance item: %s", "elementor").replace(
|
|
2315
2417
|
"%s",
|
|
2316
2418
|
item.displayLabel
|
|
2317
2419
|
)
|
|
2318
2420
|
},
|
|
2319
|
-
/* @__PURE__ */
|
|
2320
|
-
|
|
2321
|
-
{
|
|
2322
|
-
displayLabel: item.displayLabel,
|
|
2323
|
-
provider: item.provider,
|
|
2324
|
-
chipColor: item.chipColor
|
|
2325
|
-
}
|
|
2326
|
-
), /* @__PURE__ */ React26.createElement(ValueComponent, { index, value: item.value })),
|
|
2327
|
-
/* @__PURE__ */ React26.createElement(ActionIcons, null)
|
|
2421
|
+
/* @__PURE__ */ React25.createElement(Box6, { display: "flex", gap: 0.5, sx: { flexWrap: "wrap", width: "100%" } }, /* @__PURE__ */ React25.createElement(BreakpointIcon, { breakpoint: item.breakpoint }), /* @__PURE__ */ React25.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }), /* @__PURE__ */ React25.createElement(ValueComponent, { index, value: item.value })),
|
|
2422
|
+
/* @__PURE__ */ React25.createElement(ActionIcons, null)
|
|
2328
2423
|
);
|
|
2329
2424
|
})
|
|
2330
2425
|
)
|
|
2331
2426
|
)
|
|
2332
2427
|
));
|
|
2333
|
-
return /* @__PURE__ */
|
|
2428
|
+
return /* @__PURE__ */ React25.createElement(TooltipOrInfotip, { showInfotip, onClose: closeInfotip, infotipContent }, /* @__PURE__ */ React25.createElement(IconButton3, { onClick: toggleInfotip, "aria-label": label, sx: { my: "-1px" } }, children));
|
|
2334
2429
|
};
|
|
2335
2430
|
function TooltipOrInfotip({
|
|
2336
2431
|
children,
|
|
@@ -2341,7 +2436,7 @@ function TooltipOrInfotip({
|
|
|
2341
2436
|
const { isSiteRtl } = useDirection();
|
|
2342
2437
|
const forceInfotipAlignLeft = isSiteRtl ? 9999999 : -9999999;
|
|
2343
2438
|
if (showInfotip) {
|
|
2344
|
-
return /* @__PURE__ */
|
|
2439
|
+
return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(
|
|
2345
2440
|
Backdrop,
|
|
2346
2441
|
{
|
|
2347
2442
|
open: showInfotip,
|
|
@@ -2351,7 +2446,7 @@ function TooltipOrInfotip({
|
|
|
2351
2446
|
zIndex: (theme) => theme.zIndex.modal - 1
|
|
2352
2447
|
}
|
|
2353
2448
|
}
|
|
2354
|
-
), /* @__PURE__ */
|
|
2449
|
+
), /* @__PURE__ */ React25.createElement(
|
|
2355
2450
|
Infotip,
|
|
2356
2451
|
{
|
|
2357
2452
|
placement: "top",
|
|
@@ -2378,84 +2473,74 @@ function TooltipOrInfotip({
|
|
|
2378
2473
|
children
|
|
2379
2474
|
));
|
|
2380
2475
|
}
|
|
2381
|
-
return /* @__PURE__ */
|
|
2476
|
+
return /* @__PURE__ */ React25.createElement(Tooltip5, { title: __10("Style origin", "elementor"), placement: "top" }, children);
|
|
2382
2477
|
}
|
|
2383
2478
|
|
|
2384
2479
|
// src/styles-inheritance/components/styles-inheritance-indicator.tsx
|
|
2385
2480
|
var StylesInheritanceIndicator = () => {
|
|
2386
2481
|
const { path, propType } = useBoundProp();
|
|
2387
|
-
const
|
|
2388
|
-
const isUsingNestedProps = isExperimentActive6(EXPERIMENTAL_FEATURES.V_3_30);
|
|
2482
|
+
const isUsingNestedProps = isExperimentActive7(EXPERIMENTAL_FEATURES.V_3_30);
|
|
2389
2483
|
const finalPath = isUsingNestedProps ? path : path.slice(0, 1);
|
|
2390
2484
|
const inheritanceChain = useStylesInheritanceChain(finalPath);
|
|
2391
2485
|
if (!inheritanceChain.length) {
|
|
2392
2486
|
return null;
|
|
2393
2487
|
}
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
}
|
|
2400
|
-
}) => style.id === currentStyleId && breakpoint === currentStyleMeta.breakpoint && state === currentStyleMeta.state
|
|
2401
|
-
);
|
|
2488
|
+
return /* @__PURE__ */ React26.createElement(Indicator, { inheritanceChain, path: finalPath, propType });
|
|
2489
|
+
};
|
|
2490
|
+
var Indicator = ({ inheritanceChain, path, propType }) => {
|
|
2491
|
+
const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
|
|
2492
|
+
const currentItem = currentStyleId ? getValueFromInheritanceChain(inheritanceChain, currentStyleId, currentStyleMeta) : null;
|
|
2402
2493
|
const hasValue = !isEmpty2(currentItem?.value);
|
|
2403
2494
|
const [actualStyle] = inheritanceChain;
|
|
2404
|
-
if (actualStyle.provider ===
|
|
2495
|
+
if (!isExperimentActive7(EXPERIMENTAL_FEATURES.V_3_31) && actualStyle.provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY4) {
|
|
2405
2496
|
return null;
|
|
2406
2497
|
}
|
|
2407
2498
|
const isFinalValue = currentItem === actualStyle;
|
|
2408
2499
|
const label = getLabel({ isFinalValue, hasValue });
|
|
2409
|
-
const
|
|
2500
|
+
const styleIndicatorProps = {
|
|
2501
|
+
getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
|
|
2502
|
+
isOverridden: hasValue && !isFinalValue ? true : void 0
|
|
2503
|
+
};
|
|
2410
2504
|
if (!isUsingIndicatorPopover()) {
|
|
2411
|
-
return /* @__PURE__ */
|
|
2505
|
+
return /* @__PURE__ */ React26.createElement(Tooltip6, { title: __11("Style origin", "elementor"), placement: "top" }, /* @__PURE__ */ React26.createElement(StyleIndicator, { ...styleIndicatorProps, "aria-label": label }));
|
|
2412
2506
|
}
|
|
2413
|
-
return /* @__PURE__ */
|
|
2507
|
+
return /* @__PURE__ */ React26.createElement(
|
|
2414
2508
|
StylesInheritanceInfotip,
|
|
2415
2509
|
{
|
|
2416
2510
|
inheritanceChain,
|
|
2417
|
-
path
|
|
2511
|
+
path,
|
|
2418
2512
|
propType,
|
|
2419
2513
|
label
|
|
2420
2514
|
},
|
|
2421
|
-
/* @__PURE__ */
|
|
2515
|
+
/* @__PURE__ */ React26.createElement(StyleIndicator, { ...styleIndicatorProps })
|
|
2422
2516
|
);
|
|
2423
2517
|
};
|
|
2424
2518
|
var getLabel = ({ isFinalValue, hasValue }) => {
|
|
2425
2519
|
if (isFinalValue) {
|
|
2426
|
-
return
|
|
2427
|
-
}
|
|
2428
|
-
if (hasValue) {
|
|
2429
|
-
return __10("This value is overridden by another style", "elementor");
|
|
2430
|
-
}
|
|
2431
|
-
return __10("This has value from another style", "elementor");
|
|
2432
|
-
};
|
|
2433
|
-
var getVariant = ({
|
|
2434
|
-
isFinalValue,
|
|
2435
|
-
hasValue,
|
|
2436
|
-
currentStyleProvider
|
|
2437
|
-
}) => {
|
|
2438
|
-
if (isFinalValue) {
|
|
2439
|
-
return isElementsStylesProvider3(currentStyleProvider?.getKey?.()) ? "local" : "global";
|
|
2520
|
+
return __11("This is the final value", "elementor");
|
|
2440
2521
|
}
|
|
2441
2522
|
if (hasValue) {
|
|
2442
|
-
return "overridden";
|
|
2523
|
+
return __11("This value is overridden by another style", "elementor");
|
|
2443
2524
|
}
|
|
2444
|
-
return
|
|
2525
|
+
return __11("This has value from another style", "elementor");
|
|
2445
2526
|
};
|
|
2446
2527
|
|
|
2447
2528
|
// src/controls-registry/styles-field.tsx
|
|
2448
2529
|
var StylesField = ({ bind, placeholder, children }) => {
|
|
2449
|
-
const
|
|
2450
|
-
const
|
|
2530
|
+
const { value, setValue, canEdit } = useStylesField(bind);
|
|
2531
|
+
const isVersion331Active = isExperimentActive8("e_v_3_31");
|
|
2532
|
+
const stylesInheritanceChain = useStylesInheritanceChain([bind]);
|
|
2451
2533
|
const stylesSchema = getStylesSchema2();
|
|
2452
2534
|
const propType = createTopLevelOjectType({ schema: stylesSchema });
|
|
2453
2535
|
const values = { [bind]: value };
|
|
2454
|
-
const
|
|
2536
|
+
const [actualValue] = stylesInheritanceChain;
|
|
2537
|
+
const placeholderValues = {
|
|
2538
|
+
[bind]: isVersion331Active ? actualValue?.value : placeholder
|
|
2539
|
+
};
|
|
2455
2540
|
const setValues = (newValue) => {
|
|
2456
2541
|
setValue(newValue[bind]);
|
|
2457
2542
|
};
|
|
2458
|
-
return /* @__PURE__ */
|
|
2543
|
+
return /* @__PURE__ */ React27.createElement(
|
|
2459
2544
|
ControlAdornmentsProvider,
|
|
2460
2545
|
{
|
|
2461
2546
|
items: [
|
|
@@ -2465,7 +2550,7 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
2465
2550
|
}
|
|
2466
2551
|
]
|
|
2467
2552
|
},
|
|
2468
|
-
/* @__PURE__ */
|
|
2553
|
+
/* @__PURE__ */ React27.createElement(
|
|
2469
2554
|
PropProvider2,
|
|
2470
2555
|
{
|
|
2471
2556
|
propType,
|
|
@@ -2474,18 +2559,24 @@ var StylesField = ({ bind, placeholder, children }) => {
|
|
|
2474
2559
|
placeholder: placeholderValues,
|
|
2475
2560
|
disabled: !canEdit
|
|
2476
2561
|
},
|
|
2477
|
-
/* @__PURE__ */
|
|
2562
|
+
/* @__PURE__ */ React27.createElement(PropKeyProvider2, { bind }, children)
|
|
2478
2563
|
)
|
|
2479
2564
|
);
|
|
2480
2565
|
};
|
|
2481
2566
|
|
|
2567
|
+
// src/components/section-content.tsx
|
|
2568
|
+
import * as React28 from "react";
|
|
2569
|
+
import { Stack as Stack7 } from "@elementor/ui";
|
|
2570
|
+
var SectionContent = ({ gap = 2, sx, children }) => /* @__PURE__ */ React28.createElement(Stack7, { gap, sx: { ...sx } }, children);
|
|
2571
|
+
|
|
2482
2572
|
// src/components/style-sections/background-section/background-section.tsx
|
|
2573
|
+
var BACKGROUND_LABEL = __12("Background", "elementor");
|
|
2483
2574
|
var BackgroundSection = () => {
|
|
2484
|
-
return /* @__PURE__ */ React29.createElement(SectionContent, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "background" }, /* @__PURE__ */ React29.createElement(BackgroundControl, null)));
|
|
2575
|
+
return /* @__PURE__ */ React29.createElement(SectionContent, null, /* @__PURE__ */ React29.createElement(StylesField, { bind: "background", propDisplayName: BACKGROUND_LABEL }, /* @__PURE__ */ React29.createElement(BackgroundControl, null)));
|
|
2485
2576
|
};
|
|
2486
2577
|
|
|
2487
2578
|
// src/components/style-sections/border-section/border-section.tsx
|
|
2488
|
-
import * as
|
|
2579
|
+
import * as React40 from "react";
|
|
2489
2580
|
|
|
2490
2581
|
// src/components/panel-divider.tsx
|
|
2491
2582
|
import * as React30 from "react";
|
|
@@ -2493,15 +2584,15 @@ import { Divider as Divider4 } from "@elementor/ui";
|
|
|
2493
2584
|
var PanelDivider = () => /* @__PURE__ */ React30.createElement(Divider4, { sx: { my: 0.5 } });
|
|
2494
2585
|
|
|
2495
2586
|
// src/components/style-sections/border-section/border-field.tsx
|
|
2496
|
-
import * as
|
|
2587
|
+
import * as React37 from "react";
|
|
2497
2588
|
import { ControlFormLabel as ControlFormLabel3 } from "@elementor/editor-controls";
|
|
2498
|
-
import { __ as
|
|
2589
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
2499
2590
|
|
|
2500
2591
|
// src/components/add-or-remove-content.tsx
|
|
2501
2592
|
import * as React31 from "react";
|
|
2502
2593
|
import { MinusIcon, PlusIcon } from "@elementor/icons";
|
|
2503
2594
|
import { Collapse as Collapse3, IconButton as IconButton4, Stack as Stack8 } from "@elementor/ui";
|
|
2504
|
-
var
|
|
2595
|
+
var SIZE5 = "tiny";
|
|
2505
2596
|
var AddOrRemoveContent = ({
|
|
2506
2597
|
isAdded,
|
|
2507
2598
|
onAdd,
|
|
@@ -2521,15 +2612,18 @@ var AddOrRemoveContent = ({
|
|
|
2521
2612
|
}
|
|
2522
2613
|
},
|
|
2523
2614
|
renderLabel(),
|
|
2524
|
-
isAdded ? /* @__PURE__ */ React31.createElement(IconButton4, { size:
|
|
2615
|
+
isAdded ? /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE5, onClick: onRemove, "aria-label": "Remove", disabled }, /* @__PURE__ */ React31.createElement(MinusIcon, { fontSize: SIZE5 })) : /* @__PURE__ */ React31.createElement(IconButton4, { size: SIZE5, onClick: onAdd, "aria-label": "Add", disabled }, /* @__PURE__ */ React31.createElement(PlusIcon, { fontSize: SIZE5 }))
|
|
2525
2616
|
), /* @__PURE__ */ React31.createElement(Collapse3, { in: isAdded, unmountOnExit: true }, /* @__PURE__ */ React31.createElement(SectionContent, null, children)));
|
|
2526
2617
|
};
|
|
2527
2618
|
|
|
2528
2619
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
2529
|
-
import * as
|
|
2620
|
+
import * as React34 from "react";
|
|
2530
2621
|
import { ColorControl } from "@elementor/editor-controls";
|
|
2531
|
-
import {
|
|
2532
|
-
|
|
2622
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
2623
|
+
|
|
2624
|
+
// src/components/styles-field-layout.tsx
|
|
2625
|
+
import * as React33 from "react";
|
|
2626
|
+
import { Grid, Stack as Stack10 } from "@elementor/ui";
|
|
2533
2627
|
|
|
2534
2628
|
// src/components/control-label.tsx
|
|
2535
2629
|
import * as React32 from "react";
|
|
@@ -2539,71 +2633,96 @@ var ControlLabel = ({ children }) => {
|
|
|
2539
2633
|
return /* @__PURE__ */ React32.createElement(Stack9, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React32.createElement(ControlFormLabel2, null, children), /* @__PURE__ */ React32.createElement(ControlAdornments, null));
|
|
2540
2634
|
};
|
|
2541
2635
|
|
|
2636
|
+
// src/components/styles-field-layout.tsx
|
|
2637
|
+
var StylesFieldLayout = React33.forwardRef((props, ref) => {
|
|
2638
|
+
const { direction = "row", children, label } = props;
|
|
2639
|
+
const LayoutComponent = direction === "row" ? Row : Column;
|
|
2640
|
+
return /* @__PURE__ */ React33.createElement(LayoutComponent, { label, ref, children });
|
|
2641
|
+
});
|
|
2642
|
+
var Row = React33.forwardRef(
|
|
2643
|
+
({ label, children }, ref) => {
|
|
2644
|
+
return /* @__PURE__ */ React33.createElement(Grid, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap", ref }, /* @__PURE__ */ React33.createElement(Grid, { item: true, xs: 6 }, /* @__PURE__ */ React33.createElement(ControlLabel, null, label)), /* @__PURE__ */ React33.createElement(
|
|
2645
|
+
Grid,
|
|
2646
|
+
{
|
|
2647
|
+
item: true,
|
|
2648
|
+
xs: 6,
|
|
2649
|
+
sx: (theme) => ({
|
|
2650
|
+
width: `calc(50% - ${theme.spacing(2)})`
|
|
2651
|
+
})
|
|
2652
|
+
},
|
|
2653
|
+
children
|
|
2654
|
+
));
|
|
2655
|
+
}
|
|
2656
|
+
);
|
|
2657
|
+
var Column = React33.forwardRef(
|
|
2658
|
+
({ label, children }, ref) => {
|
|
2659
|
+
return /* @__PURE__ */ React33.createElement(Stack10, { gap: 0.75, ref }, /* @__PURE__ */ React33.createElement(ControlLabel, null, label), children);
|
|
2660
|
+
}
|
|
2661
|
+
);
|
|
2662
|
+
|
|
2542
2663
|
// src/components/style-sections/border-section/border-color-field.tsx
|
|
2543
|
-
var
|
|
2544
|
-
|
|
2545
|
-
};
|
|
2664
|
+
var BORDER_COLOR_LABEL = __13("Border color", "elementor");
|
|
2665
|
+
var BorderColorField = () => /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-color", propDisplayName: BORDER_COLOR_LABEL }, /* @__PURE__ */ React34.createElement(StylesFieldLayout, { label: BORDER_COLOR_LABEL }, /* @__PURE__ */ React34.createElement(ColorControl, null)));
|
|
2546
2666
|
|
|
2547
2667
|
// src/components/style-sections/border-section/border-style-field.tsx
|
|
2548
|
-
import * as
|
|
2668
|
+
import * as React35 from "react";
|
|
2549
2669
|
import { SelectControl as SelectControl2 } from "@elementor/editor-controls";
|
|
2550
|
-
import {
|
|
2551
|
-
|
|
2670
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
2671
|
+
var BORDER_TYPE_LABEL = __14("Border type", "elementor");
|
|
2552
2672
|
var borderStyles = [
|
|
2553
|
-
{ value: "none", label:
|
|
2554
|
-
{ value: "solid", label:
|
|
2555
|
-
{ value: "dashed", label:
|
|
2556
|
-
{ value: "dotted", label:
|
|
2557
|
-
{ value: "double", label:
|
|
2558
|
-
{ value: "groove", label:
|
|
2559
|
-
{ value: "ridge", label:
|
|
2560
|
-
{ value: "inset", label:
|
|
2561
|
-
{ value: "outset", label:
|
|
2673
|
+
{ value: "none", label: __14("None", "elementor") },
|
|
2674
|
+
{ value: "solid", label: __14("Solid", "elementor") },
|
|
2675
|
+
{ value: "dashed", label: __14("Dashed", "elementor") },
|
|
2676
|
+
{ value: "dotted", label: __14("Dotted", "elementor") },
|
|
2677
|
+
{ value: "double", label: __14("Double", "elementor") },
|
|
2678
|
+
{ value: "groove", label: __14("Groove", "elementor") },
|
|
2679
|
+
{ value: "ridge", label: __14("Ridge", "elementor") },
|
|
2680
|
+
{ value: "inset", label: __14("Inset", "elementor") },
|
|
2681
|
+
{ value: "outset", label: __14("Outset", "elementor") }
|
|
2562
2682
|
];
|
|
2563
|
-
var BorderStyleField = () => {
|
|
2564
|
-
return /* @__PURE__ */ React34.createElement(StylesField, { bind: "border-style" }, /* @__PURE__ */ React34.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React34.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React34.createElement(ControlLabel, null, __12("Border type", "elementor"))), /* @__PURE__ */ React34.createElement(Grid2, { item: true, xs: 6, sx: { overflow: "hidden" } }, /* @__PURE__ */ React34.createElement(SelectControl2, { options: borderStyles }))));
|
|
2565
|
-
};
|
|
2683
|
+
var BorderStyleField = () => /* @__PURE__ */ React35.createElement(StylesField, { bind: "border-style", propDisplayName: BORDER_TYPE_LABEL }, /* @__PURE__ */ React35.createElement(StylesFieldLayout, { label: BORDER_TYPE_LABEL }, /* @__PURE__ */ React35.createElement(SelectControl2, { options: borderStyles })));
|
|
2566
2684
|
|
|
2567
2685
|
// src/components/style-sections/border-section/border-width-field.tsx
|
|
2568
|
-
import * as
|
|
2686
|
+
import * as React36 from "react";
|
|
2569
2687
|
import { EqualUnequalSizesControl } from "@elementor/editor-controls";
|
|
2570
2688
|
import { borderWidthPropTypeUtil } from "@elementor/editor-props";
|
|
2571
2689
|
import { SideAllIcon, SideBottomIcon, SideLeftIcon, SideRightIcon, SideTopIcon } from "@elementor/icons";
|
|
2572
2690
|
import { withDirection } from "@elementor/ui";
|
|
2573
|
-
import { __ as
|
|
2691
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
2692
|
+
var BORDER_WIDTH_LABEL = __15("Border width", "elementor");
|
|
2574
2693
|
var InlineStartIcon = withDirection(SideRightIcon);
|
|
2575
2694
|
var InlineEndIcon = withDirection(SideLeftIcon);
|
|
2576
2695
|
var getEdges = (isSiteRtl) => [
|
|
2577
2696
|
{
|
|
2578
|
-
label:
|
|
2579
|
-
icon: /* @__PURE__ */
|
|
2697
|
+
label: __15("Top", "elementor"),
|
|
2698
|
+
icon: /* @__PURE__ */ React36.createElement(SideTopIcon, { fontSize: "tiny" }),
|
|
2580
2699
|
bind: "block-start"
|
|
2581
2700
|
},
|
|
2582
2701
|
{
|
|
2583
|
-
label: isSiteRtl ?
|
|
2584
|
-
icon: /* @__PURE__ */
|
|
2702
|
+
label: isSiteRtl ? __15("Left", "elementor") : __15("Right", "elementor"),
|
|
2703
|
+
icon: /* @__PURE__ */ React36.createElement(InlineStartIcon, { fontSize: "tiny" }),
|
|
2585
2704
|
bind: "inline-end"
|
|
2586
2705
|
},
|
|
2587
2706
|
{
|
|
2588
|
-
label:
|
|
2589
|
-
icon: /* @__PURE__ */
|
|
2707
|
+
label: __15("Bottom", "elementor"),
|
|
2708
|
+
icon: /* @__PURE__ */ React36.createElement(SideBottomIcon, { fontSize: "tiny" }),
|
|
2590
2709
|
bind: "block-end"
|
|
2591
2710
|
},
|
|
2592
2711
|
{
|
|
2593
|
-
label: isSiteRtl ?
|
|
2594
|
-
icon: /* @__PURE__ */
|
|
2712
|
+
label: isSiteRtl ? __15("Right", "elementor") : __15("Left", "elementor"),
|
|
2713
|
+
icon: /* @__PURE__ */ React36.createElement(InlineEndIcon, { fontSize: "tiny" }),
|
|
2595
2714
|
bind: "inline-start"
|
|
2596
2715
|
}
|
|
2597
2716
|
];
|
|
2598
2717
|
var BorderWidthField = () => {
|
|
2599
2718
|
const { isSiteRtl } = useDirection();
|
|
2600
|
-
return /* @__PURE__ */
|
|
2719
|
+
return /* @__PURE__ */ React36.createElement(StylesField, { bind: "border-width", propDisplayName: BORDER_WIDTH_LABEL }, /* @__PURE__ */ React36.createElement(
|
|
2601
2720
|
EqualUnequalSizesControl,
|
|
2602
2721
|
{
|
|
2603
2722
|
items: getEdges(isSiteRtl),
|
|
2604
|
-
label:
|
|
2605
|
-
icon: /* @__PURE__ */
|
|
2606
|
-
tooltipLabel:
|
|
2723
|
+
label: BORDER_WIDTH_LABEL,
|
|
2724
|
+
icon: /* @__PURE__ */ React36.createElement(SideAllIcon, { fontSize: "tiny" }),
|
|
2725
|
+
tooltipLabel: __15("Adjust borders", "elementor"),
|
|
2607
2726
|
multiSizePropTypeUtil: borderWidthPropTypeUtil
|
|
2608
2727
|
}
|
|
2609
2728
|
));
|
|
@@ -2616,36 +2735,35 @@ var initialBorder = {
|
|
|
2616
2735
|
"border-style": { $$type: "string", value: "solid" }
|
|
2617
2736
|
};
|
|
2618
2737
|
var BorderField = () => {
|
|
2619
|
-
const { canEdit } =
|
|
2620
|
-
const [border, setBorder] = useStylesFields(Object.keys(initialBorder));
|
|
2738
|
+
const { values, setValues, canEdit } = useStylesFields(Object.keys(initialBorder));
|
|
2621
2739
|
const addBorder = () => {
|
|
2622
|
-
|
|
2740
|
+
setValues(initialBorder);
|
|
2623
2741
|
};
|
|
2624
2742
|
const removeBorder = () => {
|
|
2625
|
-
|
|
2743
|
+
setValues({
|
|
2626
2744
|
"border-width": null,
|
|
2627
2745
|
"border-color": null,
|
|
2628
2746
|
"border-style": null
|
|
2629
2747
|
});
|
|
2630
2748
|
};
|
|
2631
|
-
const hasBorder = Object.values(
|
|
2632
|
-
return /* @__PURE__ */
|
|
2749
|
+
const hasBorder = Object.values(values ?? {}).some(Boolean);
|
|
2750
|
+
return /* @__PURE__ */ React37.createElement(
|
|
2633
2751
|
AddOrRemoveContent,
|
|
2634
2752
|
{
|
|
2635
2753
|
isAdded: hasBorder,
|
|
2636
2754
|
onAdd: addBorder,
|
|
2637
2755
|
onRemove: removeBorder,
|
|
2638
2756
|
disabled: !canEdit,
|
|
2639
|
-
renderLabel: () => /* @__PURE__ */
|
|
2757
|
+
renderLabel: () => /* @__PURE__ */ React37.createElement(ControlFormLabel3, null, __16("Border", "elementor"))
|
|
2640
2758
|
},
|
|
2641
|
-
/* @__PURE__ */
|
|
2642
|
-
/* @__PURE__ */
|
|
2643
|
-
/* @__PURE__ */
|
|
2759
|
+
/* @__PURE__ */ React37.createElement(BorderWidthField, null),
|
|
2760
|
+
/* @__PURE__ */ React37.createElement(BorderColorField, null),
|
|
2761
|
+
/* @__PURE__ */ React37.createElement(BorderStyleField, null)
|
|
2644
2762
|
);
|
|
2645
2763
|
};
|
|
2646
2764
|
|
|
2647
2765
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
2648
|
-
import * as
|
|
2766
|
+
import * as React39 from "react";
|
|
2649
2767
|
import { EqualUnequalSizesControl as EqualUnequalSizesControl2 } from "@elementor/editor-controls";
|
|
2650
2768
|
import { borderRadiusPropTypeUtil } from "@elementor/editor-props";
|
|
2651
2769
|
import {
|
|
@@ -2656,76 +2774,95 @@ import {
|
|
|
2656
2774
|
RadiusTopRightIcon
|
|
2657
2775
|
} from "@elementor/icons";
|
|
2658
2776
|
import { withDirection as withDirection2 } from "@elementor/ui";
|
|
2659
|
-
import { __ as
|
|
2777
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
2660
2778
|
|
|
2661
2779
|
// src/styles-inheritance/components/ui-providers.tsx
|
|
2662
|
-
import * as
|
|
2780
|
+
import * as React38 from "react";
|
|
2663
2781
|
import { DirectionProvider, ThemeProvider } from "@elementor/ui";
|
|
2664
2782
|
var UiProviders = ({ children }) => {
|
|
2665
2783
|
const { isSiteRtl } = useDirection();
|
|
2666
|
-
return /* @__PURE__ */
|
|
2784
|
+
return /* @__PURE__ */ React38.createElement(DirectionProvider, { rtl: isSiteRtl }, /* @__PURE__ */ React38.createElement(ThemeProvider, null, children));
|
|
2667
2785
|
};
|
|
2668
2786
|
|
|
2669
2787
|
// src/components/style-sections/border-section/border-radius-field.tsx
|
|
2788
|
+
var BORDER_RADIUS_LABEL = __17("Border radius", "elementor");
|
|
2670
2789
|
var StartStartIcon = withDirection2(RadiusTopLeftIcon);
|
|
2671
2790
|
var StartEndIcon = withDirection2(RadiusTopRightIcon);
|
|
2672
2791
|
var EndStartIcon = withDirection2(RadiusBottomLeftIcon);
|
|
2673
2792
|
var EndEndIcon = withDirection2(RadiusBottomRightIcon);
|
|
2674
|
-
var getStartStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2675
|
-
var getStartEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2676
|
-
var getEndStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
2677
|
-
var getEndEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
2793
|
+
var getStartStartLabel = (isSiteRtl) => isSiteRtl ? __17("Top right", "elementor") : __17("Top left", "elementor");
|
|
2794
|
+
var getStartEndLabel = (isSiteRtl) => isSiteRtl ? __17("Top left", "elementor") : __17("Top right", "elementor");
|
|
2795
|
+
var getEndStartLabel = (isSiteRtl) => isSiteRtl ? __17("Bottom right", "elementor") : __17("Bottom left", "elementor");
|
|
2796
|
+
var getEndEndLabel = (isSiteRtl) => isSiteRtl ? __17("Bottom left", "elementor") : __17("Bottom right", "elementor");
|
|
2678
2797
|
var getCorners = (isSiteRtl) => [
|
|
2679
2798
|
{
|
|
2680
2799
|
label: getStartStartLabel(isSiteRtl),
|
|
2681
|
-
icon: /* @__PURE__ */
|
|
2800
|
+
icon: /* @__PURE__ */ React39.createElement(StartStartIcon, { fontSize: "tiny" }),
|
|
2682
2801
|
bind: "start-start"
|
|
2683
2802
|
},
|
|
2684
2803
|
{
|
|
2685
2804
|
label: getStartEndLabel(isSiteRtl),
|
|
2686
|
-
icon: /* @__PURE__ */
|
|
2805
|
+
icon: /* @__PURE__ */ React39.createElement(StartEndIcon, { fontSize: "tiny" }),
|
|
2687
2806
|
bind: "start-end"
|
|
2688
2807
|
},
|
|
2689
2808
|
{
|
|
2690
2809
|
label: getEndStartLabel(isSiteRtl),
|
|
2691
|
-
icon: /* @__PURE__ */
|
|
2810
|
+
icon: /* @__PURE__ */ React39.createElement(EndStartIcon, { fontSize: "tiny" }),
|
|
2692
2811
|
bind: "end-start"
|
|
2693
2812
|
},
|
|
2694
2813
|
{
|
|
2695
2814
|
label: getEndEndLabel(isSiteRtl),
|
|
2696
|
-
icon: /* @__PURE__ */
|
|
2815
|
+
icon: /* @__PURE__ */ React39.createElement(EndEndIcon, { fontSize: "tiny" }),
|
|
2697
2816
|
bind: "end-end"
|
|
2698
2817
|
}
|
|
2699
2818
|
];
|
|
2700
2819
|
var BorderRadiusField = () => {
|
|
2701
2820
|
const { isSiteRtl } = useDirection();
|
|
2702
|
-
return /* @__PURE__ */
|
|
2821
|
+
return /* @__PURE__ */ React39.createElement(UiProviders, null, /* @__PURE__ */ React39.createElement(StylesField, { bind: "border-radius", propDisplayName: BORDER_RADIUS_LABEL }, /* @__PURE__ */ React39.createElement(
|
|
2703
2822
|
EqualUnequalSizesControl2,
|
|
2704
2823
|
{
|
|
2705
2824
|
items: getCorners(isSiteRtl),
|
|
2706
|
-
label:
|
|
2707
|
-
icon: /* @__PURE__ */
|
|
2708
|
-
tooltipLabel:
|
|
2825
|
+
label: BORDER_RADIUS_LABEL,
|
|
2826
|
+
icon: /* @__PURE__ */ React39.createElement(BorderCornersIcon, { fontSize: "tiny" }),
|
|
2827
|
+
tooltipLabel: __17("Adjust corners", "elementor"),
|
|
2709
2828
|
multiSizePropTypeUtil: borderRadiusPropTypeUtil
|
|
2710
2829
|
}
|
|
2711
2830
|
)));
|
|
2712
2831
|
};
|
|
2713
2832
|
|
|
2714
2833
|
// src/components/style-sections/border-section/border-section.tsx
|
|
2715
|
-
var BorderSection = () => /* @__PURE__ */
|
|
2834
|
+
var BorderSection = () => /* @__PURE__ */ React40.createElement(SectionContent, null, /* @__PURE__ */ React40.createElement(BorderRadiusField, null), /* @__PURE__ */ React40.createElement(PanelDivider, null), /* @__PURE__ */ React40.createElement(BorderField, null));
|
|
2716
2835
|
|
|
2717
2836
|
// src/components/style-sections/effects-section/effects-section.tsx
|
|
2718
|
-
import * as
|
|
2719
|
-
import { BoxShadowRepeaterControl } from "@elementor/editor-controls";
|
|
2837
|
+
import * as React42 from "react";
|
|
2838
|
+
import { BoxShadowRepeaterControl, FilterRepeaterControl } from "@elementor/editor-controls";
|
|
2839
|
+
import { isExperimentActive as isExperimentActive9 } from "@elementor/editor-v1-adapters";
|
|
2840
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
2841
|
+
|
|
2842
|
+
// src/components/style-sections/layout-section/opacity-control-field.tsx
|
|
2843
|
+
import * as React41 from "react";
|
|
2844
|
+
import { useRef as useRef4 } from "react";
|
|
2845
|
+
import { SizeControl as SizeControl2 } from "@elementor/editor-controls";
|
|
2846
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
2847
|
+
var OPACITY_LABEL = __18("Opacity", "elementor");
|
|
2848
|
+
var OpacityControlField = () => {
|
|
2849
|
+
const rowRef = useRef4(null);
|
|
2850
|
+
return /* @__PURE__ */ React41.createElement(StylesField, { bind: "opacity", propDisplayName: OPACITY_LABEL }, /* @__PURE__ */ React41.createElement(StylesFieldLayout, { ref: rowRef, label: OPACITY_LABEL }, /* @__PURE__ */ React41.createElement(SizeControl2, { units: ["%"], anchorRef: rowRef, defaultUnit: "%" })));
|
|
2851
|
+
};
|
|
2852
|
+
|
|
2853
|
+
// src/components/style-sections/effects-section/effects-section.tsx
|
|
2854
|
+
var BOX_SHADOW_LABEL = __19("Box shadow", "elementor");
|
|
2855
|
+
var FILTER_LABEL = __19("Filter", "elementor");
|
|
2720
2856
|
var EffectsSection = () => {
|
|
2721
|
-
|
|
2857
|
+
const isVersion331Active = isExperimentActive9(EXPERIMENTAL_FEATURES.V_3_31);
|
|
2858
|
+
return /* @__PURE__ */ React42.createElement(SectionContent, null, /* @__PURE__ */ React42.createElement(OpacityControlField, null), /* @__PURE__ */ React42.createElement(PanelDivider, null), /* @__PURE__ */ React42.createElement(StylesField, { bind: "box-shadow", propDisplayName: BOX_SHADOW_LABEL }, /* @__PURE__ */ React42.createElement(BoxShadowRepeaterControl, null)), isVersion331Active && /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(PanelDivider, null), /* @__PURE__ */ React42.createElement(StylesField, { bind: "filter", propDisplayName: FILTER_LABEL }, /* @__PURE__ */ React42.createElement(FilterRepeaterControl, null))));
|
|
2722
2859
|
};
|
|
2723
2860
|
|
|
2724
2861
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
2725
|
-
import * as
|
|
2862
|
+
import * as React54 from "react";
|
|
2726
2863
|
import { ControlFormLabel as ControlFormLabel4 } from "@elementor/editor-controls";
|
|
2727
2864
|
import { useParentElement } from "@elementor/editor-elements";
|
|
2728
|
-
import { __ as
|
|
2865
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
2729
2866
|
|
|
2730
2867
|
// src/hooks/use-computed-style.ts
|
|
2731
2868
|
import { __privateUseListenTo as useListenTo, commandEndEvent, windowEvent } from "@elementor/editor-v1-adapters";
|
|
@@ -2753,7 +2890,7 @@ function useComputedStyle(elementId) {
|
|
|
2753
2890
|
}
|
|
2754
2891
|
|
|
2755
2892
|
// src/components/style-sections/layout-section/align-content-field.tsx
|
|
2756
|
-
import * as
|
|
2893
|
+
import * as React44 from "react";
|
|
2757
2894
|
import { ToggleControl } from "@elementor/editor-controls";
|
|
2758
2895
|
import {
|
|
2759
2896
|
JustifyBottomIcon,
|
|
@@ -2763,12 +2900,12 @@ import {
|
|
|
2763
2900
|
JustifySpaceBetweenVerticalIcon as BetweenIcon,
|
|
2764
2901
|
JustifyTopIcon
|
|
2765
2902
|
} from "@elementor/icons";
|
|
2766
|
-
import {
|
|
2767
|
-
import { __ as
|
|
2903
|
+
import { withDirection as withDirection3 } from "@elementor/ui";
|
|
2904
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
2768
2905
|
|
|
2769
2906
|
// src/components/style-sections/layout-section/utils/rotated-icon.tsx
|
|
2770
|
-
import * as
|
|
2771
|
-
import { useRef as
|
|
2907
|
+
import * as React43 from "react";
|
|
2908
|
+
import { useRef as useRef5 } from "react";
|
|
2772
2909
|
import { useTheme as useTheme2 } from "@elementor/ui";
|
|
2773
2910
|
var CLOCKWISE_ANGLES = {
|
|
2774
2911
|
row: 0,
|
|
@@ -2789,12 +2926,12 @@ var RotatedIcon = ({
|
|
|
2789
2926
|
offset = 0,
|
|
2790
2927
|
disableRotationForReversed = false
|
|
2791
2928
|
}) => {
|
|
2792
|
-
const rotate =
|
|
2929
|
+
const rotate = useRef5(useGetTargetAngle(isClockwise, offset, disableRotationForReversed));
|
|
2793
2930
|
rotate.current = useGetTargetAngle(isClockwise, offset, disableRotationForReversed, rotate);
|
|
2794
|
-
return /* @__PURE__ */
|
|
2931
|
+
return /* @__PURE__ */ React43.createElement(Icon, { fontSize: size, sx: { transition: ".3s", rotate: `${rotate.current}deg` } });
|
|
2795
2932
|
};
|
|
2796
2933
|
var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existingRef) => {
|
|
2797
|
-
const
|
|
2934
|
+
const { value: direction } = useStylesField("flex-direction");
|
|
2798
2935
|
const isRtl = "rtl" === useTheme2().direction;
|
|
2799
2936
|
const rotationMultiplier = isRtl ? -1 : 1;
|
|
2800
2937
|
const angleMap = isClockwise ? CLOCKWISE_ANGLES : COUNTER_CLOCKWISE_ANGLES;
|
|
@@ -2810,6 +2947,7 @@ var useGetTargetAngle = (isClockwise, offset, disableRotationForReversed, existi
|
|
|
2810
2947
|
};
|
|
2811
2948
|
|
|
2812
2949
|
// src/components/style-sections/layout-section/align-content-field.tsx
|
|
2950
|
+
var ALIGN_CONTENT_LABEL = __20("Align content", "elementor");
|
|
2813
2951
|
var StartIcon = withDirection3(JustifyTopIcon);
|
|
2814
2952
|
var EndIcon = withDirection3(JustifyBottomIcon);
|
|
2815
2953
|
var iconProps = {
|
|
@@ -2820,47 +2958,45 @@ var iconProps = {
|
|
|
2820
2958
|
var options = [
|
|
2821
2959
|
{
|
|
2822
2960
|
value: "start",
|
|
2823
|
-
label:
|
|
2824
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2961
|
+
label: __20("Start", "elementor"),
|
|
2962
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: StartIcon, size, ...iconProps }),
|
|
2825
2963
|
showTooltip: true
|
|
2826
2964
|
},
|
|
2827
2965
|
{
|
|
2828
2966
|
value: "center",
|
|
2829
|
-
label:
|
|
2830
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2967
|
+
label: __20("Center", "elementor"),
|
|
2968
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: CenterIcon, size, ...iconProps }),
|
|
2831
2969
|
showTooltip: true
|
|
2832
2970
|
},
|
|
2833
2971
|
{
|
|
2834
2972
|
value: "end",
|
|
2835
|
-
label:
|
|
2836
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2973
|
+
label: __20("End", "elementor"),
|
|
2974
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: EndIcon, size, ...iconProps }),
|
|
2837
2975
|
showTooltip: true
|
|
2838
2976
|
},
|
|
2839
2977
|
{
|
|
2840
2978
|
value: "space-between",
|
|
2841
|
-
label:
|
|
2842
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2979
|
+
label: __20("Space between", "elementor"),
|
|
2980
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: BetweenIcon, size, ...iconProps }),
|
|
2843
2981
|
showTooltip: true
|
|
2844
2982
|
},
|
|
2845
2983
|
{
|
|
2846
2984
|
value: "space-around",
|
|
2847
|
-
label:
|
|
2848
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2985
|
+
label: __20("Space around", "elementor"),
|
|
2986
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: AroundIcon, size, ...iconProps }),
|
|
2849
2987
|
showTooltip: true
|
|
2850
2988
|
},
|
|
2851
2989
|
{
|
|
2852
2990
|
value: "space-evenly",
|
|
2853
|
-
label:
|
|
2854
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
2991
|
+
label: __20("Space evenly", "elementor"),
|
|
2992
|
+
renderContent: ({ size }) => /* @__PURE__ */ React44.createElement(RotatedIcon, { icon: EvenlyIcon, size, ...iconProps }),
|
|
2855
2993
|
showTooltip: true
|
|
2856
2994
|
}
|
|
2857
2995
|
];
|
|
2858
|
-
var AlignContentField = () => {
|
|
2859
|
-
return /* @__PURE__ */ React42.createElement(UiProviders, null, /* @__PURE__ */ React42.createElement(StylesField, { bind: "align-content" }, /* @__PURE__ */ React42.createElement(Stack10, { gap: 1 }, /* @__PURE__ */ React42.createElement(ControlLabel, null, __16("Align content", "elementor")), /* @__PURE__ */ React42.createElement(ToggleControl, { options, fullWidth: true }))));
|
|
2860
|
-
};
|
|
2996
|
+
var AlignContentField = () => /* @__PURE__ */ React44.createElement(StylesField, { bind: "align-content", propDisplayName: ALIGN_CONTENT_LABEL }, /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesFieldLayout, { label: ALIGN_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React44.createElement(ToggleControl, { options, fullWidth: true }))));
|
|
2861
2997
|
|
|
2862
2998
|
// src/components/style-sections/layout-section/align-items-field.tsx
|
|
2863
|
-
import * as
|
|
2999
|
+
import * as React45 from "react";
|
|
2864
3000
|
import { ToggleControl as ToggleControl2 } from "@elementor/editor-controls";
|
|
2865
3001
|
import {
|
|
2866
3002
|
LayoutAlignCenterIcon as CenterIcon2,
|
|
@@ -2868,8 +3004,9 @@ import {
|
|
|
2868
3004
|
LayoutAlignRightIcon,
|
|
2869
3005
|
LayoutDistributeVerticalIcon as JustifyIcon
|
|
2870
3006
|
} from "@elementor/icons";
|
|
2871
|
-
import {
|
|
2872
|
-
import { __ as
|
|
3007
|
+
import { withDirection as withDirection4 } from "@elementor/ui";
|
|
3008
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
3009
|
+
var ALIGN_ITEMS_LABEL = __21("Align items", "elementor");
|
|
2873
3010
|
var StartIcon2 = withDirection4(LayoutAlignLeftIcon);
|
|
2874
3011
|
var EndIcon2 = withDirection4(LayoutAlignRightIcon);
|
|
2875
3012
|
var iconProps2 = {
|
|
@@ -2879,35 +3016,35 @@ var iconProps2 = {
|
|
|
2879
3016
|
var options2 = [
|
|
2880
3017
|
{
|
|
2881
3018
|
value: "start",
|
|
2882
|
-
label:
|
|
2883
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3019
|
+
label: __21("Start", "elementor"),
|
|
3020
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: StartIcon2, size, ...iconProps2 }),
|
|
2884
3021
|
showTooltip: true
|
|
2885
3022
|
},
|
|
2886
3023
|
{
|
|
2887
3024
|
value: "center",
|
|
2888
|
-
label:
|
|
2889
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3025
|
+
label: __21("Center", "elementor"),
|
|
3026
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: CenterIcon2, size, ...iconProps2 }),
|
|
2890
3027
|
showTooltip: true
|
|
2891
3028
|
},
|
|
2892
3029
|
{
|
|
2893
3030
|
value: "end",
|
|
2894
|
-
label:
|
|
2895
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3031
|
+
label: __21("End", "elementor"),
|
|
3032
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: EndIcon2, size, ...iconProps2 }),
|
|
2896
3033
|
showTooltip: true
|
|
2897
3034
|
},
|
|
2898
3035
|
{
|
|
2899
3036
|
value: "stretch",
|
|
2900
|
-
label:
|
|
2901
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3037
|
+
label: __21("Stretch", "elementor"),
|
|
3038
|
+
renderContent: ({ size }) => /* @__PURE__ */ React45.createElement(RotatedIcon, { icon: JustifyIcon, size, ...iconProps2 }),
|
|
2902
3039
|
showTooltip: true
|
|
2903
3040
|
}
|
|
2904
3041
|
];
|
|
2905
3042
|
var AlignItemsField = () => {
|
|
2906
|
-
return /* @__PURE__ */
|
|
3043
|
+
return /* @__PURE__ */ React45.createElement(UiProviders, null, /* @__PURE__ */ React45.createElement(StylesField, { bind: "align-items", propDisplayName: ALIGN_ITEMS_LABEL }, /* @__PURE__ */ React45.createElement(StylesFieldLayout, { label: ALIGN_ITEMS_LABEL }, /* @__PURE__ */ React45.createElement(ToggleControl2, { options: options2 }))));
|
|
2907
3044
|
};
|
|
2908
3045
|
|
|
2909
3046
|
// src/components/style-sections/layout-section/align-self-child-field.tsx
|
|
2910
|
-
import * as
|
|
3047
|
+
import * as React46 from "react";
|
|
2911
3048
|
import { ToggleControl as ToggleControl3 } from "@elementor/editor-controls";
|
|
2912
3049
|
import {
|
|
2913
3050
|
LayoutAlignCenterIcon as CenterIcon3,
|
|
@@ -2915,8 +3052,9 @@ import {
|
|
|
2915
3052
|
LayoutAlignRightIcon as LayoutAlignRightIcon2,
|
|
2916
3053
|
LayoutDistributeVerticalIcon as JustifyIcon2
|
|
2917
3054
|
} from "@elementor/icons";
|
|
2918
|
-
import {
|
|
2919
|
-
import { __ as
|
|
3055
|
+
import { withDirection as withDirection5 } from "@elementor/ui";
|
|
3056
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
3057
|
+
var ALIGN_SELF_LABEL = __22("Align self", "elementor");
|
|
2920
3058
|
var ALIGN_SELF_CHILD_OFFSET_MAP = {
|
|
2921
3059
|
row: 90,
|
|
2922
3060
|
"row-reverse": 90,
|
|
@@ -2931,8 +3069,8 @@ var iconProps3 = {
|
|
|
2931
3069
|
var getOptions = (parentStyleDirection) => [
|
|
2932
3070
|
{
|
|
2933
3071
|
value: "start",
|
|
2934
|
-
label:
|
|
2935
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3072
|
+
label: __22("Start", "elementor"),
|
|
3073
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
|
|
2936
3074
|
RotatedIcon,
|
|
2937
3075
|
{
|
|
2938
3076
|
icon: StartIcon3,
|
|
@@ -2945,8 +3083,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2945
3083
|
},
|
|
2946
3084
|
{
|
|
2947
3085
|
value: "center",
|
|
2948
|
-
label:
|
|
2949
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3086
|
+
label: __22("Center", "elementor"),
|
|
3087
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
|
|
2950
3088
|
RotatedIcon,
|
|
2951
3089
|
{
|
|
2952
3090
|
icon: CenterIcon3,
|
|
@@ -2959,8 +3097,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2959
3097
|
},
|
|
2960
3098
|
{
|
|
2961
3099
|
value: "end",
|
|
2962
|
-
label:
|
|
2963
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3100
|
+
label: __22("End", "elementor"),
|
|
3101
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
|
|
2964
3102
|
RotatedIcon,
|
|
2965
3103
|
{
|
|
2966
3104
|
icon: EndIcon3,
|
|
@@ -2973,8 +3111,8 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2973
3111
|
},
|
|
2974
3112
|
{
|
|
2975
3113
|
value: "stretch",
|
|
2976
|
-
label:
|
|
2977
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3114
|
+
label: __22("Stretch", "elementor"),
|
|
3115
|
+
renderContent: ({ size }) => /* @__PURE__ */ React46.createElement(
|
|
2978
3116
|
RotatedIcon,
|
|
2979
3117
|
{
|
|
2980
3118
|
icon: JustifyIcon2,
|
|
@@ -2986,107 +3124,107 @@ var getOptions = (parentStyleDirection) => [
|
|
|
2986
3124
|
showTooltip: true
|
|
2987
3125
|
}
|
|
2988
3126
|
];
|
|
2989
|
-
var AlignSelfChild = ({ parentStyleDirection }) => {
|
|
2990
|
-
return /* @__PURE__ */ React44.createElement(UiProviders, null, /* @__PURE__ */ React44.createElement(StylesField, { bind: "align-self" }, /* @__PURE__ */ React44.createElement(Grid4, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React44.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React44.createElement(ControlLabel, null, __18("Align self", "elementor"))), /* @__PURE__ */ React44.createElement(Grid4, { item: true, xs: 6, sx: { display: "flex", justifyContent: "flex-end" } }, /* @__PURE__ */ React44.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) })))));
|
|
2991
|
-
};
|
|
3127
|
+
var AlignSelfChild = ({ parentStyleDirection }) => /* @__PURE__ */ React46.createElement(StylesField, { bind: "align-self", propDisplayName: ALIGN_SELF_LABEL }, /* @__PURE__ */ React46.createElement(UiProviders, null, /* @__PURE__ */ React46.createElement(StylesFieldLayout, { label: ALIGN_SELF_LABEL }, /* @__PURE__ */ React46.createElement(ToggleControl3, { options: getOptions(parentStyleDirection) }))));
|
|
2992
3128
|
|
|
2993
3129
|
// src/components/style-sections/layout-section/display-field.tsx
|
|
2994
|
-
import * as
|
|
3130
|
+
import * as React47 from "react";
|
|
2995
3131
|
import { ToggleControl as ToggleControl4 } from "@elementor/editor-controls";
|
|
2996
|
-
import { isExperimentActive as
|
|
2997
|
-
import {
|
|
2998
|
-
|
|
3132
|
+
import { isExperimentActive as isExperimentActive10 } from "@elementor/editor-v1-adapters";
|
|
3133
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
3134
|
+
var DISPLAY_LABEL = __23("Display", "elementor");
|
|
2999
3135
|
var displayFieldItems = [
|
|
3000
3136
|
{
|
|
3001
3137
|
value: "block",
|
|
3002
|
-
renderContent: () =>
|
|
3003
|
-
label:
|
|
3138
|
+
renderContent: () => __23("Block", "elementor"),
|
|
3139
|
+
label: __23("Block", "elementor"),
|
|
3004
3140
|
showTooltip: true
|
|
3005
3141
|
},
|
|
3006
3142
|
{
|
|
3007
3143
|
value: "flex",
|
|
3008
|
-
renderContent: () =>
|
|
3009
|
-
label:
|
|
3144
|
+
renderContent: () => __23("Flex", "elementor"),
|
|
3145
|
+
label: __23("Flex", "elementor"),
|
|
3010
3146
|
showTooltip: true
|
|
3011
3147
|
},
|
|
3012
3148
|
{
|
|
3013
3149
|
value: "inline-block",
|
|
3014
|
-
renderContent: () =>
|
|
3015
|
-
label:
|
|
3150
|
+
renderContent: () => __23("In-blk", "elementor"),
|
|
3151
|
+
label: __23("Inline-block", "elementor"),
|
|
3016
3152
|
showTooltip: true
|
|
3017
3153
|
}
|
|
3018
3154
|
];
|
|
3019
3155
|
var DisplayField = () => {
|
|
3020
|
-
const isDisplayNoneFeatureActive =
|
|
3156
|
+
const isDisplayNoneFeatureActive = isExperimentActive10(EXPERIMENTAL_FEATURES.V_3_30);
|
|
3021
3157
|
const items3 = [...displayFieldItems];
|
|
3022
3158
|
if (isDisplayNoneFeatureActive) {
|
|
3023
3159
|
items3.push({
|
|
3024
3160
|
value: "none",
|
|
3025
|
-
renderContent: () =>
|
|
3026
|
-
label:
|
|
3161
|
+
renderContent: () => __23("None", "elementor"),
|
|
3162
|
+
label: __23("None", "elementor"),
|
|
3027
3163
|
showTooltip: true
|
|
3028
3164
|
});
|
|
3029
3165
|
}
|
|
3030
3166
|
items3.push({
|
|
3031
3167
|
value: "inline-flex",
|
|
3032
|
-
renderContent: () =>
|
|
3033
|
-
label:
|
|
3168
|
+
renderContent: () => __23("In-flx", "elementor"),
|
|
3169
|
+
label: __23("Inline-flex", "elementor"),
|
|
3034
3170
|
showTooltip: true
|
|
3035
3171
|
});
|
|
3036
3172
|
const placeholder = useDisplayPlaceholderValue();
|
|
3037
|
-
return /* @__PURE__ */
|
|
3173
|
+
return /* @__PURE__ */ React47.createElement(StylesField, { bind: "display", propDisplayName: DISPLAY_LABEL, placeholder }, /* @__PURE__ */ React47.createElement(StylesFieldLayout, { label: DISPLAY_LABEL, direction: "column" }, /* @__PURE__ */ React47.createElement(ToggleControl4, { options: items3, maxItems: 4, fullWidth: true })));
|
|
3038
3174
|
};
|
|
3039
3175
|
var useDisplayPlaceholderValue = () => useStylesInheritanceChain(["display"])[0]?.value ?? void 0;
|
|
3040
3176
|
|
|
3041
3177
|
// src/components/style-sections/layout-section/flex-direction-field.tsx
|
|
3042
|
-
import * as
|
|
3178
|
+
import * as React48 from "react";
|
|
3043
3179
|
import { ToggleControl as ToggleControl5 } from "@elementor/editor-controls";
|
|
3044
3180
|
import { ArrowDownSmallIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpSmallIcon } from "@elementor/icons";
|
|
3045
|
-
import {
|
|
3046
|
-
import { __ as
|
|
3181
|
+
import { withDirection as withDirection6 } from "@elementor/ui";
|
|
3182
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
3183
|
+
var FLEX_DIRECTION_LABEL = __24("Direction", "elementor");
|
|
3047
3184
|
var options3 = [
|
|
3048
3185
|
{
|
|
3049
3186
|
value: "row",
|
|
3050
|
-
label:
|
|
3187
|
+
label: __24("Row", "elementor"),
|
|
3051
3188
|
renderContent: ({ size }) => {
|
|
3052
3189
|
const StartIcon5 = withDirection6(ArrowRightIcon);
|
|
3053
|
-
return /* @__PURE__ */
|
|
3190
|
+
return /* @__PURE__ */ React48.createElement(StartIcon5, { fontSize: size });
|
|
3054
3191
|
},
|
|
3055
3192
|
showTooltip: true
|
|
3056
3193
|
},
|
|
3057
3194
|
{
|
|
3058
3195
|
value: "column",
|
|
3059
|
-
label:
|
|
3060
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3196
|
+
label: __24("Column", "elementor"),
|
|
3197
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(ArrowDownSmallIcon, { fontSize: size }),
|
|
3061
3198
|
showTooltip: true
|
|
3062
3199
|
},
|
|
3063
3200
|
{
|
|
3064
3201
|
value: "row-reverse",
|
|
3065
|
-
label:
|
|
3202
|
+
label: __24("Reversed row", "elementor"),
|
|
3066
3203
|
renderContent: ({ size }) => {
|
|
3067
3204
|
const EndIcon5 = withDirection6(ArrowLeftIcon);
|
|
3068
|
-
return /* @__PURE__ */
|
|
3205
|
+
return /* @__PURE__ */ React48.createElement(EndIcon5, { fontSize: size });
|
|
3069
3206
|
},
|
|
3070
3207
|
showTooltip: true
|
|
3071
3208
|
},
|
|
3072
3209
|
{
|
|
3073
3210
|
value: "column-reverse",
|
|
3074
|
-
label:
|
|
3075
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3211
|
+
label: __24("Reversed column", "elementor"),
|
|
3212
|
+
renderContent: ({ size }) => /* @__PURE__ */ React48.createElement(ArrowUpSmallIcon, { fontSize: size }),
|
|
3076
3213
|
showTooltip: true
|
|
3077
3214
|
}
|
|
3078
3215
|
];
|
|
3079
3216
|
var FlexDirectionField = () => {
|
|
3080
|
-
return /* @__PURE__ */
|
|
3217
|
+
return /* @__PURE__ */ React48.createElement(StylesField, { bind: "flex-direction", propDisplayName: FLEX_DIRECTION_LABEL }, /* @__PURE__ */ React48.createElement(UiProviders, null, /* @__PURE__ */ React48.createElement(StylesFieldLayout, { label: FLEX_DIRECTION_LABEL }, /* @__PURE__ */ React48.createElement(ToggleControl5, { options: options3 }))));
|
|
3081
3218
|
};
|
|
3082
3219
|
|
|
3083
3220
|
// src/components/style-sections/layout-section/flex-order-field.tsx
|
|
3084
|
-
import * as
|
|
3221
|
+
import * as React49 from "react";
|
|
3085
3222
|
import { useState as useState10 } from "react";
|
|
3086
3223
|
import { ControlToggleButtonGroup, NumberControl } from "@elementor/editor-controls";
|
|
3087
3224
|
import { ArrowDownSmallIcon as ArrowDownSmallIcon2, ArrowUpSmallIcon as ArrowUpSmallIcon2, PencilIcon } from "@elementor/icons";
|
|
3088
|
-
import { Grid as
|
|
3089
|
-
import { __ as
|
|
3225
|
+
import { Grid as Grid2 } from "@elementor/ui";
|
|
3226
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
3227
|
+
var ORDER_LABEL = __25("Order", "elementor");
|
|
3090
3228
|
var FIRST_DEFAULT_VALUE = -99999;
|
|
3091
3229
|
var LAST_DEFAULT_VALUE = 99999;
|
|
3092
3230
|
var FIRST = "first";
|
|
@@ -3099,26 +3237,25 @@ var orderValueMap = {
|
|
|
3099
3237
|
var items = [
|
|
3100
3238
|
{
|
|
3101
3239
|
value: FIRST,
|
|
3102
|
-
label:
|
|
3103
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3240
|
+
label: __25("First", "elementor"),
|
|
3241
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowUpSmallIcon2, { fontSize: size }),
|
|
3104
3242
|
showTooltip: true
|
|
3105
3243
|
},
|
|
3106
3244
|
{
|
|
3107
3245
|
value: LAST,
|
|
3108
|
-
label:
|
|
3109
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3246
|
+
label: __25("Last", "elementor"),
|
|
3247
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(ArrowDownSmallIcon2, { fontSize: size }),
|
|
3110
3248
|
showTooltip: true
|
|
3111
3249
|
},
|
|
3112
3250
|
{
|
|
3113
3251
|
value: CUSTOM,
|
|
3114
|
-
label:
|
|
3115
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3252
|
+
label: __25("Custom", "elementor"),
|
|
3253
|
+
renderContent: ({ size }) => /* @__PURE__ */ React49.createElement(PencilIcon, { fontSize: size }),
|
|
3116
3254
|
showTooltip: true
|
|
3117
3255
|
}
|
|
3118
3256
|
];
|
|
3119
3257
|
var FlexOrderField = () => {
|
|
3120
|
-
const
|
|
3121
|
-
const { canEdit } = useStyle();
|
|
3258
|
+
const { value: order, setValue: setOrder, canEdit } = useStylesField("order");
|
|
3122
3259
|
const [groupControlValue, setGroupControlValue] = useState10(getGroupControlValue(order?.value || null));
|
|
3123
3260
|
const handleToggleButtonChange = (group) => {
|
|
3124
3261
|
setGroupControlValue(group);
|
|
@@ -3128,7 +3265,7 @@ var FlexOrderField = () => {
|
|
|
3128
3265
|
}
|
|
3129
3266
|
setOrder({ $$type: "number", value: orderValueMap[group] });
|
|
3130
3267
|
};
|
|
3131
|
-
return /* @__PURE__ */
|
|
3268
|
+
return /* @__PURE__ */ React49.createElement(StylesField, { bind: "order", propDisplayName: ORDER_LABEL }, /* @__PURE__ */ React49.createElement(UiProviders, null, /* @__PURE__ */ React49.createElement(StylesFieldLayout, { label: ORDER_LABEL }, /* @__PURE__ */ React49.createElement(SectionContent, null, /* @__PURE__ */ React49.createElement(
|
|
3132
3269
|
ControlToggleButtonGroup,
|
|
3133
3270
|
{
|
|
3134
3271
|
items,
|
|
@@ -3137,14 +3274,14 @@ var FlexOrderField = () => {
|
|
|
3137
3274
|
exclusive: true,
|
|
3138
3275
|
disabled: !canEdit
|
|
3139
3276
|
}
|
|
3140
|
-
)
|
|
3277
|
+
), CUSTOM === groupControlValue && /* @__PURE__ */ React49.createElement(Grid2, { container: true, gap: 2, alignItems: "center", flexWrap: "nowrap" }, /* @__PURE__ */ React49.createElement(Grid2, { item: true, xs: 6 }, /* @__PURE__ */ React49.createElement(ControlLabel, null, __25("Custom order", "elementor"))), /* @__PURE__ */ React49.createElement(Grid2, { item: true, xs: 6, sx: { display: "flex", justifyContent: "end" } }, /* @__PURE__ */ React49.createElement(
|
|
3141
3278
|
NumberControl,
|
|
3142
3279
|
{
|
|
3143
3280
|
min: FIRST_DEFAULT_VALUE + 1,
|
|
3144
3281
|
max: LAST_DEFAULT_VALUE - 1,
|
|
3145
3282
|
shouldForceInt: true
|
|
3146
3283
|
}
|
|
3147
|
-
))))));
|
|
3284
|
+
)))))));
|
|
3148
3285
|
};
|
|
3149
3286
|
var getGroupControlValue = (order) => {
|
|
3150
3287
|
if (LAST_DEFAULT_VALUE === order) {
|
|
@@ -3157,49 +3294,48 @@ var getGroupControlValue = (order) => {
|
|
|
3157
3294
|
};
|
|
3158
3295
|
|
|
3159
3296
|
// src/components/style-sections/layout-section/flex-size-field.tsx
|
|
3160
|
-
import * as
|
|
3161
|
-
import { useMemo as
|
|
3297
|
+
import * as React50 from "react";
|
|
3298
|
+
import { useMemo as useMemo6, useRef as useRef6, useState as useState11 } from "react";
|
|
3162
3299
|
import {
|
|
3163
3300
|
ControlToggleButtonGroup as ControlToggleButtonGroup2,
|
|
3164
3301
|
NumberControl as NumberControl2,
|
|
3165
|
-
SizeControl as
|
|
3302
|
+
SizeControl as SizeControl3
|
|
3166
3303
|
} from "@elementor/editor-controls";
|
|
3167
3304
|
import { numberPropTypeUtil } from "@elementor/editor-props";
|
|
3168
3305
|
import { ExpandIcon, PencilIcon as PencilIcon2, ShrinkIcon } from "@elementor/icons";
|
|
3169
|
-
import {
|
|
3170
|
-
|
|
3306
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
3307
|
+
var FLEX_SIZE_LABEL = __26("Flex Size", "elementor");
|
|
3171
3308
|
var DEFAULT = 1;
|
|
3172
3309
|
var items2 = [
|
|
3173
3310
|
{
|
|
3174
3311
|
value: "flex-grow",
|
|
3175
|
-
label:
|
|
3176
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3312
|
+
label: __26("Grow", "elementor"),
|
|
3313
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ExpandIcon, { fontSize: size }),
|
|
3177
3314
|
showTooltip: true
|
|
3178
3315
|
},
|
|
3179
3316
|
{
|
|
3180
3317
|
value: "flex-shrink",
|
|
3181
|
-
label:
|
|
3182
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3318
|
+
label: __26("Shrink", "elementor"),
|
|
3319
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(ShrinkIcon, { fontSize: size }),
|
|
3183
3320
|
showTooltip: true
|
|
3184
3321
|
},
|
|
3185
3322
|
{
|
|
3186
3323
|
value: "custom",
|
|
3187
|
-
label:
|
|
3188
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3324
|
+
label: __26("Custom", "elementor"),
|
|
3325
|
+
renderContent: ({ size }) => /* @__PURE__ */ React50.createElement(PencilIcon2, { fontSize: size }),
|
|
3189
3326
|
showTooltip: true
|
|
3190
3327
|
}
|
|
3191
3328
|
];
|
|
3192
3329
|
var FlexSizeField = () => {
|
|
3193
|
-
const { canEdit } =
|
|
3194
|
-
const
|
|
3195
|
-
const
|
|
3196
|
-
const
|
|
3197
|
-
const
|
|
3198
|
-
const currentGroup = useMemo5(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState11(currentGroup);
|
|
3330
|
+
const { values, setValues, canEdit } = useStylesFields(["flex-grow", "flex-shrink", "flex-basis"]);
|
|
3331
|
+
const grow = values?.["flex-grow"]?.value || null;
|
|
3332
|
+
const shrink = values?.["flex-shrink"]?.value || null;
|
|
3333
|
+
const basis = values?.["flex-basis"]?.value || null;
|
|
3334
|
+
const currentGroup = useMemo6(() => getActiveGroup({ grow, shrink, basis }), [grow, shrink, basis]), [activeGroup, setActiveGroup] = useState11(currentGroup);
|
|
3199
3335
|
const onChangeGroup = (group = null) => {
|
|
3200
3336
|
setActiveGroup(group);
|
|
3201
3337
|
if (!group || group === "custom") {
|
|
3202
|
-
|
|
3338
|
+
setValues({
|
|
3203
3339
|
"flex-basis": null,
|
|
3204
3340
|
"flex-grow": null,
|
|
3205
3341
|
"flex-shrink": null
|
|
@@ -3207,20 +3343,20 @@ var FlexSizeField = () => {
|
|
|
3207
3343
|
return;
|
|
3208
3344
|
}
|
|
3209
3345
|
if (group === "flex-grow") {
|
|
3210
|
-
|
|
3346
|
+
setValues({
|
|
3211
3347
|
"flex-basis": null,
|
|
3212
3348
|
"flex-grow": numberPropTypeUtil.create(DEFAULT),
|
|
3213
3349
|
"flex-shrink": null
|
|
3214
3350
|
});
|
|
3215
3351
|
return;
|
|
3216
3352
|
}
|
|
3217
|
-
|
|
3353
|
+
setValues({
|
|
3218
3354
|
"flex-basis": null,
|
|
3219
3355
|
"flex-grow": null,
|
|
3220
3356
|
"flex-shrink": numberPropTypeUtil.create(DEFAULT)
|
|
3221
3357
|
});
|
|
3222
3358
|
};
|
|
3223
|
-
return /* @__PURE__ */
|
|
3359
|
+
return /* @__PURE__ */ React50.createElement(UiProviders, null, /* @__PURE__ */ React50.createElement(SectionContent, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: activeGroup ?? "", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(
|
|
3224
3360
|
ControlToggleButtonGroup2,
|
|
3225
3361
|
{
|
|
3226
3362
|
value: activeGroup,
|
|
@@ -3229,11 +3365,11 @@ var FlexSizeField = () => {
|
|
|
3229
3365
|
items: items2,
|
|
3230
3366
|
exclusive: true
|
|
3231
3367
|
}
|
|
3232
|
-
)))
|
|
3368
|
+
))), "custom" === activeGroup && /* @__PURE__ */ React50.createElement(FlexCustomField, null)));
|
|
3233
3369
|
};
|
|
3234
3370
|
var FlexCustomField = () => {
|
|
3235
|
-
const flexBasisRowRef =
|
|
3236
|
-
return /* @__PURE__ */
|
|
3371
|
+
const flexBasisRowRef = useRef6(null);
|
|
3372
|
+
return /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-grow", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: __26("Grow", "elementor") }, /* @__PURE__ */ React50.createElement(NumberControl2, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-shrink", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: __26("Shrink", "elementor") }, /* @__PURE__ */ React50.createElement(NumberControl2, { min: 0, shouldForceInt: true }))), /* @__PURE__ */ React50.createElement(StylesField, { bind: "flex-basis", propDisplayName: FLEX_SIZE_LABEL }, /* @__PURE__ */ React50.createElement(StylesFieldLayout, { label: __26("Basis", "elementor"), ref: flexBasisRowRef }, /* @__PURE__ */ React50.createElement(SizeControl3, { extendedOptions: ["auto"], anchorRef: flexBasisRowRef }))));
|
|
3237
3373
|
};
|
|
3238
3374
|
var getActiveGroup = ({
|
|
3239
3375
|
grow,
|
|
@@ -3256,16 +3392,16 @@ var getActiveGroup = ({
|
|
|
3256
3392
|
};
|
|
3257
3393
|
|
|
3258
3394
|
// src/components/style-sections/layout-section/gap-control-field.tsx
|
|
3259
|
-
import * as
|
|
3395
|
+
import * as React51 from "react";
|
|
3260
3396
|
import { GapControl } from "@elementor/editor-controls";
|
|
3261
|
-
import {
|
|
3262
|
-
|
|
3397
|
+
import { __ as __27 } from "@wordpress/i18n";
|
|
3398
|
+
var GAPS_LABEL = __27("Gaps", "elementor");
|
|
3263
3399
|
var GapControlField = () => {
|
|
3264
|
-
return /* @__PURE__ */
|
|
3400
|
+
return /* @__PURE__ */ React51.createElement(StylesField, { bind: "gap", propDisplayName: GAPS_LABEL }, /* @__PURE__ */ React51.createElement(GapControl, { label: GAPS_LABEL }));
|
|
3265
3401
|
};
|
|
3266
3402
|
|
|
3267
3403
|
// src/components/style-sections/layout-section/justify-content-field.tsx
|
|
3268
|
-
import * as
|
|
3404
|
+
import * as React52 from "react";
|
|
3269
3405
|
import { ToggleControl as ToggleControl6 } from "@elementor/editor-controls";
|
|
3270
3406
|
import {
|
|
3271
3407
|
JustifyBottomIcon as JustifyBottomIcon2,
|
|
@@ -3275,8 +3411,9 @@ import {
|
|
|
3275
3411
|
JustifySpaceBetweenVerticalIcon as BetweenIcon2,
|
|
3276
3412
|
JustifyTopIcon as JustifyTopIcon2
|
|
3277
3413
|
} from "@elementor/icons";
|
|
3278
|
-
import {
|
|
3279
|
-
import { __ as
|
|
3414
|
+
import { withDirection as withDirection7 } from "@elementor/ui";
|
|
3415
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
3416
|
+
var JUSTIFY_CONTENT_LABEL = __28("Justify content", "elementor");
|
|
3280
3417
|
var StartIcon4 = withDirection7(JustifyTopIcon2);
|
|
3281
3418
|
var EndIcon4 = withDirection7(JustifyBottomIcon2);
|
|
3282
3419
|
var iconProps4 = {
|
|
@@ -3286,91 +3423,89 @@ var iconProps4 = {
|
|
|
3286
3423
|
var options4 = [
|
|
3287
3424
|
{
|
|
3288
3425
|
value: "flex-start",
|
|
3289
|
-
label:
|
|
3290
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3426
|
+
label: __28("Start", "elementor"),
|
|
3427
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: StartIcon4, size, ...iconProps4 }),
|
|
3291
3428
|
showTooltip: true
|
|
3292
3429
|
},
|
|
3293
3430
|
{
|
|
3294
3431
|
value: "center",
|
|
3295
|
-
label:
|
|
3296
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3432
|
+
label: __28("Center", "elementor"),
|
|
3433
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: CenterIcon4, size, ...iconProps4 }),
|
|
3297
3434
|
showTooltip: true
|
|
3298
3435
|
},
|
|
3299
3436
|
{
|
|
3300
3437
|
value: "flex-end",
|
|
3301
|
-
label:
|
|
3302
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3438
|
+
label: __28("End", "elementor"),
|
|
3439
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: EndIcon4, size, ...iconProps4 }),
|
|
3303
3440
|
showTooltip: true
|
|
3304
3441
|
},
|
|
3305
3442
|
{
|
|
3306
3443
|
value: "space-between",
|
|
3307
|
-
label:
|
|
3308
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3444
|
+
label: __28("Space between", "elementor"),
|
|
3445
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: BetweenIcon2, size, ...iconProps4 }),
|
|
3309
3446
|
showTooltip: true
|
|
3310
3447
|
},
|
|
3311
3448
|
{
|
|
3312
3449
|
value: "space-around",
|
|
3313
|
-
label:
|
|
3314
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3450
|
+
label: __28("Space around", "elementor"),
|
|
3451
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: AroundIcon2, size, ...iconProps4 }),
|
|
3315
3452
|
showTooltip: true
|
|
3316
3453
|
},
|
|
3317
3454
|
{
|
|
3318
3455
|
value: "space-evenly",
|
|
3319
|
-
label:
|
|
3320
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3456
|
+
label: __28("Space evenly", "elementor"),
|
|
3457
|
+
renderContent: ({ size }) => /* @__PURE__ */ React52.createElement(RotatedIcon, { icon: EvenlyIcon2, size, ...iconProps4 }),
|
|
3321
3458
|
showTooltip: true
|
|
3322
3459
|
}
|
|
3323
3460
|
];
|
|
3324
|
-
var JustifyContentField = () => {
|
|
3325
|
-
return /* @__PURE__ */ React50.createElement(UiProviders, null, /* @__PURE__ */ React50.createElement(StylesField, { bind: "justify-content" }, /* @__PURE__ */ React50.createElement(Stack13, { gap: 0.75 }, /* @__PURE__ */ React50.createElement(ControlLabel, null, __24("Justify content", "elementor")), /* @__PURE__ */ React50.createElement(ToggleControl6, { options: options4, fullWidth: true }))));
|
|
3326
|
-
};
|
|
3461
|
+
var JustifyContentField = () => /* @__PURE__ */ React52.createElement(StylesField, { bind: "justify-content", propDisplayName: JUSTIFY_CONTENT_LABEL }, /* @__PURE__ */ React52.createElement(UiProviders, null, /* @__PURE__ */ React52.createElement(StylesFieldLayout, { label: JUSTIFY_CONTENT_LABEL, direction: "column" }, /* @__PURE__ */ React52.createElement(ToggleControl6, { options: options4, fullWidth: true }))));
|
|
3327
3462
|
|
|
3328
3463
|
// src/components/style-sections/layout-section/wrap-field.tsx
|
|
3329
|
-
import * as
|
|
3464
|
+
import * as React53 from "react";
|
|
3330
3465
|
import { ToggleControl as ToggleControl7 } from "@elementor/editor-controls";
|
|
3331
3466
|
import { ArrowBackIcon, ArrowForwardIcon, ArrowRightIcon as ArrowRightIcon2 } from "@elementor/icons";
|
|
3332
|
-
import {
|
|
3333
|
-
|
|
3467
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
3468
|
+
var FLEX_WRAP_LABEL = __29("Wrap", "elementor");
|
|
3334
3469
|
var options5 = [
|
|
3335
3470
|
{
|
|
3336
3471
|
value: "nowrap",
|
|
3337
|
-
label:
|
|
3338
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3472
|
+
label: __29("No wrap", "elementor"),
|
|
3473
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(ArrowRightIcon2, { fontSize: size }),
|
|
3339
3474
|
showTooltip: true
|
|
3340
3475
|
},
|
|
3341
3476
|
{
|
|
3342
3477
|
value: "wrap",
|
|
3343
|
-
label:
|
|
3344
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3478
|
+
label: __29("Wrap", "elementor"),
|
|
3479
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(ArrowBackIcon, { fontSize: size }),
|
|
3345
3480
|
showTooltip: true
|
|
3346
3481
|
},
|
|
3347
3482
|
{
|
|
3348
3483
|
value: "wrap-reverse",
|
|
3349
|
-
label:
|
|
3350
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3484
|
+
label: __29("Reversed wrap", "elementor"),
|
|
3485
|
+
renderContent: ({ size }) => /* @__PURE__ */ React53.createElement(ArrowForwardIcon, { fontSize: size }),
|
|
3351
3486
|
showTooltip: true
|
|
3352
3487
|
}
|
|
3353
3488
|
];
|
|
3354
3489
|
var WrapField = () => {
|
|
3355
|
-
return /* @__PURE__ */
|
|
3490
|
+
return /* @__PURE__ */ React53.createElement(StylesField, { bind: "flex-wrap", propDisplayName: FLEX_WRAP_LABEL }, /* @__PURE__ */ React53.createElement(UiProviders, null, /* @__PURE__ */ React53.createElement(StylesFieldLayout, { label: FLEX_WRAP_LABEL }, /* @__PURE__ */ React53.createElement(ToggleControl7, { options: options5 }))));
|
|
3356
3491
|
};
|
|
3357
3492
|
|
|
3358
3493
|
// src/components/style-sections/layout-section/layout-section.tsx
|
|
3359
3494
|
var LayoutSection = () => {
|
|
3360
|
-
const
|
|
3495
|
+
const { value: display } = useStylesField("display");
|
|
3361
3496
|
const displayPlaceholder = useDisplayPlaceholderValue();
|
|
3362
3497
|
const isDisplayFlex = shouldDisplayFlexFields(display, displayPlaceholder);
|
|
3363
3498
|
const { element } = useElement();
|
|
3364
3499
|
const parent = useParentElement(element.id);
|
|
3365
3500
|
const parentStyle = useComputedStyle(parent?.id || null);
|
|
3366
3501
|
const parentStyleDirection = parentStyle?.flexDirection ?? "row";
|
|
3367
|
-
return /* @__PURE__ */
|
|
3502
|
+
return /* @__PURE__ */ React54.createElement(SectionContent, null, /* @__PURE__ */ React54.createElement(DisplayField, null), isDisplayFlex && /* @__PURE__ */ React54.createElement(FlexFields, null), "flex" === parentStyle?.display && /* @__PURE__ */ React54.createElement(FlexChildFields, { parentStyleDirection }));
|
|
3368
3503
|
};
|
|
3369
3504
|
var FlexFields = () => {
|
|
3370
|
-
const
|
|
3371
|
-
return /* @__PURE__ */
|
|
3505
|
+
const { value: flexWrap } = useStylesField("flex-wrap");
|
|
3506
|
+
return /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(FlexDirectionField, null), /* @__PURE__ */ React54.createElement(JustifyContentField, null), /* @__PURE__ */ React54.createElement(AlignItemsField, null), /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(GapControlField, null), /* @__PURE__ */ React54.createElement(WrapField, null), ["wrap", "wrap-reverse"].includes(flexWrap?.value) && /* @__PURE__ */ React54.createElement(AlignContentField, null));
|
|
3372
3507
|
};
|
|
3373
|
-
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */
|
|
3508
|
+
var FlexChildFields = ({ parentStyleDirection }) => /* @__PURE__ */ React54.createElement(React54.Fragment, null, /* @__PURE__ */ React54.createElement(PanelDivider, null), /* @__PURE__ */ React54.createElement(ControlFormLabel4, null, __30("Flex child", "elementor")), /* @__PURE__ */ React54.createElement(AlignSelfChild, { parentStyleDirection }), /* @__PURE__ */ React54.createElement(FlexOrderField, null), /* @__PURE__ */ React54.createElement(FlexSizeField, null));
|
|
3374
3509
|
var shouldDisplayFlexFields = (display, local) => {
|
|
3375
3510
|
const value = display?.value ?? local?.value;
|
|
3376
3511
|
if (!value) {
|
|
@@ -3380,38 +3515,38 @@ var shouldDisplayFlexFields = (display, local) => {
|
|
|
3380
3515
|
};
|
|
3381
3516
|
|
|
3382
3517
|
// src/components/style-sections/position-section/position-section.tsx
|
|
3383
|
-
import * as
|
|
3384
|
-
import { isExperimentActive as
|
|
3518
|
+
import * as React59 from "react";
|
|
3519
|
+
import { isExperimentActive as isExperimentActive11 } from "@elementor/editor-v1-adapters";
|
|
3385
3520
|
import { useSessionStorage } from "@elementor/session";
|
|
3386
3521
|
|
|
3387
3522
|
// src/components/style-sections/position-section/dimensions-field.tsx
|
|
3388
|
-
import * as
|
|
3389
|
-
import { useRef as
|
|
3390
|
-
import { SizeControl as
|
|
3523
|
+
import * as React55 from "react";
|
|
3524
|
+
import { useRef as useRef7 } from "react";
|
|
3525
|
+
import { SizeControl as SizeControl4 } from "@elementor/editor-controls";
|
|
3391
3526
|
import { SideBottomIcon as SideBottomIcon2, SideLeftIcon as SideLeftIcon2, SideRightIcon as SideRightIcon2, SideTopIcon as SideTopIcon2 } from "@elementor/icons";
|
|
3392
|
-
import { Grid as
|
|
3393
|
-
import { __ as
|
|
3527
|
+
import { Grid as Grid3, Stack as Stack11, withDirection as withDirection8 } from "@elementor/ui";
|
|
3528
|
+
import { __ as __31 } from "@wordpress/i18n";
|
|
3394
3529
|
var InlineStartIcon2 = withDirection8(SideLeftIcon2);
|
|
3395
3530
|
var InlineEndIcon2 = withDirection8(SideRightIcon2);
|
|
3396
3531
|
var sideIcons = {
|
|
3397
|
-
"inset-block-start": /* @__PURE__ */
|
|
3398
|
-
"inset-block-end": /* @__PURE__ */
|
|
3399
|
-
"inset-inline-start": /* @__PURE__ */
|
|
3400
|
-
"inset-inline-end": /* @__PURE__ */
|
|
3532
|
+
"inset-block-start": /* @__PURE__ */ React55.createElement(SideTopIcon2, { fontSize: "tiny" }),
|
|
3533
|
+
"inset-block-end": /* @__PURE__ */ React55.createElement(SideBottomIcon2, { fontSize: "tiny" }),
|
|
3534
|
+
"inset-inline-start": /* @__PURE__ */ React55.createElement(RotatedIcon, { icon: InlineStartIcon2, size: "tiny" }),
|
|
3535
|
+
"inset-inline-end": /* @__PURE__ */ React55.createElement(RotatedIcon, { icon: InlineEndIcon2, size: "tiny" })
|
|
3401
3536
|
};
|
|
3402
|
-
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ?
|
|
3403
|
-
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ?
|
|
3537
|
+
var getInlineStartLabel = (isSiteRtl) => isSiteRtl ? __31("Right", "elementor") : __31("Left", "elementor");
|
|
3538
|
+
var getInlineEndLabel = (isSiteRtl) => isSiteRtl ? __31("Left", "elementor") : __31("Right", "elementor");
|
|
3404
3539
|
var DimensionsField = () => {
|
|
3405
3540
|
const { isSiteRtl } = useDirection();
|
|
3406
|
-
const rowRefs = [
|
|
3407
|
-
return /* @__PURE__ */
|
|
3541
|
+
const rowRefs = [useRef7(null), useRef7(null)];
|
|
3542
|
+
return /* @__PURE__ */ React55.createElement(UiProviders, null, /* @__PURE__ */ React55.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[0] }, /* @__PURE__ */ React55.createElement(DimensionField, { side: "inset-block-start", label: __31("Top", "elementor"), rowRef: rowRefs[0] }), /* @__PURE__ */ React55.createElement(
|
|
3408
3543
|
DimensionField,
|
|
3409
3544
|
{
|
|
3410
3545
|
side: "inset-inline-end",
|
|
3411
3546
|
label: getInlineEndLabel(isSiteRtl),
|
|
3412
3547
|
rowRef: rowRefs[0]
|
|
3413
3548
|
}
|
|
3414
|
-
)), /* @__PURE__ */
|
|
3549
|
+
)), /* @__PURE__ */ React55.createElement(Stack11, { direction: "row", gap: 2, flexWrap: "nowrap", ref: rowRefs[1] }, /* @__PURE__ */ React55.createElement(DimensionField, { side: "inset-block-end", label: __31("Bottom", "elementor"), rowRef: rowRefs[1] }), /* @__PURE__ */ React55.createElement(
|
|
3415
3550
|
DimensionField,
|
|
3416
3551
|
{
|
|
3417
3552
|
side: "inset-inline-start",
|
|
@@ -3424,60 +3559,61 @@ var DimensionField = ({
|
|
|
3424
3559
|
side,
|
|
3425
3560
|
label,
|
|
3426
3561
|
rowRef
|
|
3427
|
-
}) => /* @__PURE__ */
|
|
3562
|
+
}) => /* @__PURE__ */ React55.createElement(StylesField, { bind: side, propDisplayName: label }, /* @__PURE__ */ React55.createElement(Grid3, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React55.createElement(Grid3, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(ControlLabel, null, label)), /* @__PURE__ */ React55.createElement(Grid3, { item: true, xs: 12 }, /* @__PURE__ */ React55.createElement(SizeControl4, { startIcon: sideIcons[side], extendedOptions: ["auto"], anchorRef: rowRef }))));
|
|
3428
3563
|
|
|
3429
3564
|
// src/components/style-sections/position-section/offset-field.tsx
|
|
3430
|
-
import * as
|
|
3431
|
-
import { useRef as
|
|
3432
|
-
import { SizeControl as
|
|
3433
|
-
import {
|
|
3434
|
-
|
|
3565
|
+
import * as React56 from "react";
|
|
3566
|
+
import { useRef as useRef8 } from "react";
|
|
3567
|
+
import { SizeControl as SizeControl5 } from "@elementor/editor-controls";
|
|
3568
|
+
import { __ as __32 } from "@wordpress/i18n";
|
|
3569
|
+
var OFFSET_LABEL = __32("Anchor offset", "elementor");
|
|
3570
|
+
var UNITS = ["px", "em", "rem", "vw", "vh"];
|
|
3435
3571
|
var OffsetField = () => {
|
|
3436
|
-
const rowRef =
|
|
3437
|
-
return /* @__PURE__ */
|
|
3572
|
+
const rowRef = useRef8(null);
|
|
3573
|
+
return /* @__PURE__ */ React56.createElement(StylesField, { bind: "scroll-margin-top", propDisplayName: OFFSET_LABEL }, /* @__PURE__ */ React56.createElement(StylesFieldLayout, { label: OFFSET_LABEL, ref: rowRef }, /* @__PURE__ */ React56.createElement(SizeControl5, { units: UNITS, anchorRef: rowRef })));
|
|
3438
3574
|
};
|
|
3439
3575
|
|
|
3440
3576
|
// src/components/style-sections/position-section/position-field.tsx
|
|
3441
|
-
import * as
|
|
3577
|
+
import * as React57 from "react";
|
|
3442
3578
|
import { SelectControl as SelectControl3 } from "@elementor/editor-controls";
|
|
3443
|
-
import {
|
|
3444
|
-
|
|
3579
|
+
import { __ as __33 } from "@wordpress/i18n";
|
|
3580
|
+
var POSITION_LABEL = __33("Position", "elementor");
|
|
3445
3581
|
var positionOptions = [
|
|
3446
|
-
{ label:
|
|
3447
|
-
{ label:
|
|
3448
|
-
{ label:
|
|
3449
|
-
{ label:
|
|
3450
|
-
{ label:
|
|
3582
|
+
{ label: __33("Static", "elementor"), value: "static" },
|
|
3583
|
+
{ label: __33("Relative", "elementor"), value: "relative" },
|
|
3584
|
+
{ label: __33("Absolute", "elementor"), value: "absolute" },
|
|
3585
|
+
{ label: __33("Fixed", "elementor"), value: "fixed" },
|
|
3586
|
+
{ label: __33("Sticky", "elementor"), value: "sticky" }
|
|
3451
3587
|
];
|
|
3452
3588
|
var PositionField = ({ onChange }) => {
|
|
3453
|
-
return /* @__PURE__ */
|
|
3589
|
+
return /* @__PURE__ */ React57.createElement(StylesField, { bind: "position", propDisplayName: POSITION_LABEL }, /* @__PURE__ */ React57.createElement(StylesFieldLayout, { label: POSITION_LABEL }, /* @__PURE__ */ React57.createElement(SelectControl3, { options: positionOptions, onChange })));
|
|
3454
3590
|
};
|
|
3455
3591
|
|
|
3456
3592
|
// src/components/style-sections/position-section/z-index-field.tsx
|
|
3457
|
-
import * as
|
|
3593
|
+
import * as React58 from "react";
|
|
3458
3594
|
import { NumberControl as NumberControl3 } from "@elementor/editor-controls";
|
|
3459
|
-
import {
|
|
3460
|
-
|
|
3595
|
+
import { __ as __34 } from "@wordpress/i18n";
|
|
3596
|
+
var Z_INDEX_LABEL = __34("Z-index", "elementor");
|
|
3461
3597
|
var ZIndexField = () => {
|
|
3462
|
-
return /* @__PURE__ */
|
|
3598
|
+
return /* @__PURE__ */ React58.createElement(StylesField, { bind: "z-index", propDisplayName: Z_INDEX_LABEL }, /* @__PURE__ */ React58.createElement(StylesFieldLayout, { label: Z_INDEX_LABEL }, /* @__PURE__ */ React58.createElement(NumberControl3, null)));
|
|
3463
3599
|
};
|
|
3464
3600
|
|
|
3465
3601
|
// src/components/style-sections/position-section/position-section.tsx
|
|
3466
3602
|
var PositionSection = () => {
|
|
3467
|
-
const
|
|
3468
|
-
const
|
|
3603
|
+
const { value: positionValue } = useStylesField("position");
|
|
3604
|
+
const { values: dimensions, setValues: setDimensions } = useStylesFields([
|
|
3469
3605
|
"inset-block-start",
|
|
3470
3606
|
"inset-block-end",
|
|
3471
3607
|
"inset-inline-start",
|
|
3472
3608
|
"inset-inline-end"
|
|
3473
3609
|
]);
|
|
3474
3610
|
const [dimensionsValuesFromHistory, updateDimensionsHistory, clearDimensionsHistory] = usePersistDimensions();
|
|
3475
|
-
const isCssIdFeatureActive =
|
|
3611
|
+
const isCssIdFeatureActive = isExperimentActive11("e_v_3_30");
|
|
3476
3612
|
const onPositionChange = (newPosition, previousPosition) => {
|
|
3477
3613
|
if (newPosition === "static") {
|
|
3478
|
-
if (
|
|
3479
|
-
updateDimensionsHistory(
|
|
3480
|
-
|
|
3614
|
+
if (dimensions) {
|
|
3615
|
+
updateDimensionsHistory(dimensions);
|
|
3616
|
+
setDimensions({
|
|
3481
3617
|
"inset-block-start": void 0,
|
|
3482
3618
|
"inset-block-end": void 0,
|
|
3483
3619
|
"inset-inline-start": void 0,
|
|
@@ -3486,13 +3622,13 @@ var PositionSection = () => {
|
|
|
3486
3622
|
}
|
|
3487
3623
|
} else if (previousPosition === "static") {
|
|
3488
3624
|
if (dimensionsValuesFromHistory) {
|
|
3489
|
-
|
|
3625
|
+
setDimensions(dimensionsValuesFromHistory);
|
|
3490
3626
|
clearDimensionsHistory();
|
|
3491
3627
|
}
|
|
3492
3628
|
}
|
|
3493
3629
|
};
|
|
3494
3630
|
const isNotStatic = positionValue && positionValue?.value !== "static";
|
|
3495
|
-
return /* @__PURE__ */
|
|
3631
|
+
return /* @__PURE__ */ React59.createElement(SectionContent, null, /* @__PURE__ */ React59.createElement(PositionField, { onChange: onPositionChange }), isNotStatic ? /* @__PURE__ */ React59.createElement(React59.Fragment, null, /* @__PURE__ */ React59.createElement(DimensionsField, null), /* @__PURE__ */ React59.createElement(ZIndexField, null)) : null, isCssIdFeatureActive && /* @__PURE__ */ React59.createElement(React59.Fragment, null, /* @__PURE__ */ React59.createElement(PanelDivider, null), /* @__PURE__ */ React59.createElement(OffsetField, null)));
|
|
3496
3632
|
};
|
|
3497
3633
|
var usePersistDimensions = () => {
|
|
3498
3634
|
const { id: styleDefID, meta } = useStyle();
|
|
@@ -3502,50 +3638,55 @@ var usePersistDimensions = () => {
|
|
|
3502
3638
|
};
|
|
3503
3639
|
|
|
3504
3640
|
// src/components/style-sections/size-section/size-section.tsx
|
|
3505
|
-
import * as
|
|
3506
|
-
import { useRef as
|
|
3507
|
-
import { AspectRatioControl, SizeControl as
|
|
3508
|
-
import { isExperimentActive as
|
|
3509
|
-
import { Grid as
|
|
3510
|
-
import { __ as
|
|
3641
|
+
import * as React65 from "react";
|
|
3642
|
+
import { useRef as useRef9 } from "react";
|
|
3643
|
+
import { AspectRatioControl, SizeControl as SizeControl6 } from "@elementor/editor-controls";
|
|
3644
|
+
import { isExperimentActive as isExperimentActive13 } from "@elementor/editor-v1-adapters";
|
|
3645
|
+
import { Grid as Grid4, Stack as Stack13 } from "@elementor/ui";
|
|
3646
|
+
import { __ as __39 } from "@wordpress/i18n";
|
|
3511
3647
|
|
|
3512
3648
|
// src/components/style-tab-collapsible-content.tsx
|
|
3513
|
-
import * as
|
|
3514
|
-
import { isExperimentActive as
|
|
3649
|
+
import * as React61 from "react";
|
|
3650
|
+
import { isExperimentActive as isExperimentActive12 } from "@elementor/editor-v1-adapters";
|
|
3515
3651
|
|
|
3516
3652
|
// src/styles-inheritance/components/styles-inheritance-section-indicators.tsx
|
|
3517
|
-
import * as
|
|
3518
|
-
import {
|
|
3519
|
-
import { Stack as
|
|
3520
|
-
import { __ as
|
|
3521
|
-
var orderedVariants = ["global", "local", "overridden"];
|
|
3653
|
+
import * as React60 from "react";
|
|
3654
|
+
import { isElementsStylesProvider as isElementsStylesProvider3 } from "@elementor/editor-styles-repository";
|
|
3655
|
+
import { Stack as Stack12, Tooltip as Tooltip7 } from "@elementor/ui";
|
|
3656
|
+
import { __ as __35 } from "@wordpress/i18n";
|
|
3522
3657
|
var StylesInheritanceSectionIndicators = ({ fields }) => {
|
|
3523
|
-
const { id, meta } = useStyle();
|
|
3658
|
+
const { id, meta, provider } = useStyle();
|
|
3524
3659
|
const snapshot = useStylesInheritanceSnapshot();
|
|
3525
3660
|
const snapshotFields = Object.fromEntries(
|
|
3526
3661
|
Object.entries(snapshot ?? {}).filter(([key]) => fields.includes(key))
|
|
3527
3662
|
);
|
|
3528
|
-
const
|
|
3529
|
-
if (
|
|
3663
|
+
const { hasValues, hasOverrides } = getIndicators(snapshotFields, id ?? "", meta);
|
|
3664
|
+
if (!hasValues && !hasOverrides) {
|
|
3530
3665
|
return null;
|
|
3531
3666
|
}
|
|
3532
|
-
const
|
|
3533
|
-
const
|
|
3534
|
-
return /* @__PURE__ */
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3667
|
+
const hasValueLabel = __35("Has effective styles", "elementor");
|
|
3668
|
+
const hasOverridesLabel = __35("Has overridden styles", "elementor");
|
|
3669
|
+
return /* @__PURE__ */ React60.createElement(Tooltip7, { title: __35("Has styles", "elementor"), placement: "top" }, /* @__PURE__ */ React60.createElement(Stack12, { direction: "row", sx: { "& > *": { marginInlineStart: -0.25 } }, role: "list" }, hasValues && provider && /* @__PURE__ */ React60.createElement(
|
|
3670
|
+
StyleIndicator,
|
|
3671
|
+
{
|
|
3672
|
+
getColor: getStylesProviderThemeColor(provider.getKey()),
|
|
3673
|
+
"data-variant": isElementsStylesProvider3(provider.getKey()) ? "local" : "global",
|
|
3674
|
+
role: "listitem",
|
|
3675
|
+
"aria-label": hasValueLabel
|
|
3676
|
+
}
|
|
3677
|
+
), hasOverrides && /* @__PURE__ */ React60.createElement(
|
|
3678
|
+
StyleIndicator,
|
|
3679
|
+
{
|
|
3680
|
+
isOverridden: true,
|
|
3681
|
+
"data-variant": "overridden",
|
|
3682
|
+
role: "listitem",
|
|
3683
|
+
"aria-label": hasOverridesLabel
|
|
3684
|
+
}
|
|
3545
3685
|
)));
|
|
3546
3686
|
};
|
|
3547
3687
|
function getIndicators(snapshotFields, styleId, meta) {
|
|
3548
|
-
|
|
3688
|
+
let hasValues = false;
|
|
3689
|
+
let hasOverrides = false;
|
|
3549
3690
|
Object.values(snapshotFields).forEach((inheritanceChain) => {
|
|
3550
3691
|
const currentStyle = getCurrentStyleFromChain(inheritanceChain, styleId, meta);
|
|
3551
3692
|
if (!currentStyle) {
|
|
@@ -3553,19 +3694,12 @@ function getIndicators(snapshotFields, styleId, meta) {
|
|
|
3553
3694
|
}
|
|
3554
3695
|
const [actualStyle] = inheritanceChain;
|
|
3555
3696
|
if (currentStyle === actualStyle) {
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
return;
|
|
3560
|
-
}
|
|
3561
|
-
if (providerKey !== ELEMENTS_BASE_STYLES_PROVIDER_KEY4) {
|
|
3562
|
-
indicators.global = true;
|
|
3563
|
-
}
|
|
3564
|
-
return;
|
|
3697
|
+
hasValues = true;
|
|
3698
|
+
} else {
|
|
3699
|
+
hasOverrides = true;
|
|
3565
3700
|
}
|
|
3566
|
-
indicators.overridden = true;
|
|
3567
3701
|
});
|
|
3568
|
-
return
|
|
3702
|
+
return { hasValues, hasOverrides };
|
|
3569
3703
|
}
|
|
3570
3704
|
function getCurrentStyleFromChain(chain, styleId, meta) {
|
|
3571
3705
|
return chain.find(
|
|
@@ -3580,80 +3714,69 @@ function getCurrentStyleFromChain(chain, styleId, meta) {
|
|
|
3580
3714
|
|
|
3581
3715
|
// src/components/style-tab-collapsible-content.tsx
|
|
3582
3716
|
var StyleTabCollapsibleContent = ({ fields = [], children }) => {
|
|
3583
|
-
return /* @__PURE__ */
|
|
3717
|
+
return /* @__PURE__ */ React61.createElement(CollapsibleContent, { titleEnd: getStylesInheritanceIndicators(fields) }, children);
|
|
3584
3718
|
};
|
|
3585
3719
|
function getStylesInheritanceIndicators(fields) {
|
|
3586
|
-
const isUsingFieldsIndicators =
|
|
3720
|
+
const isUsingFieldsIndicators = isExperimentActive12(EXPERIMENTAL_FEATURES.V_3_30);
|
|
3587
3721
|
if (fields.length === 0 || !isUsingFieldsIndicators) {
|
|
3588
3722
|
return null;
|
|
3589
3723
|
}
|
|
3590
|
-
return (isOpen) => !isOpen ? /* @__PURE__ */
|
|
3724
|
+
return (isOpen) => !isOpen ? /* @__PURE__ */ React61.createElement(StylesInheritanceSectionIndicators, { fields }) : null;
|
|
3591
3725
|
}
|
|
3592
3726
|
|
|
3593
3727
|
// src/components/style-sections/size-section/object-fit-field.tsx
|
|
3594
|
-
import * as
|
|
3728
|
+
import * as React62 from "react";
|
|
3595
3729
|
import { SelectControl as SelectControl4 } from "@elementor/editor-controls";
|
|
3596
|
-
import {
|
|
3597
|
-
|
|
3730
|
+
import { __ as __36 } from "@wordpress/i18n";
|
|
3731
|
+
var OBJECT_FIT_LABEL = __36("Object fit", "elementor");
|
|
3598
3732
|
var positionOptions2 = [
|
|
3599
|
-
{ label:
|
|
3600
|
-
{ label:
|
|
3601
|
-
{ label:
|
|
3602
|
-
{ label:
|
|
3603
|
-
{ label:
|
|
3733
|
+
{ label: __36("Fill", "elementor"), value: "fill" },
|
|
3734
|
+
{ label: __36("Cover", "elementor"), value: "cover" },
|
|
3735
|
+
{ label: __36("Contain", "elementor"), value: "contain" },
|
|
3736
|
+
{ label: __36("None", "elementor"), value: "none" },
|
|
3737
|
+
{ label: __36("Scale down", "elementor"), value: "scale-down" }
|
|
3604
3738
|
];
|
|
3605
3739
|
var ObjectFitField = () => {
|
|
3606
|
-
return /* @__PURE__ */
|
|
3740
|
+
return /* @__PURE__ */ React62.createElement(StylesField, { bind: "object-fit", propDisplayName: OBJECT_FIT_LABEL }, /* @__PURE__ */ React62.createElement(StylesFieldLayout, { label: OBJECT_FIT_LABEL }, /* @__PURE__ */ React62.createElement(SelectControl4, { options: positionOptions2 })));
|
|
3607
3741
|
};
|
|
3608
3742
|
|
|
3609
3743
|
// src/components/style-sections/size-section/object-position-field.tsx
|
|
3610
|
-
import * as
|
|
3611
|
-
import {
|
|
3612
|
-
import {
|
|
3613
|
-
|
|
3614
|
-
var positionOptions3 = [
|
|
3615
|
-
{ label: __33("Center center", "elementor"), value: "center center" },
|
|
3616
|
-
{ label: __33("Center left", "elementor"), value: "center left" },
|
|
3617
|
-
{ label: __33("Center right", "elementor"), value: "center right" },
|
|
3618
|
-
{ label: __33("Top center", "elementor"), value: "top center" },
|
|
3619
|
-
{ label: __33("Top left", "elementor"), value: "top left" },
|
|
3620
|
-
{ label: __33("Top right", "elementor"), value: "top right" },
|
|
3621
|
-
{ label: __33("Bottom center", "elementor"), value: "bottom center" },
|
|
3622
|
-
{ label: __33("Bottom left", "elementor"), value: "bottom left" },
|
|
3623
|
-
{ label: __33("Bottom right", "elementor"), value: "bottom right" }
|
|
3624
|
-
];
|
|
3744
|
+
import * as React63 from "react";
|
|
3745
|
+
import { PositionControl } from "@elementor/editor-controls";
|
|
3746
|
+
import { __ as __37 } from "@wordpress/i18n";
|
|
3747
|
+
var OBJECT_POSITION_LABEL = __37("Object position", "elementor");
|
|
3625
3748
|
var ObjectPositionField = () => {
|
|
3626
|
-
return /* @__PURE__ */
|
|
3749
|
+
return /* @__PURE__ */ React63.createElement(StylesField, { bind: "object-position", propDisplayName: OBJECT_POSITION_LABEL }, /* @__PURE__ */ React63.createElement(PositionControl, null));
|
|
3627
3750
|
};
|
|
3628
3751
|
|
|
3629
3752
|
// src/components/style-sections/size-section/overflow-field.tsx
|
|
3630
|
-
import * as
|
|
3753
|
+
import * as React64 from "react";
|
|
3631
3754
|
import { ToggleControl as ToggleControl8 } from "@elementor/editor-controls";
|
|
3632
3755
|
import { EyeIcon, EyeOffIcon, LetterAIcon } from "@elementor/icons";
|
|
3633
|
-
import {
|
|
3634
|
-
|
|
3756
|
+
import { __ as __38 } from "@wordpress/i18n";
|
|
3757
|
+
var OVERFLOW_LABEL = __38("Overflow", "elementor");
|
|
3635
3758
|
var options6 = [
|
|
3636
3759
|
{
|
|
3637
3760
|
value: "visible",
|
|
3638
|
-
label:
|
|
3639
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3761
|
+
label: __38("Visible", "elementor"),
|
|
3762
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(EyeIcon, { fontSize: size }),
|
|
3640
3763
|
showTooltip: true
|
|
3641
3764
|
},
|
|
3642
3765
|
{
|
|
3643
3766
|
value: "hidden",
|
|
3644
|
-
label:
|
|
3645
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3767
|
+
label: __38("Hidden", "elementor"),
|
|
3768
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(EyeOffIcon, { fontSize: size }),
|
|
3646
3769
|
showTooltip: true
|
|
3647
3770
|
},
|
|
3648
3771
|
{
|
|
3649
3772
|
value: "auto",
|
|
3650
|
-
label:
|
|
3651
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3773
|
+
label: __38("Auto", "elementor"),
|
|
3774
|
+
renderContent: ({ size }) => /* @__PURE__ */ React64.createElement(LetterAIcon, { fontSize: size }),
|
|
3652
3775
|
showTooltip: true
|
|
3653
3776
|
}
|
|
3654
3777
|
];
|
|
3655
3778
|
var OverflowField = () => {
|
|
3656
|
-
return /* @__PURE__ */
|
|
3779
|
+
return /* @__PURE__ */ React64.createElement(StylesField, { bind: "overflow", propDisplayName: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(StylesFieldLayout, { label: OVERFLOW_LABEL }, /* @__PURE__ */ React64.createElement(ToggleControl8, { options: options6 })));
|
|
3657
3780
|
};
|
|
3658
3781
|
|
|
3659
3782
|
// src/components/style-sections/size-section/size-section.tsx
|
|
@@ -3662,98 +3785,100 @@ var CssSizeProps = [
|
|
|
3662
3785
|
[
|
|
3663
3786
|
{
|
|
3664
3787
|
bind: "width",
|
|
3665
|
-
label:
|
|
3788
|
+
label: __39("Width", "elementor")
|
|
3666
3789
|
},
|
|
3667
3790
|
{
|
|
3668
3791
|
bind: "height",
|
|
3669
|
-
label:
|
|
3792
|
+
label: __39("Height", "elementor")
|
|
3670
3793
|
}
|
|
3671
3794
|
],
|
|
3672
3795
|
[
|
|
3673
3796
|
{
|
|
3674
3797
|
bind: "min-width",
|
|
3675
|
-
label:
|
|
3798
|
+
label: __39("Min width", "elementor")
|
|
3676
3799
|
},
|
|
3677
3800
|
{
|
|
3678
3801
|
bind: "min-height",
|
|
3679
|
-
label:
|
|
3802
|
+
label: __39("Min height", "elementor")
|
|
3680
3803
|
}
|
|
3681
3804
|
],
|
|
3682
3805
|
[
|
|
3683
3806
|
{
|
|
3684
3807
|
bind: "max-width",
|
|
3685
|
-
label:
|
|
3808
|
+
label: __39("Max width", "elementor")
|
|
3686
3809
|
},
|
|
3687
3810
|
{
|
|
3688
3811
|
bind: "max-height",
|
|
3689
|
-
label:
|
|
3812
|
+
label: __39("Max height", "elementor")
|
|
3690
3813
|
}
|
|
3691
3814
|
]
|
|
3692
3815
|
];
|
|
3816
|
+
var ASPECT_RATIO_LABEL = __39("Aspect Ratio", "elementor");
|
|
3693
3817
|
var SizeSection = () => {
|
|
3694
|
-
const
|
|
3818
|
+
const { value: fitValue } = useStylesField("object-fit");
|
|
3695
3819
|
const isNotFill = fitValue && fitValue?.value !== "fill";
|
|
3696
|
-
const gridRowRefs = [
|
|
3697
|
-
const isVersion330Active =
|
|
3698
|
-
return /* @__PURE__ */
|
|
3820
|
+
const gridRowRefs = [useRef9(null), useRef9(null), useRef9(null)];
|
|
3821
|
+
const isVersion330Active = isExperimentActive13(EXPERIMENT_ID);
|
|
3822
|
+
return /* @__PURE__ */ React65.createElement(SectionContent, null, CssSizeProps.map((row, rowIndex) => /* @__PURE__ */ React65.createElement(Grid4, { key: rowIndex, container: true, gap: 2, flexWrap: "nowrap", ref: gridRowRefs[rowIndex] }, row.map((props) => /* @__PURE__ */ React65.createElement(Grid4, { item: true, xs: 6, key: props.bind }, /* @__PURE__ */ React65.createElement(SizeField, { ...props, rowRef: gridRowRefs[rowIndex], extendedOptions: ["auto"] }))))), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(Stack13, null, /* @__PURE__ */ React65.createElement(OverflowField, null)), isVersion330Active && /* @__PURE__ */ React65.createElement(StyleTabCollapsibleContent, { fields: ["aspect-ratio", "object-fit"] }, /* @__PURE__ */ React65.createElement(Stack13, { gap: 2, pt: 2 }, /* @__PURE__ */ React65.createElement(StylesField, { bind: "aspect-ratio", propDisplayName: ASPECT_RATIO_LABEL }, /* @__PURE__ */ React65.createElement(AspectRatioControl, { label: ASPECT_RATIO_LABEL })), /* @__PURE__ */ React65.createElement(PanelDivider, null), /* @__PURE__ */ React65.createElement(ObjectFitField, null), isNotFill && /* @__PURE__ */ React65.createElement(Grid4, { item: true, xs: 6 }, /* @__PURE__ */ React65.createElement(ObjectPositionField, null)))));
|
|
3699
3823
|
};
|
|
3700
3824
|
var SizeField = ({ label, bind, rowRef, extendedOptions }) => {
|
|
3701
|
-
return /* @__PURE__ */
|
|
3825
|
+
return /* @__PURE__ */ React65.createElement(StylesField, { bind, propDisplayName: label }, /* @__PURE__ */ React65.createElement(Grid4, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React65.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(ControlLabel, null, label)), /* @__PURE__ */ React65.createElement(Grid4, { item: true, xs: 12 }, /* @__PURE__ */ React65.createElement(SizeControl6, { extendedOptions, anchorRef: rowRef }))));
|
|
3702
3826
|
};
|
|
3703
3827
|
|
|
3704
3828
|
// src/components/style-sections/spacing-section/spacing-section.tsx
|
|
3705
|
-
import * as
|
|
3829
|
+
import * as React66 from "react";
|
|
3706
3830
|
import { LinkedDimensionsControl } from "@elementor/editor-controls";
|
|
3707
|
-
import { __ as
|
|
3831
|
+
import { __ as __40 } from "@wordpress/i18n";
|
|
3832
|
+
var MARGIN_LABEL = __40("Margin", "elementor");
|
|
3833
|
+
var PADDING_LABEL = __40("Padding", "elementor");
|
|
3708
3834
|
var SpacingSection = () => {
|
|
3709
3835
|
const { isSiteRtl } = useDirection();
|
|
3710
|
-
return /* @__PURE__ */
|
|
3836
|
+
return /* @__PURE__ */ React66.createElement(SectionContent, null, /* @__PURE__ */ React66.createElement(StylesField, { bind: "margin", propDisplayName: MARGIN_LABEL }, /* @__PURE__ */ React66.createElement(
|
|
3711
3837
|
LinkedDimensionsControl,
|
|
3712
3838
|
{
|
|
3713
|
-
label:
|
|
3839
|
+
label: MARGIN_LABEL,
|
|
3714
3840
|
isSiteRtl,
|
|
3715
3841
|
extendedOptions: ["auto"]
|
|
3716
3842
|
}
|
|
3717
|
-
)), /* @__PURE__ */
|
|
3843
|
+
)), /* @__PURE__ */ React66.createElement(PanelDivider, null), /* @__PURE__ */ React66.createElement(StylesField, { bind: "padding", propDisplayName: PADDING_LABEL }, /* @__PURE__ */ React66.createElement(LinkedDimensionsControl, { label: PADDING_LABEL, isSiteRtl })));
|
|
3718
3844
|
};
|
|
3719
3845
|
|
|
3720
3846
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
3721
|
-
import * as
|
|
3722
|
-
import { isExperimentActive as
|
|
3847
|
+
import * as React82 from "react";
|
|
3848
|
+
import { isExperimentActive as isExperimentActive14 } from "@elementor/editor-v1-adapters";
|
|
3723
3849
|
|
|
3724
3850
|
// src/components/style-sections/typography-section/column-count-field.tsx
|
|
3725
|
-
import * as
|
|
3851
|
+
import * as React67 from "react";
|
|
3726
3852
|
import { NumberControl as NumberControl4 } from "@elementor/editor-controls";
|
|
3727
|
-
import {
|
|
3728
|
-
|
|
3853
|
+
import { __ as __41 } from "@wordpress/i18n";
|
|
3854
|
+
var COLUMN_COUNT_LABEL = __41("Columns", "elementor");
|
|
3729
3855
|
var ColumnCountField = () => {
|
|
3730
|
-
return /* @__PURE__ */
|
|
3856
|
+
return /* @__PURE__ */ React67.createElement(StylesField, { bind: "column-count", propDisplayName: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(StylesFieldLayout, { label: COLUMN_COUNT_LABEL }, /* @__PURE__ */ React67.createElement(NumberControl4, { shouldForceInt: true, min: 0, step: 1 })));
|
|
3731
3857
|
};
|
|
3732
3858
|
|
|
3733
3859
|
// src/components/style-sections/typography-section/column-gap-field.tsx
|
|
3734
|
-
import * as
|
|
3735
|
-
import { useRef as
|
|
3736
|
-
import { SizeControl as
|
|
3737
|
-
import {
|
|
3738
|
-
|
|
3860
|
+
import * as React68 from "react";
|
|
3861
|
+
import { useRef as useRef10 } from "react";
|
|
3862
|
+
import { SizeControl as SizeControl7 } from "@elementor/editor-controls";
|
|
3863
|
+
import { __ as __42 } from "@wordpress/i18n";
|
|
3864
|
+
var COLUMN_GAP_LABEL = __42("Column gap", "elementor");
|
|
3739
3865
|
var ColumnGapField = () => {
|
|
3740
|
-
const rowRef =
|
|
3741
|
-
return /* @__PURE__ */
|
|
3866
|
+
const rowRef = useRef10(null);
|
|
3867
|
+
return /* @__PURE__ */ React68.createElement(StylesField, { bind: "column-gap", propDisplayName: COLUMN_GAP_LABEL }, /* @__PURE__ */ React68.createElement(StylesFieldLayout, { label: COLUMN_GAP_LABEL, ref: rowRef }, /* @__PURE__ */ React68.createElement(SizeControl7, { anchorRef: rowRef })));
|
|
3742
3868
|
};
|
|
3743
3869
|
|
|
3744
3870
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
3745
|
-
import * as
|
|
3871
|
+
import * as React69 from "react";
|
|
3746
3872
|
import { FontFamilyControl } from "@elementor/editor-controls";
|
|
3747
|
-
import {
|
|
3748
|
-
import { __ as __40 } from "@wordpress/i18n";
|
|
3873
|
+
import { __ as __44 } from "@wordpress/i18n";
|
|
3749
3874
|
|
|
3750
3875
|
// src/components/style-sections/typography-section/hooks/use-font-families.ts
|
|
3751
|
-
import { useMemo as
|
|
3752
|
-
import { __ as
|
|
3876
|
+
import { useMemo as useMemo7 } from "react";
|
|
3877
|
+
import { __ as __43 } from "@wordpress/i18n";
|
|
3753
3878
|
var supportedCategories = {
|
|
3754
|
-
system:
|
|
3755
|
-
custom:
|
|
3756
|
-
googlefonts:
|
|
3879
|
+
system: __43("System", "elementor"),
|
|
3880
|
+
custom: __43("Custom Fonts", "elementor"),
|
|
3881
|
+
googlefonts: __43("Google Fonts", "elementor")
|
|
3757
3882
|
};
|
|
3758
3883
|
var getFontFamilies = () => {
|
|
3759
3884
|
const { controls } = getElementorConfig();
|
|
@@ -3765,7 +3890,7 @@ var getFontFamilies = () => {
|
|
|
3765
3890
|
};
|
|
3766
3891
|
var useFontFamilies = () => {
|
|
3767
3892
|
const fontFamilies = getFontFamilies();
|
|
3768
|
-
return
|
|
3893
|
+
return useMemo7(() => {
|
|
3769
3894
|
const categoriesOrder = ["system", "custom", "googlefonts"];
|
|
3770
3895
|
return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
|
|
3771
3896
|
if (!supportedCategories[category]) {
|
|
@@ -3785,199 +3910,204 @@ var useFontFamilies = () => {
|
|
|
3785
3910
|
};
|
|
3786
3911
|
|
|
3787
3912
|
// src/components/style-sections/typography-section/font-family-field.tsx
|
|
3913
|
+
var FONT_FAMILY_LABEL = __44("Font family", "elementor");
|
|
3788
3914
|
var FontFamilyField = () => {
|
|
3789
3915
|
const fontFamilies = useFontFamilies();
|
|
3916
|
+
const sectionWidth = useSectionWidth();
|
|
3790
3917
|
if (fontFamilies.length === 0) {
|
|
3791
3918
|
return null;
|
|
3792
3919
|
}
|
|
3793
|
-
return /* @__PURE__ */
|
|
3920
|
+
return /* @__PURE__ */ React69.createElement(StylesField, { bind: "font-family", propDisplayName: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(StylesFieldLayout, { label: FONT_FAMILY_LABEL }, /* @__PURE__ */ React69.createElement(FontFamilyControl, { fontFamilies, sectionWidth })));
|
|
3794
3921
|
};
|
|
3795
3922
|
|
|
3796
3923
|
// src/components/style-sections/typography-section/font-size-field.tsx
|
|
3797
|
-
import * as
|
|
3798
|
-
import { useRef as
|
|
3799
|
-
import { SizeControl as
|
|
3800
|
-
import {
|
|
3801
|
-
|
|
3924
|
+
import * as React70 from "react";
|
|
3925
|
+
import { useRef as useRef11 } from "react";
|
|
3926
|
+
import { SizeControl as SizeControl8 } from "@elementor/editor-controls";
|
|
3927
|
+
import { __ as __45 } from "@wordpress/i18n";
|
|
3928
|
+
var FONT_SIZE_LABEL = __45("Font size", "elementor");
|
|
3802
3929
|
var FontSizeField = () => {
|
|
3803
|
-
const rowRef =
|
|
3804
|
-
return /* @__PURE__ */
|
|
3930
|
+
const rowRef = useRef11(null);
|
|
3931
|
+
return /* @__PURE__ */ React70.createElement(StylesField, { bind: "font-size", propDisplayName: FONT_SIZE_LABEL }, /* @__PURE__ */ React70.createElement(StylesFieldLayout, { label: FONT_SIZE_LABEL, ref: rowRef }, /* @__PURE__ */ React70.createElement(SizeControl8, { anchorRef: rowRef })));
|
|
3805
3932
|
};
|
|
3806
3933
|
|
|
3807
3934
|
// src/components/style-sections/typography-section/font-style-field.tsx
|
|
3808
|
-
import * as
|
|
3809
|
-
import {
|
|
3935
|
+
import * as React71 from "react";
|
|
3936
|
+
import { ToggleControl as ToggleControl9 } from "@elementor/editor-controls";
|
|
3810
3937
|
import { ItalicIcon, MinusIcon as MinusIcon2 } from "@elementor/icons";
|
|
3811
|
-
import {
|
|
3812
|
-
|
|
3938
|
+
import { __ as __46 } from "@wordpress/i18n";
|
|
3939
|
+
var FONT_STYLE_LABEL = __46("Font style", "elementor");
|
|
3813
3940
|
var options7 = [
|
|
3814
3941
|
{
|
|
3815
3942
|
value: "normal",
|
|
3816
|
-
label:
|
|
3817
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3943
|
+
label: __46("Normal", "elementor"),
|
|
3944
|
+
renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(MinusIcon2, { fontSize: size }),
|
|
3818
3945
|
showTooltip: true
|
|
3819
3946
|
},
|
|
3820
3947
|
{
|
|
3821
3948
|
value: "italic",
|
|
3822
|
-
label:
|
|
3823
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
3949
|
+
label: __46("Italic", "elementor"),
|
|
3950
|
+
renderContent: ({ size }) => /* @__PURE__ */ React71.createElement(ItalicIcon, { fontSize: size }),
|
|
3824
3951
|
showTooltip: true
|
|
3825
3952
|
}
|
|
3826
3953
|
];
|
|
3827
|
-
var FontStyleField = () =>
|
|
3954
|
+
var FontStyleField = () => {
|
|
3955
|
+
return /* @__PURE__ */ React71.createElement(StylesField, { bind: "font-style", propDisplayName: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(StylesFieldLayout, { label: FONT_STYLE_LABEL }, /* @__PURE__ */ React71.createElement(ToggleControl9, { options: options7 })));
|
|
3956
|
+
};
|
|
3828
3957
|
|
|
3829
3958
|
// src/components/style-sections/typography-section/font-weight-field.tsx
|
|
3830
|
-
import * as
|
|
3831
|
-
import { SelectControl as
|
|
3832
|
-
import {
|
|
3833
|
-
|
|
3959
|
+
import * as React72 from "react";
|
|
3960
|
+
import { SelectControl as SelectControl5 } from "@elementor/editor-controls";
|
|
3961
|
+
import { __ as __47 } from "@wordpress/i18n";
|
|
3962
|
+
var FONT_WEIGHT_LABEL = __47("Font weight", "elementor");
|
|
3834
3963
|
var fontWeightOptions = [
|
|
3835
|
-
{ value: "100", label:
|
|
3836
|
-
{ value: "200", label:
|
|
3837
|
-
{ value: "300", label:
|
|
3838
|
-
{ value: "400", label:
|
|
3839
|
-
{ value: "500", label:
|
|
3840
|
-
{ value: "600", label:
|
|
3841
|
-
{ value: "700", label:
|
|
3842
|
-
{ value: "800", label:
|
|
3843
|
-
{ value: "900", label:
|
|
3964
|
+
{ value: "100", label: __47("100 - Thin", "elementor") },
|
|
3965
|
+
{ value: "200", label: __47("200 - Extra light", "elementor") },
|
|
3966
|
+
{ value: "300", label: __47("300 - Light", "elementor") },
|
|
3967
|
+
{ value: "400", label: __47("400 - Normal", "elementor") },
|
|
3968
|
+
{ value: "500", label: __47("500 - Medium", "elementor") },
|
|
3969
|
+
{ value: "600", label: __47("600 - Semi bold", "elementor") },
|
|
3970
|
+
{ value: "700", label: __47("700 - Bold", "elementor") },
|
|
3971
|
+
{ value: "800", label: __47("800 - Extra bold", "elementor") },
|
|
3972
|
+
{ value: "900", label: __47("900 - Black", "elementor") }
|
|
3844
3973
|
];
|
|
3845
3974
|
var FontWeightField = () => {
|
|
3846
|
-
return /* @__PURE__ */
|
|
3975
|
+
return /* @__PURE__ */ React72.createElement(StylesField, { bind: "font-weight", propDisplayName: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(StylesFieldLayout, { label: FONT_WEIGHT_LABEL }, /* @__PURE__ */ React72.createElement(SelectControl5, { options: fontWeightOptions })));
|
|
3847
3976
|
};
|
|
3848
3977
|
|
|
3849
3978
|
// src/components/style-sections/typography-section/letter-spacing-field.tsx
|
|
3850
|
-
import * as
|
|
3851
|
-
import { useRef as
|
|
3852
|
-
import { SizeControl as
|
|
3853
|
-
import {
|
|
3854
|
-
|
|
3979
|
+
import * as React73 from "react";
|
|
3980
|
+
import { useRef as useRef12 } from "react";
|
|
3981
|
+
import { SizeControl as SizeControl9 } from "@elementor/editor-controls";
|
|
3982
|
+
import { __ as __48 } from "@wordpress/i18n";
|
|
3983
|
+
var LETTER_SPACING_LABEL = __48("Letter spacing", "elementor");
|
|
3855
3984
|
var LetterSpacingField = () => {
|
|
3856
|
-
const rowRef =
|
|
3857
|
-
return /* @__PURE__ */
|
|
3985
|
+
const rowRef = useRef12(null);
|
|
3986
|
+
return /* @__PURE__ */ React73.createElement(StylesField, { bind: "letter-spacing", propDisplayName: LETTER_SPACING_LABEL }, /* @__PURE__ */ React73.createElement(StylesFieldLayout, { label: LETTER_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React73.createElement(SizeControl9, { anchorRef: rowRef })));
|
|
3858
3987
|
};
|
|
3859
3988
|
|
|
3860
3989
|
// src/components/style-sections/typography-section/line-height-field.tsx
|
|
3861
|
-
import * as
|
|
3862
|
-
import { useRef as
|
|
3863
|
-
import { SizeControl as
|
|
3864
|
-
import {
|
|
3865
|
-
|
|
3990
|
+
import * as React74 from "react";
|
|
3991
|
+
import { useRef as useRef13 } from "react";
|
|
3992
|
+
import { SizeControl as SizeControl10 } from "@elementor/editor-controls";
|
|
3993
|
+
import { __ as __49 } from "@wordpress/i18n";
|
|
3994
|
+
var LINE_HEIGHT_LABEL = __49("Line height", "elementor");
|
|
3866
3995
|
var LineHeightField = () => {
|
|
3867
|
-
const rowRef =
|
|
3868
|
-
return /* @__PURE__ */
|
|
3996
|
+
const rowRef = useRef13(null);
|
|
3997
|
+
return /* @__PURE__ */ React74.createElement(StylesField, { bind: "line-height", propDisplayName: LINE_HEIGHT_LABEL }, /* @__PURE__ */ React74.createElement(StylesFieldLayout, { label: LINE_HEIGHT_LABEL, ref: rowRef }, /* @__PURE__ */ React74.createElement(SizeControl10, { anchorRef: rowRef })));
|
|
3869
3998
|
};
|
|
3870
3999
|
|
|
3871
4000
|
// src/components/style-sections/typography-section/text-alignment-field.tsx
|
|
3872
|
-
import * as
|
|
4001
|
+
import * as React75 from "react";
|
|
3873
4002
|
import { ToggleControl as ToggleControl10 } from "@elementor/editor-controls";
|
|
3874
4003
|
import { AlignCenterIcon, AlignJustifiedIcon, AlignLeftIcon, AlignRightIcon } from "@elementor/icons";
|
|
3875
|
-
import {
|
|
3876
|
-
import { __ as
|
|
4004
|
+
import { withDirection as withDirection9 } from "@elementor/ui";
|
|
4005
|
+
import { __ as __50 } from "@wordpress/i18n";
|
|
4006
|
+
var TEXT_ALIGNMENT_LABEL = __50("Text align", "elementor");
|
|
3877
4007
|
var AlignStartIcon = withDirection9(AlignLeftIcon);
|
|
3878
4008
|
var AlignEndIcon = withDirection9(AlignRightIcon);
|
|
3879
4009
|
var options8 = [
|
|
3880
4010
|
{
|
|
3881
4011
|
value: "start",
|
|
3882
|
-
label:
|
|
3883
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4012
|
+
label: __50("Start", "elementor"),
|
|
4013
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignStartIcon, { fontSize: size }),
|
|
3884
4014
|
showTooltip: true
|
|
3885
4015
|
},
|
|
3886
4016
|
{
|
|
3887
4017
|
value: "center",
|
|
3888
|
-
label:
|
|
3889
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4018
|
+
label: __50("Center", "elementor"),
|
|
4019
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignCenterIcon, { fontSize: size }),
|
|
3890
4020
|
showTooltip: true
|
|
3891
4021
|
},
|
|
3892
4022
|
{
|
|
3893
4023
|
value: "end",
|
|
3894
|
-
label:
|
|
3895
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4024
|
+
label: __50("End", "elementor"),
|
|
4025
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignEndIcon, { fontSize: size }),
|
|
3896
4026
|
showTooltip: true
|
|
3897
4027
|
},
|
|
3898
4028
|
{
|
|
3899
4029
|
value: "justify",
|
|
3900
|
-
label:
|
|
3901
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4030
|
+
label: __50("Justify", "elementor"),
|
|
4031
|
+
renderContent: ({ size }) => /* @__PURE__ */ React75.createElement(AlignJustifiedIcon, { fontSize: size }),
|
|
3902
4032
|
showTooltip: true
|
|
3903
4033
|
}
|
|
3904
4034
|
];
|
|
3905
4035
|
var TextAlignmentField = () => {
|
|
3906
|
-
return /* @__PURE__ */
|
|
4036
|
+
return /* @__PURE__ */ React75.createElement(StylesField, { bind: "text-align", propDisplayName: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(UiProviders, null, /* @__PURE__ */ React75.createElement(StylesFieldLayout, { label: TEXT_ALIGNMENT_LABEL }, /* @__PURE__ */ React75.createElement(ToggleControl10, { options: options8 }))));
|
|
3907
4037
|
};
|
|
3908
4038
|
|
|
3909
4039
|
// src/components/style-sections/typography-section/text-color-field.tsx
|
|
3910
|
-
import * as
|
|
4040
|
+
import * as React76 from "react";
|
|
3911
4041
|
import { ColorControl as ColorControl2 } from "@elementor/editor-controls";
|
|
3912
|
-
import {
|
|
3913
|
-
|
|
4042
|
+
import { __ as __51 } from "@wordpress/i18n";
|
|
4043
|
+
var TEXT_COLOR_LABEL = __51("Text color", "elementor");
|
|
3914
4044
|
var TextColorField = () => {
|
|
3915
|
-
return /* @__PURE__ */
|
|
4045
|
+
return /* @__PURE__ */ React76.createElement(StylesField, { bind: "color", propDisplayName: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(StylesFieldLayout, { label: TEXT_COLOR_LABEL }, /* @__PURE__ */ React76.createElement(ColorControl2, null)));
|
|
3916
4046
|
};
|
|
3917
4047
|
|
|
3918
4048
|
// src/components/style-sections/typography-section/text-decoration-field.tsx
|
|
3919
|
-
import * as
|
|
4049
|
+
import * as React77 from "react";
|
|
3920
4050
|
import { ToggleControl as ToggleControl11 } from "@elementor/editor-controls";
|
|
3921
4051
|
import { MinusIcon as MinusIcon3, OverlineIcon, StrikethroughIcon, UnderlineIcon } from "@elementor/icons";
|
|
3922
|
-
import {
|
|
3923
|
-
|
|
4052
|
+
import { __ as __52 } from "@wordpress/i18n";
|
|
4053
|
+
var TEXT_DECORATION_LABEL = __52("Line decoration", "elementor");
|
|
3924
4054
|
var options9 = [
|
|
3925
4055
|
{
|
|
3926
4056
|
value: "none",
|
|
3927
|
-
label:
|
|
3928
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4057
|
+
label: __52("None", "elementor"),
|
|
4058
|
+
renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(MinusIcon3, { fontSize: size }),
|
|
3929
4059
|
showTooltip: true,
|
|
3930
4060
|
exclusive: true
|
|
3931
4061
|
},
|
|
3932
4062
|
{
|
|
3933
4063
|
value: "underline",
|
|
3934
|
-
label:
|
|
3935
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4064
|
+
label: __52("Underline", "elementor"),
|
|
4065
|
+
renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(UnderlineIcon, { fontSize: size }),
|
|
3936
4066
|
showTooltip: true
|
|
3937
4067
|
},
|
|
3938
4068
|
{
|
|
3939
4069
|
value: "line-through",
|
|
3940
|
-
label:
|
|
3941
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4070
|
+
label: __52("Line-through", "elementor"),
|
|
4071
|
+
renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(StrikethroughIcon, { fontSize: size }),
|
|
3942
4072
|
showTooltip: true
|
|
3943
4073
|
},
|
|
3944
4074
|
{
|
|
3945
4075
|
value: "overline",
|
|
3946
|
-
label:
|
|
3947
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4076
|
+
label: __52("Overline", "elementor"),
|
|
4077
|
+
renderContent: ({ size }) => /* @__PURE__ */ React77.createElement(OverlineIcon, { fontSize: size }),
|
|
3948
4078
|
showTooltip: true
|
|
3949
4079
|
}
|
|
3950
4080
|
];
|
|
3951
|
-
var TextDecorationField = () => /* @__PURE__ */
|
|
4081
|
+
var TextDecorationField = () => /* @__PURE__ */ React77.createElement(StylesField, { bind: "text-decoration", propDisplayName: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(StylesFieldLayout, { label: TEXT_DECORATION_LABEL }, /* @__PURE__ */ React77.createElement(ToggleControl11, { options: options9, exclusive: false })));
|
|
3952
4082
|
|
|
3953
4083
|
// src/components/style-sections/typography-section/text-direction-field.tsx
|
|
3954
|
-
import * as
|
|
4084
|
+
import * as React78 from "react";
|
|
3955
4085
|
import { ToggleControl as ToggleControl12 } from "@elementor/editor-controls";
|
|
3956
4086
|
import { TextDirectionLtrIcon, TextDirectionRtlIcon } from "@elementor/icons";
|
|
3957
|
-
import {
|
|
3958
|
-
|
|
4087
|
+
import { __ as __53 } from "@wordpress/i18n";
|
|
4088
|
+
var TEXT_DIRECTION_LABEL = __53("Direction", "elementor");
|
|
3959
4089
|
var options10 = [
|
|
3960
4090
|
{
|
|
3961
4091
|
value: "ltr",
|
|
3962
|
-
label:
|
|
3963
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4092
|
+
label: __53("Left to right", "elementor"),
|
|
4093
|
+
renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(TextDirectionLtrIcon, { fontSize: size }),
|
|
3964
4094
|
showTooltip: true
|
|
3965
4095
|
},
|
|
3966
4096
|
{
|
|
3967
4097
|
value: "rtl",
|
|
3968
|
-
label:
|
|
3969
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4098
|
+
label: __53("Right to left", "elementor"),
|
|
4099
|
+
renderContent: ({ size }) => /* @__PURE__ */ React78.createElement(TextDirectionRtlIcon, { fontSize: size }),
|
|
3970
4100
|
showTooltip: true
|
|
3971
4101
|
}
|
|
3972
4102
|
];
|
|
3973
4103
|
var TextDirectionField = () => {
|
|
3974
|
-
return /* @__PURE__ */
|
|
4104
|
+
return /* @__PURE__ */ React78.createElement(StylesField, { bind: "direction", propDisplayName: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(StylesFieldLayout, { label: TEXT_DIRECTION_LABEL }, /* @__PURE__ */ React78.createElement(ToggleControl12, { options: options10 })));
|
|
3975
4105
|
};
|
|
3976
4106
|
|
|
3977
4107
|
// src/components/style-sections/typography-section/text-stroke-field.tsx
|
|
3978
|
-
import * as
|
|
4108
|
+
import * as React79 from "react";
|
|
3979
4109
|
import { StrokeControl } from "@elementor/editor-controls";
|
|
3980
|
-
import { __ as
|
|
4110
|
+
import { __ as __54 } from "@wordpress/i18n";
|
|
3981
4111
|
var initTextStroke = {
|
|
3982
4112
|
$$type: "stroke",
|
|
3983
4113
|
value: {
|
|
@@ -3994,80 +4124,80 @@ var initTextStroke = {
|
|
|
3994
4124
|
}
|
|
3995
4125
|
}
|
|
3996
4126
|
};
|
|
4127
|
+
var TEXT_STROKE_LABEL = __54("Text stroke", "elementor");
|
|
3997
4128
|
var TextStrokeField = () => {
|
|
3998
|
-
const { canEdit } =
|
|
3999
|
-
const [textStroke, setTextStroke] = useStylesField("stroke");
|
|
4129
|
+
const { value, setValue, canEdit } = useStylesField("stroke");
|
|
4000
4130
|
const addTextStroke = () => {
|
|
4001
|
-
|
|
4131
|
+
setValue(initTextStroke);
|
|
4002
4132
|
};
|
|
4003
4133
|
const removeTextStroke = () => {
|
|
4004
|
-
|
|
4134
|
+
setValue(null);
|
|
4005
4135
|
};
|
|
4006
|
-
const hasTextStroke = Boolean(
|
|
4007
|
-
return /* @__PURE__ */
|
|
4136
|
+
const hasTextStroke = Boolean(value);
|
|
4137
|
+
return /* @__PURE__ */ React79.createElement(StylesField, { bind: "stroke", propDisplayName: TEXT_STROKE_LABEL }, /* @__PURE__ */ React79.createElement(
|
|
4008
4138
|
AddOrRemoveContent,
|
|
4009
4139
|
{
|
|
4010
4140
|
isAdded: hasTextStroke,
|
|
4011
4141
|
onAdd: addTextStroke,
|
|
4012
4142
|
onRemove: removeTextStroke,
|
|
4013
4143
|
disabled: !canEdit,
|
|
4014
|
-
renderLabel: () => /* @__PURE__ */
|
|
4144
|
+
renderLabel: () => /* @__PURE__ */ React79.createElement(ControlLabel, null, TEXT_STROKE_LABEL)
|
|
4015
4145
|
},
|
|
4016
|
-
/* @__PURE__ */
|
|
4146
|
+
/* @__PURE__ */ React79.createElement(StrokeControl, null)
|
|
4017
4147
|
));
|
|
4018
4148
|
};
|
|
4019
4149
|
|
|
4020
4150
|
// src/components/style-sections/typography-section/transform-field.tsx
|
|
4021
|
-
import * as
|
|
4151
|
+
import * as React80 from "react";
|
|
4022
4152
|
import { ToggleControl as ToggleControl13 } from "@elementor/editor-controls";
|
|
4023
4153
|
import { LetterCaseIcon, LetterCaseLowerIcon, LetterCaseUpperIcon, MinusIcon as MinusIcon4 } from "@elementor/icons";
|
|
4024
|
-
import {
|
|
4025
|
-
|
|
4154
|
+
import { __ as __55 } from "@wordpress/i18n";
|
|
4155
|
+
var TEXT_TRANSFORM_LABEL = __55("Text transform", "elementor");
|
|
4026
4156
|
var options11 = [
|
|
4027
4157
|
{
|
|
4028
4158
|
value: "none",
|
|
4029
|
-
label:
|
|
4030
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4159
|
+
label: __55("None", "elementor"),
|
|
4160
|
+
renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(MinusIcon4, { fontSize: size }),
|
|
4031
4161
|
showTooltip: true
|
|
4032
4162
|
},
|
|
4033
4163
|
{
|
|
4034
4164
|
value: "capitalize",
|
|
4035
|
-
label:
|
|
4036
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4165
|
+
label: __55("Capitalize", "elementor"),
|
|
4166
|
+
renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(LetterCaseIcon, { fontSize: size }),
|
|
4037
4167
|
showTooltip: true
|
|
4038
4168
|
},
|
|
4039
4169
|
{
|
|
4040
4170
|
value: "uppercase",
|
|
4041
|
-
label:
|
|
4042
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4171
|
+
label: __55("Uppercase", "elementor"),
|
|
4172
|
+
renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(LetterCaseUpperIcon, { fontSize: size }),
|
|
4043
4173
|
showTooltip: true
|
|
4044
4174
|
},
|
|
4045
4175
|
{
|
|
4046
4176
|
value: "lowercase",
|
|
4047
|
-
label:
|
|
4048
|
-
renderContent: ({ size }) => /* @__PURE__ */
|
|
4177
|
+
label: __55("Lowercase", "elementor"),
|
|
4178
|
+
renderContent: ({ size }) => /* @__PURE__ */ React80.createElement(LetterCaseLowerIcon, { fontSize: size }),
|
|
4049
4179
|
showTooltip: true
|
|
4050
4180
|
}
|
|
4051
4181
|
];
|
|
4052
|
-
var TransformField = () => /* @__PURE__ */
|
|
4182
|
+
var TransformField = () => /* @__PURE__ */ React80.createElement(StylesField, { bind: "text-transform", propDisplayName: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React80.createElement(StylesFieldLayout, { label: TEXT_TRANSFORM_LABEL }, /* @__PURE__ */ React80.createElement(ToggleControl13, { options: options11 })));
|
|
4053
4183
|
|
|
4054
4184
|
// src/components/style-sections/typography-section/word-spacing-field.tsx
|
|
4055
|
-
import * as
|
|
4056
|
-
import { useRef as
|
|
4057
|
-
import { SizeControl as
|
|
4058
|
-
import {
|
|
4059
|
-
|
|
4185
|
+
import * as React81 from "react";
|
|
4186
|
+
import { useRef as useRef14 } from "react";
|
|
4187
|
+
import { SizeControl as SizeControl11 } from "@elementor/editor-controls";
|
|
4188
|
+
import { __ as __56 } from "@wordpress/i18n";
|
|
4189
|
+
var WORD_SPACING_LABEL = __56("Word spacing", "elementor");
|
|
4060
4190
|
var WordSpacingField = () => {
|
|
4061
|
-
const rowRef =
|
|
4062
|
-
return /* @__PURE__ */
|
|
4191
|
+
const rowRef = useRef14(null);
|
|
4192
|
+
return /* @__PURE__ */ React81.createElement(StylesField, { bind: "word-spacing", propDisplayName: WORD_SPACING_LABEL }, /* @__PURE__ */ React81.createElement(StylesFieldLayout, { label: WORD_SPACING_LABEL, ref: rowRef }, /* @__PURE__ */ React81.createElement(SizeControl11, { anchorRef: rowRef })));
|
|
4063
4193
|
};
|
|
4064
4194
|
|
|
4065
4195
|
// src/components/style-sections/typography-section/typography-section.tsx
|
|
4066
4196
|
var TypographySection = () => {
|
|
4067
|
-
const
|
|
4068
|
-
const isVersion330Active = isExperimentActive11("e_v_3_30");
|
|
4197
|
+
const { value: columnCount } = useStylesField("column-count");
|
|
4069
4198
|
const hasMultiColumns = !!(columnCount?.value && columnCount?.value > 1);
|
|
4070
|
-
|
|
4199
|
+
const isVersion330Active = isExperimentActive14("e_v_3_30");
|
|
4200
|
+
return /* @__PURE__ */ React82.createElement(SectionContent, null, /* @__PURE__ */ React82.createElement(FontFamilyField, null), /* @__PURE__ */ React82.createElement(FontWeightField, null), /* @__PURE__ */ React82.createElement(FontSizeField, null), /* @__PURE__ */ React82.createElement(PanelDivider, null), /* @__PURE__ */ React82.createElement(TextAlignmentField, null), /* @__PURE__ */ React82.createElement(TextColorField, null), /* @__PURE__ */ React82.createElement(
|
|
4071
4201
|
StyleTabCollapsibleContent,
|
|
4072
4202
|
{
|
|
4073
4203
|
fields: [
|
|
@@ -4082,19 +4212,19 @@ var TypographySection = () => {
|
|
|
4082
4212
|
"stroke"
|
|
4083
4213
|
]
|
|
4084
4214
|
},
|
|
4085
|
-
/* @__PURE__ */
|
|
4215
|
+
/* @__PURE__ */ React82.createElement(SectionContent, { sx: { pt: 2 } }, /* @__PURE__ */ React82.createElement(LineHeightField, null), /* @__PURE__ */ React82.createElement(LetterSpacingField, null), /* @__PURE__ */ React82.createElement(WordSpacingField, null), isVersion330Active && /* @__PURE__ */ React82.createElement(React82.Fragment, null, /* @__PURE__ */ React82.createElement(ColumnCountField, null), hasMultiColumns && /* @__PURE__ */ React82.createElement(ColumnGapField, null)), /* @__PURE__ */ React82.createElement(PanelDivider, null), /* @__PURE__ */ React82.createElement(TextDecorationField, null), /* @__PURE__ */ React82.createElement(TransformField, null), /* @__PURE__ */ React82.createElement(TextDirectionField, null), /* @__PURE__ */ React82.createElement(FontStyleField, null), /* @__PURE__ */ React82.createElement(TextStrokeField, null))
|
|
4086
4216
|
));
|
|
4087
4217
|
};
|
|
4088
4218
|
|
|
4089
4219
|
// src/components/style-tab-section.tsx
|
|
4090
|
-
import * as
|
|
4091
|
-
import { isExperimentActive as
|
|
4220
|
+
import * as React83 from "react";
|
|
4221
|
+
import { isExperimentActive as isExperimentActive15 } from "@elementor/editor-v1-adapters";
|
|
4092
4222
|
var StyleTabSection = ({ section, fields = [] }) => {
|
|
4093
4223
|
const { component, name, title } = section;
|
|
4094
4224
|
const tabDefaults = useDefaultPanelSettings();
|
|
4095
4225
|
const SectionComponent = component;
|
|
4096
|
-
const isExpanded =
|
|
4097
|
-
return /* @__PURE__ */
|
|
4226
|
+
const isExpanded = isExperimentActive15(EXPERIMENTAL_FEATURES.V_3_30) ? tabDefaults.defaultSectionsExpanded.style?.includes(name) : false;
|
|
4227
|
+
return /* @__PURE__ */ React83.createElement(Section, { title, defaultExpanded: isExpanded, titleEnd: getStylesInheritanceIndicators(fields) }, /* @__PURE__ */ React83.createElement(SectionComponent, null));
|
|
4098
4228
|
};
|
|
4099
4229
|
|
|
4100
4230
|
// src/components/style-tab.tsx
|
|
@@ -4111,7 +4241,7 @@ var StyleTab = () => {
|
|
|
4111
4241
|
const [activeStyleDefId, setActiveStyleDefId] = useActiveStyleDefId(currentClassesProp);
|
|
4112
4242
|
const [activeStyleState, setActiveStyleState] = useState12(null);
|
|
4113
4243
|
const breakpoint = useActiveBreakpoint();
|
|
4114
|
-
return /* @__PURE__ */
|
|
4244
|
+
return /* @__PURE__ */ React84.createElement(ClassesPropProvider, { prop: currentClassesProp }, /* @__PURE__ */ React84.createElement(
|
|
4115
4245
|
StyleProvider,
|
|
4116
4246
|
{
|
|
4117
4247
|
meta: { breakpoint, state: activeStyleState },
|
|
@@ -4122,13 +4252,13 @@ var StyleTab = () => {
|
|
|
4122
4252
|
},
|
|
4123
4253
|
setMetaState: setActiveStyleState
|
|
4124
4254
|
},
|
|
4125
|
-
/* @__PURE__ */
|
|
4255
|
+
/* @__PURE__ */ React84.createElement(SessionStorageProvider2, { prefix: activeStyleDefId ?? "" }, /* @__PURE__ */ React84.createElement(StyleInheritanceProvider, null, /* @__PURE__ */ React84.createElement(ClassesHeader, null, /* @__PURE__ */ React84.createElement(CssClassSelector, null), /* @__PURE__ */ React84.createElement(Divider5, null)), /* @__PURE__ */ React84.createElement(SectionsList, null, /* @__PURE__ */ React84.createElement(
|
|
4126
4256
|
StyleTabSection,
|
|
4127
4257
|
{
|
|
4128
4258
|
section: {
|
|
4129
4259
|
component: LayoutSection,
|
|
4130
4260
|
name: "Layout",
|
|
4131
|
-
title:
|
|
4261
|
+
title: __57("Layout", "elementor")
|
|
4132
4262
|
},
|
|
4133
4263
|
fields: [
|
|
4134
4264
|
"display",
|
|
@@ -4141,23 +4271,23 @@ var StyleTab = () => {
|
|
|
4141
4271
|
"gap"
|
|
4142
4272
|
]
|
|
4143
4273
|
}
|
|
4144
|
-
), /* @__PURE__ */
|
|
4274
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4145
4275
|
StyleTabSection,
|
|
4146
4276
|
{
|
|
4147
4277
|
section: {
|
|
4148
4278
|
component: SpacingSection,
|
|
4149
4279
|
name: "Spacing",
|
|
4150
|
-
title:
|
|
4280
|
+
title: __57("Spacing", "elementor")
|
|
4151
4281
|
},
|
|
4152
4282
|
fields: ["margin", "padding"]
|
|
4153
4283
|
}
|
|
4154
|
-
), /* @__PURE__ */
|
|
4284
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4155
4285
|
StyleTabSection,
|
|
4156
4286
|
{
|
|
4157
4287
|
section: {
|
|
4158
4288
|
component: SizeSection,
|
|
4159
4289
|
name: "Size",
|
|
4160
|
-
title:
|
|
4290
|
+
title: __57("Size", "elementor")
|
|
4161
4291
|
},
|
|
4162
4292
|
fields: [
|
|
4163
4293
|
"width",
|
|
@@ -4171,23 +4301,23 @@ var StyleTab = () => {
|
|
|
4171
4301
|
"object-fit"
|
|
4172
4302
|
]
|
|
4173
4303
|
}
|
|
4174
|
-
), /* @__PURE__ */
|
|
4304
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4175
4305
|
StyleTabSection,
|
|
4176
4306
|
{
|
|
4177
4307
|
section: {
|
|
4178
4308
|
component: PositionSection,
|
|
4179
4309
|
name: "Position",
|
|
4180
|
-
title:
|
|
4310
|
+
title: __57("Position", "elementor")
|
|
4181
4311
|
},
|
|
4182
4312
|
fields: ["position", "z-index", "scroll-margin-top"]
|
|
4183
4313
|
}
|
|
4184
|
-
), /* @__PURE__ */
|
|
4314
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4185
4315
|
StyleTabSection,
|
|
4186
4316
|
{
|
|
4187
4317
|
section: {
|
|
4188
4318
|
component: TypographySection,
|
|
4189
4319
|
name: "Typography",
|
|
4190
|
-
title:
|
|
4320
|
+
title: __57("Typography", "elementor")
|
|
4191
4321
|
},
|
|
4192
4322
|
fields: [
|
|
4193
4323
|
"font-family",
|
|
@@ -4206,33 +4336,33 @@ var StyleTab = () => {
|
|
|
4206
4336
|
"stroke"
|
|
4207
4337
|
]
|
|
4208
4338
|
}
|
|
4209
|
-
), /* @__PURE__ */
|
|
4339
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4210
4340
|
StyleTabSection,
|
|
4211
4341
|
{
|
|
4212
4342
|
section: {
|
|
4213
4343
|
component: BackgroundSection,
|
|
4214
4344
|
name: "Background",
|
|
4215
|
-
title:
|
|
4345
|
+
title: __57("Background", "elementor")
|
|
4216
4346
|
},
|
|
4217
4347
|
fields: ["background"]
|
|
4218
4348
|
}
|
|
4219
|
-
), /* @__PURE__ */
|
|
4349
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4220
4350
|
StyleTabSection,
|
|
4221
4351
|
{
|
|
4222
4352
|
section: {
|
|
4223
4353
|
component: BorderSection,
|
|
4224
4354
|
name: "Border",
|
|
4225
|
-
title:
|
|
4355
|
+
title: __57("Border", "elementor")
|
|
4226
4356
|
},
|
|
4227
4357
|
fields: ["border-radius", "border-width", "border-color", "border-style"]
|
|
4228
4358
|
}
|
|
4229
|
-
), /* @__PURE__ */
|
|
4359
|
+
), /* @__PURE__ */ React84.createElement(
|
|
4230
4360
|
StyleTabSection,
|
|
4231
4361
|
{
|
|
4232
4362
|
section: {
|
|
4233
4363
|
component: EffectsSection,
|
|
4234
4364
|
name: "Effects",
|
|
4235
|
-
title:
|
|
4365
|
+
title: __57("Effects", "elementor")
|
|
4236
4366
|
},
|
|
4237
4367
|
fields: ["box-shadow"]
|
|
4238
4368
|
}
|
|
@@ -4241,7 +4371,7 @@ var StyleTab = () => {
|
|
|
4241
4371
|
};
|
|
4242
4372
|
function ClassesHeader({ children }) {
|
|
4243
4373
|
const scrollDirection = useScrollDirection();
|
|
4244
|
-
return /* @__PURE__ */
|
|
4374
|
+
return /* @__PURE__ */ React84.createElement(Stack14, { sx: { ...stickyHeaderStyles, top: scrollDirection === "up" ? TABS_HEADER_HEIGHT : 0 } }, children);
|
|
4245
4375
|
}
|
|
4246
4376
|
function useCurrentClassesProp() {
|
|
4247
4377
|
const { elementType } = useElement();
|
|
@@ -4260,15 +4390,15 @@ var EditingPanelTabs = () => {
|
|
|
4260
4390
|
return (
|
|
4261
4391
|
// When switching between elements, the local states should be reset. We are using key to rerender the tabs.
|
|
4262
4392
|
// Reference: https://react.dev/learn/preserving-and-resetting-state#resetting-a-form-with-a-key
|
|
4263
|
-
/* @__PURE__ */
|
|
4393
|
+
/* @__PURE__ */ React85.createElement(Fragment10, { key: element.id }, /* @__PURE__ */ React85.createElement(PanelTabContent, null))
|
|
4264
4394
|
);
|
|
4265
4395
|
};
|
|
4266
4396
|
var PanelTabContent = () => {
|
|
4267
4397
|
const editorDefaults = useDefaultPanelSettings();
|
|
4268
|
-
const defaultComponentTab =
|
|
4398
|
+
const defaultComponentTab = isExperimentActive16(EXPERIMENTAL_FEATURES.V_3_30) ? editorDefaults.defaultTab : "settings";
|
|
4269
4399
|
const [currentTab, setCurrentTab] = useStateByElement("tab", defaultComponentTab);
|
|
4270
4400
|
const { getTabProps, getTabPanelProps, getTabsProps } = useTabs(currentTab);
|
|
4271
|
-
return /* @__PURE__ */
|
|
4401
|
+
return /* @__PURE__ */ React85.createElement(ScrollProvider, null, /* @__PURE__ */ React85.createElement(Stack15, { direction: "column", sx: { width: "100%" } }, /* @__PURE__ */ React85.createElement(Stack15, { sx: { ...stickyHeaderStyles, top: 0 } }, /* @__PURE__ */ React85.createElement(
|
|
4272
4402
|
Tabs,
|
|
4273
4403
|
{
|
|
4274
4404
|
variant: "fullWidth",
|
|
@@ -4280,9 +4410,9 @@ var PanelTabContent = () => {
|
|
|
4280
4410
|
setCurrentTab(newValue);
|
|
4281
4411
|
}
|
|
4282
4412
|
},
|
|
4283
|
-
/* @__PURE__ */
|
|
4284
|
-
/* @__PURE__ */
|
|
4285
|
-
), /* @__PURE__ */
|
|
4413
|
+
/* @__PURE__ */ React85.createElement(Tab, { label: __58("General", "elementor"), ...getTabProps("settings") }),
|
|
4414
|
+
/* @__PURE__ */ React85.createElement(Tab, { label: __58("Style", "elementor"), ...getTabProps("style") })
|
|
4415
|
+
), /* @__PURE__ */ React85.createElement(Divider6, null)), /* @__PURE__ */ React85.createElement(TabPanel, { ...getTabPanelProps("settings"), disablePadding: true }, /* @__PURE__ */ React85.createElement(SettingsTab, null)), /* @__PURE__ */ React85.createElement(TabPanel, { ...getTabPanelProps("style"), disablePadding: true }, /* @__PURE__ */ React85.createElement(StyleTab, null))));
|
|
4286
4416
|
};
|
|
4287
4417
|
|
|
4288
4418
|
// src/components/editing-panel.tsx
|
|
@@ -4294,8 +4424,8 @@ var EditingPanel = () => {
|
|
|
4294
4424
|
if (!element || !elementType) {
|
|
4295
4425
|
return null;
|
|
4296
4426
|
}
|
|
4297
|
-
const panelTitle =
|
|
4298
|
-
return /* @__PURE__ */
|
|
4427
|
+
const panelTitle = __59("Edit %s", "elementor").replace("%s", elementType.title);
|
|
4428
|
+
return /* @__PURE__ */ React86.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React86.createElement(EditorPanelErrorFallback, null) }, /* @__PURE__ */ React86.createElement(SessionStorageProvider3, { prefix: "elementor" }, /* @__PURE__ */ React86.createElement(ThemeProvider2, null, /* @__PURE__ */ React86.createElement(Panel, null, /* @__PURE__ */ React86.createElement(PanelHeader, null, /* @__PURE__ */ React86.createElement(PanelHeaderTitle, null, panelTitle), /* @__PURE__ */ React86.createElement(AtomIcon, { fontSize: "small", sx: { color: "text.tertiary" } })), /* @__PURE__ */ React86.createElement(PanelBody, null, /* @__PURE__ */ React86.createElement(ControlActionsProvider, { items: menuItems }, /* @__PURE__ */ React86.createElement(ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React86.createElement(ElementProvider, { element, elementType }, /* @__PURE__ */ React86.createElement(EditingPanelTabs, null)))))))));
|
|
4299
4429
|
};
|
|
4300
4430
|
|
|
4301
4431
|
// src/panel.ts
|
|
@@ -4304,11 +4434,19 @@ var { panel, usePanelActions, usePanelStatus } = createPanel({
|
|
|
4304
4434
|
component: EditingPanel
|
|
4305
4435
|
});
|
|
4306
4436
|
|
|
4437
|
+
// src/components/popover-scrollable-content.tsx
|
|
4438
|
+
import * as React87 from "react";
|
|
4439
|
+
import { PopoverScrollableContent as BasePopoverScrollableContent } from "@elementor/editor-ui";
|
|
4440
|
+
var PopoverScrollableContent = (props) => {
|
|
4441
|
+
const sectionWidth = useSectionWidth();
|
|
4442
|
+
return /* @__PURE__ */ React87.createElement(BasePopoverScrollableContent, { ...props, width: sectionWidth });
|
|
4443
|
+
};
|
|
4444
|
+
|
|
4307
4445
|
// src/init.ts
|
|
4308
4446
|
import { injectIntoLogic } from "@elementor/editor";
|
|
4309
4447
|
import { PrefetchUserData } from "@elementor/editor-current-user";
|
|
4310
4448
|
import { __registerPanel as registerPanel } from "@elementor/editor-panels";
|
|
4311
|
-
import { blockCommand, isExperimentActive as
|
|
4449
|
+
import { blockCommand, isExperimentActive as isExperimentActive17 } from "@elementor/editor-v1-adapters";
|
|
4312
4450
|
|
|
4313
4451
|
// src/hooks/use-open-editor-panel.ts
|
|
4314
4452
|
import { useEffect as useEffect4 } from "react";
|
|
@@ -4348,7 +4486,7 @@ import { settingsTransformersRegistry, styleTransformersRegistry } from "@elemen
|
|
|
4348
4486
|
import { injectIntoRepeaterItemIcon, injectIntoRepeaterItemLabel } from "@elementor/editor-controls";
|
|
4349
4487
|
|
|
4350
4488
|
// src/dynamics/components/background-control-dynamic-tag.tsx
|
|
4351
|
-
import * as
|
|
4489
|
+
import * as React88 from "react";
|
|
4352
4490
|
import { PropKeyProvider as PropKeyProvider3, PropProvider as PropProvider3, useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
|
|
4353
4491
|
import {
|
|
4354
4492
|
backgroundImageOverlayPropTypeUtil
|
|
@@ -4356,10 +4494,10 @@ import {
|
|
|
4356
4494
|
import { DatabaseIcon } from "@elementor/icons";
|
|
4357
4495
|
|
|
4358
4496
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
4359
|
-
import { useMemo as
|
|
4497
|
+
import { useMemo as useMemo9 } from "react";
|
|
4360
4498
|
|
|
4361
4499
|
// src/dynamics/hooks/use-prop-dynamic-tags.ts
|
|
4362
|
-
import { useMemo as
|
|
4500
|
+
import { useMemo as useMemo8 } from "react";
|
|
4363
4501
|
import { useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
|
|
4364
4502
|
|
|
4365
4503
|
// src/dynamics/sync/get-elementor-config.ts
|
|
@@ -4414,7 +4552,7 @@ var usePropDynamicTags = () => {
|
|
|
4414
4552
|
const propDynamicType = getDynamicPropType(propType);
|
|
4415
4553
|
categories = propDynamicType?.settings.categories || [];
|
|
4416
4554
|
}
|
|
4417
|
-
return
|
|
4555
|
+
return useMemo8(() => getDynamicTagsByCategories(categories), [categories.join()]);
|
|
4418
4556
|
};
|
|
4419
4557
|
var getDynamicTagsByCategories = (categories) => {
|
|
4420
4558
|
const dynamicTags = getAtomicDynamicTags();
|
|
@@ -4430,41 +4568,40 @@ var getDynamicTagsByCategories = (categories) => {
|
|
|
4430
4568
|
// src/dynamics/hooks/use-dynamic-tag.ts
|
|
4431
4569
|
var useDynamicTag = (tagName) => {
|
|
4432
4570
|
const dynamicTags = usePropDynamicTags();
|
|
4433
|
-
return
|
|
4571
|
+
return useMemo9(() => dynamicTags.find((tag) => tag.name === tagName) ?? null, [dynamicTags, tagName]);
|
|
4434
4572
|
};
|
|
4435
4573
|
|
|
4436
4574
|
// src/dynamics/components/background-control-dynamic-tag.tsx
|
|
4437
|
-
var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */
|
|
4575
|
+
var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React88.createElement(DatabaseIcon, { fontSize: "tiny" });
|
|
4438
4576
|
var BackgroundControlDynamicTagLabel = ({ value }) => {
|
|
4439
4577
|
const context = useBoundProp3(backgroundImageOverlayPropTypeUtil);
|
|
4440
|
-
return /* @__PURE__ */
|
|
4578
|
+
return /* @__PURE__ */ React88.createElement(PropProvider3, { ...context, value: value.value }, /* @__PURE__ */ React88.createElement(PropKeyProvider3, { bind: "image" }, /* @__PURE__ */ React88.createElement(Wrapper, { rawValue: value.value })));
|
|
4441
4579
|
};
|
|
4442
4580
|
var Wrapper = ({ rawValue }) => {
|
|
4443
4581
|
const { propType } = useBoundProp3();
|
|
4444
4582
|
const imageOverlayPropType = propType.prop_types["background-image-overlay"];
|
|
4445
|
-
return /* @__PURE__ */
|
|
4583
|
+
return /* @__PURE__ */ React88.createElement(PropProvider3, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React88.createElement(PropKeyProvider3, { bind: "src" }, /* @__PURE__ */ React88.createElement(Content, { rawValue: rawValue.image })));
|
|
4446
4584
|
};
|
|
4447
4585
|
var Content = ({ rawValue }) => {
|
|
4448
4586
|
const src = rawValue.value.src;
|
|
4449
4587
|
const dynamicTag = useDynamicTag(src.value.name || "");
|
|
4450
|
-
return /* @__PURE__ */
|
|
4588
|
+
return /* @__PURE__ */ React88.createElement(React88.Fragment, null, dynamicTag?.label);
|
|
4451
4589
|
};
|
|
4452
4590
|
|
|
4453
4591
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
4454
|
-
import * as
|
|
4455
|
-
import { ControlFormLabel as
|
|
4456
|
-
import { PopoverHeader as
|
|
4592
|
+
import * as React91 from "react";
|
|
4593
|
+
import { ControlFormLabel as ControlFormLabel5, useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
|
|
4594
|
+
import { PopoverHeader as PopoverHeader3, PopoverScrollableContent as PopoverScrollableContent2 } from "@elementor/editor-ui";
|
|
4457
4595
|
import { DatabaseIcon as DatabaseIcon3, SettingsIcon, XIcon } from "@elementor/icons";
|
|
4458
4596
|
import {
|
|
4459
4597
|
bindPopover as bindPopover2,
|
|
4460
4598
|
bindTrigger as bindTrigger2,
|
|
4461
4599
|
Box as Box8,
|
|
4462
4600
|
Divider as Divider8,
|
|
4463
|
-
Grid as
|
|
4601
|
+
Grid as Grid5,
|
|
4464
4602
|
IconButton as IconButton5,
|
|
4465
|
-
Paper,
|
|
4466
4603
|
Popover as Popover2,
|
|
4467
|
-
Stack as
|
|
4604
|
+
Stack as Stack17,
|
|
4468
4605
|
Tab as Tab2,
|
|
4469
4606
|
TabPanel as TabPanel2,
|
|
4470
4607
|
Tabs as Tabs2,
|
|
@@ -4472,12 +4609,7 @@ import {
|
|
|
4472
4609
|
usePopupState as usePopupState3,
|
|
4473
4610
|
useTabs as useTabs2
|
|
4474
4611
|
} from "@elementor/ui";
|
|
4475
|
-
import { __ as
|
|
4476
|
-
|
|
4477
|
-
// src/components/popover-content.tsx
|
|
4478
|
-
import * as React86 from "react";
|
|
4479
|
-
import { Stack as Stack19 } from "@elementor/ui";
|
|
4480
|
-
var PopoverContent = ({ alignItems, gap = 1.5, p, children }) => /* @__PURE__ */ React86.createElement(Stack19, { alignItems, gap, p }, children);
|
|
4612
|
+
import { __ as __61 } from "@wordpress/i18n";
|
|
4481
4613
|
|
|
4482
4614
|
// src/hooks/use-persist-dynamic-value.ts
|
|
4483
4615
|
import { useSessionStorage as useSessionStorage2 } from "@elementor/session";
|
|
@@ -4488,7 +4620,7 @@ var usePersistDynamicValue = (propKey) => {
|
|
|
4488
4620
|
};
|
|
4489
4621
|
|
|
4490
4622
|
// src/dynamics/dynamic-control.tsx
|
|
4491
|
-
import * as
|
|
4623
|
+
import * as React89 from "react";
|
|
4492
4624
|
import { PropKeyProvider as PropKeyProvider4, PropProvider as PropProvider4, useBoundProp as useBoundProp4 } from "@elementor/editor-controls";
|
|
4493
4625
|
var DynamicControl = ({ bind, children }) => {
|
|
4494
4626
|
const { value, setValue } = useBoundProp4(dynamicPropTypeUtil);
|
|
@@ -4510,82 +4642,79 @@ var DynamicControl = ({ bind, children }) => {
|
|
|
4510
4642
|
});
|
|
4511
4643
|
};
|
|
4512
4644
|
const propType = createTopLevelOjectType({ schema: dynamicTag.props_schema });
|
|
4513
|
-
return /* @__PURE__ */
|
|
4645
|
+
return /* @__PURE__ */ React89.createElement(PropProvider4, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React89.createElement(PropKeyProvider4, { bind }, children));
|
|
4514
4646
|
};
|
|
4515
4647
|
|
|
4516
4648
|
// src/dynamics/components/dynamic-selection.tsx
|
|
4517
|
-
import
|
|
4518
|
-
import
|
|
4649
|
+
import { Fragment as Fragment12, useState as useState13 } from "react";
|
|
4650
|
+
import * as React90 from "react";
|
|
4519
4651
|
import { useBoundProp as useBoundProp5 } from "@elementor/editor-controls";
|
|
4520
|
-
import {
|
|
4521
|
-
import {
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
MenuItem,
|
|
4527
|
-
MenuList,
|
|
4528
|
-
MenuSubheader as MenuSubheader2,
|
|
4529
|
-
Stack as Stack20,
|
|
4530
|
-
TextField as TextField2,
|
|
4531
|
-
Typography as Typography6
|
|
4532
|
-
} from "@elementor/ui";
|
|
4533
|
-
import { __ as __56 } from "@wordpress/i18n";
|
|
4534
|
-
var SIZE7 = "tiny";
|
|
4535
|
-
var DynamicSelection = ({ onSelect }) => {
|
|
4652
|
+
import { PopoverHeader as PopoverHeader2, PopoverMenuList, PopoverSearch } from "@elementor/editor-ui";
|
|
4653
|
+
import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
|
|
4654
|
+
import { Box as Box7, Divider as Divider7, Link as Link2, Stack as Stack16, Typography as Typography5, useTheme as useTheme3 } from "@elementor/ui";
|
|
4655
|
+
import { __ as __60 } from "@wordpress/i18n";
|
|
4656
|
+
var SIZE6 = "tiny";
|
|
4657
|
+
var DynamicSelection = ({ close: closePopover }) => {
|
|
4536
4658
|
const [searchValue, setSearchValue] = useState13("");
|
|
4537
4659
|
const { groups: dynamicGroups } = getAtomicDynamicTags() || {};
|
|
4660
|
+
const theme = useTheme3();
|
|
4538
4661
|
const { value: anyValue } = useBoundProp5();
|
|
4539
4662
|
const { bind, value: dynamicValue, setValue } = useBoundProp5(dynamicPropTypeUtil);
|
|
4540
4663
|
const [, updatePropValueHistory] = usePersistDynamicValue(bind);
|
|
4541
4664
|
const isCurrentValueDynamic = !!dynamicValue;
|
|
4542
4665
|
const options12 = useFilteredOptions(searchValue);
|
|
4543
4666
|
const hasNoDynamicTags = !options12.length && !searchValue.trim();
|
|
4544
|
-
const handleSearch = (
|
|
4545
|
-
setSearchValue(
|
|
4667
|
+
const handleSearch = (value) => {
|
|
4668
|
+
setSearchValue(value);
|
|
4546
4669
|
};
|
|
4547
|
-
const handleSetDynamicTag = (value
|
|
4670
|
+
const handleSetDynamicTag = (value) => {
|
|
4548
4671
|
if (!isCurrentValueDynamic) {
|
|
4549
4672
|
updatePropValueHistory(anyValue);
|
|
4550
4673
|
}
|
|
4551
|
-
|
|
4552
|
-
|
|
4674
|
+
const selectedOption = options12.flatMap(([, items3]) => items3).find((item) => item.value === value);
|
|
4675
|
+
setValue({ name: value, settings: { label: selectedOption?.label } });
|
|
4676
|
+
closePopover();
|
|
4553
4677
|
};
|
|
4554
|
-
|
|
4555
|
-
|
|
4678
|
+
const virtualizedItems = options12.flatMap(([category, items3]) => [
|
|
4679
|
+
{
|
|
4680
|
+
type: "category",
|
|
4681
|
+
value: category,
|
|
4682
|
+
label: dynamicGroups?.[category]?.title || category
|
|
4683
|
+
},
|
|
4684
|
+
...items3.map((item) => ({
|
|
4685
|
+
type: "item",
|
|
4686
|
+
value: item.value,
|
|
4687
|
+
label: item.label
|
|
4688
|
+
}))
|
|
4689
|
+
]);
|
|
4690
|
+
return /* @__PURE__ */ React90.createElement(React90.Fragment, null, /* @__PURE__ */ React90.createElement(
|
|
4691
|
+
PopoverHeader2,
|
|
4692
|
+
{
|
|
4693
|
+
title: __60("Dynamic tags", "elementor"),
|
|
4694
|
+
onClose: closePopover,
|
|
4695
|
+
icon: /* @__PURE__ */ React90.createElement(DatabaseIcon2, { fontSize: SIZE6 })
|
|
4696
|
+
}
|
|
4697
|
+
), /* @__PURE__ */ React90.createElement(Stack16, null, hasNoDynamicTags ? /* @__PURE__ */ React90.createElement(NoDynamicTags, null) : /* @__PURE__ */ React90.createElement(Fragment12, null, /* @__PURE__ */ React90.createElement(
|
|
4698
|
+
PopoverSearch,
|
|
4556
4699
|
{
|
|
4557
|
-
fullWidth: true,
|
|
4558
|
-
size: SIZE7,
|
|
4559
4700
|
value: searchValue,
|
|
4560
|
-
|
|
4561
|
-
placeholder:
|
|
4562
|
-
InputProps: {
|
|
4563
|
-
startAdornment: /* @__PURE__ */ React88.createElement(InputAdornment, { position: "start" }, /* @__PURE__ */ React88.createElement(SearchIcon, { fontSize: SIZE7 }))
|
|
4564
|
-
}
|
|
4701
|
+
onSearch: handleSearch,
|
|
4702
|
+
placeholder: __60("Search dynamic tags\u2026", "elementor")
|
|
4565
4703
|
}
|
|
4566
|
-
)
|
|
4567
|
-
|
|
4704
|
+
), /* @__PURE__ */ React90.createElement(Divider7, null), /* @__PURE__ */ React90.createElement(PopoverScrollableContent, null, /* @__PURE__ */ React90.createElement(
|
|
4705
|
+
PopoverMenuList,
|
|
4568
4706
|
{
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
key: value,
|
|
4578
|
-
selected: isSelected,
|
|
4579
|
-
autoFocus: isSelected,
|
|
4580
|
-
sx: { px: 3.5, typography: "caption" },
|
|
4581
|
-
onClick: () => handleSetDynamicTag(value, tagLabel)
|
|
4582
|
-
},
|
|
4583
|
-
tagLabel
|
|
4584
|
-
);
|
|
4585
|
-
})))) : /* @__PURE__ */ React88.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") }))));
|
|
4707
|
+
items: virtualizedItems,
|
|
4708
|
+
onSelect: handleSetDynamicTag,
|
|
4709
|
+
onClose: closePopover,
|
|
4710
|
+
selectedValue: dynamicValue?.name,
|
|
4711
|
+
itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
|
|
4712
|
+
noResultsComponent: /* @__PURE__ */ React90.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
|
|
4713
|
+
}
|
|
4714
|
+
)))));
|
|
4586
4715
|
};
|
|
4587
|
-
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */
|
|
4588
|
-
|
|
4716
|
+
var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React90.createElement(
|
|
4717
|
+
Stack16,
|
|
4589
4718
|
{
|
|
4590
4719
|
gap: 1,
|
|
4591
4720
|
alignItems: "center",
|
|
@@ -4595,12 +4724,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React88.createElem
|
|
|
4595
4724
|
color: "text.secondary",
|
|
4596
4725
|
sx: { pb: 3.5 }
|
|
4597
4726
|
},
|
|
4598
|
-
/* @__PURE__ */
|
|
4599
|
-
/* @__PURE__ */
|
|
4600
|
-
/* @__PURE__ */
|
|
4727
|
+
/* @__PURE__ */ React90.createElement(DatabaseIcon2, { fontSize: "large" }),
|
|
4728
|
+
/* @__PURE__ */ React90.createElement(Typography5, { align: "center", variant: "subtitle2" }, __60("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React90.createElement("br", null), "\u201C", searchValue, "\u201D."),
|
|
4729
|
+
/* @__PURE__ */ React90.createElement(Typography5, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __60("Try something else.", "elementor"), /* @__PURE__ */ React90.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __60("Clear & try again", "elementor")))
|
|
4601
4730
|
);
|
|
4602
|
-
var NoDynamicTags = () => /* @__PURE__ */
|
|
4603
|
-
|
|
4731
|
+
var NoDynamicTags = () => /* @__PURE__ */ React90.createElement(Box7, { sx: { overflowY: "hidden", height: 297, width: 220 } }, /* @__PURE__ */ React90.createElement(Divider7, null), /* @__PURE__ */ React90.createElement(
|
|
4732
|
+
Stack16,
|
|
4604
4733
|
{
|
|
4605
4734
|
gap: 1,
|
|
4606
4735
|
alignItems: "center",
|
|
@@ -4610,9 +4739,9 @@ var NoDynamicTags = () => /* @__PURE__ */ React88.createElement(Box7, { sx: { ov
|
|
|
4610
4739
|
color: "text.secondary",
|
|
4611
4740
|
sx: { pb: 3.5 }
|
|
4612
4741
|
},
|
|
4613
|
-
/* @__PURE__ */
|
|
4614
|
-
/* @__PURE__ */
|
|
4615
|
-
/* @__PURE__ */
|
|
4742
|
+
/* @__PURE__ */ React90.createElement(DatabaseIcon2, { fontSize: "large" }),
|
|
4743
|
+
/* @__PURE__ */ React90.createElement(Typography5, { align: "center", variant: "subtitle2" }, __60("Streamline your workflow with dynamic tags", "elementor")),
|
|
4744
|
+
/* @__PURE__ */ React90.createElement(Typography5, { align: "center", variant: "caption" }, __60("You'll need Elementor Pro to use this feature.", "elementor"))
|
|
4616
4745
|
));
|
|
4617
4746
|
var useFilteredOptions = (searchValue) => {
|
|
4618
4747
|
const dynamicTags = usePropDynamicTags();
|
|
@@ -4631,7 +4760,7 @@ var useFilteredOptions = (searchValue) => {
|
|
|
4631
4760
|
};
|
|
4632
4761
|
|
|
4633
4762
|
// src/dynamics/components/dynamic-selection-control.tsx
|
|
4634
|
-
var
|
|
4763
|
+
var SIZE7 = "tiny";
|
|
4635
4764
|
var DynamicSelectionControl = () => {
|
|
4636
4765
|
const { setValue: setAnyValue } = useBoundProp6();
|
|
4637
4766
|
const { bind, value } = useBoundProp6(dynamicPropTypeUtil);
|
|
@@ -4645,40 +4774,37 @@ var DynamicSelectionControl = () => {
|
|
|
4645
4774
|
if (!dynamicTag) {
|
|
4646
4775
|
throw new Error(`Dynamic tag ${tagName} not found`);
|
|
4647
4776
|
}
|
|
4648
|
-
return /* @__PURE__ */
|
|
4777
|
+
return /* @__PURE__ */ React91.createElement(Box8, null, /* @__PURE__ */ React91.createElement(
|
|
4649
4778
|
Tag,
|
|
4650
4779
|
{
|
|
4651
4780
|
fullWidth: true,
|
|
4652
4781
|
showActionsOnHover: true,
|
|
4653
4782
|
label: dynamicTag.label,
|
|
4654
|
-
startIcon: /* @__PURE__ */
|
|
4783
|
+
startIcon: /* @__PURE__ */ React91.createElement(DatabaseIcon3, { fontSize: SIZE7 }),
|
|
4655
4784
|
...bindTrigger2(selectionPopoverState),
|
|
4656
|
-
actions: /* @__PURE__ */
|
|
4785
|
+
actions: /* @__PURE__ */ React91.createElement(React91.Fragment, null, /* @__PURE__ */ React91.createElement(DynamicSettingsPopover, { dynamicTag }), /* @__PURE__ */ React91.createElement(
|
|
4657
4786
|
IconButton5,
|
|
4658
4787
|
{
|
|
4659
|
-
size:
|
|
4788
|
+
size: SIZE7,
|
|
4660
4789
|
onClick: removeDynamicTag,
|
|
4661
|
-
"aria-label":
|
|
4790
|
+
"aria-label": __61("Remove dynamic value", "elementor")
|
|
4662
4791
|
},
|
|
4663
|
-
/* @__PURE__ */
|
|
4792
|
+
/* @__PURE__ */ React91.createElement(XIcon, { fontSize: SIZE7 })
|
|
4664
4793
|
))
|
|
4665
4794
|
}
|
|
4666
|
-
), /* @__PURE__ */
|
|
4795
|
+
), /* @__PURE__ */ React91.createElement(
|
|
4667
4796
|
Popover2,
|
|
4668
4797
|
{
|
|
4669
4798
|
disablePortal: true,
|
|
4670
4799
|
disableScrollLock: true,
|
|
4671
|
-
anchorOrigin: { vertical: "bottom", horizontal: "
|
|
4800
|
+
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
4801
|
+
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
4802
|
+
PaperProps: {
|
|
4803
|
+
sx: { my: 1 }
|
|
4804
|
+
},
|
|
4672
4805
|
...bindPopover2(selectionPopoverState)
|
|
4673
4806
|
},
|
|
4674
|
-
/* @__PURE__ */
|
|
4675
|
-
PopoverHeader2,
|
|
4676
|
-
{
|
|
4677
|
-
title: __57("Dynamic tags", "elementor"),
|
|
4678
|
-
onClose: selectionPopoverState.close,
|
|
4679
|
-
icon: /* @__PURE__ */ React89.createElement(DatabaseIcon3, { fontSize: SIZE8 })
|
|
4680
|
-
}
|
|
4681
|
-
), /* @__PURE__ */ React89.createElement(DynamicSelection, { onSelect: selectionPopoverState.close }))
|
|
4807
|
+
/* @__PURE__ */ React91.createElement(Stack17, null, /* @__PURE__ */ React91.createElement(DynamicSelection, { close: selectionPopoverState.close }))
|
|
4682
4808
|
));
|
|
4683
4809
|
};
|
|
4684
4810
|
var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
@@ -4687,22 +4813,26 @@ var DynamicSettingsPopover = ({ dynamicTag }) => {
|
|
|
4687
4813
|
if (!hasDynamicSettings) {
|
|
4688
4814
|
return null;
|
|
4689
4815
|
}
|
|
4690
|
-
return /* @__PURE__ */
|
|
4816
|
+
return /* @__PURE__ */ React91.createElement(React91.Fragment, null, /* @__PURE__ */ React91.createElement(IconButton5, { size: SIZE7, ...bindTrigger2(popupState), "aria-label": __61("Settings", "elementor") }, /* @__PURE__ */ React91.createElement(SettingsIcon, { fontSize: SIZE7 })), /* @__PURE__ */ React91.createElement(
|
|
4691
4817
|
Popover2,
|
|
4692
4818
|
{
|
|
4693
4819
|
disablePortal: true,
|
|
4694
4820
|
disableScrollLock: true,
|
|
4695
4821
|
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
4822
|
+
PaperProps: {
|
|
4823
|
+
sx: { my: 0.5 }
|
|
4824
|
+
},
|
|
4696
4825
|
...bindPopover2(popupState)
|
|
4697
4826
|
},
|
|
4698
|
-
/* @__PURE__ */
|
|
4699
|
-
|
|
4827
|
+
/* @__PURE__ */ React91.createElement(
|
|
4828
|
+
PopoverHeader3,
|
|
4700
4829
|
{
|
|
4701
4830
|
title: dynamicTag.label,
|
|
4702
4831
|
onClose: popupState.close,
|
|
4703
|
-
icon: /* @__PURE__ */
|
|
4832
|
+
icon: /* @__PURE__ */ React91.createElement(DatabaseIcon3, { fontSize: SIZE7 })
|
|
4704
4833
|
}
|
|
4705
|
-
),
|
|
4834
|
+
),
|
|
4835
|
+
/* @__PURE__ */ React91.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls })
|
|
4706
4836
|
));
|
|
4707
4837
|
};
|
|
4708
4838
|
var DynamicSettings = ({ controls }) => {
|
|
@@ -4711,10 +4841,10 @@ var DynamicSettings = ({ controls }) => {
|
|
|
4711
4841
|
if (!tabs.length) {
|
|
4712
4842
|
return null;
|
|
4713
4843
|
}
|
|
4714
|
-
return /* @__PURE__ */
|
|
4715
|
-
return /* @__PURE__ */
|
|
4844
|
+
return /* @__PURE__ */ React91.createElement(PopoverScrollableContent2, null, /* @__PURE__ */ React91.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React91.createElement(Tab2, { key: index, label: value.label, sx: { px: 1, py: 0.5 }, ...getTabProps(index) }))), /* @__PURE__ */ React91.createElement(Divider8, null), tabs.map(({ value }, index) => {
|
|
4845
|
+
return /* @__PURE__ */ React91.createElement(TabPanel2, { key: index, sx: { flexGrow: 1, py: 0 }, ...getTabPanelProps(index) }, /* @__PURE__ */ React91.createElement(Stack17, { p: 2, gap: 2 }, value.items.map((item) => {
|
|
4716
4846
|
if (item.type === "control") {
|
|
4717
|
-
return /* @__PURE__ */
|
|
4847
|
+
return /* @__PURE__ */ React91.createElement(Control3, { key: item.value.bind, control: item.value });
|
|
4718
4848
|
}
|
|
4719
4849
|
return null;
|
|
4720
4850
|
})));
|
|
@@ -4724,7 +4854,7 @@ var Control3 = ({ control }) => {
|
|
|
4724
4854
|
if (!getControl(control.type)) {
|
|
4725
4855
|
return null;
|
|
4726
4856
|
}
|
|
4727
|
-
return /* @__PURE__ */
|
|
4857
|
+
return /* @__PURE__ */ React91.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React91.createElement(Grid5, { container: true, gap: 0.75 }, control.label ? /* @__PURE__ */ React91.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React91.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React91.createElement(Grid5, { item: true, xs: 12 }, /* @__PURE__ */ React91.createElement(Control, { type: control.type, props: control.props }))));
|
|
4728
4858
|
};
|
|
4729
4859
|
|
|
4730
4860
|
// src/dynamics/dynamic-transformer.ts
|
|
@@ -4777,18 +4907,18 @@ function getDynamicValue(name, settings) {
|
|
|
4777
4907
|
}
|
|
4778
4908
|
|
|
4779
4909
|
// src/dynamics/hooks/use-prop-dynamic-action.tsx
|
|
4780
|
-
import * as
|
|
4910
|
+
import * as React92 from "react";
|
|
4781
4911
|
import { useBoundProp as useBoundProp7 } from "@elementor/editor-controls";
|
|
4782
4912
|
import { DatabaseIcon as DatabaseIcon4 } from "@elementor/icons";
|
|
4783
|
-
import { __ as
|
|
4913
|
+
import { __ as __62 } from "@wordpress/i18n";
|
|
4784
4914
|
var usePropDynamicAction = () => {
|
|
4785
4915
|
const { propType } = useBoundProp7();
|
|
4786
4916
|
const visible = !!propType && supportsDynamic(propType);
|
|
4787
4917
|
return {
|
|
4788
4918
|
visible,
|
|
4789
4919
|
icon: DatabaseIcon4,
|
|
4790
|
-
title:
|
|
4791
|
-
|
|
4920
|
+
title: __62("Dynamic tags", "elementor"),
|
|
4921
|
+
content: ({ close }) => /* @__PURE__ */ React92.createElement(DynamicSelection, { close })
|
|
4792
4922
|
};
|
|
4793
4923
|
};
|
|
4794
4924
|
|
|
@@ -4820,7 +4950,7 @@ var init = () => {
|
|
|
4820
4950
|
// src/reset-style-props.tsx
|
|
4821
4951
|
import { useBoundProp as useBoundProp8 } from "@elementor/editor-controls";
|
|
4822
4952
|
import { BrushBigIcon } from "@elementor/icons";
|
|
4823
|
-
import { __ as
|
|
4953
|
+
import { __ as __63 } from "@wordpress/i18n";
|
|
4824
4954
|
var { registerAction } = controlActionsMenu;
|
|
4825
4955
|
function initResetStyleProps() {
|
|
4826
4956
|
registerAction({
|
|
@@ -4834,7 +4964,7 @@ function useResetStyleValueProps() {
|
|
|
4834
4964
|
const { value, setValue, path, bind } = useBoundProp8();
|
|
4835
4965
|
return {
|
|
4836
4966
|
visible: isStyle && value !== null && value !== void 0 && path.length <= 2 && !EXCLUDED_BINDS.includes(bind),
|
|
4837
|
-
title:
|
|
4967
|
+
title: __63("Clear", "elementor"),
|
|
4838
4968
|
icon: BrushBigIcon,
|
|
4839
4969
|
onClick: () => setValue(null)
|
|
4840
4970
|
};
|
|
@@ -4844,36 +4974,36 @@ function useResetStyleValueProps() {
|
|
|
4844
4974
|
import { createTransformer as createTransformer6, styleTransformersRegistry as styleTransformersRegistry2 } from "@elementor/editor-canvas";
|
|
4845
4975
|
|
|
4846
4976
|
// src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
|
|
4847
|
-
import * as
|
|
4977
|
+
import * as React93 from "react";
|
|
4848
4978
|
import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
|
|
4849
|
-
import { Stack as
|
|
4850
|
-
var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */
|
|
4979
|
+
import { Stack as Stack18, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
|
|
4980
|
+
var backgroundColorOverlayTransformer = createTransformer2((value) => /* @__PURE__ */ React93.createElement(Stack18, { direction: "row", gap: 10 }, /* @__PURE__ */ React93.createElement(ItemIconColor, { value }), /* @__PURE__ */ React93.createElement(ItemLabelColor, { value })));
|
|
4851
4981
|
var ItemIconColor = ({ value }) => {
|
|
4852
4982
|
const { color } = value;
|
|
4853
|
-
return /* @__PURE__ */
|
|
4983
|
+
return /* @__PURE__ */ React93.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: color });
|
|
4854
4984
|
};
|
|
4855
4985
|
var ItemLabelColor = ({ value: { color } }) => {
|
|
4856
|
-
return /* @__PURE__ */
|
|
4986
|
+
return /* @__PURE__ */ React93.createElement("span", null, color);
|
|
4857
4987
|
};
|
|
4858
4988
|
var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) => ({
|
|
4859
4989
|
borderRadius: `${theme.shape.borderRadius / 2}px`
|
|
4860
4990
|
}));
|
|
4861
4991
|
|
|
4862
4992
|
// src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
|
|
4863
|
-
import * as
|
|
4993
|
+
import * as React94 from "react";
|
|
4864
4994
|
import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
|
|
4865
|
-
import { Stack as
|
|
4866
|
-
import { __ as
|
|
4867
|
-
var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */
|
|
4995
|
+
import { Stack as Stack19 } from "@elementor/ui";
|
|
4996
|
+
import { __ as __64 } from "@wordpress/i18n";
|
|
4997
|
+
var backgroundGradientOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React94.createElement(Stack19, { direction: "row", gap: 10 }, /* @__PURE__ */ React94.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React94.createElement(ItemLabelGradient, { value })));
|
|
4868
4998
|
var ItemIconGradient = ({ value }) => {
|
|
4869
4999
|
const gradient = getGradientValue(value);
|
|
4870
|
-
return /* @__PURE__ */
|
|
5000
|
+
return /* @__PURE__ */ React94.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
|
|
4871
5001
|
};
|
|
4872
5002
|
var ItemLabelGradient = ({ value }) => {
|
|
4873
5003
|
if (value.type === "linear") {
|
|
4874
|
-
return /* @__PURE__ */
|
|
5004
|
+
return /* @__PURE__ */ React94.createElement("span", null, __64("Linear Gradient", "elementor"));
|
|
4875
5005
|
}
|
|
4876
|
-
return /* @__PURE__ */
|
|
5006
|
+
return /* @__PURE__ */ React94.createElement("span", null, __64("Radial Gradient", "elementor"));
|
|
4877
5007
|
};
|
|
4878
5008
|
var getGradientValue = (gradient) => {
|
|
4879
5009
|
const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
|
|
@@ -4884,15 +5014,15 @@ var getGradientValue = (gradient) => {
|
|
|
4884
5014
|
};
|
|
4885
5015
|
|
|
4886
5016
|
// src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
|
|
4887
|
-
import * as
|
|
5017
|
+
import * as React95 from "react";
|
|
4888
5018
|
import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
|
|
4889
5019
|
import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
|
|
4890
|
-
import { CardMedia, Stack as
|
|
5020
|
+
import { CardMedia, Stack as Stack20 } from "@elementor/ui";
|
|
4891
5021
|
import { useWpMediaAttachment } from "@elementor/wp-media";
|
|
4892
|
-
var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */
|
|
5022
|
+
var backgroundImageOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React95.createElement(Stack20, { direction: "row", gap: 10 }, /* @__PURE__ */ React95.createElement(ItemIconImage, { value }), /* @__PURE__ */ React95.createElement(ItemLabelImage, { value })));
|
|
4893
5023
|
var ItemIconImage = ({ value }) => {
|
|
4894
5024
|
const { imageUrl } = useImage(value);
|
|
4895
|
-
return /* @__PURE__ */
|
|
5025
|
+
return /* @__PURE__ */ React95.createElement(
|
|
4896
5026
|
CardMedia,
|
|
4897
5027
|
{
|
|
4898
5028
|
image: imageUrl,
|
|
@@ -4907,7 +5037,7 @@ var ItemIconImage = ({ value }) => {
|
|
|
4907
5037
|
};
|
|
4908
5038
|
var ItemLabelImage = ({ value }) => {
|
|
4909
5039
|
const { imageTitle } = useImage(value);
|
|
4910
|
-
return /* @__PURE__ */
|
|
5040
|
+
return /* @__PURE__ */ React95.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React95.createElement("span", null, imageTitle));
|
|
4911
5041
|
};
|
|
4912
5042
|
var useImage = (image) => {
|
|
4913
5043
|
let imageTitle, imageUrl = null;
|
|
@@ -4932,14 +5062,14 @@ var getFileExtensionFromFilename = (filename) => {
|
|
|
4932
5062
|
};
|
|
4933
5063
|
|
|
4934
5064
|
// src/styles-inheritance/transformers/background-overlay-transformer.tsx
|
|
4935
|
-
import * as
|
|
5065
|
+
import * as React96 from "react";
|
|
4936
5066
|
import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
|
|
4937
|
-
import { Stack as
|
|
5067
|
+
import { Stack as Stack21 } from "@elementor/ui";
|
|
4938
5068
|
var backgroundOverlayTransformer = createTransformer5((values) => {
|
|
4939
5069
|
if (!values || values.length === 0) {
|
|
4940
5070
|
return null;
|
|
4941
5071
|
}
|
|
4942
|
-
return /* @__PURE__ */
|
|
5072
|
+
return /* @__PURE__ */ React96.createElement(Stack21, { direction: "column" }, values.map((item, index) => /* @__PURE__ */ React96.createElement(Stack21, { key: index }, item)));
|
|
4943
5073
|
});
|
|
4944
5074
|
|
|
4945
5075
|
// src/styles-inheritance/init-styles-inheritance-transformers.ts
|
|
@@ -4989,7 +5119,7 @@ function init3() {
|
|
|
4989
5119
|
});
|
|
4990
5120
|
init();
|
|
4991
5121
|
init2();
|
|
4992
|
-
if (
|
|
5122
|
+
if (isExperimentActive17(EXPERIMENTAL_FEATURES.V_3_30)) {
|
|
4993
5123
|
initResetStyleProps();
|
|
4994
5124
|
}
|
|
4995
5125
|
}
|
|
@@ -5000,13 +5130,17 @@ var blockV1Panel = () => {
|
|
|
5000
5130
|
});
|
|
5001
5131
|
};
|
|
5002
5132
|
export {
|
|
5133
|
+
EXPERIMENTAL_FEATURES,
|
|
5134
|
+
PopoverScrollableContent,
|
|
5003
5135
|
controlActionsMenu,
|
|
5004
5136
|
init3 as init,
|
|
5005
5137
|
injectIntoClassSelectorActions,
|
|
5006
5138
|
registerControlReplacement,
|
|
5139
|
+
registerStyleProviderToColors,
|
|
5007
5140
|
useBoundProp9 as useBoundProp,
|
|
5008
5141
|
useFontFamilies,
|
|
5009
5142
|
usePanelActions,
|
|
5010
|
-
usePanelStatus
|
|
5143
|
+
usePanelStatus,
|
|
5144
|
+
useSectionWidth
|
|
5011
5145
|
};
|
|
5012
5146
|
//# sourceMappingURL=index.mjs.map
|