@elementor/editor-components 3.35.0-426 → 3.35.0-428

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
@@ -17,7 +17,7 @@ import { __registerPanel as registerPanel } from "@elementor/editor-panels";
17
17
  import { stylesRepository } from "@elementor/editor-styles-repository";
18
18
  import { registerDataHook as registerDataHook2 } from "@elementor/editor-v1-adapters";
19
19
  import { __registerSlice as registerSlice } from "@elementor/store";
20
- import { __ as __28 } from "@wordpress/i18n";
20
+ import { __ as __29 } from "@wordpress/i18n";
21
21
 
22
22
  // src/component-instance-transformer.ts
23
23
  import { createTransformer } from "@elementor/editor-canvas";
@@ -1628,7 +1628,7 @@ function getComponentName() {
1628
1628
  }
1629
1629
 
1630
1630
  // src/components/components-tab/components.tsx
1631
- import * as React17 from "react";
1631
+ import * as React18 from "react";
1632
1632
  import { ThemeProvider as ThemeProvider2 } from "@elementor/editor-ui";
1633
1633
 
1634
1634
  // src/hooks/use-components.ts
@@ -1688,12 +1688,12 @@ var ComponentSearch = () => {
1688
1688
  };
1689
1689
 
1690
1690
  // src/components/components-tab/components-list.tsx
1691
- import * as React16 from "react";
1692
- import { useState as useState6 } from "react";
1691
+ import * as React17 from "react";
1692
+ import { useState as useState7 } from "react";
1693
1693
  import { getAngieSdk } from "@elementor/editor-mcp";
1694
1694
  import { AIIcon, ComponentsIcon as ComponentsIcon2 } from "@elementor/icons";
1695
1695
  import { Box as Box11, Button as Button4, Divider as Divider3, Link as Link3, List as List3, Stack as Stack10, Typography as Typography9 } from "@elementor/ui";
1696
- import { __ as __18 } from "@wordpress/i18n";
1696
+ import { __ as __19 } from "@wordpress/i18n";
1697
1697
 
1698
1698
  // src/store/actions/rename-component.ts
1699
1699
  import { getV1DocumentsManager as getV1DocumentsManager4, setDocumentModifiedStatus as setDocumentModifiedStatus3 } from "@elementor/editor-documents";
@@ -2052,8 +2052,8 @@ function AngiePromotionCard({ onClose }) {
2052
2052
  }
2053
2053
 
2054
2054
  // src/components/components-tab/components-item.tsx
2055
- import * as React14 from "react";
2056
- import { useRef as useRef4 } from "react";
2055
+ import * as React15 from "react";
2056
+ import { useRef as useRef4, useState as useState6 } from "react";
2057
2057
  import { endDragElementFromPanel, startDragElementFromPanel } from "@elementor/editor-canvas";
2058
2058
  import { dropElement } from "@elementor/editor-elements";
2059
2059
  import { EditableField as EditableField2, EllipsisWithTooltip, MenuListItem as MenuListItem3, useEditable as useEditable2, WarningInfotip } from "@elementor/editor-ui";
@@ -2071,7 +2071,7 @@ import {
2071
2071
  Typography as Typography8,
2072
2072
  usePopupState as usePopupState3
2073
2073
  } from "@elementor/ui";
2074
- import { __ as __17 } from "@wordpress/i18n";
2074
+ import { __ as __18 } from "@wordpress/i18n";
2075
2075
 
2076
2076
  // src/store/actions/archive-component.ts
2077
2077
  import { setDocumentModifiedStatus as setDocumentModifiedStatus4 } from "@elementor/editor-documents";
@@ -2315,9 +2315,21 @@ var createComponentModel2 = (component) => {
2315
2315
  };
2316
2316
  };
2317
2317
 
2318
+ // src/components/components-tab/delete-confirmation-dialog.tsx
2319
+ import * as React14 from "react";
2320
+ import { ConfirmationDialog } from "@elementor/editor-ui";
2321
+ import { __ as __17 } from "@wordpress/i18n";
2322
+ function DeleteConfirmationDialog({ open, onClose, onConfirm }) {
2323
+ return /* @__PURE__ */ React14.createElement(ConfirmationDialog, { open, onClose }, /* @__PURE__ */ React14.createElement(ConfirmationDialog.Title, null, __17("Delete this component?", "elementor")), /* @__PURE__ */ React14.createElement(ConfirmationDialog.Content, null, /* @__PURE__ */ React14.createElement(ConfirmationDialog.ContentText, null, __17(
2324
+ "Existing instances on your pages will remain functional. You will no longer find this component in your list.",
2325
+ "elementor"
2326
+ ))), /* @__PURE__ */ React14.createElement(ConfirmationDialog.Actions, { onClose, onConfirm }));
2327
+ }
2328
+
2318
2329
  // src/components/components-tab/components-item.tsx
2319
2330
  var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2320
2331
  const itemRef = useRef4(null);
2332
+ const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState6(false);
2321
2333
  const {
2322
2334
  ref: editableRef,
2323
2335
  isEditing,
@@ -2341,14 +2353,21 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2341
2353
  loadComponentsAssets([componentModel]);
2342
2354
  endDragElementFromPanel();
2343
2355
  };
