@elementor/editor-controls 4.1.0-820 → 4.1.0-822

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
@@ -351,7 +351,7 @@ var formatResponse = (response) => {
351
351
 
352
352
  // src/controls/image-media-control.tsx
353
353
  import * as React11 from "react";
354
- import { imageSrcPropTypeUtil, urlPropTypeUtil } from "@elementor/editor-props";
354
+ import { imageSrcPropTypeUtil, stringPropTypeUtil, urlPropTypeUtil } from "@elementor/editor-props";
355
355
  import { UploadIcon } from "@elementor/icons";
356
356
  import { Button, Card, CardMedia, CardOverlay, CircularProgress, Stack as Stack2 } from "@elementor/ui";
357
357
  import { useWpMediaAttachment, useWpMediaFrame } from "@elementor/wp-media";
@@ -392,6 +392,9 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
392
392
  const { data: attachment, isFetching } = useWpMediaAttachment(id?.value || null);
393
393
  const { data: placeholderAttachment } = useWpMediaAttachment(placeholder?.id?.value || null);
394
394
  const src = attachment?.url ?? url?.value ?? placeholderAttachment?.url ?? null;
395
+ const defaultUrl = imageSrcPropTypeUtil.extract(propType.default ?? null)?.url?.value;
396
+ const currentUrlForModal = url?.value && url.value !== defaultUrl ? url.value : void 0;
397
+ const currentAltForModal = value?.alt?.value;
395
398
  const { open } = useWpMediaFrame({
396
399
  mediaTypes,
397
400
  multiple: false,
@@ -406,10 +409,11 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
406
409
  url: null
407
410
  });
408
411
  },
409
- onSelectUrl: (selectedUrl) => {
412
+ onSelectUrl: (selectedUrl, alt) => {
410
413
  setValue({
411
414
  id: null,
412
- url: urlPropTypeUtil.create(selectedUrl)
415
+ url: urlPropTypeUtil.create(selectedUrl),
416
+ alt: alt ? stringPropTypeUtil.create(alt) : null
413
417
  });
414
418
  }
415
419
  });
@@ -432,12 +436,21 @@ var ImageMediaControl = createControl(({ mediaTypes = ["image"] }) => {
432
436
  onClick: () => open({ mode: "upload" })
433
437
  },
434
438
  __("Upload", "elementor")
435
- ), /* @__PURE__ */ React11.createElement(Button, { size: "tiny", variant: "text", color: "inherit", onClick: () => open({ mode: "url" }) }, __("Insert from URL", "elementor"))))));
439
+ ), /* @__PURE__ */ React11.createElement(
440
+ Button,
441
+ {
442
+ size: "tiny",
443
+ variant: "text",
444
+ color: "inherit",
445
+ onClick: () => open({ mode: "url", currentUrl: currentUrlForModal, currentAlt: currentAltForModal })
446
+ },
447
+ __("Insert from URL", "elementor")
448
+ )))));
436
449
  });
437
450
 
438
451
  // src/controls/select-control.tsx
439
452
  import * as React12 from "react";
440
- import { stringPropTypeUtil } from "@elementor/editor-props";
453
+ import { stringPropTypeUtil as stringPropTypeUtil2 } from "@elementor/editor-props";
441
454
  import { MenuListItem } from "@elementor/editor-ui";
442
455
  import { Select, Typography } from "@elementor/ui";
