@elementor/editor-controls 4.0.0-552 → 4.0.0-573

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2185,15 +2185,15 @@ var SelectControlWrapper = createControl(
2185
2185
 
2186
2186
  // src/controls/chips-control.tsx
2187
2187
  import * as React50 from "react";
2188
- import { stringArrayPropTypeUtil } from "@elementor/editor-props";
2188
+ import { stringArrayPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
2189
2189
  import { Autocomplete, Chip, TextField as TextField5 } from "@elementor/ui";
2190
2190
  var SIZE6 = "tiny";
2191
2191
  var ChipsControl = createControl(({ options }) => {
2192
2192
  const { value, setValue, disabled } = useBoundProp(stringArrayPropTypeUtil);
2193
- const selectedValues = value || [];
2193
+ const selectedValues = (value || []).map((item) => stringPropTypeUtil4.extract(item)).filter((val) => val !== null);
2194
2194
  const selectedOptions = selectedValues.map((val) => options.find((opt) => opt.value === val)).filter((opt) => opt !== void 0);
2195
2195
  const handleChange = (_, newValue) => {
2196
- const values = newValue.map((option) => option.value);
2196
+ const values = newValue.map((option) => stringPropTypeUtil4.create(option.value));
2197
2197
  setValue(values.length > 0 ? values : null);
2198
2198
  };
2199
2199
  return /* @__PURE__ */ React50.createElement(ControlActions, null, /* @__PURE__ */ React50.createElement(
@@ -2219,7 +2219,7 @@ var ChipsControl = createControl(({ options }) => {
2219
2219
 
2220
2220
  // src/controls/toggle-control.tsx
2221
2221
  import * as React54 from "react";
2222
- import { stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
2222
+ import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
2223
2223
 
2224
2224
  // src/components/control-toggle-button-group.tsx
2225
2225
  import * as React52 from "react";
@@ -2507,7 +2507,7 @@ var ToggleControl = createControl(
2507
2507
  maxItems,
2508
2508
  convertOptions = false
2509
2509
  }) => {
2510
- const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil4);
2510
+ const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil5);
2511
2511
  const processedOptions = convertOptions ? convertToggleOptionsToAtomic(options) : options;
2512
2512
  const exclusiveValues = processedOptions.filter((option) => option.exclusive).map((option) => option.value);
2513
2513
  const handleNonExclusiveToggle = (selectedValues) => {
@@ -2885,7 +2885,7 @@ function getCssDimensionProps(label, isSiteRtl) {
2885
2885
 
2886
2886
  // src/controls/font-family-control/font-family-control.tsx
2887
2887
  import * as React59 from "react";
2888
- import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
2888
+ import { stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
2889
2889
  import { ChevronDownIcon as ChevronDownIcon2, TextIcon } from "@elementor/icons";
2890
2890
  import { bindPopover as bindPopover4, bindTrigger as bindTrigger3, Popover as Popover4, UnstableTag as UnstableTag2, usePopupState as usePopupState5 } from "@elementor/ui";
2891
2891
  import { __ as __20 } from "@wordpress/i18n";
@@ -3064,7 +3064,7 @@ var FontFamilyControl = createControl(
3064
3064
  setValue: setFontFamily,
3065
3065
  disabled,
3066
3066
  placeholder
3067
- } = useBoundProp(stringPropTypeUtil5);
3067
+ } = useBoundProp(stringPropTypeUtil6);
3068
3068
  const popoverState = usePopupState5({ variant: "popover" });
3069
3069
  const isShowingPlaceholder = !fontFamily && placeholder;
3070
3070
  const mapFontSubs = React59.useMemo(() => {
@@ -3221,7 +3221,7 @@ var RestrictedLinkInfotip = ({
3221
3221
  // src/controls/query-control.tsx
3222
3222
  import * as React63 from "react";
3223
3223
  import { useMemo as useMemo7, useState as useState9 } from "react";
3224
- import { numberPropTypeUtil as numberPropTypeUtil2, stringPropTypeUtil as stringPropTypeUtil6, urlPropTypeUtil as urlPropTypeUtil2 } from "@elementor/editor-props";
3224
+ import { numberPropTypeUtil as numberPropTypeUtil2, stringPropTypeUtil as stringPropTypeUtil7, urlPropTypeUtil as urlPropTypeUtil2 } from "@elementor/editor-props";
3225
3225
  import { httpService as httpService2 } from "@elementor/http-client";
3226
3226
  import { SearchIcon } from "@elementor/icons";
3227
3227
  import { debounce as debounce2 } from "@elementor/utils";
@@ -3383,7 +3383,7 @@ var QueryControl = createControl((props) => {
3383
3383
  $$type: "query",
3384
3384
  value: {
3385
3385
  id: numberPropTypeUtil2.create(newValue),
3386
- label: stringPropTypeUtil6.create(findMatchingOption(options, newValue)?.label || null)
3386
+ label: stringPropTypeUtil7.create(findMatchingOption(options, newValue)?.label || null)
3387
3387
  }
3388
3388
  };
3389
3389
  setValue(valueToSave);
@@ -3594,7 +3594,7 @@ var ToggleIconControl = ({ disabled, active, onIconClick, label }) => {
3594
3594
  // src/controls/html-tag-control.tsx
3595
3595
  import * as React67 from "react";
3596
3596
  import { getElementLabel } from "@elementor/editor-elements";
3597
- import { stringPropTypeUtil as stringPropTypeUtil7 } from "@elementor/editor-props";
3597
+ import { stringPropTypeUtil as stringPropTypeUtil8 } from "@elementor/editor-props";
3598
3598
  import { MenuListItem as MenuListItem3 } from "@elementor/editor-ui";
3599
3599
  import { Select as Select2, styled as styled6, Typography as Typography5 } from "@elementor/ui";
3600
3600
  import { __ as __24 } from "@wordpress/i18n";
@@ -3646,7 +3646,7 @@ var ConditionalControlInfotip = React66.forwardRef(
3646
3646
  // src/controls/html-tag-control.tsx
3647
3647
  var StyledSelect = styled6(Select2)(() => ({ ".MuiSelect-select.Mui-disabled": { cursor: "not-allowed" } }));
3648
3648
  var HtmlTagControl = createControl(({ options, onChange, fallbackLabels = {} }) => {
3649
- const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil7);
3649
+ const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil8);
3650
3650
  const handleChange = (event) => {
3651
3651
  const newValue = event.target.value || null;
3652
3652
  onChange?.(newValue, value);
@@ -3800,7 +3800,7 @@ var Control4 = ({
3800
3800
  // src/controls/aspect-ratio-control.tsx
3801
3801
  import * as React69 from "react";
3802
3802
  import { useEffect as useEffect9, useState as useState12 } from "react";
3803
- import { stringPropTypeUtil as stringPropTypeUtil8 } from "@elementor/editor-props";
3803
+ import { stringPropTypeUtil as stringPropTypeUtil9 } from "@elementor/editor-props";
3804
3804
  import { MenuListItem as MenuListItem4 } from "@elementor/editor-ui";
3805
3805
  import { ArrowsMoveHorizontalIcon, ArrowsMoveVerticalIcon } from "@elementor/icons";
3806
3806
  import { Grid as Grid12, Select as Select3, Stack as Stack12, TextField as TextField8 } from "@elementor/ui";
@@ -3817,7 +3817,7 @@ var RATIO_OPTIONS = [
3817
3817
  ];
3818
3818
  var CUSTOM_RATIO = "custom";
3819
3819
  var AspectRatioControl = createControl(({ label }) => {
3820
- const { value: aspectRatioValue, setValue: setAspectRatioValue, disabled } = useBoundProp(stringPropTypeUtil8);
3820
+ const { value: aspectRatioValue, setValue: setAspectRatioValue, disabled } = useBoundProp(stringPropTypeUtil9);
3821
3821
  const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
3822
3822
  const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
3823
3823
  const [isCustom, setIsCustom] = useState12(isCustomSelected);
@@ -4116,7 +4116,7 @@ import {
4116
4116
  colorStopPropTypeUtil,
4117
4117
  gradientColorStopPropTypeUtil,
4118
4118
  numberPropTypeUtil as numberPropTypeUtil3,
4119
- stringPropTypeUtil as stringPropTypeUtil9
4119
+ stringPropTypeUtil as stringPropTypeUtil10
4120
4120
  } from "@elementor/editor-props";
4121
4121
  import { UnstableGradientBox } from "@elementor/ui";
4122
4122
  var BackgroundGradientColorControl = createControl(() => {
@@ -4124,13 +4124,13 @@ var BackgroundGradientColorControl = createControl(() => {
4124
4124
  const handleChange = (newValue) => {
4125
4125
  const transformedValue = createTransformableValue(newValue);
4126
4126
  if (transformedValue.positions) {
4127
- transformedValue.positions = stringPropTypeUtil9.create(newValue.positions.join(" "));
4127
+ transformedValue.positions = stringPropTypeUtil10.create(newValue.positions.join(" "));
4128
4128
  }
4129
4129
  setValue(transformedValue);
4130
4130
  };
4131
4131
  const createTransformableValue = (newValue) => ({
4132
4132
  ...newValue,
4133
- type: stringPropTypeUtil9.create(newValue.type),
4133
+ type: stringPropTypeUtil10.create(newValue.type),
4134
4134
  angle: numberPropTypeUtil3.create(newValue.angle),
4135
4135
  stops: gradientColorStopPropTypeUtil.create(
4136
4136
  newValue.stops.map(
@@ -4166,7 +4166,7 @@ var BackgroundGradientColorControl = createControl(() => {
4166
4166
  );
4167
4167
  });
4168
4168
  var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.create({
4169
- type: stringPropTypeUtil9.create("linear"),
4169
+ type: stringPropTypeUtil10.create("linear"),
4170
4170
  angle: numberPropTypeUtil3.create(180),
4171
4171
  stops: gradientColorStopPropTypeUtil.create([
4172
4172
  colorStopPropTypeUtil.create({
@@ -4206,7 +4206,7 @@ var BackgroundImageOverlayAttachment = () => {
4206
4206
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
4207
4207
  import * as React74 from "react";
4208
4208
  import { useRef as useRef11 } from "react";
4209
- import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
4209
+ import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
4210
4210
  import { MenuListItem as MenuListItem5 } from "@elementor/editor-ui";
4211
4211
  import { LetterXIcon, LetterYIcon } from "@elementor/icons";
4212
4212
  import { Grid as Grid14, Select as Select4 } from "@elementor/ui";
@@ -4225,7 +4225,7 @@ var backgroundPositionOptions = [
4225
4225
  ];
4226
4226
  var BackgroundImageOverlayPosition = () => {
4227
4227
  const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
4228
- const stringPropContext = useBoundProp(stringPropTypeUtil10);
4228
+ const stringPropContext = useBoundProp(stringPropTypeUtil11);
4229
4229
  const isCustom = !!backgroundImageOffsetContext.value;
4230
4230
  const rowRef = useRef11(null);
4231
4231
  const handlePositionChange = (event) => {
@@ -4301,7 +4301,7 @@ var BackgroundImageOverlayRepeat = () => {
4301
4301
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
4302
4302
  import * as React76 from "react";
4303
4303
  import { useRef as useRef12 } from "react";
4304
- import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
4304
+ import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil12 } from "@elementor/editor-props";
4305
4305
  import {
4306
4306
  ArrowBarBothIcon,
4307
4307
  ArrowsMaximizeIcon,
@@ -4340,7 +4340,7 @@ var sizeControlOptions = [
4340
4340
  ];
4341
4341
  var BackgroundImageOverlaySize = () => {
4342
4342
  const backgroundImageScaleContext = useBoundProp(backgroundImageSizeScalePropTypeUtil);
4343
- const stringPropContext = useBoundProp(stringPropTypeUtil11);
4343
+ const stringPropContext = useBoundProp(stringPropTypeUtil12);
4344
4344
  const isCustom = !!backgroundImageScaleContext.value;
4345
4345
  const rowRef = useRef12(null);
4346
4346
  const handleSizeChange = (size) => {
@@ -4806,7 +4806,7 @@ import { useMemo as useMemo10, useState as useState15 } from "react";
4806
4806
  import {
4807
4807
  isTransformable,
4808
4808
  keyValuePropTypeUtil,
4809
- stringPropTypeUtil as stringPropTypeUtil12
4809
+ stringPropTypeUtil as stringPropTypeUtil13
4810
4810
  } from "@elementor/editor-props";
4811
4811
  import { FormHelperText, FormLabel as FormLabel3, Grid as Grid18 } from "@elementor/ui";
4812
4812
  import { __ as __35 } from "@wordpress/i18n";
@@ -4878,7 +4878,7 @@ var KeyValueControl = createControl((props = {}) => {
4878
4878
  });
4879
4879
  return;
4880
4880
  }
4881
- const extractedValue = stringPropTypeUtil12.extract(newChangedValue);
4881
+ const extractedValue = stringPropTypeUtil13.extract(newChangedValue);
4882
4882
  setSessionState((prev) => ({
4883
4883
  ...prev,
4884
4884
  [fieldType]: extractedValue
@@ -4918,7 +4918,7 @@ var KeyValueControl = createControl((props = {}) => {
4918
4918
 
4919
4919
  // src/controls/position-control.tsx
4920
4920
  import * as React81 from "react";
4921
- import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil13 } from "@elementor/editor-props";
4921
+ import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
4922
4922
  import { MenuListItem as MenuListItem6 } from "@elementor/editor-ui";
4923
4923
  import { LetterXIcon as LetterXIcon2, LetterYIcon as LetterYIcon2 } from "@elementor/icons";
4924
4924
  import { Grid as Grid19, Select as Select5 } from "@elementor/ui";
@@ -4937,7 +4937,7 @@ var positionOptions = [
4937
4937
  ];
4938
4938
  var PositionControl = () => {
4939
4939
  const positionContext = useBoundProp(positionPropTypeUtil);
4940
- const stringPropContext = useBoundProp(stringPropTypeUtil13);
4940
+ const stringPropContext = useBoundProp(stringPropTypeUtil14);
4941
4941
  const isCustom = !!positionContext.value;
4942
4942
  const handlePositionChange = (event) => {
4943
4943
  const value = event.target.value || null;
@@ -6155,7 +6155,7 @@ var TransitionRepeaterControl = createControl(
6155
6155
  // src/controls/date-time-control.tsx
6156
6156
  import * as React98 from "react";
6157
6157
  import * as dayjs from "dayjs";
6158
- import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
6158
+ import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil15 } from "@elementor/editor-props";
6159
6159
  import { DateTimePropTypeUtil } from "@elementor/editor-props";
6160
6160
  import { Box as Box21, DatePicker, LocalizationProvider, TimePicker } from "@elementor/ui";
6161
6161
  var DATE_FORMAT = "YYYY-MM-DD";
@@ -6204,7 +6204,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
6204
6204
  return /* @__PURE__ */ React98.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React98.createElement(ControlActions, null, /* @__PURE__ */ React98.createElement(LocalizationProvider, null, /* @__PURE__ */ React98.createElement(Box21, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React98.createElement(
6205
6205
  DatePicker,
6206
6206
  {
6207
- value: parseDateValue(stringPropTypeUtil14.extract(value?.date)),
6207
+ value: parseDateValue(stringPropTypeUtil15.extract(value?.date)),
6208
6208
  onChange: (v) => handleChange({ date: v }, { bind: "date" }),
6209
6209
  disabled: inputDisabled,
6210
6210
  slotProps: {
@@ -6216,7 +6216,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
6216
6216
  )), /* @__PURE__ */ React98.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React98.createElement(
6217
6217
  TimePicker,
6218
6218
  {
6219
- value: parseTimeValue(stringPropTypeUtil14.extract(value?.time)),
6219
+ value: parseTimeValue(stringPropTypeUtil15.extract(value?.time)),
6220
6220
  onChange: (v) => handleChange({ time: v }, { bind: "time" }),
6221
6221
  disabled: inputDisabled,
6222
6222
  slotProps: {
@@ -6230,8 +6230,10 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
6230
6230
 
6231
6231
  // src/controls/inline-editing-control.tsx
6232
6232
  import * as React100 from "react";
6233
- import { htmlPropTypeUtil } from "@elementor/editor-props";
6233
+ import { useCallback as useCallback3, useEffect as useEffect12, useMemo as useMemo15 } from "react";
6234
+ import { htmlV2PropTypeUtil, parseHtmlChildren } from "@elementor/editor-props";
6234
6235
  import { Box as Box23 } from "@elementor/ui";
6236
+ import { debounce as debounce4 } from "@elementor/utils";
6235
6237
 
6236
6238
  // src/components/inline-editor.tsx
6237
6239
  import * as React99 from "react";
@@ -6407,14 +6409,37 @@ var useOnUpdate = (callback, dependencies) => {
6407
6409
  };
6408
6410
 
6409
6411
  // src/controls/inline-editing-control.tsx
6412
+ var CHILDREN_PARSE_DEBOUNCE_MS = 300;
6410
6413
  var InlineEditingControl = createControl(
6411
6414
  ({
6412
6415
  sx,
6413
6416
  attributes,
6414
6417
  props
6415
6418
  }) => {
6416
- const { value, setValue } = useBoundProp(htmlPropTypeUtil);
6417
- const handleChange = (newValue) => setValue(newValue ?? "");
6419
+ const { value, setValue } = useBoundProp(htmlV2PropTypeUtil);
6420
+ const content = value?.content ?? "";
6421
+ const debouncedParse = useMemo15(
6422
+ () => debounce4((html) => {
6423
+ const parsed = parseHtmlChildren(html);
6424
+ setValue({
6425
+ content: parsed.content || null,
6426
+ children: parsed.children
6427
+ });
6428
+ }, CHILDREN_PARSE_DEBOUNCE_MS),
6429
+ [setValue]
6430
+ );
6431
+ const handleChange = useCallback3(
6432
+ (newValue) => {
6433
+ const html = newValue ?? "";
6434
+ setValue({
6435
+ content: html || null,
6436
+ children: value?.children ?? []
6437
+ });
6438
+ debouncedParse(html);
6439
+ },
6440
+ [setValue, value?.children, debouncedParse]
6441
+ );
6442
+ useEffect12(() => () => debouncedParse.cancel(), [debouncedParse]);
6418
6443
  return /* @__PURE__ */ React100.createElement(ControlActions, null, /* @__PURE__ */ React100.createElement(
6419
6444
  Box23,
6420
6445
  {
@@ -6453,23 +6478,101 @@ var InlineEditingControl = createControl(
6453
6478
  ...attributes,
6454
6479
  ...props
6455
6480
  },
6456
- /* @__PURE__ */ React100.createElement(InlineEditor, { value: value || "", setValue: handleChange })
6481
+ /* @__PURE__ */ React100.createElement(InlineEditor, { value: content, setValue: handleChange })
6457
6482
  ));
6458
6483
  }
6459
6484
  );
6460
6485
 
6486
+ // src/controls/email-form-action-control.tsx
6487
+ import * as React101 from "react";
6488
+ import { emailPropTypeUtil } from "@elementor/editor-props";
6489
+ import { CollapsibleContent } from "@elementor/editor-ui";
6490
+ import { Box as Box24, Divider as Divider5, Grid as Grid29, Stack as Stack16 } from "@elementor/ui";
6491
+ import { __ as __50 } from "@wordpress/i18n";
6492
+ var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React101.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(TextControl, { placeholder }))));
6493
+ var SendToField = () => /* @__PURE__ */ React101.createElement(
6494
+ EmailField,
6495
+ {
6496
+ bind: "to",
6497
+ label: __50("Send To", "elementor"),
6498
+ placeholder: __50("Where should we send new submissions?", "elementor")
6499
+ }
6500
+ );
6501
+ var SubjectField = () => /* @__PURE__ */ React101.createElement(
6502
+ EmailField,
6503
+ {
6504
+ bind: "subject",
6505
+ label: __50("Email Subject", "elementor"),
6506
+ placeholder: __50("New form submission", "elementor")
6507
+ }
6508
+ );
6509
+ var MessageField = () => /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React101.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(ControlFormLabel, null, __50("Message", "elementor"))), /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(
6510
+ TextAreaControl,
6511
+ {
6512
+ placeholder: __50(
6513
+ "By default, all form fields are sent via [all-fields] shortcode.",
6514
+ "elementor"
6515
+ )
6516
+ }
6517
+ ))));
6518
+ var FromEmailField = () => /* @__PURE__ */ React101.createElement(
6519
+ EmailField,
6520
+ {
6521
+ bind: "from",
6522
+ label: __50("From email", "elementor"),
6523
+ placeholder: __50("What email address should appear as the sender?", "elementor")
6524
+ }
6525
+ );
6526
+ var FromNameField = () => /* @__PURE__ */ React101.createElement(
6527
+ EmailField,
6528
+ {
6529
+ bind: "from-name",
6530
+ label: __50("From name", "elementor"),
6531
+ placeholder: __50("What name should appear as the sender?", "elementor")
6532
+ }
6533
+ );
6534
+ var ReplyToField = () => /* @__PURE__ */ React101.createElement(EmailField, { bind: "reply-to", label: __50("Reply-to", "elementor") });
6535
+ var CcField = () => /* @__PURE__ */ React101.createElement(EmailField, { bind: "cc", label: __50("Cc", "elementor") });
6536
+ var BccField = () => /* @__PURE__ */ React101.createElement(EmailField, { bind: "bcc", label: __50("Bcc", "elementor") });
6537
+ var MetaDataField = () => /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React101.createElement(Stack16, { gap: 0.5 }, /* @__PURE__ */ React101.createElement(ControlLabel, null, __50("Meta data", "elementor")), /* @__PURE__ */ React101.createElement(
6538
+ ChipsControl,
6539
+ {
6540
+ options: [
6541
+ { label: __50("Date", "elementor"), value: "date" },
6542
+ { label: __50("Time", "elementor"), value: "time" },
6543
+ { label: __50("Page URL", "elementor"), value: "page-url" },
6544
+ { label: __50("User agent", "elementor"), value: "user-agent" },
6545
+ { label: __50("Credit", "elementor"), value: "credit" }
6546
+ ]
6547
+ }
6548
+ )));
6549
+ var SendAsField = () => /* @__PURE__ */ React101.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React101.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(ControlFormLabel, null, __50("Send as", "elementor"))), /* @__PURE__ */ React101.createElement(Grid29, { item: true }, /* @__PURE__ */ React101.createElement(
6550
+ SelectControl,
6551
+ {
6552
+ options: [
6553
+ { label: __50("HTML", "elementor"), value: "html" },
6554
+ { label: __50("Plain Text", "elementor"), value: "plain" }
6555
+ ]
6556
+ }
6557
+ ))));
6558
+ var AdvancedSettings = () => /* @__PURE__ */ React101.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React101.createElement(Box24, { sx: { pt: 2 } }, /* @__PURE__ */ React101.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React101.createElement(FromNameField, null), /* @__PURE__ */ React101.createElement(ReplyToField, null), /* @__PURE__ */ React101.createElement(CcField, null), /* @__PURE__ */ React101.createElement(BccField, null), /* @__PURE__ */ React101.createElement(Divider5, null), /* @__PURE__ */ React101.createElement(MetaDataField, null), /* @__PURE__ */ React101.createElement(SendAsField, null))));
6559
+ var EmailFormActionControl = createControl(() => {
6560
+ const { value, setValue, ...propContext } = useBoundProp(emailPropTypeUtil);
6561
+ return /* @__PURE__ */ React101.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React101.createElement(Stack16, { gap: 2 }, /* @__PURE__ */ React101.createElement(ControlFormLabel, null, __50("Email settings", "elementor")), /* @__PURE__ */ React101.createElement(SendToField, null), /* @__PURE__ */ React101.createElement(SubjectField, null), /* @__PURE__ */ React101.createElement(MessageField, null), /* @__PURE__ */ React101.createElement(FromEmailField, null), /* @__PURE__ */ React101.createElement(AdvancedSettings, null)));
6562
+ });
6563
+
6461
6564
  // src/components/promotions/display-conditions-control.tsx
6462
- import * as React102 from "react";
6565
+ import * as React103 from "react";
6463
6566
  import { useRef as useRef25 } from "react";
6464
6567
  import { SitemapIcon } from "@elementor/icons";
6465
- import { IconButton as IconButton8, Stack as Stack16, Tooltip as Tooltip9 } from "@elementor/ui";
6466
- import { __ as __50 } from "@wordpress/i18n";
6568
+ import { IconButton as IconButton8, Stack as Stack17, Tooltip as Tooltip9 } from "@elementor/ui";
6569
+ import { __ as __51 } from "@wordpress/i18n";
6467
6570
 
6468
6571
  // src/components/promotions/promotion-trigger.tsx
6469
- import * as React101 from "react";
6572
+ import * as React102 from "react";
6470
6573
  import { forwardRef as forwardRef11, useImperativeHandle, useState as useState17 } from "react";
6471
6574
  import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
6472
- import { Box as Box24 } from "@elementor/ui";
6575
+ import { Box as Box25 } from "@elementor/ui";
6473
6576
  function getV4Promotion(key) {
6474
6577
  return window.elementor?.config?.v4Promotions?.[key];
6475
6578
  }
@@ -6479,7 +6582,7 @@ var PromotionTrigger = forwardRef11(
6479
6582
  const promotion = getV4Promotion(promotionKey);
6480
6583
  const toggle = () => setIsOpen((prev) => !prev);
6481
6584
  useImperativeHandle(ref, () => ({ toggle }), []);
6482
- return /* @__PURE__ */ React101.createElement(React101.Fragment, null, promotion && /* @__PURE__ */ React101.createElement(
6585
+ return /* @__PURE__ */ React102.createElement(React102.Fragment, null, promotion && /* @__PURE__ */ React102.createElement(
6483
6586
  PromotionInfotip,
6484
6587
  {
6485
6588
  title: promotion.title,
@@ -6492,8 +6595,8 @@ var PromotionTrigger = forwardRef11(
6492
6595
  setIsOpen(false);
6493
6596
  }
6494
6597
  },
6495
- /* @__PURE__ */ React101.createElement(
6496
- Box24,
6598
+ /* @__PURE__ */ React102.createElement(
6599
+ Box25,
6497
6600
  {
6498
6601
  onClick: (e) => {
6499
6602
  e.stopPropagation();
@@ -6501,18 +6604,18 @@ var PromotionTrigger = forwardRef11(
6501
6604
  },
6502
6605
  sx: { cursor: "pointer", display: "inline-flex" }
6503
6606
  },
6504
- children ?? /* @__PURE__ */ React101.createElement(PromotionChip2, null)
6607
+ children ?? /* @__PURE__ */ React102.createElement(PromotionChip2, null)
6505
6608
  )
6506
6609
  ));
6507
6610
  }
6508
6611
  );
6509
6612
 
6510
6613
  // src/components/promotions/display-conditions-control.tsx
6511
- var ARIA_LABEL = __50("Display Conditions", "elementor");
6614
+ var ARIA_LABEL = __51("Display Conditions", "elementor");
6512
6615
  var DisplayConditionsControl = createControl(() => {
6513
6616
  const triggerRef = useRef25(null);
6514
- return /* @__PURE__ */ React102.createElement(
6515
- Stack16,
6617
+ return /* @__PURE__ */ React103.createElement(
6618
+ Stack17,
6516
6619
  {
6517
6620
  direction: "row",
6518
6621
  spacing: 2,
@@ -6521,8 +6624,8 @@ var DisplayConditionsControl = createControl(() => {
6521
6624
  alignItems: "center"
6522
6625
  }
6523
6626
  },
6524
- /* @__PURE__ */ React102.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions" }),
6525
- /* @__PURE__ */ React102.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React102.createElement(
6627
+ /* @__PURE__ */ React103.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions" }),
6628
+ /* @__PURE__ */ React103.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React103.createElement(
6526
6629
  IconButton8,
6527
6630
  {
6528
6631
  size: "tiny",
@@ -6535,22 +6638,22 @@ var DisplayConditionsControl = createControl(() => {
6535
6638
  borderRadius: 1
6536
6639
  }
6537
6640
  },
6538
- /* @__PURE__ */ React102.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
6641
+ /* @__PURE__ */ React103.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
6539
6642
  ))
6540
6643
  );
6541
6644
  });
6542
6645
 
6543
6646
  // src/components/promotions/attributes-control.tsx
6544
- import * as React103 from "react";
6647
+ import * as React104 from "react";
6545
6648
  import { useRef as useRef26 } from "react";
6546
6649
  import { PlusIcon as PlusIcon3 } from "@elementor/icons";
6547
- import { Stack as Stack17, Tooltip as Tooltip10 } from "@elementor/ui";
6548
- import { __ as __51 } from "@wordpress/i18n";
6549
- var ARIA_LABEL2 = __51("Attributes", "elementor");
6650
+ import { Stack as Stack18, Tooltip as Tooltip10 } from "@elementor/ui";
6651
+ import { __ as __52 } from "@wordpress/i18n";
6652
+ var ARIA_LABEL2 = __52("Attributes", "elementor");
6550
6653
  var AttributesControl = createControl(() => {
6551
6654
  const triggerRef = useRef26(null);
6552
- return /* @__PURE__ */ React103.createElement(
6553
- Stack17,
6655
+ return /* @__PURE__ */ React104.createElement(
6656
+ Stack18,
6554
6657
  {
6555
6658
  direction: "row",
6556
6659
  spacing: 2,
@@ -6559,8 +6662,8 @@ var AttributesControl = createControl(() => {
6559
6662
  alignItems: "center"
6560
6663
  }
6561
6664
  },
6562
- /* @__PURE__ */ React103.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes" }),
6563
- /* @__PURE__ */ React103.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React103.createElement(
6665
+ /* @__PURE__ */ React104.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes" }),
6666
+ /* @__PURE__ */ React104.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React104.createElement(
6564
6667
  PlusIcon3,
6565
6668
  {
6566
6669
  "aria-label": ARIA_LABEL2,
@@ -6574,29 +6677,29 @@ var AttributesControl = createControl(() => {
6574
6677
  });
6575
6678
 
6576
6679
  // src/components/icon-buttons/clear-icon-button.tsx
6577
- import * as React104 from "react";
6680
+ import * as React105 from "react";
6578
6681
  import { BrushBigIcon } from "@elementor/icons";
6579
6682
  import { IconButton as IconButton9, styled as styled9, Tooltip as Tooltip11 } from "@elementor/ui";
6580
6683
  var CustomIconButton = styled9(IconButton9)(({ theme }) => ({
6581
6684
  width: theme.spacing(2.5),
6582
6685
  height: theme.spacing(2.5)
6583
6686
  }));
6584
- var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React104.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React104.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React104.createElement(BrushBigIcon, { fontSize: size })));
6687
+ var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React105.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React105.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React105.createElement(BrushBigIcon, { fontSize: size })));
6585
6688
 
6586
6689
  // src/components/repeater/repeater.tsx
6587
- import * as React105 from "react";
6588
- import { useEffect as useEffect12, useState as useState18 } from "react";
6690
+ import * as React106 from "react";
6691
+ import { useEffect as useEffect13, useState as useState18 } from "react";
6589
6692
  import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon4, XIcon as XIcon4 } from "@elementor/icons";
6590
6693
  import {
6591
6694
  bindPopover as bindPopover7,
6592
6695
  bindTrigger as bindTrigger6,
6593
- Box as Box25,
6696
+ Box as Box26,
6594
6697
  IconButton as IconButton10,
6595
6698
  Infotip as Infotip4,
6596
6699
  Tooltip as Tooltip12,
6597
6700
  usePopupState as usePopupState8
6598
6701
  } from "@elementor/ui";
6599
- import { __ as __52 } from "@wordpress/i18n";
6702
+ import { __ as __53 } from "@wordpress/i18n";
6600
6703
  var SIZE10 = "tiny";
6601
6704
  var EMPTY_OPEN_ITEM2 = -1;
6602
6705
  var Repeater3 = ({
@@ -6677,7 +6780,7 @@ var Repeater3 = ({
6677
6780
  };
6678
6781
  const isButtonDisabled = disabled || disableAddItemButton;
6679
6782
  const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
6680
- const addButton = /* @__PURE__ */ React105.createElement(
6783
+ const addButton = /* @__PURE__ */ React106.createElement(
6681
6784
  IconButton10,
6682
6785
  {
6683
6786
  size: SIZE10,
@@ -6686,11 +6789,11 @@ var Repeater3 = ({
6686
6789
  },
6687
6790
  disabled: isButtonDisabled,
6688
6791
  onClick: addRepeaterItem,
6689
- "aria-label": __52("Add item", "elementor")
6792
+ "aria-label": __53("Add item", "elementor")
6690
6793
  },
6691
- /* @__PURE__ */ React105.createElement(PlusIcon4, { fontSize: SIZE10 })
6794
+ /* @__PURE__ */ React106.createElement(PlusIcon4, { fontSize: SIZE10 })
6692
6795
  );
6693
- return /* @__PURE__ */ React105.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React105.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React105.createElement(
6796
+ return /* @__PURE__ */ React106.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React106.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React106.createElement(
6694
6797
  Infotip4,
6695
6798
  {
6696
6799
  placement: "right",
@@ -6698,20 +6801,20 @@ var Repeater3 = ({
6698
6801
  color: "secondary",
6699
6802
  slotProps: { popper: { sx: { width: 300 } } }
6700
6803
  },
6701
- /* @__PURE__ */ React105.createElement(Box25, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
6702
- ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React105.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
6804
+ /* @__PURE__ */ React106.createElement(Box26, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
6805
+ ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React106.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
6703
6806
  const index = uniqueKeys.indexOf(key);
6704
6807
  const value = items2[index];
6705
6808
  if (!value) {
6706
6809
  return null;
6707
6810
  }
6708
- return /* @__PURE__ */ React105.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React105.createElement(
6811
+ return /* @__PURE__ */ React106.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React106.createElement(
6709
6812
  RepeaterItem,
6710
6813
  {
6711
6814
  disabled,
6712
6815
  propDisabled: value?.disabled,
6713
- label: /* @__PURE__ */ React105.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React105.createElement(itemSettings.Label, { value, index })),
6714
- startIcon: /* @__PURE__ */ React105.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React105.createElement(itemSettings.Icon, { value })),
6816
+ label: /* @__PURE__ */ React106.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React106.createElement(itemSettings.Label, { value, index })),
6817
+ startIcon: /* @__PURE__ */ React106.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React106.createElement(itemSettings.Icon, { value })),
6715
6818
  removeItem: () => removeRepeaterItem(index),
6716
6819
  duplicateItem: () => duplicateRepeaterItem(index),
6717
6820
  toggleDisableItem: () => toggleDisableRepeaterItem(index),
@@ -6723,7 +6826,7 @@ var Repeater3 = ({
6723
6826
  actions: itemSettings.actions,
6724
6827
  value
6725
6828
  },
6726
- (props) => /* @__PURE__ */ React105.createElement(
6829
+ (props) => /* @__PURE__ */ React106.createElement(
6727
6830
  itemSettings.Content,
6728
6831
  {
6729
6832
  ...props,
@@ -6753,27 +6856,27 @@ var RepeaterItem = ({
6753
6856
  value
6754
6857
  }) => {
6755
6858
  const { popoverState, popoverProps, ref, setRef } = usePopover(openOnMount, onOpen);
6756
- const duplicateLabel = __52("Duplicate", "elementor");
6757
- const toggleLabel = propDisabled ? __52("Show", "elementor") : __52("Hide", "elementor");
6758
- const removeLabel = __52("Remove", "elementor");
6759
- return /* @__PURE__ */ React105.createElement(React105.Fragment, null, /* @__PURE__ */ React105.createElement(
6859
+ const duplicateLabel = __53("Duplicate", "elementor");
6860
+ const toggleLabel = propDisabled ? __53("Show", "elementor") : __53("Hide", "elementor");
6861
+ const removeLabel = __53("Remove", "elementor");
6862
+ return /* @__PURE__ */ React106.createElement(React106.Fragment, null, /* @__PURE__ */ React106.createElement(
6760
6863
  RepeaterTag,
6761
6864
  {
6762
6865
  disabled,
6763
6866
  label,
6764
6867
  ref: setRef,
6765
- "aria-label": __52("Open item", "elementor"),
6868
+ "aria-label": __53("Open item", "elementor"),
6766
6869
  ...bindTrigger6(popoverState),
6767
6870
  startIcon,
6768
- actions: /* @__PURE__ */ React105.createElement(React105.Fragment, null, showDuplicate && /* @__PURE__ */ React105.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React105.createElement(IconButton10, { size: SIZE10, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React105.createElement(CopyIcon2, { fontSize: SIZE10 }))), showToggle && /* @__PURE__ */ React105.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React105.createElement(IconButton10, { size: SIZE10, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React105.createElement(EyeOffIcon2, { fontSize: SIZE10 }) : /* @__PURE__ */ React105.createElement(EyeIcon2, { fontSize: SIZE10 }))), actions?.(value), showRemove && /* @__PURE__ */ React105.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React105.createElement(IconButton10, { size: SIZE10, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React105.createElement(XIcon4, { fontSize: SIZE10 }))))
6871
+ actions: /* @__PURE__ */ React106.createElement(React106.Fragment, null, showDuplicate && /* @__PURE__ */ React106.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React106.createElement(IconButton10, { size: SIZE10, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React106.createElement(CopyIcon2, { fontSize: SIZE10 }))), showToggle && /* @__PURE__ */ React106.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React106.createElement(IconButton10, { size: SIZE10, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React106.createElement(EyeOffIcon2, { fontSize: SIZE10 }) : /* @__PURE__ */ React106.createElement(EyeIcon2, { fontSize: SIZE10 }))), actions?.(value), showRemove && /* @__PURE__ */ React106.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React106.createElement(IconButton10, { size: SIZE10, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React106.createElement(XIcon4, { fontSize: SIZE10 }))))
6769
6872
  }
6770
- ), /* @__PURE__ */ React105.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React105.createElement(Box25, null, children({ anchorEl: ref }))));
6873
+ ), /* @__PURE__ */ React106.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React106.createElement(Box26, null, children({ anchorEl: ref }))));
6771
6874
  };
6772
6875
  var usePopover = (openOnMount, onOpen) => {
6773
6876
  const [ref, setRef] = useState18(null);
6774
6877
  const popoverState = usePopupState8({ variant: "popover" });
6775
6878
  const popoverProps = bindPopover7(popoverState);
6776
- useEffect12(() => {
6879
+ useEffect13(() => {
6777
6880
  if (openOnMount && ref) {
6778
6881
  popoverState.open(ref);
6779
6882
  onOpen?.();
@@ -6788,8 +6891,8 @@ var usePopover = (openOnMount, onOpen) => {
6788
6891
  };
6789
6892
 
6790
6893
  // src/components/inline-editor-toolbar.tsx
6791
- import * as React107 from "react";
6792
- import { useMemo as useMemo15, useRef as useRef28, useState as useState19 } from "react";
6894
+ import * as React108 from "react";
6895
+ import { useMemo as useMemo16, useRef as useRef28, useState as useState19 } from "react";
6793
6896
  import { getContainer as getContainer2, getElementSetting } from "@elementor/editor-elements";
6794
6897
  import {
6795
6898
  BoldIcon,
@@ -6802,7 +6905,7 @@ import {
6802
6905
  UnderlineIcon
6803
6906
  } from "@elementor/icons";
6804
6907
  import {
6805
- Box as Box26,
6908
+ Box as Box27,
6806
6909
  IconButton as IconButton11,
6807
6910
  ToggleButton as ToggleButton3,
6808
6911
  ToggleButtonGroup as ToggleButtonGroup2,
@@ -6811,14 +6914,14 @@ import {
6811
6914
  usePopupState as usePopupState9
6812
6915
  } from "@elementor/ui";
6813
6916
  import { useEditorState } from "@tiptap/react";
6814
- import { __ as __54 } from "@wordpress/i18n";
6917
+ import { __ as __55 } from "@wordpress/i18n";
6815
6918
 
6816
6919
  // src/components/url-popover.tsx
6817
- import * as React106 from "react";
6818
- import { useEffect as useEffect13, useRef as useRef27 } from "react";
6920
+ import * as React107 from "react";
6921
+ import { useEffect as useEffect14, useRef as useRef27 } from "react";
6819
6922
  import { ExternalLinkIcon } from "@elementor/icons";
6820
- import { bindPopover as bindPopover8, Popover as Popover7, Stack as Stack18, TextField as TextField9, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
6821
- import { __ as __53 } from "@wordpress/i18n";
6923
+ import { bindPopover as bindPopover8, Popover as Popover7, Stack as Stack19, TextField as TextField9, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
6924
+ import { __ as __54 } from "@wordpress/i18n";
6822
6925
  var UrlPopover = ({
6823
6926
  popupState,
6824
6927
  restoreValue,
@@ -6829,7 +6932,7 @@ var UrlPopover = ({
6829
6932
  onToggleNewTab
6830
6933
  }) => {
6831
6934
  const inputRef = useRef27(null);
6832
- useEffect13(() => {
6935
+ useEffect14(() => {
6833
6936
  if (popupState.isOpen) {
6834
6937
  requestAnimationFrame(() => inputRef.current?.focus());
6835
6938
  }
@@ -6838,7 +6941,7 @@ var UrlPopover = ({
6838
6941
  restoreValue();
6839
6942
  popupState.close();
6840
6943
  };
6841
- return /* @__PURE__ */ React106.createElement(
6944
+ return /* @__PURE__ */ React107.createElement(
6842
6945
  Popover7,
6843
6946
  {
6844
6947
  slotProps: {
@@ -6849,30 +6952,30 @@ var UrlPopover = ({
6849
6952
  transformOrigin: { vertical: "top", horizontal: "left" },
6850
6953
  onClose: handleClose
6851
6954
  },
6852
- /* @__PURE__ */ React106.createElement(Stack18, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React106.createElement(
6955
+ /* @__PURE__ */ React107.createElement(Stack19, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React107.createElement(
6853
6956
  TextField9,
6854
6957
  {
6855
6958
  value,
6856
6959
  onChange,
6857
6960
  size: "tiny",
6858
6961
  fullWidth: true,
6859
- placeholder: __53("Type a URL", "elementor"),
6962
+ placeholder: __54("Type a URL", "elementor"),
6860
6963
  inputProps: { ref: inputRef },
6861
6964
  color: "secondary",
6862
6965
  InputProps: { sx: { borderRadius: "8px" } },
6863
6966
  onKeyUp: (event) => event.key === "Enter" && handleClose()
6864
6967
  }
6865
- ), /* @__PURE__ */ React106.createElement(Tooltip13, { title: __53("Open in a new tab", "elementor") }, /* @__PURE__ */ React106.createElement(
6968
+ ), /* @__PURE__ */ React107.createElement(Tooltip13, { title: __54("Open in a new tab", "elementor") }, /* @__PURE__ */ React107.createElement(
6866
6969
  ToggleButton2,
6867
6970
  {
6868
6971
  size: "tiny",
6869
6972
  value: "newTab",
6870
6973
  selected: openInNewTab,
6871
6974
  onClick: onToggleNewTab,
6872
- "aria-label": __53("Open in a new tab", "elementor"),
6975
+ "aria-label": __54("Open in a new tab", "elementor"),
6873
6976
  sx: { borderRadius: "8px" }
6874
6977
  },
6875
- /* @__PURE__ */ React106.createElement(ExternalLinkIcon, { fontSize: "tiny" })
6978
+ /* @__PURE__ */ React107.createElement(ExternalLinkIcon, { fontSize: "tiny" })
6876
6979
  )))
6877
6980
  );
6878
6981
  };
@@ -6888,7 +6991,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
6888
6991
  editor,
6889
6992
  selector: (ctx) => possibleFormats.filter((format) => ctx.editor.isActive(format))
6890
6993
  });
6891
- const formatButtonsList = useMemo15(() => {
6994
+ const formatButtonsList = useMemo16(() => {
6892
6995
  const buttons = Object.values(formatButtons);
6893
6996
  if (isElementClickable) {
6894
6997
  return buttons.filter((button) => button.action !== "link");
@@ -6925,11 +7028,11 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
6925
7028
  }
6926
7029
  linkPopupState.close();
6927
7030
  };
6928
- React107.useEffect(() => {
7031
+ React108.useEffect(() => {
6929
7032
  editor?.commands?.focus();
6930
7033
  }, [editor]);
6931
- return /* @__PURE__ */ React107.createElement(
6932
- Box26,
7034
+ return /* @__PURE__ */ React108.createElement(
7035
+ Box27,
6933
7036
  {
6934
7037
  ref: toolbarRef,
6935
7038
  sx: {
@@ -6945,8 +7048,8 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
6945
7048
  ...sx
6946
7049
  }
6947
7050
  },
6948
- /* @__PURE__ */ React107.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React107.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
6949
- /* @__PURE__ */ React107.createElement(
7051
+ /* @__PURE__ */ React108.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React108.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
7052
+ /* @__PURE__ */ React108.createElement(
6950
7053
  ToggleButtonGroup2,
6951
7054
  {
6952
7055
  value: editorState,
@@ -6968,7 +7071,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
6968
7071
  }
6969
7072
  }
6970
7073
  },
6971
- formatButtonsList.map((button) => /* @__PURE__ */ React107.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React107.createElement(
7074
+ formatButtonsList.map((button) => /* @__PURE__ */ React108.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React108.createElement(
6972
7075
  ToggleButton3,
6973
7076
  {
6974
7077
  value: button.action,
@@ -6986,7 +7089,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
6986
7089
  button.icon
6987
7090
  )))
6988
7091
  ),
6989
- /* @__PURE__ */ React107.createElement(
7092
+ /* @__PURE__ */ React108.createElement(
6990
7093
  UrlPopover,
6991
7094
  {
6992
7095
  popupState: linkPopupState,
@@ -7009,64 +7112,64 @@ var checkIfElementIsClickable = (elementId) => {
7009
7112
  };
7010
7113
  var toolbarButtons = {
7011
7114
  clear: {
7012
- label: __54("Clear", "elementor"),
7013
- icon: /* @__PURE__ */ React107.createElement(MinusIcon2, { fontSize: "tiny" }),
7115
+ label: __55("Clear", "elementor"),
7116
+ icon: /* @__PURE__ */ React108.createElement(MinusIcon2, { fontSize: "tiny" }),
7014
7117
  action: "clear",
7015
7118
  method: (editor) => {
7016
7119
  editor.chain().focus().clearNodes().unsetAllMarks().run();
7017
7120
  }
7018
7121
  },
7019
7122
  bold: {
7020
- label: __54("Bold", "elementor"),
7021
- icon: /* @__PURE__ */ React107.createElement(BoldIcon, { fontSize: "tiny" }),
7123
+ label: __55("Bold", "elementor"),
7124
+ icon: /* @__PURE__ */ React108.createElement(BoldIcon, { fontSize: "tiny" }),
7022
7125
  action: "bold",
7023
7126
  method: (editor) => {
7024
7127
  editor.chain().focus().toggleBold().run();
7025
7128
  }
7026
7129
  },
7027
7130
  italic: {
7028
- label: __54("Italic", "elementor"),
7029
- icon: /* @__PURE__ */ React107.createElement(ItalicIcon, { fontSize: "tiny" }),
7131
+ label: __55("Italic", "elementor"),
7132
+ icon: /* @__PURE__ */ React108.createElement(ItalicIcon, { fontSize: "tiny" }),
7030
7133
  action: "italic",
7031
7134
  method: (editor) => {
7032
7135
  editor.chain().focus().toggleItalic().run();
7033
7136
  }
7034
7137
  },
7035
7138
  underline: {
7036
- label: __54("Underline", "elementor"),
7037
- icon: /* @__PURE__ */ React107.createElement(UnderlineIcon, { fontSize: "tiny" }),
7139
+ label: __55("Underline", "elementor"),
7140
+ icon: /* @__PURE__ */ React108.createElement(UnderlineIcon, { fontSize: "tiny" }),
7038
7141
  action: "underline",
7039
7142
  method: (editor) => {
7040
7143
  editor.chain().focus().toggleUnderline().run();
7041
7144
  }
7042
7145
  },
7043
7146
  strike: {
7044
- label: __54("Strikethrough", "elementor"),
7045
- icon: /* @__PURE__ */ React107.createElement(StrikethroughIcon, { fontSize: "tiny" }),
7147
+ label: __55("Strikethrough", "elementor"),
7148
+ icon: /* @__PURE__ */ React108.createElement(StrikethroughIcon, { fontSize: "tiny" }),
7046
7149
  action: "strike",
7047
7150
  method: (editor) => {
7048
7151
  editor.chain().focus().toggleStrike().run();
7049
7152
  }
7050
7153
  },
7051
7154
  superscript: {
7052
- label: __54("Superscript", "elementor"),
7053
- icon: /* @__PURE__ */ React107.createElement(SuperscriptIcon, { fontSize: "tiny" }),
7155
+ label: __55("Superscript", "elementor"),
7156
+ icon: /* @__PURE__ */ React108.createElement(SuperscriptIcon, { fontSize: "tiny" }),
7054
7157
  action: "superscript",
7055
7158
  method: (editor) => {
7056
7159
  editor.chain().focus().toggleSuperscript().run();
7057
7160
  }
7058
7161
  },
7059
7162
  subscript: {
7060
- label: __54("Subscript", "elementor"),
7061
- icon: /* @__PURE__ */ React107.createElement(SubscriptIcon, { fontSize: "tiny" }),
7163
+ label: __55("Subscript", "elementor"),
7164
+ icon: /* @__PURE__ */ React108.createElement(SubscriptIcon, { fontSize: "tiny" }),
7062
7165
  action: "subscript",
7063
7166
  method: (editor) => {
7064
7167
  editor.chain().focus().toggleSubscript().run();
7065
7168
  }
7066
7169
  },
7067
7170
  link: {
7068
- label: __54("Link", "elementor"),
7069
- icon: /* @__PURE__ */ React107.createElement(LinkIcon3, { fontSize: "tiny" }),
7171
+ label: __55("Link", "elementor"),
7172
+ icon: /* @__PURE__ */ React108.createElement(LinkIcon3, { fontSize: "tiny" }),
7070
7173
  action: "link",
7071
7174
  method: null
7072
7175
  }
@@ -7075,7 +7178,7 @@ var { clear: clearButton, ...formatButtons } = toolbarButtons;
7075
7178
  var possibleFormats = Object.keys(formatButtons);
7076
7179
 
7077
7180
  // src/components/size/unstable-size-field.tsx
7078
- import * as React110 from "react";
7181
+ import * as React111 from "react";
7079
7182
  import { InputAdornment as InputAdornment5 } from "@elementor/ui";
7080
7183
 
7081
7184
  // src/hooks/use-size-value.ts
@@ -7116,7 +7219,7 @@ var differsFromExternal = (newState, externalState) => {
7116
7219
  };
7117
7220
 
7118
7221
  // src/components/size/unit-select.tsx
7119
- import * as React108 from "react";
7222
+ import * as React109 from "react";
7120
7223
  import { useId as useId3 } from "react";
7121
7224
  import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
7122
7225
  import { bindMenu as bindMenu2, bindTrigger as bindTrigger7, Button as Button5, Menu as Menu3, styled as styled10, usePopupState as usePopupState10 } from "@elementor/ui";
@@ -7134,7 +7237,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
7134
7237
  onClick(options[index]);
7135
7238
  popupState.close();
7136
7239
  };
7137
- return /* @__PURE__ */ React108.createElement(React108.Fragment, null, /* @__PURE__ */ React108.createElement(StyledButton2, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger7(popupState) }, value), /* @__PURE__ */ React108.createElement(Menu3, { MenuListProps: { dense: true }, ...bindMenu2(popupState) }, options.map((option, index) => /* @__PURE__ */ React108.createElement(
7240
+ return /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(StyledButton2, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger7(popupState) }, value), /* @__PURE__ */ React109.createElement(Menu3, { MenuListProps: { dense: true }, ...bindMenu2(popupState) }, options.map((option, index) => /* @__PURE__ */ React109.createElement(
7138
7241
  MenuListItem7,
7139
7242
  {
7140
7243
  key: option,
@@ -7163,11 +7266,11 @@ var StyledButton2 = styled10(Button5, {
7163
7266
  }));
7164
7267
 
7165
7268
  // src/components/size/unstable-size-input.tsx
7166
- import * as React109 from "react";
7269
+ import * as React110 from "react";
7167
7270
  import { forwardRef as forwardRef12 } from "react";
7168
7271
  var UnstableSizeInput = forwardRef12(
7169
7272
  ({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
7170
- return /* @__PURE__ */ React109.createElement(
7273
+ return /* @__PURE__ */ React110.createElement(
7171
7274
  NumberInput,
7172
7275
  {
7173
7276
  ref,
@@ -7211,7 +7314,7 @@ var UnstableSizeField = ({
7211
7314
  const shouldHighlightUnit = () => {
7212
7315
  return hasValue(size);
7213
7316
  };
7214
- return /* @__PURE__ */ React110.createElement(
7317
+ return /* @__PURE__ */ React111.createElement(
7215
7318
  UnstableSizeInput,
7216
7319
  {
7217
7320
  type: "number",
@@ -7220,7 +7323,7 @@ var UnstableSizeField = ({
7220
7323
  onChange: (event) => setSize(event.target.value),
7221
7324
  InputProps: {
7222
7325
  ...InputProps,
7223
- endAdornment: /* @__PURE__ */ React110.createElement(InputAdornment5, { position: "end" }, /* @__PURE__ */ React110.createElement(
7326
+ endAdornment: /* @__PURE__ */ React111.createElement(InputAdornment5, { position: "end" }, /* @__PURE__ */ React111.createElement(
7224
7327
  UnitSelect,
7225
7328
  {
7226
7329
  options: units2,
@@ -7238,13 +7341,13 @@ var hasValue = (value) => {
7238
7341
  };
7239
7342
 
7240
7343
  // src/hooks/use-font-families.ts
7241
- import { useMemo as useMemo16 } from "react";
7344
+ import { useMemo as useMemo17 } from "react";
7242
7345
  import { getElementorConfig } from "@elementor/editor-v1-adapters";
7243
- import { __ as __55 } from "@wordpress/i18n";
7346
+ import { __ as __56 } from "@wordpress/i18n";
7244
7347
  var supportedCategories = {
7245
- system: __55("System", "elementor"),
7246
- custom: __55("Custom Fonts", "elementor"),
7247
- googlefonts: __55("Google Fonts", "elementor")
7348
+ system: __56("System", "elementor"),
7349
+ custom: __56("Custom Fonts", "elementor"),
7350
+ googlefonts: __56("Google Fonts", "elementor")
7248
7351
  };
7249
7352
  var getFontFamilies = () => {
7250
7353
  const { controls } = getElementorConfig();
@@ -7256,7 +7359,7 @@ var getFontFamilies = () => {
7256
7359
  };
7257
7360
  var useFontFamilies = () => {
7258
7361
  const fontFamilies = getFontFamilies();
7259
- return useMemo16(() => {
7362
+ return useMemo17(() => {
7260
7363
  const categoriesOrder = ["system", "custom", "googlefonts"];
7261
7364
  return Object.entries(fontFamilies || {}).reduce((acc, [font, category]) => {
7262
7365
  if (!supportedCategories[category]) {
@@ -7290,6 +7393,7 @@ export {
7290
7393
  ControlToggleButtonGroup,
7291
7394
  DateTimeControl,
7292
7395
  DisplayConditionsControl,
7396
+ EmailFormActionControl,
7293
7397
  EqualUnequalSizesControl,
7294
7398
  FilterRepeaterControl,
7295
7399
  FontFamilyControl,