2344
- const handleArchiveClick = () => {
2356
+ const handleDeleteClick = () => {
2345
2357
  popupState.close();
2358
+ setIsDeleteDialogOpen(true);
2359
+ };
2360
+ const handleDeleteConfirm = () => {
2346
2361
  if (!component.id) {
2347
2362
  throw new Error("Component ID is required");
2348
2363
  }
2364
+ setIsDeleteDialogOpen(false);
2349
2365
  archiveComponent(component.id, component.name);
2350
2366
  };
2351
- return /* @__PURE__ */ React14.createElement(Stack8, null, /* @__PURE__ */ React14.createElement(
2367
+ const handleDeleteDialogClose = () => {
2368
+ setIsDeleteDialogOpen(false);
2369
+ };
2370
+ return /* @__PURE__ */ React15.createElement(Stack8, null, /* @__PURE__ */ React15.createElement(
2352
2371
  WarningInfotip,
2353
2372
  {
2354
2373
  open: Boolean(error),
@@ -2357,7 +2376,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2357
2376
  width: itemRef.current?.getBoundingClientRect().width,
2358
2377
  offset: [0, -15]
2359
2378
  },
2360
- /* @__PURE__ */ React14.createElement(
2379
+ /* @__PURE__ */ React15.createElement(
2361
2380
  ListItemButton,
2362
2381
  {
2363
2382
  draggable: true,
@@ -2376,7 +2395,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2376
2395
  gap: 1
2377
2396
  }
2378
2397
  },
2379
- /* @__PURE__ */ React14.createElement(
2398
+ /* @__PURE__ */ React15.createElement(
2380
2399
  Box9,
2381
2400
  {
2382
2401
  display: "flex",
@@ -2386,8 +2405,8 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2386
2405
  flexGrow: 1,
2387
2406
  onClick: handleClick
2388
2407
  },
2389
- /* @__PURE__ */ React14.createElement(ListItemIcon, { size: "tiny" }, /* @__PURE__ */ React14.createElement(ComponentsIcon, { fontSize: "tiny" })),
2390
- /* @__PURE__ */ React14.createElement(Indicator, { isActive: isEditing, isError: !!error }, /* @__PURE__ */ React14.createElement(Box9, { display: "flex", flex: 1, minWidth: 0, flexGrow: 1 }, isEditing ? /* @__PURE__ */ React14.createElement(
2408
+ /* @__PURE__ */ React15.createElement(ListItemIcon, { size: "tiny" }, /* @__PURE__ */ React15.createElement(ComponentsIcon, { fontSize: "tiny" })),
2409
+ /* @__PURE__ */ React15.createElement(Indicator, { isActive: isEditing, isError: !!error }, /* @__PURE__ */ React15.createElement(Box9, { display: "flex", flex: 1, minWidth: 0, flexGrow: 1 }, isEditing ? /* @__PURE__ */ React15.createElement(
2391
2410
  EditableField2,
2392
2411
  {
2393
2412
  ref: editableRef,
@@ -2395,7 +2414,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2395
2414
  variant: "caption",
2396
2415
  ...getEditableProps()
2397
2416
  }
2398
- ) : /* @__PURE__ */ React14.createElement(
2417
+ ) : /* @__PURE__ */ React15.createElement(
2399
2418
  EllipsisWithTooltip,
2400
2419
  {
2401
2420
  title: component.name,
@@ -2405,9 +2424,9 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2405
2424
  }
2406
2425
  )))
2407
2426
  ),
2408
- /* @__PURE__ */ React14.createElement(IconButton5, { size: "tiny", ...bindTrigger3(popupState), "aria-label": "More actions" }, /* @__PURE__ */ React14.createElement(DotsVerticalIcon2, { fontSize: "tiny" }))
2427
+ /* @__PURE__ */ React15.createElement(IconButton5, { size: "tiny", ...bindTrigger3(popupState), "aria-label": "More actions" }, /* @__PURE__ */ React15.createElement(DotsVerticalIcon2, { fontSize: "tiny" }))
2409
2428
  )
2410
- ), /* @__PURE__ */ React14.createElement(
2429
+ ), /* @__PURE__ */ React15.createElement(
2411
2430
  Menu2,
2412
2431
  {
2413
2432
  ...bindMenu2(popupState),
@@ -2420,7 +2439,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2420
2439
  horizontal: "right"
2421
2440
  }
2422
2441
  },
2423
- /* @__PURE__ */ React14.createElement(
2442
+ /* @__PURE__ */ React15.createElement(
2424
2443
  MenuListItem3,
2425
2444
  {
2426
2445
  sx: { minWidth: "160px" },
@@ -2429,9 +2448,16 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
2429
2448
  openEditMode();
2430
2449
  }
2431
2450
  },
2432
- __17("Rename", "elementor")
2451
+ __18("Rename", "elementor")
2433
2452
  ),
2434
- /* @__PURE__ */ React14.createElement(MenuListItem3, { sx: { minWidth: "160px" }, onClick: handleArchiveClick }, /* @__PURE__ */ React14.createElement(Typography8, { variant: "caption", sx: { color: "error.light" } }, __17("Delete", "elementor")))
2453
+ /* @__PURE__ */ React15.createElement(MenuListItem3, { sx: { minWidth: "160px" }, onClick: handleDeleteClick }, /* @__PURE__ */ React15.createElement(Typography8, { variant: "caption", sx: { color: "error.light" } }, __18("Delete", "elementor")))
2454
+ ), /* @__PURE__ */ React15.createElement(
2455
+ DeleteConfirmationDialog,
2456
+ {
2457
+ open: isDeleteDialogOpen,
2458
+ onClose: handleDeleteDialogClose,
2459
+ onConfirm: handleDeleteConfirm
2460
+ }
2435
2461
  ));
2436
2462
  };
2437
2463
  var addComponentToPage = (model) => {
@@ -2476,12 +2502,12 @@ var getIndicatorBorder = ({ isActive, isError, theme }) => {
2476
2502
  };
2477
2503
 
2478
2504
  // src/components/components-tab/loading-components.tsx
2479
- import * as React15 from "react";
2505
+ import * as React16 from "react";
2480
2506
  import { Box as Box10, ListItemButton as ListItemButton2, Skeleton, Stack as Stack9 } from "@elementor/ui";
2481
2507
  var ROWS_COUNT = 6;
2482
2508
  var rows = Array.from({ length: ROWS_COUNT }, (_, index) => index);
2483
2509
  var LoadingComponents = () => {
2484
- return /* @__PURE__ */ React15.createElement(
2510
+ return /* @__PURE__ */ React16.createElement(
2485
2511
  Stack9,
2486
2512
  {
2487
2513
  "aria-label": "Loading components",
@@ -2503,14 +2529,14 @@ var LoadingComponents = () => {
2503
2529
  }
2504
2530
  }
2505
2531
  },
2506
- rows.map((row) => /* @__PURE__ */ React15.createElement(
2532
+ rows.map((row) => /* @__PURE__ */ React16.createElement(
2507
2533
  ListItemButton2,
2508
2534
  {
2509
2535
  key: row,
2510
2536
  sx: { border: "solid 1px", borderColor: "divider", py: 0.5, px: 1 },
2511
2537
  shape: "rounded"
2512
2538
  },
2513
- /* @__PURE__ */ React15.createElement(Box10, { display: "flex", gap: 1, width: "100%" }, /* @__PURE__ */ React15.createElement(Skeleton, { variant: "text", width: "24px", height: "36px" }), /* @__PURE__ */ React15.createElement(Skeleton, { variant: "text", width: "100%", height: "36px" }))
2539
+ /* @__PURE__ */ React16.createElement(Box10, { display: "flex", gap: 1, width: "100%" }, /* @__PURE__ */ React16.createElement(Skeleton, { variant: "text", width: "24px", height: "36px" }), /* @__PURE__ */ React16.createElement(Skeleton, { variant: "text", width: "100%", height: "36px" }))
2514
2540
  ))
2515
2541
  );
2516
2542
  };
@@ -2524,16 +2550,16 @@ var SUBTITLE_OVERRIDE_SX = {
2524
2550
  function ComponentsList() {
2525
2551
  const { components, isLoading, searchValue } = useFilteredComponents();
2526
2552
  if (isLoading) {
2527
- return /* @__PURE__ */ React16.createElement(LoadingComponents, null);
2553
+ return /* @__PURE__ */ React17.createElement(LoadingComponents, null);
2528
2554
  }
2529
2555
  const isEmpty = !components || components.length === 0;
2530
2556
  if (isEmpty) {
2531
2557
  if (searchValue.length > 0) {
2532
- return /* @__PURE__ */ React16.createElement(EmptySearchResult, null);
2558
+ return /* @__PURE__ */ React17.createElement(EmptySearchResult, null);
2533
2559
  }
2534
- return /* @__PURE__ */ React16.createElement(EmptyState, null);
2560
+ return /* @__PURE__ */ React17.createElement(EmptyState, null);
2535
2561
  }
2536
- return /* @__PURE__ */ React16.createElement(List3, { sx: { display: "flex", flexDirection: "column", gap: 1, px: 2 } }, components.map((component) => /* @__PURE__ */ React16.createElement(
2562
+ return /* @__PURE__ */ React17.createElement(List3, { sx: { display: "flex", flexDirection: "column", gap: 1, px: 2 } }, components.map((component) => /* @__PURE__ */ React17.createElement(
2537
2563
  ComponentItem,
2538
2564
  {
2539
2565
  key: component.uid,
@@ -2545,12 +2571,12 @@ function ComponentsList() {
2545
2571
  )));
2546
2572
  }
2547
2573
  var EmptyState = () => {
2548
- const [isAngieModalOpen, setIsAngieModalOpen] = useState6(false);
2574
+ const [isAngieModalOpen, setIsAngieModalOpen] = useState7(false);
2549
2575
  const handleCreateWithAI = () => {
2550
2576
  const sdk = getAngieSdk();
2551
2577
  if (sdk.isAngieReady()) {
2552
2578
  sdk.triggerAngie({
2553
- prompt: __18(
2579
+ prompt: __19(
2554
2580
  "Create a [hero/testimonial/product card/CTA/feature] component for my [business type]. Include [describe what you want]",
2555
2581
  "elementor"
2556
2582
  ),
@@ -2560,7 +2586,7 @@ var EmptyState = () => {
2560
2586
  setIsAngieModalOpen(true);
2561
2587
  }
2562
2588
  };
2563
- return /* @__PURE__ */ React16.createElement(
2589
+ return /* @__PURE__ */ React17.createElement(
2564
2590
  Stack10,
2565
2591
  {
2566
2592
  alignItems: "center",
@@ -2570,7 +2596,7 @@ var EmptyState = () => {
2570
2596
  gap: 2,
2571
2597
  overflow: "hidden"
2572
2598
  },
2573
- /* @__PURE__ */ React16.createElement(Stack10, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React16.createElement(ComponentsIcon2, { fontSize: "large", sx: { color: "text.secondary" } }), /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary", sx: SUBTITLE_OVERRIDE_SX }, __18("No components yet", "elementor")), /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "caption", color: "secondary", sx: { maxWidth: 200 } }, __18("Components are reusable blocks that sync across your site.", "elementor"), /* @__PURE__ */ React16.createElement("br", null), __18("Create once, use everywhere.", "elementor")), /* @__PURE__ */ React16.createElement(
2599
+ /* @__PURE__ */ React17.createElement(Stack10, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React17.createElement(ComponentsIcon2, { fontSize: "large", sx: { color: "text.secondary" } }), /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary", sx: SUBTITLE_OVERRIDE_SX }, __19("No components yet", "elementor")), /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "caption", color: "secondary", sx: { maxWidth: 200 } }, __19("Components are reusable blocks that sync across your site.", "elementor"), /* @__PURE__ */ React17.createElement("br", null), __19("Create once, use everywhere.", "elementor")), /* @__PURE__ */ React17.createElement(
2574
2600
  Link3,
2575
2601
  {
2576
2602
  href: LEARN_MORE_URL,
@@ -2579,28 +2605,28 @@ var EmptyState = () => {
2579
2605
  variant: "caption",
2580
2606
  color: "info.main"
2581
2607
  },
2582
- __18("Learn more about components", "elementor")
2608
+ __19("Learn more about components", "elementor")
2583
2609
  )),
2584
- /* @__PURE__ */ React16.createElement(Divider3, { sx: { width: "100%" } }),
2585
- /* @__PURE__ */ React16.createElement(Stack10, { alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary", sx: SUBTITLE_OVERRIDE_SX }, __18("Create your first one:", "elementor")), /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "caption", color: "secondary", sx: { maxWidth: 228 } }, __18(
2610
+ /* @__PURE__ */ React17.createElement(Divider3, { sx: { width: "100%" } }),
2611
+ /* @__PURE__ */ React17.createElement(Stack10, { alignItems: "center", gap: 1, width: "100%" }, /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "subtitle2", color: "text.secondary", sx: SUBTITLE_OVERRIDE_SX }, __19("Create your first one:", "elementor")), /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "caption", color: "secondary", sx: { maxWidth: 228 } }, __19(
2586
2612
  'Right-click any div-block or flexbox on your canvas or structure and select "Create component"',
2587
2613
  "elementor"
2588
- )), /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "caption", color: "secondary" }, __18("Or", "elementor")), /* @__PURE__ */ React16.createElement(AngiePromotionModal, { open: isAngieModalOpen, onClose: () => setIsAngieModalOpen(false) }, /* @__PURE__ */ React16.createElement(
2614
+ )), /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "caption", color: "secondary" }, __19("Or", "elementor")), /* @__PURE__ */ React17.createElement(AngiePromotionModal, { open: isAngieModalOpen, onClose: () => setIsAngieModalOpen(false) }, /* @__PURE__ */ React17.createElement(
2589
2615
  Button4,
2590
2616
  {
2591
2617
  color: "secondary",
2592
2618
  variant: "outlined",
2593
2619
  size: "small",
2594
2620
  onClick: handleCreateWithAI,
2595
- endIcon: /* @__PURE__ */ React16.createElement(AIIcon, null)
2621
+ endIcon: /* @__PURE__ */ React17.createElement(AIIcon, null)
2596
2622
  },
2597
- __18("Create component with AI", "elementor")
2623
+ __19("Create component with AI", "elementor")
2598
2624
  )))
2599
2625
  );
2600
2626
  };
2601
2627
  var EmptySearchResult = () => {
2602
2628
  const { searchValue, clearSearch } = useSearch();
2603
- return /* @__PURE__ */ React16.createElement(
2629
+ return /* @__PURE__ */ React17.createElement(
2604
2630
  Stack10,
2605
2631
  {
2606
2632
  color: "text.secondary",
@@ -2610,16 +2636,16 @@ var EmptySearchResult = () => {
2610
2636
  overflow: "hidden",
2611
2637
  justifySelf: "center"
2612
2638
  },
2613
- /* @__PURE__ */ React16.createElement(ComponentsIcon2, null),
2614
- /* @__PURE__ */ React16.createElement(
2639
+ /* @__PURE__ */ React17.createElement(ComponentsIcon2, null),
2640
+ /* @__PURE__ */ React17.createElement(
2615
2641
  Box11,
2616
2642
  {
2617
2643
  sx: {
2618
2644
  width: "100%"
2619
2645
  }
2620
2646
  },
2621
- /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "subtitle2", color: "inherit", sx: SUBTITLE_OVERRIDE_SX }, __18("Sorry, nothing matched", "elementor")),
2622
- searchValue && /* @__PURE__ */ React16.createElement(
2647
+ /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "subtitle2", color: "inherit", sx: SUBTITLE_OVERRIDE_SX }, __19("Sorry, nothing matched", "elementor")),
2648
+ searchValue && /* @__PURE__ */ React17.createElement(
2623
2649
  Typography9,
2624
2650
  {
2625
2651
  variant: "subtitle2",
@@ -2631,8 +2657,8 @@ var EmptySearchResult = () => {
2631
2657
  justifyContent: "center"
2632
2658
  }
2633
2659
  },
2634
- /* @__PURE__ */ React16.createElement("span", null, "\u201C"),
2635
- /* @__PURE__ */ React16.createElement(
2660
+ /* @__PURE__ */ React17.createElement("span", null, "\u201C"),
2661
+ /* @__PURE__ */ React17.createElement(
2636
2662
  "span",
2637
2663
  {
2638
2664
  style: {
@@ -2643,11 +2669,11 @@ var EmptySearchResult = () => {
2643
2669
  },
2644
2670
  searchValue
2645
2671
  ),
2646
- /* @__PURE__ */ React16.createElement("span", null, "\u201D.")
2672
+ /* @__PURE__ */ React17.createElement("span", null, "\u201D.")
2647
2673
  )
2648
2674
  ),
2649
- /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "caption", color: "inherit" }, __18("Try something else.", "elementor")),
2650
- /* @__PURE__ */ React16.createElement(Typography9, { align: "center", variant: "caption", color: "inherit" }, /* @__PURE__ */ React16.createElement(Link3, { color: "secondary", variant: "caption", component: "button", onClick: clearSearch }, __18("Clear & try again", "elementor")))
2675
+ /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "caption", color: "inherit" }, __19("Try something else.", "elementor")),
2676
+ /* @__PURE__ */ React17.createElement(Typography9, { align: "center", variant: "caption", color: "inherit" }, /* @__PURE__ */ React17.createElement(Link3, { color: "secondary", variant: "caption", component: "button", onClick: clearSearch }, __19("Clear & try again", "elementor")))
2651
2677
  );
2652
2678
  };
2653
2679
  var useFilteredComponents = () => {
@@ -2666,25 +2692,25 @@ var useFilteredComponents = () => {
2666
2692
  var ComponentsContent = () => {
2667
2693
  const { components, isLoading } = useComponents();
2668
2694
  const hasComponents = !isLoading && components.length > 0;
2669
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, hasComponents && /* @__PURE__ */ React17.createElement(ComponentSearch, null), /* @__PURE__ */ React17.createElement(ComponentsList, null));
2695
+ return /* @__PURE__ */ React18.createElement(React18.Fragment, null, hasComponents && /* @__PURE__ */ React18.createElement(ComponentSearch, null), /* @__PURE__ */ React18.createElement(ComponentsList, null));
2670
2696
  };
2671
2697
  var Components = () => {
2672
- return /* @__PURE__ */ React17.createElement(ThemeProvider2, null, /* @__PURE__ */ React17.createElement(SearchProvider, { localStorageKey: "elementor-components-search" }, /* @__PURE__ */ React17.createElement(ComponentsContent, null)));
2698
+ return /* @__PURE__ */ React18.createElement(ThemeProvider2, null, /* @__PURE__ */ React18.createElement(SearchProvider, { localStorageKey: "elementor-components-search" }, /* @__PURE__ */ React18.createElement(ComponentsContent, null)));
2673
2699
  };
2674
2700
 
2675
2701
  // src/components/consts.ts
2676
2702
  var COMPONENT_DOCUMENT_TYPE = "elementor_component";
2677
2703
 
2678
2704
  // src/components/create-component-form/create-component-form.tsx
2679
- import * as React18 from "react";
2680
- import { useEffect as useEffect2, useMemo as useMemo3, useRef as useRef5, useState as useState8 } from "react";
2705
+ import * as React19 from "react";
2706
+ import { useEffect as useEffect2, useMemo as useMemo3, useRef as useRef5, useState as useState9 } from "react";
2681
2707
  import { getElementLabel } from "@elementor/editor-elements";
2682
2708
  import { notify as notify3 } from "@elementor/editor-notifications";
2683
2709
  import { Form as FormElement, ThemeProvider as ThemeProvider3 } from "@elementor/editor-ui";
2684
2710
  import { ComponentsIcon as ComponentsIcon3 } from "@elementor/icons";
2685
2711
  import { __getState as getState15 } from "@elementor/store";
2686
2712
  import { Button as Button5, FormLabel as FormLabel2, Grid as Grid2, Popover as Popover3, Stack as Stack11, TextField as TextField3, Typography as Typography10 } from "@elementor/ui";
2687
- import { __ as __20 } from "@wordpress/i18n";
2713
+ import { __ as __21 } from "@wordpress/i18n";
2688
2714
 
2689
2715
  // src/prevent-non-atomic-nesting.ts
2690
2716
  import { isAtomicWidget } from "@elementor/editor-canvas";
@@ -2692,10 +2718,10 @@ import { getAllDescendants as getAllDescendants2, getElementType } from "@elemen
2692
2718
  import { notify as notify2 } from "@elementor/editor-notifications";
2693
2719
  import { blockCommand } from "@elementor/editor-v1-adapters";
2694
2720
  import { __getStore as getStore } from "@elementor/store";
2695
- import { __ as __19 } from "@wordpress/i18n";
2721
+ import { __ as __20 } from "@wordpress/i18n";
2696
2722
  var NON_ATOMIC_ELEMENT_ALERT = {
2697
2723
  type: "default",
2698
- message: __19("This widget isn't compatible with components. Use atomic elements instead.", "elementor"),
2724
+ message: __20("This widget isn't compatible with components. Use atomic elements instead.", "elementor"),
2699
2725
  id: "non-atomic-element-blocked"
2700
2726
  };
2701
2727
  function initNonAtomicNestingPrevention() {
@@ -2826,10 +2852,10 @@ async function createUnpublishedComponent(name, element, eventData, overridableP
2826
2852
  }
2827
2853
 
2828
2854
  // src/components/create-component-form/hooks/use-form.ts
2829
- import { useMemo as useMemo2, useState as useState7 } from "react";
2855
+ import { useMemo as useMemo2, useState as useState8 } from "react";
2830
2856
  var useForm = (initialValues) => {
2831
- const [values, setValues] = useState7(initialValues);
2832
- const [errors, setErrors] = useState7({});
2857
+ const [values, setValues] = useState8(initialValues);
2858
+ const [errors, setErrors] = useState8({});
2833
2859
  const isValid = useMemo2(() => {
2834
2860
  return !Object.values(errors).some((error) => error);
2835
2861
  }, [errors]);
@@ -2905,8 +2931,8 @@ function countNestedElements(container) {
2905
2931
 
2906
2932
  // src/components/create-component-form/create-component-form.tsx
2907
2933
  function CreateComponentForm() {
2908
- const [element, setElement] = useState8(null);
2909
- const [anchorPosition, setAnchorPosition] = useState8();
2934
+ const [element, setElement] = useState9(null);
2935
+ const [anchorPosition, setAnchorPosition] = useState9();
2910
2936
  const eventData = useRef5(null);
2911
2937
  useEffect2(() => {
2912
2938
  const OPEN_SAVE_AS_COMPONENT_FORM_EVENT = "elementor/editor/open-save-as-component-form";
@@ -2915,7 +2941,7 @@ function CreateComponentForm() {
2915
2941
  if (nonAtomicElements.length > 0) {
2916
2942
  notify3({
2917
2943
  type: "default",
2918
- message: __20(
2944
+ message: __21(
2919
2945
  "Components require atomic elements only. Remove widgets to create this component.",
2920
2946
  "elementor"
2921
2947
  ),
@@ -2954,12 +2980,12 @@ function CreateComponentForm() {
2954
2980
  }
2955
2981
  notify3({
2956
2982
  type: "success",
2957
- message: __20("Component created successfully.", "elementor"),
2983
+ message: __21("Component created successfully.", "elementor"),
2958
2984
  id: `component-saved-successfully-${uid}`
2959
2985
  });
2960
2986
  resetAndClosePopup();
2961
2987
  } catch {
2962
- const errorMessage = __20("Failed to create component. Please try again.", "elementor");
2988
+ const errorMessage = __21("Failed to create component. Please try again.", "elementor");
2963
2989
  notify3({
2964
2990
  type: "error",
2965
2991
  message: errorMessage,
@@ -2978,7 +3004,7 @@ function CreateComponentForm() {
2978
3004
  ...eventData.current
2979
3005
  });
2980
3006
  };
2981
- return /* @__PURE__ */ React18.createElement(ThemeProvider3, null, /* @__PURE__ */ React18.createElement(
3007
+ return /* @__PURE__ */ React19.createElement(ThemeProvider3, null, /* @__PURE__ */ React19.createElement(
2982
3008
  Popover3,
2983
3009
  {
2984
3010
  open: element !== null,
@@ -2986,7 +3012,7 @@ function CreateComponentForm() {
2986
3012
  anchorReference: "anchorPosition",
2987
3013
  anchorPosition
2988
3014
  },
2989
- element !== null && /* @__PURE__ */ React18.createElement(
3015
+ element !== null && /* @__PURE__ */ React19.createElement(
2990
3016
  Form2,
2991
3017
  {
2992
3018
  initialValues: { componentName: element.elementLabel },
@@ -3022,13 +3048,13 @@ var Form2 = ({
3022
3048
  }
3023
3049
  };
3024
3050
  const texts = {
3025
- heading: __20("Create component", "elementor"),
3026
- name: __20("Name", "elementor"),
3027
- cancel: __20("Cancel", "elementor"),
3028
- create: __20("Create", "elementor")
3051
+ heading: __21("Create component", "elementor"),
3052
+ name: __21("Name", "elementor"),
3053
+ cancel: __21("Cancel", "elementor"),
3054
+ create: __21("Create", "elementor")
3029
3055
  };
3030
3056
  const nameInputId = "component-name";
3031
- return /* @__PURE__ */ React18.createElement(FormElement, { onSubmit: handleSubmit }, /* @__PURE__ */ React18.createElement(Stack11, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React18.createElement(
3057
+ return /* @__PURE__ */ React19.createElement(FormElement, { onSubmit: handleSubmit }, /* @__PURE__ */ React19.createElement(Stack11, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React19.createElement(
3032
3058
  Stack11,
3033
3059
  {
3034
3060
  direction: "row",
@@ -3037,9 +3063,9 @@ var Form2 = ({
3037
3063
  px: 1.5,
3038
3064
  sx: { columnGap: 0.5, borderBottom: "1px solid", borderColor: "divider", width: "100%" }
3039
3065
  },
3040
- /* @__PURE__ */ React18.createElement(ComponentsIcon3, { fontSize: FONT_SIZE }),
3041
- /* @__PURE__ */ React18.createElement(Typography10, { variant: "caption", sx: { color: "text.primary", fontWeight: "500", lineHeight: 1 } }, texts.heading)
3042
- ), /* @__PURE__ */ React18.createElement(Grid2, { container: true, gap: 0.75, alignItems: "start", p: 1.5 }, /* @__PURE__ */ React18.createElement(Grid2, { item: true, xs: 12 }, /* @__PURE__ */ React18.createElement(FormLabel2, { htmlFor: nameInputId, size: "tiny" }, texts.name)), /* @__PURE__ */ React18.createElement(Grid2, { item: true, xs: 12 }, /* @__PURE__ */ React18.createElement(
3066
+ /* @__PURE__ */ React19.createElement(ComponentsIcon3, { fontSize: FONT_SIZE }),
3067
+ /* @__PURE__ */ React19.createElement(Typography10, { variant: "caption", sx: { color: "text.primary", fontWeight: "500", lineHeight: 1 } }, texts.heading)
3068
+ ), /* @__PURE__ */ React19.createElement(Grid2, { container: true, gap: 0.75, alignItems: "start", p: 1.5 }, /* @__PURE__ */ React19.createElement(Grid2, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(FormLabel2, { htmlFor: nameInputId, size: "tiny" }, texts.name)), /* @__PURE__ */ React19.createElement(Grid2, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(
3043
3069
  TextField3,
3044
3070
  {
3045
3071
  id: nameInputId,
@@ -3051,11 +3077,11 @@ var Form2 = ({
3051
3077
  error: Boolean(errors.componentName),
3052
3078
  helperText: errors.componentName
3053
3079
  }
3054
- ))), /* @__PURE__ */ React18.createElement(Stack11, { direction: "row", justifyContent: "flex-end", alignSelf: "end", py: 1, px: 1.5 }, /* @__PURE__ */ React18.createElement(Button5, { onClick: closePopup, color: "secondary", variant: "text", size: "small" }, texts.cancel), /* @__PURE__ */ React18.createElement(Button5, { type: "submit", disabled: !isValid, variant: "contained", color: "primary", size: "small" }, texts.create))));
3080
+ ))), /* @__PURE__ */ React19.createElement(Stack11, { direction: "row", justifyContent: "flex-end", alignSelf: "end", py: 1, px: 1.5 }, /* @__PURE__ */ React19.createElement(Button5, { onClick: closePopup, color: "secondary", variant: "text", size: "small" }, texts.cancel), /* @__PURE__ */ React19.createElement(Button5, { type: "submit", disabled: !isValid, variant: "contained", color: "primary", size: "small" }, texts.create))));
3055
3081
  };
3056
3082
 
3057
3083
  // src/components/edit-component/edit-component.tsx
3058
- import * as React20 from "react";
3084
+ import * as React21 from "react";
3059
3085
  import { useEffect as useEffect5 } from "react";
3060
3086
  import { getV1DocumentsManager as getV1DocumentsManager5 } from "@elementor/editor-documents";
3061
3087
  import { __privateListenTo as listenTo, commandEndEvent as commandEndEvent2 } from "@elementor/editor-v1-adapters";
@@ -3078,10 +3104,10 @@ function updateCurrentComponent({
3078
3104
  }
3079
3105
 
3080
3106
  // src/components/edit-component/component-modal.tsx
3081
- import * as React19 from "react";
3107
+ import * as React20 from "react";
3082
3108
  import { useEffect as useEffect4 } from "react";
3083
3109
  import { createPortal } from "react-dom";
3084
- import { __ as __21 } from "@wordpress/i18n";
3110
+ import { __ as __22 } from "@wordpress/i18n";
3085
3111
 
3086
3112
  // src/hooks/use-canvas-document.ts
3087
3113
  import { getCanvasIframeDocument } from "@elementor/editor-canvas";
@@ -3091,10 +3117,10 @@ function useCanvasDocument() {
3091
3117
  }
3092
3118
 
3093
3119
  // src/hooks/use-element-rect.ts
3094
- import { useEffect as useEffect3, useState as useState9 } from "react";
3120
+ import { useEffect as useEffect3, useState as useState10 } from "react";
3095
3121
  import { throttle } from "@elementor/utils";
3096
3122
  function useElementRect(element) {
3097
- const [rect, setRect] = useState9(new DOMRect(0, 0, 0, 0));
3123
+ const [rect, setRect] = useState10(new DOMRect(0, 0, 0, 0));
3098
3124
  const onChange = throttle(
3099
3125
  () => {
3100
3126
  setRect(element?.getBoundingClientRect() ?? new DOMRect(0, 0, 0, 0));
@@ -3171,7 +3197,7 @@ function ComponentModal({ element, onClose }) {
3171
3197
  return null;
3172
3198
  }
3173
3199
  return createPortal(
3174
- /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(BlockEditPage, null), /* @__PURE__ */ React19.createElement(Backdrop, { canvas: canvasDocument, element, onClose })),
3200
+ /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(BlockEditPage, null), /* @__PURE__ */ React20.createElement(Backdrop, { canvas: canvasDocument, element, onClose })),
3175
3201
  canvasDocument.body
3176
3202
  );
3177
3203
  }
@@ -3195,7 +3221,7 @@ function Backdrop({ canvas, element, onClose }) {
3195
3221
  onClose();
3196
3222
  }
3197
3223
  };
3198
- return /* @__PURE__ */ React19.createElement(
3224
+ return /* @__PURE__ */ React20.createElement(
3199
3225
  "div",
3200
3226
  {
3201
3227
  style: backdropStyle,
@@ -3203,7 +3229,7 @@ function Backdrop({ canvas, element, onClose }) {
3203
3229
  onKeyDown: handleKeyDown,
3204
3230
  role: "button",
3205
3231
  tabIndex: 0,
3206
- "aria-label": __21("Exit component editing mode", "elementor")
3232
+ "aria-label": __22("Exit component editing mode", "elementor")
3207
3233
  }
3208
3234
  );
3209
3235
  }
@@ -3253,7 +3279,7 @@ function BlockEditPage() {
3253
3279
  }
3254
3280
  }
3255
3281
  `;
3256
- return /* @__PURE__ */ React19.createElement("style", { "data-e-style-id": "e-block-v3-document-handles-styles" }, blockV3DocumentHandlesStyles);
3282
+ return /* @__PURE__ */ React20.createElement("style", { "data-e-style-id": "e-block-v3-document-handles-styles" }, blockV3DocumentHandlesStyles);
3257
3283
  }
3258
3284
 
3259
3285
  // src/components/edit-component/edit-component.tsx
@@ -3266,7 +3292,7 @@ function EditComponent() {
3266
3292
  if (!elementDom) {
3267
3293
  return null;
3268
3294
  }
3269
- return /* @__PURE__ */ React20.createElement(ComponentModal, { element: elementDom, onClose });
3295
+ return /* @__PURE__ */ React21.createElement(ComponentModal, { element: elementDom, onClose });
3270
3296
  }
3271
3297
  function useHandleDocumentSwitches() {
3272
3298
  const documentsManager = getV1DocumentsManager5();
@@ -3336,33 +3362,33 @@ function getComponentDOMElement(id2) {
3336
3362
  }
3337
3363
 
3338
3364
  // src/components/in-edit-mode.tsx
3339
- import * as React21 from "react";
3365
+ import * as React22 from "react";
3340
3366
  import { closeDialog, openDialog } from "@elementor/editor-ui";
3341
3367
  import { InfoCircleFilledIcon } from "@elementor/icons";
3342
3368
  import { Box as Box12, Button as Button6, DialogActions, DialogContent, DialogHeader, Icon, Stack as Stack12, Typography as Typography11 } from "@elementor/ui";
3343
- import { __ as __22 } from "@wordpress/i18n";
3369
+ import { __ as __23 } from "@wordpress/i18n";
3344
3370
  var openEditModeDialog = (lockedBy) => {
3345
3371
  openDialog({
3346
- component: /* @__PURE__ */ React21.createElement(EditModeDialog, { lockedBy })
3372
+ component: /* @__PURE__ */ React22.createElement(EditModeDialog, { lockedBy })
3347
3373
  });
3348
3374
  };
3349
3375
  var EditModeDialog = ({ lockedBy }) => {
3350
- const content = __22("%s is currently editing this document", "elementor").replace("%s", lockedBy);
3351
- return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React21.createElement(Box12, { display: "flex", alignItems: "center", gap: 1 }, /* @__PURE__ */ React21.createElement(Icon, { color: "secondary" }, /* @__PURE__ */ React21.createElement(InfoCircleFilledIcon, { fontSize: "medium" })), /* @__PURE__ */ React21.createElement(Typography11, { variant: "subtitle1" }, content))), /* @__PURE__ */ React21.createElement(DialogContent, null, /* @__PURE__ */ React21.createElement(Stack12, { spacing: 2, direction: "column" }, /* @__PURE__ */ React21.createElement(Typography11, { variant: "body2" }, __22(
3376
+ const content = __23("%s is currently editing this document", "elementor").replace("%s", lockedBy);
3377
+ return /* @__PURE__ */ React22.createElement(React22.Fragment, null, /* @__PURE__ */ React22.createElement(DialogHeader, { logo: false }, /* @__PURE__ */ React22.createElement(Box12, { display: "flex", alignItems: "center", gap: 1 }, /* @__PURE__ */ React22.createElement(Icon, { color: "secondary" }, /* @__PURE__ */ React22.createElement(InfoCircleFilledIcon, { fontSize: "medium" })), /* @__PURE__ */ React22.createElement(Typography11, { variant: "subtitle1" }, content))), /* @__PURE__ */ React22.createElement(DialogContent, null, /* @__PURE__ */ React22.createElement(Stack12, { spacing: 2, direction: "column" }, /* @__PURE__ */ React22.createElement(Typography11, { variant: "body2" }, __23(
3352
3378
  "You can wait for them to finish or reach out to coordinate your changes together.",
3353
3379
  "elementor"
3354
- )), /* @__PURE__ */ React21.createElement(DialogActions, null, /* @__PURE__ */ React21.createElement(Button6, { color: "secondary", variant: "contained", onClick: closeDialog }, __22("Close", "elementor"))))));
3380
+ )), /* @__PURE__ */ React22.createElement(DialogActions, null, /* @__PURE__ */ React22.createElement(Button6, { color: "secondary", variant: "contained", onClick: closeDialog }, __23("Close", "elementor"))))));
3355
3381
  };
3356
3382
 
3357
3383
  // src/components/instance-editing-panel/instance-editing-panel.tsx
3358
- import * as React26 from "react";
3384
+ import * as React27 from "react";
3359
3385
  import { ControlAdornmentsProvider } from "@elementor/editor-controls";
3360
3386
  import { getFieldIndicators } from "@elementor/editor-editing-panel";
3361
3387
  import { useSelectedElement as useSelectedElement2 } from "@elementor/editor-elements";
3362
3388
  import { PanelBody as PanelBody2, PanelHeader as PanelHeader2, PanelHeaderTitle as PanelHeaderTitle2 } from "@elementor/editor-panels";
3363
3389
  import { ComponentsIcon as ComponentsIcon4, PencilIcon as PencilIcon2 } from "@elementor/icons";
3364
3390
  import { IconButton as IconButton6, Stack as Stack17, Tooltip as Tooltip4 } from "@elementor/ui";
3365
- import { __ as __24 } from "@wordpress/i18n";
3391
+ import { __ as __25 } from "@wordpress/i18n";
3366
3392
 
3367
3393
  // src/hooks/use-component-instance-settings.ts
3368
3394
  import { useElement } from "@elementor/editor-editing-panel";
@@ -3428,12 +3454,12 @@ function useComponentInstanceSettings() {
3428
3454
  }
3429
3455
 
3430
3456
  // src/components/instance-editing-panel/empty-state.tsx
3431
- import * as React22 from "react";
3457
+ import * as React23 from "react";
3432
3458
  import { ComponentPropListIcon as ComponentPropListIcon4, PencilIcon } from "@elementor/icons";
3433
3459
  import { Button as Button7, Stack as Stack13, Typography as Typography12 } from "@elementor/ui";
3434
- import { __ as __23 } from "@wordpress/i18n";
3460
+ import { __ as __24 } from "@wordpress/i18n";
3435
3461
  var EmptyState2 = ({ onEditComponent }) => {
3436
- return /* @__PURE__ */ React22.createElement(
3462
+ return /* @__PURE__ */ React23.createElement(
3437
3463
  Stack13,
3438
3464
  {
3439
3465
  alignItems: "center",
@@ -3443,25 +3469,25 @@ var EmptyState2 = ({ onEditComponent }) => {
3443
3469
  sx: { p: 2.5, pt: 8, pb: 5.5, mt: 1 },
3444
3470
  gap: 1.5
3445
3471
  },
3446
- /* @__PURE__ */ React22.createElement(ComponentPropListIcon4, { fontSize: "large" }),
3447
- /* @__PURE__ */ React22.createElement(Typography12, { align: "center", variant: "subtitle2" }, __23("No properties yet", "elementor")),
3448
- /* @__PURE__ */ React22.createElement(Typography12, { align: "center", variant: "caption", maxWidth: "170px" }, __23(
3472
+ /* @__PURE__ */ React23.createElement(ComponentPropListIcon4, { fontSize: "large" }),
3473
+ /* @__PURE__ */ React23.createElement(Typography12, { align: "center", variant: "subtitle2" }, __24("No properties yet", "elementor")),
3474
+ /* @__PURE__ */ React23.createElement(Typography12, { align: "center", variant: "caption", maxWidth: "170px" }, __24(
3449
3475
  "Edit the component to add properties, manage them or update the design across all instances.",
3450
3476
  "elementor"
3451
3477
  )),
3452
- /* @__PURE__ */ React22.createElement(Button7, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React22.createElement(PencilIcon, { fontSize: "small" }), __23("Edit component", "elementor"))
3478
+ /* @__PURE__ */ React23.createElement(Button7, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React23.createElement(PencilIcon, { fontSize: "small" }), __24("Edit component", "elementor"))
3453
3479
  );
3454
3480
  };
3455
3481
 
3456
3482
  // src/components/instance-editing-panel/override-props-group.tsx
3457
- import * as React25 from "react";
3483
+ import * as React26 from "react";
3458
3484
  import { useId } from "react";
3459
3485
  import { useStateByElement } from "@elementor/editor-editing-panel";
3460
3486
  import { CollapseIcon } from "@elementor/editor-ui";
3461
3487
  import { Box as Box13, Collapse, ListItemButton as ListItemButton3, ListItemText, Stack as Stack16 } from "@elementor/ui";
3462
3488
 
3463
3489
  // src/components/instance-editing-panel/override-prop-control.tsx
3464
- import * as React24 from "react";
3490
+ import * as React25 from "react";
3465
3491
  import { PropKeyProvider, PropProvider, useBoundProp } from "@elementor/editor-controls";
3466
3492
  import {
3467
3493
  controlsRegistry,
@@ -3555,16 +3581,16 @@ function getPropType({ widgetType, propKey }) {
3555
3581
  }
3556
3582
 
3557
3583
  // src/components/control-label.tsx
3558
- import * as React23 from "react";
3584
+ import * as React24 from "react";
3559
3585
  import { ControlAdornments, ControlFormLabel } from "@elementor/editor-controls";
3560
3586
  import { Stack as Stack14 } from "@elementor/ui";
3561
3587
  var ControlLabel = ({ children, ...props }) => {
3562
- return /* @__PURE__ */ React23.createElement(Stack14, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React23.createElement(ControlFormLabel, { ...props }, children), /* @__PURE__ */ React23.createElement(ControlAdornments, null));
3588
+ return /* @__PURE__ */ React24.createElement(Stack14, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React24.createElement(ControlFormLabel, { ...props }, children), /* @__PURE__ */ React24.createElement(ControlAdornments, null));
3563
3589
  };
3564
3590
 
3565
3591
  // src/components/instance-editing-panel/override-prop-control.tsx
3566
3592
  function OverridePropControl({ overridableProp, overrides }) {
3567
- return /* @__PURE__ */ React24.createElement(SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React24.createElement(OverrideControl, { overridableProp, overrides }));
3593
+ return /* @__PURE__ */ React25.createElement(SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React25.createElement(OverrideControl, { overridableProp, overrides }));
3568
3594
  }
3569
3595
  function OverrideControl({ overridableProp, overrides }) {
3570
3596
  const componentId = useCurrentComponentId();
@@ -3611,7 +3637,7 @@ function OverrideControl({ overridableProp, overrides }) {
3611
3637
  updateOverridableProp(componentId, overridableValue, { elType, widgetType, propKey });
3612
3638
  }
3613
3639
  };
3614
- return /* @__PURE__ */ React24.createElement(
3640
+ return /* @__PURE__ */ React25.createElement(
3615
3641
  PropProvider,
3616
3642
  {
3617
3643
  propType: propTypeSchema,
@@ -3621,7 +3647,7 @@ function OverrideControl({ overridableProp, overrides }) {
3621
3647
  return false;
3622
3648
  }
3623
3649
  },
3624
- /* @__PURE__ */ React24.createElement(PropKeyProvider, { bind: overridableProp.overrideKey }, /* @__PURE__ */ React24.createElement(Stack15, { direction: "column", gap: 1, mb: 1.5 }, /* @__PURE__ */ React24.createElement(ControlLabel, null, overridableProp.label), getControl(controls, overridableProp?.originPropFields ?? overridableProp)))
3650
+ /* @__PURE__ */ React25.createElement(PropKeyProvider, { bind: overridableProp.overrideKey }, /* @__PURE__ */ React25.createElement(Stack15, { direction: "column", gap: 1, mb: 1.5 }, /* @__PURE__ */ React25.createElement(ControlLabel, null, overridableProp.label), getControl(controls, overridableProp?.originPropFields ?? overridableProp)))
3625
3651
  );
3626
3652
  }
3627
3653
  function getPropValue(value) {
@@ -3674,7 +3700,7 @@ function createOverrideValue(overrideKey, overrideValue, componentId) {
3674
3700
  function getControl(controls, originPropFields) {
3675
3701
  const ControlComponent = controlsRegistry.get(controls[originPropFields.propKey].value.type);
3676
3702
  const controlProps = controls[originPropFields.propKey].value.props;
3677
- return /* @__PURE__ */ React24.createElement(ControlComponent, { ...controlProps });
3703
+ return /* @__PURE__ */ React25.createElement(ControlComponent, { ...controlProps });
3678
3704
  }
3679
3705
 
3680
3706
  // src/components/instance-editing-panel/override-props-group.tsx
@@ -3687,7 +3713,7 @@ function OverridePropsGroup({ group, props, overrides }) {
3687
3713
  const labelId = `label-${id2}`;
3688
3714
  const contentId = `content-${id2}`;
3689
3715
  const title = group.label;
3690
- return /* @__PURE__ */ React25.createElement(Box13, { "aria-label": `${title} section` }, /* @__PURE__ */ React25.createElement(
3716
+ return /* @__PURE__ */ React26.createElement(Box13, { "aria-label": `${title} section` }, /* @__PURE__ */ React26.createElement(
3691
3717
  ListItemButton3,
3692
3718
  {
3693
3719
  id: labelId,
@@ -3697,7 +3723,7 @@ function OverridePropsGroup({ group, props, overrides }) {
3697
3723
  p: 0,
3698
3724
  sx: { "&:hover": { backgroundColor: "transparent" } }
3699
3725
  },
3700
- /* @__PURE__ */ React25.createElement(Stack16, { direction: "row", alignItems: "center", justifyItems: "start", flexGrow: 1, gap: 0.5 }, /* @__PURE__ */ React25.createElement(
3726
+ /* @__PURE__ */ React26.createElement(Stack16, { direction: "row", alignItems: "center", justifyItems: "start", flexGrow: 1, gap: 0.5 }, /* @__PURE__ */ React26.createElement(
3701
3727
  ListItemText,
3702
3728
  {
3703
3729
  secondary: title,
@@ -3705,8 +3731,8 @@ function OverridePropsGroup({ group, props, overrides }) {
3705
3731
  sx: { flexGrow: 0, flexShrink: 1, marginInlineEnd: 1 }
3706
3732
  }
3707
3733
  )),
3708
- /* @__PURE__ */ React25.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
3709
- ), /* @__PURE__ */ React25.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto" }, /* @__PURE__ */ React25.createElement(Stack16, { direction: "column", gap: 1, p: 2 }, group.props.map((overrideKey) => /* @__PURE__ */ React25.createElement(
3734
+ /* @__PURE__ */ React26.createElement(CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
3735
+ ), /* @__PURE__ */ React26.createElement(Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto" }, /* @__PURE__ */ React26.createElement(Stack16, { direction: "column", gap: 1, p: 2 }, group.props.map((overrideKey) => /* @__PURE__ */ React26.createElement(
3710
3736
  OverridePropControl,
3711
3737
  {
3712
3738
  key: overrideKey,
@@ -3727,12 +3753,12 @@ function InstanceEditingPanel() {
3727
3753
  if (!componentId || !overridableProps || !component) {
3728
3754
  return null;
3729
3755
  }
3730
- const panelTitle = __24("Edit %s", "elementor").replace("%s", component.name);
3756
+ const panelTitle = __25("Edit %s", "elementor").replace("%s", component.name);
3731
3757
  const handleEditComponent = () => switchToComponent(componentId, componentInstanceId);
3732
3758
  const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
3733
3759
  const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
3734
3760
  const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
3735
- return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(PanelHeader2, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React26.createElement(Stack17, { direction: "row", alignContent: "space-between", flexGrow: 1 }, /* @__PURE__ */ React26.createElement(Stack17, { direction: "row", alignItems: "center", justifyContent: "start", gap: 1, flexGrow: 1 }, /* @__PURE__ */ React26.createElement(ComponentsIcon4, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React26.createElement(PanelHeaderTitle2, null, component.name)), /* @__PURE__ */ React26.createElement(Tooltip4, { title: panelTitle }, /* @__PURE__ */ React26.createElement(IconButton6, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React26.createElement(PencilIcon2, { fontSize: "tiny" }))))), /* @__PURE__ */ React26.createElement(PanelBody2, null, /* @__PURE__ */ React26.createElement(ControlAdornmentsProvider, { items: getFieldIndicators("settings") }, isEmpty ? /* @__PURE__ */ React26.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React26.createElement(Stack17, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React26.createElement(
3761
+ return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(PanelHeader2, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React27.createElement(Stack17, { direction: "row", alignContent: "space-between", flexGrow: 1 }, /* @__PURE__ */ React27.createElement(Stack17, { direction: "row", alignItems: "center", justifyContent: "start", gap: 1, flexGrow: 1 }, /* @__PURE__ */ React27.createElement(ComponentsIcon4, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React27.createElement(PanelHeaderTitle2, null, component.name)), /* @__PURE__ */ React27.createElement(Tooltip4, { title: panelTitle }, /* @__PURE__ */ React27.createElement(IconButton6, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React27.createElement(PencilIcon2, { fontSize: "tiny" }))))), /* @__PURE__ */ React27.createElement(PanelBody2, null, /* @__PURE__ */ React27.createElement(ControlAdornmentsProvider, { items: getFieldIndicators("settings") }, isEmpty ? /* @__PURE__ */ React27.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React27.createElement(Stack17, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React27.createElement(
3736
3762
  OverridePropsGroup,
3737
3763
  {
3738
3764
  key: group.id,
@@ -3744,16 +3770,16 @@ function InstanceEditingPanel() {
3744
3770
  }
3745
3771
 
3746
3772
  // src/components/overridable-props/overridable-prop-control.tsx
3747
- import * as React28 from "react";
3773
+ import * as React29 from "react";
3748
3774
  import { ControlReplacementsProvider, PropKeyProvider as PropKeyProvider2, PropProvider as PropProvider2, useBoundProp as useBoundProp2 } from "@elementor/editor-controls";
3749
3775
  import { createTopLevelObjectType as createTopLevelObjectType2, useElement as useElement2 } from "@elementor/editor-editing-panel";
3750
3776
 
3751
3777
  // src/provider/overridable-prop-context.tsx
3752
- import * as React27 from "react";
3778
+ import * as React28 from "react";
3753
3779
  import { createContext as createContext2, useContext as useContext2 } from "react";
3754
3780
  var OverridablePropContext = createContext2(null);
3755
3781
  function OverridablePropProvider({ children, ...props }) {
3756
- return /* @__PURE__ */ React27.createElement(OverridablePropContext.Provider, { value: props }, children);
3782
+ return /* @__PURE__ */ React28.createElement(OverridablePropContext.Provider, { value: props }, children);
3757
3783
  }
3758
3784
  var useOverridablePropValue = () => useContext2(OverridablePropContext)?.value;
3759
3785
 
@@ -3792,7 +3818,7 @@ function OverridablePropControl({
3792
3818
  });
3793
3819
  const propValue = isComponentInstance2 ? (value.origin_value?.value).override_value : value.origin_value;
3794
3820
  const objectPlaceholder = placeholder ? { [bind]: placeholder } : void 0;
3795
- return /* @__PURE__ */ React28.createElement(OverridablePropProvider, { value }, /* @__PURE__ */ React28.createElement(
3821
+ return /* @__PURE__ */ React29.createElement(OverridablePropProvider, { value }, /* @__PURE__ */ React29.createElement(
3796
3822
  PropProvider2,
3797
3823
  {
3798
3824
  ...propContext,
@@ -3803,17 +3829,17 @@ function OverridablePropControl({
3803
3829
  },
3804
3830
  placeholder: objectPlaceholder
3805
3831
  },
3806
- /* @__PURE__ */ React28.createElement(PropKeyProvider2, { bind }, /* @__PURE__ */ React28.createElement(ControlReplacementsProvider, { replacements: [] }, /* @__PURE__ */ React28.createElement(OriginalControl, { ...props })))
3832
+ /* @__PURE__ */ React29.createElement(PropKeyProvider2, { bind }, /* @__PURE__ */ React29.createElement(ControlReplacementsProvider, { replacements: [] }, /* @__PURE__ */ React29.createElement(OriginalControl, { ...props })))
3807
3833
  ));
3808
3834
  }
3809
3835
 
3810
3836
  // src/components/overridable-props/overridable-prop-indicator.tsx
3811
- import * as React30 from "react";
3837
+ import * as React31 from "react";
3812
3838
  import { useBoundProp as useBoundProp3 } from "@elementor/editor-controls";
3813
3839
  import { useElement as useElement3 } from "@elementor/editor-editing-panel";
3814
3840
  import { getWidgetsCache as getWidgetsCache3 } from "@elementor/editor-elements";
3815
3841
  import { bindPopover as bindPopover2, bindTrigger as bindTrigger4, Popover as Popover4, Tooltip as Tooltip5, usePopupState as usePopupState4 } from "@elementor/ui";
3816
- import { __ as __26 } from "@wordpress/i18n";
3842
+ import { __ as __27 } from "@wordpress/i18n";
3817
3843
 
3818
3844
  // src/store/actions/set-overridable-prop.ts
3819
3845
  import { __dispatch as dispatch14, __getState as getState17 } from "@elementor/store";
@@ -3880,11 +3906,11 @@ function setOverridableProp({
3880
3906
  }
3881
3907
 
3882
3908
  // src/components/overridable-props/indicator.tsx
3883
- import * as React29 from "react";
3909
+ import * as React30 from "react";
3884
3910
  import { forwardRef as forwardRef2 } from "react";
3885
3911
  import { CheckIcon, PlusIcon } from "@elementor/icons";
3886
3912
  import { Box as Box14, styled as styled4 } from "@elementor/ui";
3887
- import { __ as __25 } from "@wordpress/i18n";
3913
+ import { __ as __26 } from "@wordpress/i18n";
3888
3914
  var SIZE2 = "tiny";
3889
3915
  var IconContainer = styled4(Box14)`
3890
3916
  pointer-events: none;
@@ -3940,13 +3966,13 @@ var Content = styled4(Box14)`
3940
3966
  }
3941
3967
  }
3942
3968
  `;
3943
- var Indicator2 = forwardRef2(({ isOpen, isOverridable, ...props }, ref) => /* @__PURE__ */ React29.createElement(Content, { ref, ...props, className: isOpen || isOverridable ? "enlarged" : "" }, /* @__PURE__ */ React29.createElement(
3969
+ var Indicator2 = forwardRef2(({ isOpen, isOverridable, ...props }, ref) => /* @__PURE__ */ React30.createElement(Content, { ref, ...props, className: isOpen || isOverridable ? "enlarged" : "" }, /* @__PURE__ */ React30.createElement(
3944
3970
  IconContainer,
3945
3971
  {
3946
3972
  className: "icon",
3947
- "aria-label": isOverridable ? __25("Overridable property", "elementor") : __25("Make prop overridable", "elementor")
3973
+ "aria-label": isOverridable ? __26("Overridable property", "elementor") : __26("Make prop overridable", "elementor")
3948
3974
  },
3949
- isOverridable ? /* @__PURE__ */ React29.createElement(CheckIcon, { fontSize: SIZE2 }) : /* @__PURE__ */ React29.createElement(PlusIcon, { fontSize: SIZE2 })
3975
+ isOverridable ? /* @__PURE__ */ React30.createElement(CheckIcon, { fontSize: SIZE2 }) : /* @__PURE__ */ React30.createElement(PlusIcon, { fontSize: SIZE2 })
3950
3976
  )));
3951
3977
 
3952
3978
  // src/components/overridable-props/utils/get-overridable-prop.ts
@@ -3971,7 +3997,7 @@ function OverridablePropIndicator() {
3971
3997
  if (!isPropAllowed(bind) || !componentId || !overridableProps) {
3972
3998
  return null;
3973
3999
  }
3974
- return /* @__PURE__ */ React30.createElement(Content2, { componentId, overridableProps });
4000
+ return /* @__PURE__ */ React31.createElement(Content2, { componentId, overridableProps });
3975
4001
  }
3976
4002
  function Content2({ componentId, overridableProps }) {
3977
4003
  const {
@@ -4015,7 +4041,7 @@ function Content2({ componentId, overridableProps }) {
4015
4041
  popupState.close();
4016
4042
  };
4017
4043
  const overridableConfig = overridableValue ? getOverridableProp({ componentId, overrideKey: overridableValue.override_key }) : void 0;
4018
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(Tooltip5, { placement: "top", title: __26("Override Property", "elementor") }, /* @__PURE__ */ React30.createElement(Indicator2, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React30.createElement(
4044
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(Tooltip5, { placement: "top", title: __27("Override Property", "elementor") }, /* @__PURE__ */ React31.createElement(Indicator2, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React31.createElement(
4019
4045
  Popover4,
4020
4046
  {
4021
4047
  disableScrollLock: true,
@@ -4032,7 +4058,7 @@ function Content2({ componentId, overridableProps }) {
4032
4058
  },
4033
4059
  ...popoverProps
4034
4060
  },
4035
- /* @__PURE__ */ React30.createElement(
4061
+ /* @__PURE__ */ React31.createElement(
4036
4062
  OverridablePropForm,
4037
4063
  {
4038
4064
  onSubmit: handleSubmit,
@@ -4478,11 +4504,11 @@ import { getAllDescendants as getAllDescendants4 } from "@elementor/editor-eleme
4478
4504
  import { notify as notify4 } from "@elementor/editor-notifications";
4479
4505
  import { blockCommand as blockCommand2 } from "@elementor/editor-v1-adapters";
4480
4506
  import { __getState as getState19 } from "@elementor/store";
4481
- import { __ as __27 } from "@wordpress/i18n";
4507
+ import { __ as __28 } from "@wordpress/i18n";
4482
4508
  var COMPONENT_TYPE = "e-component";
4483
4509
  var COMPONENT_CIRCULAR_NESTING_ALERT = {
4484
4510
  type: "default",
4485
- message: __27("Can't add this component - components that contain each other can't be nested.", "elementor"),
4511
+ message: __28("Can't add this component - components that contain each other can't be nested.", "elementor"),
4486
4512
  id: "circular-component-nesting-blocked"
4487
4513
  };
4488
4514
  function initCircularNestingPrevention() {
@@ -4814,7 +4840,7 @@ function init() {
4814
4840
  window.elementorCommon.__beforeSave = beforeSave;
4815
4841
  injectTab({
4816
4842
  id: "components",
4817
- label: __28("Components", "elementor"),
4843
+ label: __29("Components", "elementor"),
4818
4844
  component: Components,
4819
4845
  position: 1
4820
4846
  });