443
456
  var DEFAULT_MENU_PROPS = {
@@ -449,7 +462,7 @@ var DEFAULT_MENU_PROPS = {
449
462
  };
450
463
  var SelectControl = createControl(
451
464
  ({ options, onChange, MenuProps = DEFAULT_MENU_PROPS, ariaLabel }) => {
452
- const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil);
465
+ const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil2);
453
466
  const handleChange = (event) => {
454
467
  const newValue = event.target.value || null;
455
468
  onChange?.(newValue, value);
@@ -505,7 +518,7 @@ var ImageSizeControl = ({ sizes }) => {
505
518
 
506
519
  // src/controls/text-control.tsx
507
520
  import * as React14 from "react";
508
- import { stringPropTypeUtil as stringPropTypeUtil2 } from "@elementor/editor-props";
521
+ import { stringPropTypeUtil as stringPropTypeUtil3 } from "@elementor/editor-props";
509
522
  import { TextField } from "@elementor/ui";
510
523
  var TextControl = createControl(
511
524
  ({
@@ -517,7 +530,7 @@ var TextControl = createControl(
517
530
  sx,
518
531
  ariaLabel
519
532
  }) => {
520
- const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil2);
533
+ const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil3);
521
534
  const handleChange = (event) => setValue(event.target.value);
522
535
  const placeholder = propPlaceholder ?? boundPlaceholder ?? void 0;
523
536
  return /* @__PURE__ */ React14.createElement(ControlActions, null, /* @__PURE__ */ React14.createElement(
@@ -542,10 +555,10 @@ var TextControl = createControl(
542
555
 
543
556
  // src/controls/text-area-control.tsx
544
557
  import * as React15 from "react";
545
- import { stringPropTypeUtil as stringPropTypeUtil3 } from "@elementor/editor-props";
558
+ import { stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
546
559
  import { TextField as TextField2 } from "@elementor/ui";
547
560
  var TextAreaControl = createControl(({ placeholder: propPlaceholder, ariaLabel }) => {
548
- const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil3);
561
+ const { value, setValue, disabled, placeholder: boundPlaceholder } = useBoundProp(stringPropTypeUtil4);
549
562
  const handleChange = (event) => {
550
563
  setValue(event.target.value);
551
564
  };
@@ -572,7 +585,7 @@ var TextAreaControl = createControl(({ placeholder: propPlaceholder, ariaLabel }
572
585
  import * as React16 from "react";
573
586
  import { useCallback, useState as useState2 } from "react";
574
587
  import { Mention } from "primereact/mention";
575
- import { stringPropTypeUtil as stringPropTypeUtil4 } from "@elementor/editor-props";
588
+ import { stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
576
589
  import { styled } from "@elementor/ui";
577
590
  var MentionWrapper = styled("div")(({ theme }) => ({
578
591
  position: "relative",
@@ -652,7 +665,7 @@ function createMentionPattern(value, triggerPosition) {
652
665
  }
653
666
  var MentionTextAreaControl = createControl(
654
667
  ({ placeholder, ariaLabel, suggestions: allSuggestions, rows = 5, triggerPosition = "auto" }) => {
655
- const { value, setValue, disabled } = useBoundProp(stringPropTypeUtil4);
668
+ const { value, setValue, disabled } = useBoundProp(stringPropTypeUtil5);
656
669
  const [filteredSuggestions, setFilteredSuggestions] = useState2([]);
657
670
  const transformMentionsToShortcodes = useCallback(
658
671
  (text) => {
@@ -2492,15 +2505,15 @@ var SelectControlWrapper = createControl(
2492
2505
 
2493
2506
  // src/controls/chips-control.tsx
2494
2507
  import * as React51 from "react";
2495
- import { stringArrayPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil5 } from "@elementor/editor-props";
2508
+ import { stringArrayPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
2496
2509
  import { Autocomplete, Chip, TextField as TextField5 } from "@elementor/ui";
2497
2510
  var SIZE6 = "tiny";
2498
2511
  var ChipsControl = createControl(({ options }) => {
2499
2512
  const { value, setValue, disabled } = useBoundProp(stringArrayPropTypeUtil);
2500
- const selectedValues = (value || []).map((item) => stringPropTypeUtil5.extract(item)).filter((val) => val !== null);
2513
+ const selectedValues = (value || []).map((item) => stringPropTypeUtil6.extract(item)).filter((val) => val !== null);
2501
2514
  const selectedOptions = selectedValues.map((val) => options.find((opt) => opt.value === val)).filter((opt) => opt !== void 0);
2502
2515
  const handleChange = (_, newValue) => {
2503
- const values = newValue.map((option) => stringPropTypeUtil5.create(option.value));
2516
+ const values = newValue.map((option) => stringPropTypeUtil6.create(option.value));
2504
2517
  setValue(values);
2505
2518
  };
2506
2519
  return /* @__PURE__ */ React51.createElement(ControlActions, null, /* @__PURE__ */ React51.createElement(
@@ -2526,7 +2539,7 @@ var ChipsControl = createControl(({ options }) => {
2526
2539
 
2527
2540
  // src/controls/toggle-control.tsx
2528
2541
  import * as React55 from "react";
2529
- import { stringPropTypeUtil as stringPropTypeUtil6 } from "@elementor/editor-props";
2542
+ import { stringPropTypeUtil as stringPropTypeUtil7 } from "@elementor/editor-props";
2530
2543
 
2531
2544
  // src/components/control-toggle-button-group.tsx
2532
2545
  import * as React53 from "react";
@@ -2814,7 +2827,7 @@ var ToggleControl = createControl(
2814
2827
  maxItems,
2815
2828
  convertOptions = false
2816
2829
  }) => {
2817
- const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil6);
2830
+ const { value, setValue, placeholder, disabled } = useBoundProp(stringPropTypeUtil7);
2818
2831
  const processedOptions = convertOptions ? convertToggleOptionsToAtomic(options) : options;
2819
2832
  const exclusiveValues = processedOptions.filter((option) => option.exclusive).map((option) => option.value);
2820
2833
  const handleNonExclusiveToggle = (selectedValues) => {
@@ -3888,7 +3901,7 @@ function getCssDimensionProps(label, isSiteRtl) {
3888
3901
  // src/controls/font-family-control/font-family-control.tsx
3889
3902
  import * as React66 from "react";
3890
3903
  import { useMemo as useMemo8 } from "react";
3891
- import { stringPropTypeUtil as stringPropTypeUtil7 } from "@elementor/editor-props";
3904
+ import { stringPropTypeUtil as stringPropTypeUtil8 } from "@elementor/editor-props";
3892
3905
  import { ChevronDownIcon as ChevronDownIcon2, TextIcon } from "@elementor/icons";
3893
3906
  import { bindPopover as bindPopover5, bindTrigger as bindTrigger4, Popover as Popover5, UnstableTag as UnstableTag2, usePopupState as usePopupState7 } from "@elementor/ui";
3894
3907
  import { __ as __22 } from "@wordpress/i18n";
@@ -4067,7 +4080,7 @@ var FontFamilyControl = createControl(
4067
4080
  setValue: setFontFamily,
4068
4081
  disabled,
4069
4082
  placeholder
4070
- } = useBoundProp(stringPropTypeUtil7);
4083
+ } = useBoundProp(stringPropTypeUtil8);
4071
4084
  const popoverState = usePopupState7({ variant: "popover" });
4072
4085
  const isShowingPlaceholder = !fontFamily && placeholder;
4073
4086
  const mapFontSubs = useMemo8(() => {
@@ -4229,7 +4242,7 @@ import { useMemo as useMemo9, useState as useState11 } from "react";
4229
4242
  import {
4230
4243
  numberPropTypeUtil as numberPropTypeUtil2,
4231
4244
  queryPropTypeUtil,
4232
- stringPropTypeUtil as stringPropTypeUtil8,
4245
+ stringPropTypeUtil as stringPropTypeUtil9,
4233
4246
  urlPropTypeUtil as urlPropTypeUtil3
4234
4247
  } from "@elementor/editor-props";
4235
4248
  import { httpService as httpService2 } from "@elementor/http-client";
@@ -4391,7 +4404,7 @@ var QueryControl = createControl((props) => {
4391
4404
  }
4392
4405
  const newQueryValue = {
4393
4406
  id: numberPropTypeUtil2.create(newValue),
4394
- label: stringPropTypeUtil8.create(findMatchingOption(options, newValue)?.label || null)
4407
+ label: stringPropTypeUtil9.create(findMatchingOption(options, newValue)?.label || null)
4395
4408
  };
4396
4409
  setQueryValue(newQueryValue);
4397
4410
  onSetValue?.(queryPropTypeUtil.create(newQueryValue));
@@ -4598,7 +4611,7 @@ var LinkControl = createControl((props) => {
4598
4611
  // src/controls/html-tag-control.tsx
4599
4612
  import * as React74 from "react";
4600
4613
  import { getElementLabel } from "@elementor/editor-elements";
4601
- import { stringPropTypeUtil as stringPropTypeUtil9 } from "@elementor/editor-props";
4614
+ import { stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
4602
4615
  import { MenuListItem as MenuListItem4 } from "@elementor/editor-ui";
4603
4616
  import { Select as Select2, styled as styled8, Typography as Typography6 } from "@elementor/ui";
4604
4617
  import { __ as __26 } from "@wordpress/i18n";
@@ -4656,7 +4669,7 @@ var HtmlTagControl = createControl((props) => {
4656
4669
  fallbackLabels = {},
4657
4670
  context: { elementId }
4658
4671
  } = props;
4659
- const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil9);
4672
+ const { value, setValue, disabled, placeholder } = useBoundProp(stringPropTypeUtil10);
4660
4673
  const handleChange = (event) => {
4661
4674
  const newValue = event.target.value || null;
4662
4675
  onChange?.(newValue, value);
@@ -4828,7 +4841,7 @@ var Control4 = ({
4828
4841
  // src/controls/aspect-ratio-control.tsx
4829
4842
  import * as React76 from "react";
4830
4843
  import { useEffect as useEffect14, useState as useState14 } from "react";
4831
- import { stringPropTypeUtil as stringPropTypeUtil10 } from "@elementor/editor-props";
4844
+ import { stringPropTypeUtil as stringPropTypeUtil11 } from "@elementor/editor-props";
4832
4845
  import { MenuListItem as MenuListItem5 } from "@elementor/editor-ui";
4833
4846
  import { ArrowsMoveHorizontalIcon, ArrowsMoveVerticalIcon } from "@elementor/icons";
4834
4847
  import { Grid as Grid12, Select as Select3, Stack as Stack12, TextField as TextField9 } from "@elementor/ui";
@@ -4850,7 +4863,7 @@ var AspectRatioControl = createControl(({ label }) => {
4850
4863
  setValue: setAspectRatioValue,
4851
4864
  disabled,
4852
4865
  placeholder: externalPlaceholder
4853
- } = useBoundProp(stringPropTypeUtil10);
4866
+ } = useBoundProp(stringPropTypeUtil11);
4854
4867
  const aspectRatioValue = currentPropValue ?? externalPlaceholder;
4855
4868
  const isCustomSelected = aspectRatioValue && !RATIO_OPTIONS.some((option) => option.value === aspectRatioValue);
4856
4869
  const [initialWidth, initialHeight] = isCustomSelected ? aspectRatioValue.split("/") : ["", ""];
@@ -5241,7 +5254,7 @@ import {
5241
5254
  colorStopPropTypeUtil,
5242
5255
  gradientColorStopPropTypeUtil,
5243
5256
  numberPropTypeUtil as numberPropTypeUtil3,
5244
- stringPropTypeUtil as stringPropTypeUtil11
5257
+ stringPropTypeUtil as stringPropTypeUtil12
5245
5258
  } from "@elementor/editor-props";
5246
5259
  import { UnstableGradientBox } from "@elementor/ui";
5247
5260
  var BackgroundGradientColorControl = createControl(() => {
@@ -5249,13 +5262,13 @@ var BackgroundGradientColorControl = createControl(() => {
5249
5262
  const handleChange = (newValue) => {
5250
5263
  const transformedValue = createTransformableValue(newValue);
5251
5264
  if (transformedValue.positions) {
5252
- transformedValue.positions = stringPropTypeUtil11.create(newValue.positions.join(" "));
5265
+ transformedValue.positions = stringPropTypeUtil12.create(newValue.positions.join(" "));
5253
5266
  }
5254
5267
  setValue(transformedValue);
5255
5268
  };
5256
5269
  const createTransformableValue = (newValue) => ({
5257
5270
  ...newValue,
5258
- type: stringPropTypeUtil11.create(newValue.type),
5271
+ type: stringPropTypeUtil12.create(newValue.type),
5259
5272
  angle: numberPropTypeUtil3.create(newValue.angle),
5260
5273
  stops: gradientColorStopPropTypeUtil.create(
5261
5274
  newValue.stops.map(
@@ -5291,7 +5304,7 @@ var BackgroundGradientColorControl = createControl(() => {
5291
5304
  );
5292
5305
  });
5293
5306
  var initialBackgroundGradientOverlay = backgroundGradientOverlayPropTypeUtil.create({
5294
- type: stringPropTypeUtil11.create("linear"),
5307
+ type: stringPropTypeUtil12.create("linear"),
5295
5308
  angle: numberPropTypeUtil3.create(180),
5296
5309
  stops: gradientColorStopPropTypeUtil.create([
5297
5310
  colorStopPropTypeUtil.create({
@@ -5331,7 +5344,7 @@ var BackgroundImageOverlayAttachment = () => {
5331
5344
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-position.tsx
5332
5345
  import * as React82 from "react";
5333
5346
  import { useRef as useRef14 } from "react";
5334
- import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil12 } from "@elementor/editor-props";
5347
+ import { backgroundImagePositionOffsetPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil13 } from "@elementor/editor-props";
5335
5348
  import { MenuListItem as MenuListItem6 } from "@elementor/editor-ui";
5336
5349
  import { LetterXIcon, LetterYIcon } from "@elementor/icons";
5337
5350
  import { Grid as Grid14, Select as Select4 } from "@elementor/ui";
@@ -5350,7 +5363,7 @@ var backgroundPositionOptions = [
5350
5363
  ];
5351
5364
  var BackgroundImageOverlayPosition = () => {
5352
5365
  const backgroundImageOffsetContext = useBoundProp(backgroundImagePositionOffsetPropTypeUtil);
5353
- const stringPropContext = useBoundProp(stringPropTypeUtil12);
5366
+ const stringPropContext = useBoundProp(stringPropTypeUtil13);
5354
5367
  const isCustom = !!backgroundImageOffsetContext.value;
5355
5368
  const rowRef = useRef14(null);
5356
5369
  const handlePositionChange = (event) => {
@@ -5426,7 +5439,7 @@ var BackgroundImageOverlayRepeat = () => {
5426
5439
  // src/controls/background-control/background-overlay/background-image-overlay/background-image-overlay-size.tsx
5427
5440
  import * as React84 from "react";
5428
5441
  import { useRef as useRef15 } from "react";
5429
- import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil13 } from "@elementor/editor-props";
5442
+ import { backgroundImageSizeScalePropTypeUtil, stringPropTypeUtil as stringPropTypeUtil14 } from "@elementor/editor-props";
5430
5443
  import {
5431
5444
  ArrowBarBothIcon,
5432
5445
  ArrowsMaximizeIcon,
@@ -5465,7 +5478,7 @@ var sizeControlOptions = [
5465
5478
  ];
5466
5479
  var BackgroundImageOverlaySize = () => {
5467
5480
  const backgroundImageScaleContext = useBoundProp(backgroundImageSizeScalePropTypeUtil);
5468
- const stringPropContext = useBoundProp(stringPropTypeUtil13);
5481
+ const stringPropContext = useBoundProp(stringPropTypeUtil14);
5469
5482
  const isCustom = !!backgroundImageScaleContext.value;
5470
5483
  const rowRef = useRef15(null);
5471
5484
  const handleSizeChange = (size) => {
@@ -5933,7 +5946,7 @@ import { useMemo as useMemo12, useState as useState17 } from "react";
5933
5946
  import {
5934
5947
  isTransformable,
5935
5948
  keyValuePropTypeUtil,
5936
- stringPropTypeUtil as stringPropTypeUtil14
5949
+ stringPropTypeUtil as stringPropTypeUtil15
5937
5950
  } from "@elementor/editor-props";
5938
5951
  import { FormHelperText, FormLabel as FormLabel3, Grid as Grid18 } from "@elementor/ui";
5939
5952
  import { __ as __38 } from "@wordpress/i18n";
@@ -6005,7 +6018,7 @@ var KeyValueControl = createControl((props = {}) => {
6005
6018
  });
6006
6019
  return;
6007
6020
  }
6008
- const extractedValue = stringPropTypeUtil14.extract(newChangedValue);
6021
+ const extractedValue = stringPropTypeUtil15.extract(newChangedValue);
6009
6022
  setSessionState((prev) => ({
6010
6023
  ...prev,
6011
6024
  [fieldType]: extractedValue
@@ -6045,7 +6058,7 @@ var KeyValueControl = createControl((props = {}) => {
6045
6058
 
6046
6059
  // src/controls/position-control.tsx
6047
6060
  import * as React89 from "react";
6048
- import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil15 } from "@elementor/editor-props";
6061
+ import { positionPropTypeUtil, stringPropTypeUtil as stringPropTypeUtil16 } from "@elementor/editor-props";
6049
6062
  import { MenuListItem as MenuListItem7 } from "@elementor/editor-ui";
6050
6063
  import { LetterXIcon as LetterXIcon2, LetterYIcon as LetterYIcon2 } from "@elementor/icons";
6051
6064
  import { Grid as Grid19, Select as Select5 } from "@elementor/ui";
@@ -6064,7 +6077,7 @@ var positionOptions = [
6064
6077
  ];
6065
6078
  var PositionControl = () => {
6066
6079
  const positionContext = useBoundProp(positionPropTypeUtil);
6067
- const stringPropContext = useBoundProp(stringPropTypeUtil15);
6080
+ const stringPropContext = useBoundProp(stringPropTypeUtil16);
6068
6081
  const isCustom = !!positionContext.value;
6069
6082
  const placeholder = positionContext.placeholder ? "custom" : stringPropContext.placeholder ?? null;
6070
6083
  const handlePositionChange = (event) => {
@@ -7323,7 +7336,7 @@ var TransitionRepeaterControl = createControl(
7323
7336
  // src/controls/date-time-control.tsx
7324
7337
  import * as React106 from "react";
7325
7338
  import * as dayjs from "dayjs";
7326
- import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil16 } from "@elementor/editor-props";
7339
+ import { isTransformable as isTransformable2, stringPropTypeUtil as stringPropTypeUtil17 } from "@elementor/editor-props";
7327
7340
  import { DateTimePropTypeUtil } from "@elementor/editor-props";
7328
7341
  import { Box as Box22, DatePicker, LocalizationProvider, TimePicker } from "@elementor/ui";
7329
7342
  var DATE_FORMAT = "YYYY-MM-DD";
@@ -7372,7 +7385,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7372
7385
  return /* @__PURE__ */ React106.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React106.createElement(ControlActions, null, /* @__PURE__ */ React106.createElement(LocalizationProvider, null, /* @__PURE__ */ React106.createElement(Box22, { display: "flex", gap: 1, alignItems: "center" }, /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "date" }, /* @__PURE__ */ React106.createElement(
7373
7386
  DatePicker,
7374
7387
  {
7375
- value: parseDateValue(stringPropTypeUtil16.extract(value?.date)),
7388
+ value: parseDateValue(stringPropTypeUtil17.extract(value?.date)),
7376
7389
  onChange: (v) => handleChange({ date: v }, { bind: "date" }),
7377
7390
  disabled: inputDisabled,
7378
7391
  slotProps: {
@@ -7384,7 +7397,7 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7384
7397
  )), /* @__PURE__ */ React106.createElement(PropKeyProvider, { bind: "time" }, /* @__PURE__ */ React106.createElement(
7385
7398
  TimePicker,
7386
7399
  {
7387
- value: parseTimeValue(stringPropTypeUtil16.extract(value?.time)),
7400
+ value: parseTimeValue(stringPropTypeUtil17.extract(value?.time)),
7388
7401
  onChange: (v) => handleChange({ time: v }, { bind: "time" }),
7389
7402
  disabled: inputDisabled,
7390
7403
  slotProps: {
@@ -7396,15 +7409,109 @@ var DateTimeControl = createControl(({ inputDisabled }) => {
7396
7409
  ))))));
7397
7410
  });
7398
7411
 
7399
- // src/controls/inline-editing-control.tsx
7412
+ // src/controls/date-range-control.tsx
7400
7413
  import * as React108 from "react";
7414
+ import { dateRangePropTypeUtil, dateStringPropTypeUtil as dateStringPropTypeUtil2 } from "@elementor/editor-props";
7415
+ import { FormHelperText as FormHelperText2, Grid as Grid29, Stack as Stack17 } from "@elementor/ui";
7416
+ import { __ as __53 } from "@wordpress/i18n";
7417
+
7418
+ // src/controls/date-string-control.tsx
7419
+ import * as React107 from "react";
7420
+ import * as dayjs2 from "dayjs";
7421
+ import { dateStringPropTypeUtil } from "@elementor/editor-props";
7422
+ import { DatePicker as DatePicker2, LocalizationProvider as LocalizationProvider2 } from "@elementor/ui";
7423
+ var DATE_FORMAT2 = "YYYY-MM-DD";
7424
+ var DateStringControl = createControl(({ inputDisabled, ariaLabel, error }) => {
7425
+ const { value, setValue, disabled } = useBoundProp(dateStringPropTypeUtil);
7426
+ const isDisabled = inputDisabled ?? disabled;
7427
+ const slotProps = {
7428
+ textField: {
7429
+ size: "tiny",
7430
+ fullWidth: true,
7431
+ error,
7432
+ inputProps: ariaLabel ? { "aria-label": ariaLabel } : void 0
7433
+ },
7434
+ openPickerButton: { size: "tiny" },
7435
+ openPickerIcon: { fontSize: "tiny" }
7436
+ };
7437
+ const handleChange = (newValue, format) => {
7438
+ if (!newValue) {
7439
+ setValue(null);
7440
+ return;
7441
+ }
7442
+ setValue(newValue.format(format));
7443
+ };
7444
+ return /* @__PURE__ */ React107.createElement(LocalizationProvider2, null, /* @__PURE__ */ React107.createElement(ControlActions, null, /* @__PURE__ */ React107.createElement(
7445
+ DatePicker2,
7446
+ {
7447
+ value: parseDateString(value ?? ""),
7448
+ onChange: (newValue) => handleChange(newValue, DATE_FORMAT2),
7449
+ disabled: isDisabled,
7450
+ slotProps
7451
+ }
7452
+ )));
7453
+ });
7454
+ function parseDateString(raw) {
7455
+ if (!raw) {
7456
+ return null;
7457
+ }
7458
+ const parsed = dayjs2.default(raw);
7459
+ return isValidDayjs(parsed) ? parsed : null;
7460
+ }
7461
+ function isValidDayjs(value) {
7462
+ return !!value && typeof value.isValid === "function" && value.isValid();
7463
+ }
7464
+
7465
+ // src/controls/date-range-control.tsx
7466
+ var RANGE_LABELS = {
7467
+ min: __53("Min date", "elementor"),
7468
+ max: __53("Max date", "elementor")
7469
+ };
7470
+ var isMaxBeforeMin = (minIso, maxIso) => {
7471
+ if (!minIso || !maxIso || [minIso, maxIso].some((v) => v === "Invalid Date")) {
7472
+ return false;
7473
+ }
7474
+ return maxIso < minIso;
7475
+ };
7476
+ var RANGE_ERROR_MESSAGE = __53("Max date must be on or after Min date", "elementor");
7477
+ var DateRangeControl = createControl(() => {
7478
+ const { value, setValue, ...propContext } = useBoundProp(dateRangePropTypeUtil);
7479
+ const minString = dateStringPropTypeUtil2.extract(value?.min);
7480
+ const maxString = dateStringPropTypeUtil2.extract(value?.max);
7481
+ const hasInvalidRange = isMaxBeforeMin(minString, maxString);
7482
+ return /* @__PURE__ */ React108.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React108.createElement(Stack17, { gap: 0.75 }, /* @__PURE__ */ React108.createElement(Stack17, { direction: "row", gap: 2, flexWrap: "nowrap" }, /* @__PURE__ */ React108.createElement(Grid29, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(ControlFormLabel, null, RANGE_LABELS.min)), /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(
7483
+ BoundDateStringControl,
7484
+ {
7485
+ bind: "min",
7486
+ ariaLabel: RANGE_LABELS.min,
7487
+ error: hasInvalidRange
7488
+ }
7489
+ ))), /* @__PURE__ */ React108.createElement(Grid29, { container: true, gap: 0.75, alignItems: "center" }, /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(ControlFormLabel, null, RANGE_LABELS.max)), /* @__PURE__ */ React108.createElement(Grid29, { item: true, xs: 12 }, /* @__PURE__ */ React108.createElement(
7490
+ BoundDateStringControl,
7491
+ {
7492
+ bind: "max",
7493
+ ariaLabel: RANGE_LABELS.max,
7494
+ error: hasInvalidRange
7495
+ }
7496
+ )))), hasInvalidRange && /* @__PURE__ */ React108.createElement(FormHelperText2, { error: true }, RANGE_ERROR_MESSAGE)));
7497
+ });
7498
+ var BoundDateStringControl = ({
7499
+ bind,
7500
+ ariaLabel,
7501
+ error
7502
+ }) => {
7503
+ return /* @__PURE__ */ React108.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React108.createElement(DateStringControl, { ariaLabel, error }));
7504
+ };
7505
+
7506
+ // src/controls/inline-editing-control.tsx
7507
+ import * as React110 from "react";
7401
7508
  import { useCallback as useCallback4, useEffect as useEffect17, useMemo as useMemo16 } from "react";
7402
- import { htmlV3PropTypeUtil, parseHtmlChildren, stringPropTypeUtil as stringPropTypeUtil17 } from "@elementor/editor-props";
7509
+ import { htmlV3PropTypeUtil, parseHtmlChildren, stringPropTypeUtil as stringPropTypeUtil18 } from "@elementor/editor-props";
7403
7510
  import { Box as Box24 } from "@elementor/ui";
7404
7511
  import { debounce as debounce4 } from "@elementor/utils";
7405
7512
 
7406
7513
  // src/components/inline-editor.tsx
7407
- import * as React107 from "react";
7514
+ import * as React109 from "react";
7408
7515
  import { useEffect as useEffect16, useRef as useRef27 } from "react";
7409
7516
  import { Box as Box23 } from "@elementor/ui";
7410
7517
  import Bold from "@tiptap/extension-bold";
@@ -7443,7 +7550,7 @@ function htmlToPlainText(html) {
7443
7550
  var ITALIC_KEYBOARD_SHORTCUT = "i";
7444
7551
  var BOLD_KEYBOARD_SHORTCUT = "b";
7445
7552
  var UNDERLINE_KEYBOARD_SHORTCUT = "u";
7446
- var InlineEditor = React107.forwardRef((props, ref) => {
7553
+ var InlineEditor = React109.forwardRef((props, ref) => {
7447
7554
  const {
7448
7555
  value,
7449
7556
  setValue,
@@ -7554,7 +7661,7 @@ var InlineEditor = React107.forwardRef((props, ref) => {
7554
7661
  if (mountElement) {
7555
7662
  return null;
7556
7663
  }
7557
- return /* @__PURE__ */ React107.createElement(Box23, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React107.createElement(EditorContent, { ref, editor }));
7664
+ return /* @__PURE__ */ React109.createElement(Box23, { ref: containerRef, sx, className: wrapperClassName }, /* @__PURE__ */ React109.createElement(EditorContent, { ref, editor }));
7558
7665
  });
7559
7666
  var useOnUpdate = (callback, dependencies) => {
7560
7667
  const hasMounted = useRef27(false);
@@ -7576,12 +7683,12 @@ var InlineEditingControl = createControl(
7576
7683
  props
7577
7684
  }) => {
7578
7685
  const { value, setValue, placeholder } = useBoundProp(htmlV3PropTypeUtil);
7579
- const content = stringPropTypeUtil17.extract(value?.content ?? null) ?? "";
7686
+ const content = stringPropTypeUtil18.extract(value?.content ?? null) ?? "";
7580
7687
  const debouncedParse = useMemo16(
7581
7688
  () => debounce4((html) => {
7582
7689
  const parsed = parseHtmlChildren(html);
7583
7690
  setValue({
7584
- content: parsed.content ? stringPropTypeUtil17.create(parsed.content) : null,
7691
+ content: parsed.content ? stringPropTypeUtil18.create(parsed.content) : null,
7585
7692
  children: parsed.children
7586
7693
  });
7587
7694
  }, CHILDREN_PARSE_DEBOUNCE_MS),
@@ -7591,7 +7698,7 @@ var InlineEditingControl = createControl(
7591
7698
  (newValue) => {
7592
7699
  const html = newValue ?? "";
7593
7700
  setValue({
7594
- content: html ? stringPropTypeUtil17.create(html) : null,
7701
+ content: html ? stringPropTypeUtil18.create(html) : null,
7595
7702
  children: value?.children ?? []
7596
7703
  });
7597
7704
  debouncedParse(html);
@@ -7599,7 +7706,7 @@ var InlineEditingControl = createControl(
7599
7706
  [setValue, value?.children, debouncedParse]
7600
7707
  );
7601
7708
  useEffect17(() => () => debouncedParse.cancel(), [debouncedParse]);
7602
- return /* @__PURE__ */ React108.createElement(ControlActions, null, /* @__PURE__ */ React108.createElement(
7709
+ return /* @__PURE__ */ React110.createElement(ControlActions, null, /* @__PURE__ */ React110.createElement(
7603
7710
  Box24,
7604
7711
  {
7605
7712
  sx: {
@@ -7644,7 +7751,7 @@ var InlineEditingControl = createControl(
7644
7751
  ...attributes,
7645
7752
  ...props
7646
7753
  },
7647
- /* @__PURE__ */ React108.createElement(
7754
+ /* @__PURE__ */ React110.createElement(
7648
7755
  InlineEditor,
7649
7756
  {
7650
7757
  value: content,
@@ -7657,12 +7764,12 @@ var InlineEditingControl = createControl(
7657
7764
  );
7658
7765
 
7659
7766
  // src/controls/email-form-action-control.tsx
7660
- import * as React109 from "react";
7767
+ import * as React111 from "react";
7661
7768
  import { emailPropTypeUtil } from "@elementor/editor-props";
7662
7769
  import { CollapsibleContent, InfoAlert as InfoAlert2 } from "@elementor/editor-ui";
7663
- import { Box as Box25, Divider as Divider5, Grid as Grid29, Stack as Stack17 } from "@elementor/ui";
7770
+ import { Box as Box25, Divider as Divider5, Grid as Grid30, Stack as Stack18 } from "@elementor/ui";
7664
7771
  import { hasProInstalled as hasProInstalled3, isVersionGreaterOrEqual as isVersionGreaterOrEqual2 } from "@elementor/utils";
7665
- import { __ as __53 } from "@wordpress/i18n";
7772
+ import { __ as __54 } from "@wordpress/i18n";
7666
7773
 
7667
7774
  // src/hooks/use-form-field-suggestions.ts
7668
7775
  import { getContainer, getSelectedElements as getSelectedElements3 } from "@elementor/editor-elements";
@@ -7719,14 +7826,14 @@ function useFormFieldSuggestions(options) {
7719
7826
  }
7720
7827
 
7721
7828
  // src/controls/email-form-action-control.tsx
7722
- var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React109.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(TextControl, { placeholder }))));
7723
- var SendToField = ({ placeholder }) => /* @__PURE__ */ React109.createElement(EmailField, { bind: "to", label: __53("Send to", "elementor"), placeholder });
7724
- var SubjectField = () => /* @__PURE__ */ React109.createElement(
7829
+ var EmailField = ({ bind, label, placeholder }) => /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind }, /* @__PURE__ */ React111.createElement(Grid30, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, label)), /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(TextControl, { placeholder }))));
7830
+ var SendToField = ({ placeholder }) => /* @__PURE__ */ React111.createElement(EmailField, { bind: "to", label: __54("Send to", "elementor"), placeholder });
7831
+ var SubjectField = () => /* @__PURE__ */ React111.createElement(
7725
7832
  EmailField,
7726
7833
  {
7727
7834
  bind: "subject",
7728
- label: __53("Email subject", "elementor"),
7729
- placeholder: __53("New form submission", "elementor")
7835
+ label: __54("Email subject", "elementor"),
7836
+ placeholder: __54("New form submission", "elementor")
7730
7837
  }
7731
7838
  );
7732
7839
  var MIN_PRO_VERSION_FOR_MENTIONS = "4.1.0";
@@ -7742,77 +7849,77 @@ var shouldShowMentionsInfo = () => {
7742
7849
  };
7743
7850
  var MessageField = () => {
7744
7851
  const suggestions = useFormFieldSuggestions();
7745
- return /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React109.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, __53("Message", "elementor"))), /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(InfoAlert2, null, shouldShowMentionsInfo() ? __53(
7852
+ return /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind: "message" }, /* @__PURE__ */ React111.createElement(Grid30, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, __54("Message", "elementor"))), /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(MentionTextAreaControl, { suggestions })), /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(InfoAlert2, null, shouldShowMentionsInfo() ? __54(
7746
7853
  "[all-fields] shortcode sends all fields. Type @ to insert specific fields and customize your message.",
7747
7854
  "elementor"
7748
- ) : __53("[all-fields] shortcode sends all fields.", "elementor")))));
7855
+ ) : __54("[all-fields] shortcode sends all fields.", "elementor")))));
7749
7856
  };
7750
- var FromEmailField = () => /* @__PURE__ */ React109.createElement(
7857
+ var FromEmailField = () => /* @__PURE__ */ React111.createElement(
7751
7858
  EmailField,
7752
7859
  {
7753
7860
  bind: "from",
7754
- label: __53("From email", "elementor"),
7755
- placeholder: __53("What email should appear as the sender?", "elementor")
7861
+ label: __54("From email", "elementor"),
7862
+ placeholder: __54("What email should appear as the sender?", "elementor")
7756
7863
  }
7757
7864
  );
7758
- var FromNameField = () => /* @__PURE__ */ React109.createElement(
7865
+ var FromNameField = () => /* @__PURE__ */ React111.createElement(
7759
7866
  EmailField,
7760
7867
  {
7761
7868
  bind: "from-name",
7762
- label: __53("From name", "elementor"),
7763
- placeholder: __53("What name should appear as the sender?", "elementor")
7869
+ label: __54("From name", "elementor"),
7870
+ placeholder: __54("What name should appear as the sender?", "elementor")
7764
7871
  }
7765
7872
  );
7766
7873
  var ReplyToField = () => {
7767
7874
  const emailSuggestions = useFormFieldSuggestions({ inputType: "email" });
7768
- return /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React109.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, __53("Reply-to", "elementor"))), /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(
7875
+ return /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind: "reply-to" }, /* @__PURE__ */ React111.createElement(Grid30, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, __54("Reply-to", "elementor"))), /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(
7769
7876
  MentionTextAreaControl,
7770
7877
  {
7771
7878
  suggestions: emailSuggestions,
7772
7879
  rows: 1,
7773
7880
  triggerPosition: "start",
7774
- placeholder: __53("You can type @ to insert an email field", "elementor")
7881
+ placeholder: __54("You can type @ to insert an email field", "elementor")
7775
7882
  }
7776
7883
  ))));
7777
7884
  };
7778
- var CcField = () => /* @__PURE__ */ React109.createElement(EmailField, { bind: "cc", label: __53("Cc", "elementor") });
7779
- var BccField = () => /* @__PURE__ */ React109.createElement(EmailField, { bind: "bcc", label: __53("Bcc", "elementor") });
7780
- var MetaDataField = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React109.createElement(Stack17, { gap: 0.5 }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, __53("Metadata", "elementor")), /* @__PURE__ */ React109.createElement(
7885
+ var CcField = () => /* @__PURE__ */ React111.createElement(EmailField, { bind: "cc", label: __54("Cc", "elementor") });
7886
+ var BccField = () => /* @__PURE__ */ React111.createElement(EmailField, { bind: "bcc", label: __54("Bcc", "elementor") });
7887
+ var MetaDataField = () => /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind: "meta-data" }, /* @__PURE__ */ React111.createElement(Stack18, { gap: 0.5 }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, __54("Metadata", "elementor")), /* @__PURE__ */ React111.createElement(
7781
7888
  ChipsControl,
7782
7889
  {
7783
7890
  options: [
7784
- { label: __53("Date", "elementor"), value: "date" },
7785
- { label: __53("Time", "elementor"), value: "time" },
7786
- { label: __53("Page URL", "elementor"), value: "page-url" },
7787
- { label: __53("User agent", "elementor"), value: "user-agent" },
7788
- { label: __53("Credit", "elementor"), value: "credit" }
7891
+ { label: __54("Date", "elementor"), value: "date" },
7892
+ { label: __54("Time", "elementor"), value: "time" },
7893
+ { label: __54("Page URL", "elementor"), value: "page-url" },
7894
+ { label: __54("User agent", "elementor"), value: "user-agent" },
7895
+ { label: __54("Credit", "elementor"), value: "credit" }
7789
7896
  ]
7790
7897
  }
7791
7898
  )));
7792
- var SendAsField = () => /* @__PURE__ */ React109.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React109.createElement(Grid29, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(ControlFormLabel, null, __53("Send as", "elementor"))), /* @__PURE__ */ React109.createElement(Grid29, { item: true }, /* @__PURE__ */ React109.createElement(
7899
+ var SendAsField = () => /* @__PURE__ */ React111.createElement(PropKeyProvider, { bind: "send-as" }, /* @__PURE__ */ React111.createElement(Grid30, { container: true, direction: "column", gap: 0.5 }, /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(ControlFormLabel, null, __54("Send as", "elementor"))), /* @__PURE__ */ React111.createElement(Grid30, { item: true }, /* @__PURE__ */ React111.createElement(
7793
7900
  SelectControl,
7794
7901
  {
7795
7902
  options: [
7796
- { label: __53("HTML", "elementor"), value: "html" },
7797
- { label: __53("Plain Text", "elementor"), value: "plain" }
7903
+ { label: __54("HTML", "elementor"), value: "html" },
7904
+ { label: __54("Plain Text", "elementor"), value: "plain" }
7798
7905
  ]
7799
7906
  }
7800
7907
  ))));
7801
- var AdvancedSettings = () => /* @__PURE__ */ React109.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React109.createElement(Box25, { sx: { pt: 2 } }, /* @__PURE__ */ React109.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React109.createElement(FromNameField, null), /* @__PURE__ */ React109.createElement(ReplyToField, null), /* @__PURE__ */ React109.createElement(CcField, null), /* @__PURE__ */ React109.createElement(BccField, null), /* @__PURE__ */ React109.createElement(Divider5, null), /* @__PURE__ */ React109.createElement(MetaDataField, null), /* @__PURE__ */ React109.createElement(SendAsField, null))));
7908
+ var AdvancedSettings = () => /* @__PURE__ */ React111.createElement(CollapsibleContent, { defaultOpen: false }, /* @__PURE__ */ React111.createElement(Box25, { sx: { pt: 2 } }, /* @__PURE__ */ React111.createElement(Stack18, { gap: 2 }, /* @__PURE__ */ React111.createElement(FromNameField, null), /* @__PURE__ */ React111.createElement(ReplyToField, null), /* @__PURE__ */ React111.createElement(CcField, null), /* @__PURE__ */ React111.createElement(BccField, null), /* @__PURE__ */ React111.createElement(Divider5, null), /* @__PURE__ */ React111.createElement(MetaDataField, null), /* @__PURE__ */ React111.createElement(SendAsField, null))));
7802
7909
  var EmailFormActionControl = createControl(({ toPlaceholder }) => {
7803
7910
  const { value, setValue, ...propContext } = useBoundProp(emailPropTypeUtil);
7804
- return /* @__PURE__ */ React109.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React109.createElement(Stack17, { gap: 2 }, /* @__PURE__ */ React109.createElement(ControlLabel, null, __53("Email settings", "elementor")), /* @__PURE__ */ React109.createElement(SendToField, { placeholder: toPlaceholder }), /* @__PURE__ */ React109.createElement(SubjectField, null), /* @__PURE__ */ React109.createElement(MessageField, null), /* @__PURE__ */ React109.createElement(FromEmailField, null), /* @__PURE__ */ React109.createElement(AdvancedSettings, null)));
7911
+ return /* @__PURE__ */ React111.createElement(PropProvider, { ...propContext, value, setValue }, /* @__PURE__ */ React111.createElement(Stack18, { gap: 2 }, /* @__PURE__ */ React111.createElement(ControlLabel, null, __54("Email settings", "elementor")), /* @__PURE__ */ React111.createElement(SendToField, { placeholder: toPlaceholder }), /* @__PURE__ */ React111.createElement(SubjectField, null), /* @__PURE__ */ React111.createElement(MessageField, null), /* @__PURE__ */ React111.createElement(FromEmailField, null), /* @__PURE__ */ React111.createElement(AdvancedSettings, null)));
7805
7912
  });
7806
7913
 
7807
7914
  // src/components/promotions/display-conditions-control.tsx
7808
- import * as React111 from "react";
7915
+ import * as React113 from "react";
7809
7916
  import { useRef as useRef28 } from "react";
7810
7917
  import { SitemapIcon } from "@elementor/icons";
7811
- import { IconButton as IconButton8, Stack as Stack18, Tooltip as Tooltip9 } from "@elementor/ui";
7812
- import { __ as __54 } from "@wordpress/i18n";
7918
+ import { IconButton as IconButton8, Stack as Stack19, Tooltip as Tooltip9 } from "@elementor/ui";
7919
+ import { __ as __55 } from "@wordpress/i18n";
7813
7920
 
7814
7921
  // src/components/promotions/promotion-trigger.tsx
7815
- import * as React110 from "react";
7922
+ import * as React112 from "react";
7816
7923
  import { forwardRef as forwardRef12, useCallback as useCallback5, useImperativeHandle, useState as useState19 } from "react";
7817
7924
  import { PromotionChip as PromotionChip2, PromotionInfotip } from "@elementor/editor-ui";
7818
7925
  import { Box as Box26 } from "@elementor/ui";
@@ -7832,7 +7939,7 @@ var PromotionTrigger = forwardRef12(
7832
7939
  });
7833
7940
  }, [trackingData]);
7834
7941
  useImperativeHandle(ref, () => ({ toggle }), [toggle]);
7835
- return /* @__PURE__ */ React110.createElement(React110.Fragment, null, promotion && /* @__PURE__ */ React110.createElement(
7942
+ return /* @__PURE__ */ React112.createElement(React112.Fragment, null, promotion && /* @__PURE__ */ React112.createElement(
7836
7943
  PromotionInfotip,
7837
7944
  {
7838
7945
  title: promotion.title,
@@ -7846,7 +7953,7 @@ var PromotionTrigger = forwardRef12(
7846
7953
  },
7847
7954
  onCtaClick: () => trackUpgradePromotionClick(trackingData)
7848
7955
  },
7849
- /* @__PURE__ */ React110.createElement(
7956
+ /* @__PURE__ */ React112.createElement(
7850
7957
  Box26,
7851
7958
  {
7852
7959
  onClick: (e) => {
@@ -7855,19 +7962,19 @@ var PromotionTrigger = forwardRef12(
7855
7962
  },
7856
7963
  sx: { cursor: "pointer", display: "inline-flex" }
7857
7964
  },
7858
- children ?? /* @__PURE__ */ React110.createElement(PromotionChip2, null)
7965
+ children ?? /* @__PURE__ */ React112.createElement(PromotionChip2, null)
7859
7966
  )
7860
7967
  ));
7861
7968
  }
7862
7969
  );
7863
7970
 
7864
7971
  // src/components/promotions/display-conditions-control.tsx
7865
- var ARIA_LABEL = __54("Display Conditions", "elementor");
7972
+ var ARIA_LABEL = __55("Display Conditions", "elementor");
7866
7973
  var TRACKING_DATA = { target_name: "display_conditions", location_l2: "general" };
7867
7974
  var DisplayConditionsControl = createControl(() => {
7868
7975
  const triggerRef = useRef28(null);
7869
- return /* @__PURE__ */ React111.createElement(
7870
- Stack18,
7976
+ return /* @__PURE__ */ React113.createElement(
7977
+ Stack19,
7871
7978
  {
7872
7979
  direction: "row",
7873
7980
  spacing: 2,
@@ -7876,8 +7983,8 @@ var DisplayConditionsControl = createControl(() => {
7876
7983
  alignItems: "center"
7877
7984
  }
7878
7985
  },
7879
- /* @__PURE__ */ React111.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
7880
- /* @__PURE__ */ React111.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React111.createElement(
7986
+ /* @__PURE__ */ React113.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "displayConditions", trackingData: TRACKING_DATA }),
7987
+ /* @__PURE__ */ React113.createElement(Tooltip9, { title: ARIA_LABEL, placement: "top" }, /* @__PURE__ */ React113.createElement(
7881
7988
  IconButton8,
7882
7989
  {
7883
7990
  size: "tiny",
@@ -7890,23 +7997,23 @@ var DisplayConditionsControl = createControl(() => {
7890
7997
  borderRadius: 1
7891
7998
  }
7892
7999
  },
7893
- /* @__PURE__ */ React111.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
8000
+ /* @__PURE__ */ React113.createElement(SitemapIcon, { fontSize: "tiny", color: "disabled" })
7894
8001
  ))
7895
8002
  );
7896
8003
  });
7897
8004
 
7898
8005
  // src/components/promotions/attributes-control.tsx
7899
- import * as React112 from "react";
8006
+ import * as React114 from "react";
7900
8007
  import { useRef as useRef29 } from "react";
7901
8008
  import { PlusIcon as PlusIcon3 } from "@elementor/icons";
7902
- import { Stack as Stack19, Tooltip as Tooltip10 } from "@elementor/ui";
7903
- import { __ as __55 } from "@wordpress/i18n";
7904
- var ARIA_LABEL2 = __55("Attributes", "elementor");
8009
+ import { Stack as Stack20, Tooltip as Tooltip10 } from "@elementor/ui";
8010
+ import { __ as __56 } from "@wordpress/i18n";
8011
+ var ARIA_LABEL2 = __56("Attributes", "elementor");
7905
8012
  var TRACKING_DATA2 = { target_name: "attributes", location_l2: "general" };
7906
8013
  var AttributesControl = createControl(() => {
7907
8014
  const triggerRef = useRef29(null);
7908
- return /* @__PURE__ */ React112.createElement(
7909
- Stack19,
8015
+ return /* @__PURE__ */ React114.createElement(
8016
+ Stack20,
7910
8017
  {
7911
8018
  direction: "row",
7912
8019
  spacing: 2,
@@ -7915,8 +8022,8 @@ var AttributesControl = createControl(() => {
7915
8022
  alignItems: "center"
7916
8023
  }
7917
8024
  },
7918
- /* @__PURE__ */ React112.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
7919
- /* @__PURE__ */ React112.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React112.createElement(
8025
+ /* @__PURE__ */ React114.createElement(PromotionTrigger, { ref: triggerRef, promotionKey: "attributes", trackingData: TRACKING_DATA2 }),
8026
+ /* @__PURE__ */ React114.createElement(Tooltip10, { title: ARIA_LABEL2, placement: "top" }, /* @__PURE__ */ React114.createElement(
7920
8027
  PlusIcon3,
7921
8028
  {
7922
8029
  "aria-label": ARIA_LABEL2,
@@ -7930,17 +8037,17 @@ var AttributesControl = createControl(() => {
7930
8037
  });
7931
8038
 
7932
8039
  // src/components/icon-buttons/clear-icon-button.tsx
7933
- import * as React113 from "react";
8040
+ import * as React115 from "react";
7934
8041
  import { BrushBigIcon } from "@elementor/icons";
7935
8042
  import { IconButton as IconButton9, styled as styled11, Tooltip as Tooltip11 } from "@elementor/ui";
7936
8043
  var CustomIconButton = styled11(IconButton9)(({ theme }) => ({
7937
8044
  width: theme.spacing(2.5),
7938
8045
  height: theme.spacing(2.5)
7939
8046
  }));
7940
- var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React113.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React113.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React113.createElement(BrushBigIcon, { fontSize: size })));
8047
+ var ClearIconButton = ({ tooltipText, onClick, disabled, size = "tiny" }) => /* @__PURE__ */ React115.createElement(Tooltip11, { title: tooltipText, placement: "top", disableInteractive: true }, /* @__PURE__ */ React115.createElement(CustomIconButton, { "aria-label": tooltipText, size, onClick, disabled }, /* @__PURE__ */ React115.createElement(BrushBigIcon, { fontSize: size })));
7941
8048
 
7942
8049
  // src/components/repeater/repeater.tsx
7943
- import * as React114 from "react";
8050
+ import * as React116 from "react";
7944
8051
  import { useEffect as useEffect18, useState as useState20 } from "react";
7945
8052
  import { CopyIcon as CopyIcon2, EyeIcon as EyeIcon2, EyeOffIcon as EyeOffIcon2, PlusIcon as PlusIcon4, XIcon as XIcon4 } from "@elementor/icons";
7946
8053
  import {
@@ -7952,7 +8059,7 @@ import {
7952
8059
  Tooltip as Tooltip12,
7953
8060
  usePopupState as usePopupState10
7954
8061
  } from "@elementor/ui";
7955
- import { __ as __56 } from "@wordpress/i18n";
8062
+ import { __ as __57 } from "@wordpress/i18n";
7956
8063
  var SIZE11 = "tiny";
7957
8064
  var EMPTY_OPEN_ITEM2 = -1;
7958
8065
  var Repeater3 = ({
@@ -8033,7 +8140,7 @@ var Repeater3 = ({
8033
8140
  };
8034
8141
  const isButtonDisabled = disabled || disableAddItemButton;
8035
8142
  const shouldShowInfotip = isButtonDisabled && addButtonInfotipContent;
8036
- const addButton = /* @__PURE__ */ React114.createElement(
8143
+ const addButton = /* @__PURE__ */ React116.createElement(
8037
8144
  IconButton10,
8038
8145
  {
8039
8146
  size: SIZE11,
@@ -8042,11 +8149,11 @@ var Repeater3 = ({
8042
8149
  },
8043
8150
  disabled: isButtonDisabled,
8044
8151
  onClick: addRepeaterItem,
8045
- "aria-label": __56("Add item", "elementor")
8152
+ "aria-label": __57("Add item", "elementor")
8046
8153
  },
8047
- /* @__PURE__ */ React114.createElement(PlusIcon4, { fontSize: SIZE11 })
8154
+ /* @__PURE__ */ React116.createElement(PlusIcon4, { fontSize: SIZE11 })
8048
8155
  );
8049
- return /* @__PURE__ */ React114.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React114.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React114.createElement(
8156
+ return /* @__PURE__ */ React116.createElement(SectionContent, { gap: 2 }, /* @__PURE__ */ React116.createElement(RepeaterHeader, { label, adornment: ControlAdornments }, shouldShowInfotip ? /* @__PURE__ */ React116.createElement(
8050
8157
  Infotip4,
8051
8158
  {
8052
8159
  placement: "right",
@@ -8054,20 +8161,20 @@ var Repeater3 = ({
8054
8161
  color: "secondary",
8055
8162
  slotProps: { popper: { sx: { width: 300 } } }
8056
8163
  },
8057
- /* @__PURE__ */ React114.createElement(Box27, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
8058
- ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React114.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
8164
+ /* @__PURE__ */ React116.createElement(Box27, { sx: { ...isButtonDisabled ? { cursor: "not-allowed" } : {} } }, addButton)
8165
+ ) : addButton), 0 < uniqueKeys.length && /* @__PURE__ */ React116.createElement(SortableProvider, { value: uniqueKeys, onChange: onChangeOrder }, uniqueKeys.map((key) => {
8059
8166
  const index = uniqueKeys.indexOf(key);
8060
8167
  const value = items2[index];
8061
8168
  if (!value) {
8062
8169
  return null;
8063
8170
  }
8064
- return /* @__PURE__ */ React114.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React114.createElement(
8171
+ return /* @__PURE__ */ React116.createElement(SortableItem, { id: key, key: `sortable-${key}`, disabled: !isSortable }, /* @__PURE__ */ React116.createElement(
8065
8172
  RepeaterItem,
8066
8173
  {
8067
8174
  disabled,
8068
8175
  propDisabled: value?.disabled,
8069
- label: /* @__PURE__ */ React114.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React114.createElement(itemSettings.Label, { value, index })),
8070
- startIcon: /* @__PURE__ */ React114.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React114.createElement(itemSettings.Icon, { value })),
8176
+ label: /* @__PURE__ */ React116.createElement(RepeaterItemLabelSlot, { value }, /* @__PURE__ */ React116.createElement(itemSettings.Label, { value, index })),
8177
+ startIcon: /* @__PURE__ */ React116.createElement(RepeaterItemIconSlot, { value }, /* @__PURE__ */ React116.createElement(itemSettings.Icon, { value })),
8071
8178
  removeItem: () => removeRepeaterItem(index),
8072
8179
  duplicateItem: () => duplicateRepeaterItem(index),
8073
8180
  toggleDisableItem: () => toggleDisableRepeaterItem(index),
@@ -8081,7 +8188,7 @@ var Repeater3 = ({
8081
8188
  actions: itemSettings.actions,
8082
8189
  value
8083
8190
  },
8084
- (props) => /* @__PURE__ */ React114.createElement(
8191
+ (props) => /* @__PURE__ */ React116.createElement(
8085
8192
  itemSettings.Content,
8086
8193
  {
8087
8194
  ...props,
@@ -8123,16 +8230,16 @@ var RepeaterItem = ({
8123
8230
  );
8124
8231
  const triggerProps = bindTrigger7(popoverState);
8125
8232
  usePopoverDismiss({ isOpen: popoverState.isOpen, onClose: popoverProps.onClose });
8126
- const duplicateLabel = __56("Duplicate", "elementor");
8127
- const toggleLabel = propDisabled ? __56("Show", "elementor") : __56("Hide", "elementor");
8128
- const removeLabel = __56("Remove", "elementor");
8129
- return /* @__PURE__ */ React114.createElement(Box27, { sx: { display: "contents" } }, /* @__PURE__ */ React114.createElement(
8233
+ const duplicateLabel = __57("Duplicate", "elementor");
8234
+ const toggleLabel = propDisabled ? __57("Show", "elementor") : __57("Hide", "elementor");
8235
+ const removeLabel = __57("Remove", "elementor");
8236
+ return /* @__PURE__ */ React116.createElement(Box27, { sx: { display: "contents" } }, /* @__PURE__ */ React116.createElement(
8130
8237
  RepeaterTag,
8131
8238
  {
8132
8239
  disabled,
8133
8240
  label,
8134
8241
  ref: setRef,
8135
- "aria-label": __56("Open item", "elementor"),
8242
+ "aria-label": __57("Open item", "elementor"),
8136
8243
  ...triggerProps,
8137
8244
  onClick: (e) => {
8138
8245
  triggerProps.onClick(e);
@@ -8141,9 +8248,9 @@ var RepeaterItem = ({
8141
8248
  }
8142
8249
  },
8143
8250
  startIcon,
8144
- actions: /* @__PURE__ */ React114.createElement(React114.Fragment, null, showDuplicate && /* @__PURE__ */ React114.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(IconButton10, { size: SIZE11, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React114.createElement(CopyIcon2, { fontSize: SIZE11 }))), showToggle && /* @__PURE__ */ React114.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(IconButton10, { size: SIZE11, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React114.createElement(EyeOffIcon2, { fontSize: SIZE11 }) : /* @__PURE__ */ React114.createElement(EyeIcon2, { fontSize: SIZE11 }))), actions?.(value), showRemove && /* @__PURE__ */ React114.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React114.createElement(IconButton10, { size: SIZE11, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React114.createElement(XIcon4, { fontSize: SIZE11 }))))
8251
+ actions: /* @__PURE__ */ React116.createElement(React116.Fragment, null, showDuplicate && /* @__PURE__ */ React116.createElement(Tooltip12, { title: duplicateLabel, placement: "top" }, /* @__PURE__ */ React116.createElement(IconButton10, { size: SIZE11, onClick: duplicateItem, "aria-label": duplicateLabel }, /* @__PURE__ */ React116.createElement(CopyIcon2, { fontSize: SIZE11 }))), showToggle && /* @__PURE__ */ React116.createElement(Tooltip12, { title: toggleLabel, placement: "top" }, /* @__PURE__ */ React116.createElement(IconButton10, { size: SIZE11, onClick: toggleDisableItem, "aria-label": toggleLabel }, propDisabled ? /* @__PURE__ */ React116.createElement(EyeOffIcon2, { fontSize: SIZE11 }) : /* @__PURE__ */ React116.createElement(EyeIcon2, { fontSize: SIZE11 }))), actions?.(value), showRemove && /* @__PURE__ */ React116.createElement(Tooltip12, { title: removeLabel, placement: "top" }, /* @__PURE__ */ React116.createElement(IconButton10, { size: SIZE11, onClick: removeItem, "aria-label": removeLabel }, /* @__PURE__ */ React116.createElement(XIcon4, { fontSize: SIZE11 }))))
8145
8252
  }
8146
- ), /* @__PURE__ */ React114.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React114.createElement(Box27, null, children({ anchorEl: ref }))));
8253
+ ), /* @__PURE__ */ React116.createElement(RepeaterPopover, { width: ref?.getBoundingClientRect().width, ...popoverProps, anchorEl: ref }, /* @__PURE__ */ React116.createElement(Box27, null, children({ anchorEl: ref }))));
8147
8254
  };
8148
8255
  var usePopover = (openOnMount, onOpen, onPopoverClose) => {
8149
8256
  const [ref, setRef] = useState20(null);
@@ -8168,7 +8275,7 @@ var usePopover = (openOnMount, onOpen, onPopoverClose) => {
8168
8275
  };
8169
8276
 
8170
8277
  // src/components/inline-editor-toolbar.tsx
8171
- import * as React116 from "react";
8278
+ import * as React118 from "react";
8172
8279
  import { useEffect as useEffect20, useMemo as useMemo17, useRef as useRef31, useState as useState21 } from "react";
8173
8280
  import { getContainer as getContainer2, getElementSetting } from "@elementor/editor-elements";
8174
8281
  import {
@@ -8191,14 +8298,14 @@ import {
8191
8298
  usePopupState as usePopupState11
8192
8299
  } from "@elementor/ui";
8193
8300
  import { useEditorState } from "@tiptap/react";
8194
- import { __ as __58 } from "@wordpress/i18n";
8301
+ import { __ as __59 } from "@wordpress/i18n";
8195
8302
 
8196
8303
  // src/components/url-popover.tsx
8197
- import * as React115 from "react";
8304
+ import * as React117 from "react";
8198
8305
  import { useEffect as useEffect19, useRef as useRef30 } from "react";
8199
8306
  import { ExternalLinkIcon } from "@elementor/icons";
8200
- import { bindPopover as bindPopover9, Popover as Popover8, Stack as Stack20, TextField as TextField10, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
8201
- import { __ as __57 } from "@wordpress/i18n";
8307
+ import { bindPopover as bindPopover9, Popover as Popover8, Stack as Stack21, TextField as TextField10, ToggleButton as ToggleButton2, Tooltip as Tooltip13 } from "@elementor/ui";
8308
+ import { __ as __58 } from "@wordpress/i18n";
8202
8309
  var UrlPopover = ({
8203
8310
  popupState,
8204
8311
  restoreValue,
@@ -8218,7 +8325,7 @@ var UrlPopover = ({
8218
8325
  restoreValue();
8219
8326
  popupState.close();
8220
8327
  };
8221
- return /* @__PURE__ */ React115.createElement(
8328
+ return /* @__PURE__ */ React117.createElement(
8222
8329
  Popover8,
8223
8330
  {
8224
8331
  slotProps: {
@@ -8229,30 +8336,30 @@ var UrlPopover = ({
8229
8336
  transformOrigin: { vertical: "top", horizontal: "left" },
8230
8337
  onClose: handleClose
8231
8338
  },
8232
- /* @__PURE__ */ React115.createElement(Stack20, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React115.createElement(
8339
+ /* @__PURE__ */ React117.createElement(Stack21, { direction: "row", alignItems: "center", gap: 1, sx: { p: 1.5 } }, /* @__PURE__ */ React117.createElement(
8233
8340
  TextField10,
8234
8341
  {
8235
8342
  value,
8236
8343
  onChange,
8237
8344
  size: "tiny",
8238
8345
  fullWidth: true,
8239
- placeholder: __57("Type a URL", "elementor"),
8346
+ placeholder: __58("Type a URL", "elementor"),
8240
8347
  inputProps: { ref: inputRef },
8241
8348
  color: "secondary",
8242
8349
  InputProps: { sx: { borderRadius: "8px" } },
8243
8350
  onKeyUp: (event) => event.key === "Enter" && handleClose()
8244
8351
  }
8245
- ), /* @__PURE__ */ React115.createElement(Tooltip13, { title: __57("Open in a new tab", "elementor") }, /* @__PURE__ */ React115.createElement(
8352
+ ), /* @__PURE__ */ React117.createElement(Tooltip13, { title: __58("Open in a new tab", "elementor") }, /* @__PURE__ */ React117.createElement(
8246
8353
  ToggleButton2,
8247
8354
  {
8248
8355
  size: "tiny",
8249
8356
  value: "newTab",
8250
8357
  selected: openInNewTab,
8251
8358
  onClick: onToggleNewTab,
8252
- "aria-label": __57("Open in a new tab", "elementor"),
8359
+ "aria-label": __58("Open in a new tab", "elementor"),
8253
8360
  sx: { borderRadius: "8px" }
8254
8361
  },
8255
- /* @__PURE__ */ React115.createElement(ExternalLinkIcon, { fontSize: "tiny" })
8362
+ /* @__PURE__ */ React117.createElement(ExternalLinkIcon, { fontSize: "tiny" })
8256
8363
  )))
8257
8364
  );
8258
8365
  };
@@ -8308,7 +8415,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8308
8415
  useEffect20(() => {
8309
8416
  editor?.commands?.focus();
8310
8417
  }, [editor]);
8311
- return /* @__PURE__ */ React116.createElement(
8418
+ return /* @__PURE__ */ React118.createElement(
8312
8419
  Box28,
8313
8420
  {
8314
8421
  ref: toolbarRef,
@@ -8325,8 +8432,8 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8325
8432
  ...sx
8326
8433
  }
8327
8434
  },
8328
- /* @__PURE__ */ React116.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React116.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
8329
- /* @__PURE__ */ React116.createElement(
8435
+ /* @__PURE__ */ React118.createElement(Tooltip14, { title: clearButton.label, placement: "top", sx: { borderRadius: "8px" } }, /* @__PURE__ */ React118.createElement(IconButton11, { "aria-label": clearButton.label, onClick: () => clearButton.method(editor), size: "tiny" }, clearButton.icon)),
8436
+ /* @__PURE__ */ React118.createElement(
8330
8437
  ToggleButtonGroup2,
8331
8438
  {
8332
8439
  value: editorState,
@@ -8348,7 +8455,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8348
8455
  }
8349
8456
  }
8350
8457
  },
8351
- formatButtonsList.map((button) => /* @__PURE__ */ React116.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React116.createElement(
8458
+ formatButtonsList.map((button) => /* @__PURE__ */ React118.createElement(Tooltip14, { title: button.label, key: button.action, placement: "top" }, /* @__PURE__ */ React118.createElement(
8352
8459
  ToggleButton3,
8353
8460
  {
8354
8461
  value: button.action,
@@ -8366,7 +8473,7 @@ var InlineEditorToolbar = ({ editor, elementId, sx = {} }) => {
8366
8473
  button.icon
8367
8474
  )))
8368
8475
  ),
8369
- /* @__PURE__ */ React116.createElement(
8476
+ /* @__PURE__ */ React118.createElement(
8370
8477
  UrlPopover,
8371
8478
  {
8372
8479
  popupState: linkPopupState,
@@ -8389,64 +8496,64 @@ var checkIfElementIsClickable = (elementId) => {
8389
8496
  };
8390
8497
  var toolbarButtons = {
8391
8498
  clear: {
8392
- label: __58("Clear", "elementor"),
8393
- icon: /* @__PURE__ */ React116.createElement(MinusIcon2, { fontSize: "tiny" }),
8499
+ label: __59("Clear", "elementor"),
8500
+ icon: /* @__PURE__ */ React118.createElement(MinusIcon2, { fontSize: "tiny" }),
8394
8501
  action: "clear",
8395
8502
  method: (editor) => {
8396
8503
  editor.chain().focus().clearNodes().unsetAllMarks().run();
8397
8504
  }
8398
8505
  },
8399
8506
  bold: {
8400
- label: __58("Bold", "elementor"),
8401
- icon: /* @__PURE__ */ React116.createElement(BoldIcon, { fontSize: "tiny" }),
8507
+ label: __59("Bold", "elementor"),
8508
+ icon: /* @__PURE__ */ React118.createElement(BoldIcon, { fontSize: "tiny" }),
8402
8509
  action: "bold",
8403
8510
  method: (editor) => {
8404
8511
  editor.chain().focus().toggleBold().run();
8405
8512
  }
8406
8513
  },
8407
8514
  italic: {
8408
- label: __58("Italic", "elementor"),
8409
- icon: /* @__PURE__ */ React116.createElement(ItalicIcon, { fontSize: "tiny" }),
8515
+ label: __59("Italic", "elementor"),
8516
+ icon: /* @__PURE__ */ React118.createElement(ItalicIcon, { fontSize: "tiny" }),
8410
8517
  action: "italic",
8411
8518
  method: (editor) => {
8412
8519
  editor.chain().focus().toggleItalic().run();
8413
8520
  }
8414
8521
  },
8415
8522
  underline: {
8416
- label: __58("Underline", "elementor"),
8417
- icon: /* @__PURE__ */ React116.createElement(UnderlineIcon, { fontSize: "tiny" }),
8523
+ label: __59("Underline", "elementor"),
8524
+ icon: /* @__PURE__ */ React118.createElement(UnderlineIcon, { fontSize: "tiny" }),
8418
8525
  action: "underline",
8419
8526
  method: (editor) => {
8420
8527
  editor.chain().focus().toggleUnderline().run();
8421
8528
  }
8422
8529
  },
8423
8530
  strike: {
8424
- label: __58("Strikethrough", "elementor"),
8425
- icon: /* @__PURE__ */ React116.createElement(StrikethroughIcon, { fontSize: "tiny" }),
8531
+ label: __59("Strikethrough", "elementor"),
8532
+ icon: /* @__PURE__ */ React118.createElement(StrikethroughIcon, { fontSize: "tiny" }),
8426
8533
  action: "strike",
8427
8534
  method: (editor) => {
8428
8535
  editor.chain().focus().toggleStrike().run();
8429
8536
  }
8430
8537
  },
8431
8538
  superscript: {
8432
- label: __58("Superscript", "elementor"),
8433
- icon: /* @__PURE__ */ React116.createElement(SuperscriptIcon, { fontSize: "tiny" }),
8539
+ label: __59("Superscript", "elementor"),
8540
+ icon: /* @__PURE__ */ React118.createElement(SuperscriptIcon, { fontSize: "tiny" }),
8434
8541
  action: "superscript",
8435
8542
  method: (editor) => {
8436
8543
  editor.chain().focus().toggleSuperscript().run();
8437
8544
  }
8438
8545
  },
8439
8546
  subscript: {
8440
- label: __58("Subscript", "elementor"),
8441
- icon: /* @__PURE__ */ React116.createElement(SubscriptIcon, { fontSize: "tiny" }),
8547
+ label: __59("Subscript", "elementor"),
8548
+ icon: /* @__PURE__ */ React118.createElement(SubscriptIcon, { fontSize: "tiny" }),
8442
8549
  action: "subscript",
8443
8550
  method: (editor) => {
8444
8551
  editor.chain().focus().toggleSubscript().run();
8445
8552
  }
8446
8553
  },
8447
8554
  link: {
8448
- label: __58("Link", "elementor"),
8449
- icon: /* @__PURE__ */ React116.createElement(LinkIcon3, { fontSize: "tiny" }),
8555
+ label: __59("Link", "elementor"),
8556
+ icon: /* @__PURE__ */ React118.createElement(LinkIcon3, { fontSize: "tiny" }),
8450
8557
  action: "link",
8451
8558
  method: null
8452
8559
  }
@@ -8455,7 +8562,7 @@ var { clear: clearButton, ...formatButtons } = toolbarButtons;
8455
8562
  var possibleFormats = Object.keys(formatButtons);
8456
8563
 
8457
8564
  // src/components/size/unstable-size-field.tsx
8458
- import * as React119 from "react";
8565
+ import * as React121 from "react";
8459
8566
  import { InputAdornment as InputAdornment6 } from "@elementor/ui";
8460
8567
 
8461
8568
  // src/hooks/use-size-value.ts
@@ -8498,7 +8605,7 @@ var differsFromExternal = (newState, externalState) => {
8498
8605
  };
8499
8606
 
8500
8607
  // src/components/size/unit-select.tsx
8501
- import * as React117 from "react";
8608
+ import * as React119 from "react";
8502
8609
  import { useId as useId4 } from "react";
8503
8610
  import { MenuListItem as MenuListItem8 } from "@elementor/editor-ui";
8504
8611
  import { bindMenu as bindMenu3, bindTrigger as bindTrigger8, Button as Button7, Menu as Menu4, styled as styled12, usePopupState as usePopupState12 } from "@elementor/ui";
@@ -8516,7 +8623,7 @@ var UnitSelect = ({ value, showPrimaryColor, onClick, options }) => {
8516
8623
  onClick(options[index]);
8517
8624
  popupState.close();
8518
8625
  };
8519
- return /* @__PURE__ */ React117.createElement(React117.Fragment, null, /* @__PURE__ */ React117.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React117.createElement(Menu4, { MenuListProps: { dense: true }, ...bindMenu3(popupState) }, options.map((option, index) => /* @__PURE__ */ React117.createElement(
8626
+ return /* @__PURE__ */ React119.createElement(React119.Fragment, null, /* @__PURE__ */ React119.createElement(StyledButton3, { isPrimaryColor: showPrimaryColor, size: "small", ...bindTrigger8(popupState) }, value), /* @__PURE__ */ React119.createElement(Menu4, { MenuListProps: { dense: true }, ...bindMenu3(popupState) }, options.map((option, index) => /* @__PURE__ */ React119.createElement(
8520
8627
  MenuListItem8,
8521
8628
  {
8522
8629
  key: option,
@@ -8545,11 +8652,11 @@ var StyledButton3 = styled12(Button7, {
8545
8652
  }));
8546
8653
 
8547
8654
  // src/components/size/unstable-size-input.tsx
8548
- import * as React118 from "react";
8655
+ import * as React120 from "react";
8549
8656
  import { forwardRef as forwardRef13 } from "react";
8550
8657
  var UnstableSizeInput = forwardRef13(
8551
8658
  ({ type, value, onChange, onKeyDown, onKeyUp, InputProps, onBlur, focused, disabled }, ref) => {
8552
- return /* @__PURE__ */ React118.createElement(
8659
+ return /* @__PURE__ */ React120.createElement(
8553
8660
  NumberInput,
8554
8661
  {
8555
8662
  ref,
@@ -8587,7 +8694,7 @@ var UnstableSizeField = ({
8587
8694
  const shouldHighlightUnit2 = () => {
8588
8695
  return hasValue(size);
8589
8696
  };
8590
- return /* @__PURE__ */ React119.createElement(
8697
+ return /* @__PURE__ */ React121.createElement(
8591
8698
  UnstableSizeInput,
8592
8699
  {
8593
8700
  type: "number",
@@ -8596,8 +8703,8 @@ var UnstableSizeField = ({
8596
8703
  onChange: (event) => setSize(event.target.value),
8597
8704
  InputProps: {
8598
8705
  ...InputProps,
8599
- startAdornment: startIcon && /* @__PURE__ */ React119.createElement(InputAdornment6, { position: "start" }, startIcon),
8600
- endAdornment: /* @__PURE__ */ React119.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React119.createElement(
8706
+ startAdornment: startIcon && /* @__PURE__ */ React121.createElement(InputAdornment6, { position: "start" }, startIcon),
8707
+ endAdornment: /* @__PURE__ */ React121.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React121.createElement(
8601
8708
  UnitSelect,
8602
8709
  {
8603
8710
  options: units2,
@@ -8659,6 +8766,7 @@ export {
8659
8766
  ControlFormLabel,
8660
8767
  ControlReplacementsProvider,
8661
8768
  ControlToggleButtonGroup,
8769
+ DateRangeControl,
8662
8770
  DateTimeControl,
8663
8771
  DisplayConditionsControl,
8664
8772
  EmailFormActionControl,