@elementor/editor-global-classes 4.0.0-573 → 4.0.0-591

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
@@ -540,7 +540,7 @@ import { stylesRepository } from "@elementor/editor-styles-repository";
540
540
  import { __registerSlice as registerSlice } from "@elementor/store";
541
541
 
542
542
  // src/components/class-manager/class-manager-button.tsx
543
- import * as React19 from "react";
543
+ import * as React20 from "react";
544
544
  import {
545
545
  __useActiveDocument as useActiveDocument2,
546
546
  __useActiveDocumentActions as useActiveDocumentActions
@@ -548,7 +548,7 @@ import {
548
548
  import { useUserStylesCapability } from "@elementor/editor-styles-repository";
549
549
  import { SaveChangesDialog as SaveChangesDialog2, useDialog as useDialog2 } from "@elementor/editor-ui";
550
550
  import { IconButton as IconButton5, Tooltip as Tooltip6 } from "@elementor/ui";
551
- import { __ as __15 } from "@wordpress/i18n";
551
+ import { __ as __16 } from "@wordpress/i18n";
552
552
 
553
553
  // src/hooks/use-prefetch-css-class-usage.ts
554
554
  import { useQueryClient } from "@elementor/query";
@@ -572,8 +572,9 @@ var PrefetchCssClassUsage = () => {
572
572
  };
573
573
 
574
574
  // src/components/class-manager/class-manager-panel.tsx
575
- import * as React18 from "react";
576
- import { useCallback, useEffect as useEffect3, useState as useState6 } from "react";
575
+ import * as React19 from "react";
576
+ import { useCallback, useEffect as useEffect3, useState as useState7 } from "react";
577
+ import { useSuppressedMessage as useSuppressedMessage2 } from "@elementor/editor-current-user";
577
578
  import { getCurrentDocument, getV1DocumentsManager, setDocumentModifiedStatus } from "@elementor/editor-documents";
578
579
  import {
579
580
  __createPanel as createPanel,
@@ -590,8 +591,8 @@ import { useMutation } from "@elementor/query";
590
591
  import { __dispatch as dispatch4 } from "@elementor/store";
591
592
  import {
592
593
  Alert as Alert2,
593
- Box as Box10,
594
- Button as Button2,
594
+ Box as Box11,
595
+ Button as Button3,
595
596
  Chip as Chip4,
596
597
  DialogHeader as DialogHeader2,
597
598
  Divider as Divider4,
@@ -599,7 +600,7 @@ import {
599
600
  IconButton as IconButton4,
600
601
  Stack as Stack9
601
602
  } from "@elementor/ui";
602
- import { __ as __14 } from "@wordpress/i18n";
603
+ import { __ as __15 } from "@wordpress/i18n";
603
604
 
604
605
  // src/hooks/use-classes-order.ts
605
606
  import { __useSelector as useSelector } from "@elementor/store";
@@ -1940,7 +1941,7 @@ var NotFoundLayout = ({ onClear, searchValue, mainText, sceneryText, icon }) =>
1940
1941
  );
1941
1942
 
1942
1943
  // src/components/class-manager/global-classes-list.tsx
1943
- var GlobalClassesList = ({ disabled, onStopSyncRequest }) => {
1944
+ var GlobalClassesList = ({ disabled, onStopSyncRequest, onStartSyncRequest }) => {
1944
1945
  const {
1945
1946
  search: { debouncedValue: searchValue }
1946
1947
  } = useSearchAndFilters();
@@ -2021,6 +2022,8 @@ var GlobalClassesList = ({ disabled, onStopSyncRequest }) => {
2021
2022
  onToggleSync: (id2, newValue) => {
2022
2023
  if (!newValue && onStopSyncRequest) {
2023
2024
  onStopSyncRequest(id2);
2025
+ } else if (newValue && onStartSyncRequest) {
2026
+ onStartSyncRequest(id2);
2024
2027
  } else {
2025
2028
  dispatch5(
2026
2029
  slice.actions.update({
@@ -2099,7 +2102,50 @@ function unblockPanelInteractions() {
2099
2102
  extendedWindow.$e?.components?.get?.("panel")?.unblockUserInteractions?.();
2100
2103
  }
2101
2104
 
2105
+ // src/components/class-manager/start-sync-to-v3-modal.tsx
2106
+ import * as React18 from "react";
2107
+ import { useState as useState6 } from "react";
2108
+ import {
2109
+ Box as Box10,
2110
+ Button as Button2,
2111
+ Checkbox as Checkbox2,
2112
+ Dialog,
2113
+ DialogActions as DialogActions2,
2114
+ DialogContent as DialogContent2,
2115
+ FormControlLabel,
2116
+ Typography as Typography9
2117
+ } from "@elementor/ui";
2118
+ import { __ as __14 } from "@wordpress/i18n";
2119
+ var IMAGE_URL = "https://assets.elementor.com/packages/v1/images/class-manager-sync-modal.png";
2120
+ var StartSyncToV3Modal = ({ externalOpen, onExternalClose, onConfirm } = {}) => {
2121
+ const [shouldShowAgain, setShouldShowAgain] = useState6(true);
2122
+ const handleClose = () => {
2123
+ onExternalClose?.();
2124
+ };
2125
+ const handleConfirm = () => {
2126
+ onConfirm?.();
2127
+ onExternalClose?.();
2128
+ };
2129
+ return /* @__PURE__ */ React18.createElement(Dialog, { open: !!externalOpen, onClose: handleClose, maxWidth: "sm", fullWidth: true }, /* @__PURE__ */ React18.createElement(DialogContent2, { sx: { p: 0 } }, /* @__PURE__ */ React18.createElement(Box10, { component: "img", src: IMAGE_URL, alt: "", sx: { width: "100%", display: "block" } }), /* @__PURE__ */ React18.createElement(Box10, { sx: { px: 3, pt: 4, pb: 1 } }, /* @__PURE__ */ React18.createElement(Typography9, { variant: "h6" }, __14("Sync class to version 3 Global Fonts", "elementor")), /* @__PURE__ */ React18.createElement(Typography9, { variant: "body2", color: "secondary", sx: { mb: 2, pt: 1 } }, __14(
2130
+ "Only typography settings supported in version 3 will be applied, including: font family, responsive font sizes, weight, text transform, decoration, line height, letter spacing, and word spacing. Changes made in the class will automatically apply to version 3.",
2131
+ "elementor"
2132
+ )))), /* @__PURE__ */ React18.createElement(DialogActions2, { sx: { justifyContent: "space-between", px: 3, pb: 2 } }, /* @__PURE__ */ React18.createElement(
2133
+ FormControlLabel,
2134
+ {
2135
+ control: /* @__PURE__ */ React18.createElement(
2136
+ Checkbox2,
2137
+ {
2138
+ checked: !shouldShowAgain,
2139
+ onChange: (e) => setShouldShowAgain(!e.target.checked)
2140
+ }
2141
+ ),
2142
+ label: /* @__PURE__ */ React18.createElement(Typography9, { variant: "body2", color: "secondary" }, __14("Don't show again", "elementor"))
2143
+ }
2144
+ ), /* @__PURE__ */ React18.createElement(Box10, { sx: { display: "flex", gap: 1 } }, /* @__PURE__ */ React18.createElement(Button2, { onClick: handleClose, color: "secondary", size: "small" }, __14("Cancel", "elementor")), /* @__PURE__ */ React18.createElement(Button2, { onClick: handleConfirm, variant: "contained", size: "small" }, __14("Sync to version 3", "elementor")))));
2145
+ };
2146
+
2102
2147
  // src/components/class-manager/class-manager-panel.tsx
2148
+ var STOP_SYNC_MESSAGE_KEY = "stop-sync-class";
2103
2149
  var id = "global-classes-manager";
2104
2150
  var reloadDocument = () => {
2105
2151
  const currentDocument = getCurrentDocument();
@@ -2130,7 +2176,9 @@ function ClassManagerPanel() {
2130
2176
  const isDirty2 = useDirtyState();
2131
2177
  const { close: closePanel } = usePanelActions();
2132
2178
  const { open: openSaveChangesDialog, close: closeSaveChangesDialog, isOpen: isSaveChangesDialogOpen } = useDialog();
2133
- const [stopSyncConfirmation, setStopSyncConfirmation] = useState6(null);
2179
+ const [stopSyncConfirmation, setStopSyncConfirmation] = useState7(null);
2180
+ const [startSyncConfirmation, setStartSyncConfirmation] = useState7(null);
2181
+ const [isStopSyncSuppressed] = useSuppressedMessage2(STOP_SYNC_MESSAGE_KEY);
2134
2182
  const { mutateAsync: publish, isPending: isPublishing } = usePublish();
2135
2183
  const resetAndClosePanel = () => {
2136
2184
  dispatch4(slice.actions.resetToInitialState({ context: "frontend" }));
@@ -2147,8 +2195,29 @@ function ClassManagerPanel() {
2147
2195
  );
2148
2196
  setStopSyncConfirmation(null);
2149
2197
  }, []);
2198
+ const handleStartSync = useCallback((classId) => {
2199
+ dispatch4(
2200
+ slice.actions.update({
2201
+ style: {
2202
+ id: classId,
2203
+ sync_to_v3: true
2204
+ }
2205
+ })
2206
+ );
2207
+ setStartSyncConfirmation(null);
2208
+ }, []);
2209
+ const handleStopSyncRequest = useCallback(
2210
+ (classId) => {
2211
+ if (!isStopSyncSuppressed) {
2212
+ setStopSyncConfirmation(classId);
2213
+ } else {
2214
+ handleStopSync(classId);
2215
+ }
2216
+ },
2217
+ [isStopSyncSuppressed, handleStopSync]
2218
+ );
2150
2219
  usePreventUnload();
2151
- return /* @__PURE__ */ React18.createElement(ThemeProvider, null, /* @__PURE__ */ React18.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React18.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React18.createElement(Panel, null, /* @__PURE__ */ React18.createElement(SearchAndFilterProvider, null, /* @__PURE__ */ React18.createElement(PanelHeader, null, /* @__PURE__ */ React18.createElement(Stack9, { p: 1, pl: 2, width: "100%", direction: "row", alignItems: "center" }, /* @__PURE__ */ React18.createElement(Stack9, { width: "100%", direction: "row", gap: 1 }, /* @__PURE__ */ React18.createElement(PanelHeaderTitle, { sx: { display: "flex", alignItems: "center", gap: 0.5 } }, /* @__PURE__ */ React18.createElement(FlippedColorSwatchIcon, { fontSize: "inherit" }), __14("Class Manager", "elementor")), /* @__PURE__ */ React18.createElement(TotalCssClassCounter, null)), /* @__PURE__ */ React18.createElement(
2220
+ return /* @__PURE__ */ React19.createElement(ThemeProvider, null, /* @__PURE__ */ React19.createElement(ErrorBoundary, { fallback: /* @__PURE__ */ React19.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React19.createElement(Panel, null, /* @__PURE__ */ React19.createElement(SearchAndFilterProvider, null, /* @__PURE__ */ React19.createElement(PanelHeader, null, /* @__PURE__ */ React19.createElement(Stack9, { p: 1, pl: 2, width: "100%", direction: "row", alignItems: "center" }, /* @__PURE__ */ React19.createElement(Stack9, { width: "100%", direction: "row", gap: 1 }, /* @__PURE__ */ React19.createElement(PanelHeaderTitle, { sx: { display: "flex", alignItems: "center", gap: 0.5 } }, /* @__PURE__ */ React19.createElement(FlippedColorSwatchIcon, { fontSize: "inherit" }), __15("Class Manager", "elementor")), /* @__PURE__ */ React19.createElement(TotalCssClassCounter, null)), /* @__PURE__ */ React19.createElement(
2152
2221
  CloseButton,
2153
2222
  {
2154
2223
  sx: { marginLeft: "auto" },
@@ -2161,7 +2230,7 @@ function ClassManagerPanel() {
2161
2230
  closePanel();
2162
2231
  }
2163
2232
  }
2164
- ))), /* @__PURE__ */ React18.createElement(
2233
+ ))), /* @__PURE__ */ React19.createElement(
2165
2234
  PanelBody,
2166
2235
  {
2167
2236
  sx: {
@@ -2170,10 +2239,10 @@ function ClassManagerPanel() {
2170
2239
  height: "100%"
2171
2240
  }
2172
2241
  },
2173
- /* @__PURE__ */ React18.createElement(Box10, { px: 2, pb: 1 }, /* @__PURE__ */ React18.createElement(Stack9, { direction: "row", justifyContent: "spaceBetween", gap: 0.5, sx: { pb: 0.5 } }, /* @__PURE__ */ React18.createElement(Box10, { sx: { flexGrow: 1 } }, /* @__PURE__ */ React18.createElement(ClassManagerSearch, null)), /* @__PURE__ */ React18.createElement(CssClassFilter, null)), /* @__PURE__ */ React18.createElement(ActiveFilters, null)),
2174
- /* @__PURE__ */ React18.createElement(Divider4, null),
2175
- /* @__PURE__ */ React18.createElement(
2176
- Box10,
2242
+ /* @__PURE__ */ React19.createElement(Box11, { px: 2, pb: 1 }, /* @__PURE__ */ React19.createElement(Stack9, { direction: "row", justifyContent: "spaceBetween", gap: 0.5, sx: { pb: 0.5 } }, /* @__PURE__ */ React19.createElement(Box11, { sx: { flexGrow: 1 } }, /* @__PURE__ */ React19.createElement(ClassManagerSearch, null)), /* @__PURE__ */ React19.createElement(CssClassFilter, null)), /* @__PURE__ */ React19.createElement(ActiveFilters, null)),
2243
+ /* @__PURE__ */ React19.createElement(Divider4, null),
2244
+ /* @__PURE__ */ React19.createElement(
2245
+ Box11,
2177
2246
  {
2178
2247
  px: 2,
2179
2248
  sx: {
@@ -2181,16 +2250,17 @@ function ClassManagerPanel() {
2181
2250
  overflowY: "auto"
2182
2251
  }
2183
2252
  },
2184
- /* @__PURE__ */ React18.createElement(
2253
+ /* @__PURE__ */ React19.createElement(
2185
2254
  GlobalClassesList,
2186
2255
  {
2187
2256
  disabled: isPublishing,
2188
- onStopSyncRequest: (classId) => setStopSyncConfirmation(classId)
2257
+ onStopSyncRequest: handleStopSyncRequest,
2258
+ onStartSyncRequest: (classId) => setStartSyncConfirmation(classId)
2189
2259
  }
2190
2260
  )
2191
2261
  )
2192
- ), /* @__PURE__ */ React18.createElement(PanelFooter, null, /* @__PURE__ */ React18.createElement(
2193
- Button2,
2262
+ ), /* @__PURE__ */ React19.createElement(PanelFooter, null, /* @__PURE__ */ React19.createElement(
2263
+ Button3,
2194
2264
  {
2195
2265
  fullWidth: true,
2196
2266
  size: "small",
@@ -2200,26 +2270,33 @@ function ClassManagerPanel() {
2200
2270
  disabled: !isDirty2,
2201
2271
  loading: isPublishing
2202
2272
  },
2203
- __14("Save changes", "elementor")
2204
- ))))), /* @__PURE__ */ React18.createElement(ClassManagerIntroduction, null), stopSyncConfirmation && /* @__PURE__ */ React18.createElement(
2273
+ __15("Save changes", "elementor")
2274
+ ))))), /* @__PURE__ */ React19.createElement(ClassManagerIntroduction, null), startSyncConfirmation && /* @__PURE__ */ React19.createElement(
2275
+ StartSyncToV3Modal,
2276
+ {
2277
+ externalOpen: true,
2278
+ onExternalClose: () => setStartSyncConfirmation(null),
2279
+ onConfirm: () => handleStartSync(startSyncConfirmation)
2280
+ }
2281
+ ), stopSyncConfirmation && /* @__PURE__ */ React19.createElement(
2205
2282
  StopSyncConfirmationDialog,
2206
2283
  {
2207
2284
  open: true,
2208
2285
  onClose: () => setStopSyncConfirmation(null),
2209
2286
  onConfirm: () => handleStopSync(stopSyncConfirmation)
2210
2287
  }
2211
- ), isSaveChangesDialogOpen && /* @__PURE__ */ React18.createElement(SaveChangesDialog, null, /* @__PURE__ */ React18.createElement(DialogHeader2, { onClose: closeSaveChangesDialog, logo: false }, /* @__PURE__ */ React18.createElement(SaveChangesDialog.Title, null, __14("You have unsaved changes", "elementor"))), /* @__PURE__ */ React18.createElement(SaveChangesDialog.Content, null, /* @__PURE__ */ React18.createElement(SaveChangesDialog.ContentText, null, __14("You have unsaved changes in the Class Manager.", "elementor")), /* @__PURE__ */ React18.createElement(SaveChangesDialog.ContentText, null, __14("To avoid losing your updates, save your changes before leaving.", "elementor"))), /* @__PURE__ */ React18.createElement(
2288
+ ), isSaveChangesDialogOpen && /* @__PURE__ */ React19.createElement(SaveChangesDialog, null, /* @__PURE__ */ React19.createElement(DialogHeader2, { onClose: closeSaveChangesDialog, logo: false }, /* @__PURE__ */ React19.createElement(SaveChangesDialog.Title, null, __15("You have unsaved changes", "elementor"))), /* @__PURE__ */ React19.createElement(SaveChangesDialog.Content, null, /* @__PURE__ */ React19.createElement(SaveChangesDialog.ContentText, null, __15("You have unsaved changes in the Class Manager.", "elementor")), /* @__PURE__ */ React19.createElement(SaveChangesDialog.ContentText, null, __15("To avoid losing your updates, save your changes before leaving.", "elementor"))), /* @__PURE__ */ React19.createElement(
2212
2289
  SaveChangesDialog.Actions,
2213
2290
  {
2214
2291
  actions: {
2215
2292
  discard: {
2216
- label: __14("Discard", "elementor"),
2293
+ label: __15("Discard", "elementor"),
2217
2294
  action: () => {
2218
2295
  resetAndClosePanel();
2219
2296
  }
2220
2297
  },
2221
2298
  confirm: {
2222
- label: __14("Save & Continue", "elementor"),
2299
+ label: __15("Save & Continue", "elementor"),
2223
2300
  action: async () => {
2224
2301
  await publish();
2225
2302
  closeSaveChangesDialog();
@@ -2230,8 +2307,8 @@ function ClassManagerPanel() {
2230
2307
  }
2231
2308
  )));
2232
2309
  }
2233
- var CloseButton = ({ onClose, ...props }) => /* @__PURE__ */ React18.createElement(IconButton4, { size: "small", color: "secondary", onClick: onClose, "aria-label": "Close", ...props }, /* @__PURE__ */ React18.createElement(XIcon, { fontSize: "small" }));
2234
- var ErrorBoundaryFallback = () => /* @__PURE__ */ React18.createElement(Box10, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React18.createElement(Alert2, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React18.createElement("strong", null, __14("Something went wrong", "elementor"))));
2310
+ var CloseButton = ({ onClose, ...props }) => /* @__PURE__ */ React19.createElement(IconButton4, { size: "small", color: "secondary", onClick: onClose, "aria-label": "Close", ...props }, /* @__PURE__ */ React19.createElement(XIcon, { fontSize: "small" }));
2311
+ var ErrorBoundaryFallback = () => /* @__PURE__ */ React19.createElement(Box11, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React19.createElement(Alert2, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React19.createElement("strong", null, __15("Something went wrong", "elementor"))));
2235
2312
  var usePreventUnload = () => {
2236
2313
  const isDirty2 = useDirtyState();
2237
2314
  useEffect3(() => {
@@ -2260,7 +2337,7 @@ var usePublish = () => {
2260
2337
  var TotalCssClassCounter = () => {
2261
2338
  const filters = useFilters();
2262
2339
  const cssClasses = useClassesOrder();
2263
- return /* @__PURE__ */ React18.createElement(
2340
+ return /* @__PURE__ */ React19.createElement(
2264
2341
  Chip4,
2265
2342
  {
2266
2343
  size: "small",
@@ -2268,19 +2345,24 @@ var TotalCssClassCounter = () => {
2268
2345
  }
2269
2346
  );
2270
2347
  };
2271
- var StopSyncConfirmationDialog = ({ open, onClose, onConfirm }) => /* @__PURE__ */ React18.createElement(ConfirmationDialog2, { open, onClose }, /* @__PURE__ */ React18.createElement(ConfirmationDialog2.Title, { icon: FlippedColorSwatchIcon, iconColor: "secondary" }, __14("Un-sync typography class", "elementor")), /* @__PURE__ */ React18.createElement(ConfirmationDialog2.Content, null, /* @__PURE__ */ React18.createElement(ConfirmationDialog2.ContentText, null, __14("You're about to stop syncing a typography class to Version 3.", "elementor")), /* @__PURE__ */ React18.createElement(ConfirmationDialog2.ContentText, { sx: { mt: 1 } }, __14(
2272
- "Note that if it's being used anywhere, the affected elements will inherit the default typography.",
2273
- "elementor"
2274
- ))), /* @__PURE__ */ React18.createElement(
2275
- ConfirmationDialog2.Actions,
2276
- {
2277
- onClose,
2278
- onConfirm,
2279
- cancelLabel: __14("Cancel", "elementor"),
2280
- confirmLabel: __14("Got it", "elementor"),
2281
- color: "secondary"
2282
- }
2283
- ));
2348
+ var StopSyncConfirmationDialog = ({ open, onClose, onConfirm }) => {
2349
+ const [, suppressStopSyncMessage] = useSuppressedMessage2(STOP_SYNC_MESSAGE_KEY);
2350
+ return /* @__PURE__ */ React19.createElement(ConfirmationDialog2, { open, onClose }, /* @__PURE__ */ React19.createElement(ConfirmationDialog2.Title, { icon: FlippedColorSwatchIcon, iconColor: "primary" }, __15("Un-sync typography class", "elementor")), /* @__PURE__ */ React19.createElement(ConfirmationDialog2.Content, null, /* @__PURE__ */ React19.createElement(ConfirmationDialog2.ContentText, null, __15("You're about to stop syncing a typography class to version 3.", "elementor")), /* @__PURE__ */ React19.createElement(ConfirmationDialog2.ContentText, { sx: { mt: 1 } }, __15(
2351
+ "Note that if it's being used anywhere, the affected elements will inherit the default typography.",
2352
+ "elementor"
2353
+ ))), /* @__PURE__ */ React19.createElement(
2354
+ ConfirmationDialog2.Actions,
2355
+ {
2356
+ onClose,
2357
+ onConfirm,
2358
+ cancelLabel: __15("Cancel", "elementor"),
2359
+ confirmLabel: __15("Got it", "elementor"),
2360
+ color: "primary",
2361
+ onSuppressMessage: suppressStopSyncMessage,
2362
+ suppressLabel: __15("Don't show again", "elementor")
2363
+ }
2364
+ ));
2365
+ };
2284
2366
 
2285
2367
  // src/components/class-manager/class-manager-button.tsx
2286
2368
  var trackGlobalClassesButton = () => {
@@ -2313,19 +2395,19 @@ var ClassManagerButton = () => {
2313
2395
  });
2314
2396
  prefetchClassesUsage();
2315
2397
  };
2316
- return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(Tooltip6, { title: __15("Class Manager", "elementor"), placement: "top" }, /* @__PURE__ */ React19.createElement(IconButton5, { size: "tiny", onClick: handleOpenPanel, sx: { marginInlineEnd: -0.75 } }, /* @__PURE__ */ React19.createElement(FlippedColorSwatchIcon, { fontSize: "tiny" }))), isSaveChangesDialogOpen && /* @__PURE__ */ React19.createElement(SaveChangesDialog2, null, /* @__PURE__ */ React19.createElement(SaveChangesDialog2.Title, null, __15("You have unsaved changes", "elementor")), /* @__PURE__ */ React19.createElement(SaveChangesDialog2.Content, null, /* @__PURE__ */ React19.createElement(SaveChangesDialog2.ContentText, { sx: { mb: 2 } }, __15(
2398
+ return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(Tooltip6, { title: __16("Class Manager", "elementor"), placement: "top" }, /* @__PURE__ */ React20.createElement(IconButton5, { size: "tiny", onClick: handleOpenPanel, sx: { marginInlineEnd: -0.75 } }, /* @__PURE__ */ React20.createElement(FlippedColorSwatchIcon, { fontSize: "tiny" }))), isSaveChangesDialogOpen && /* @__PURE__ */ React20.createElement(SaveChangesDialog2, null, /* @__PURE__ */ React20.createElement(SaveChangesDialog2.Title, null, __16("You have unsaved changes", "elementor")), /* @__PURE__ */ React20.createElement(SaveChangesDialog2.Content, null, /* @__PURE__ */ React20.createElement(SaveChangesDialog2.ContentText, { sx: { mb: 2 } }, __16(
2317
2399
  "To open the Class Manager, save your page first. You can't continue without saving.",
2318
2400
  "elementor"
2319
- ))), /* @__PURE__ */ React19.createElement(
2401
+ ))), /* @__PURE__ */ React20.createElement(
2320
2402
  SaveChangesDialog2.Actions,
2321
2403
  {
2322
2404
  actions: {
2323
2405
  cancel: {
2324
- label: __15("Stay here", "elementor"),
2406
+ label: __16("Stay here", "elementor"),
2325
2407
  action: closeSaveChangesDialog
2326
2408
  },
2327
2409
  confirm: {
2328
- label: __15("Save & Continue", "elementor"),
2410
+ label: __16("Save & Continue", "elementor"),
2329
2411
  action: async () => {
2330
2412
  await saveDocument();
2331
2413
  closeSaveChangesDialog();
@@ -2340,11 +2422,11 @@ var ClassManagerButton = () => {
2340
2422
  };
2341
2423
 
2342
2424
  // src/components/convert-local-class-to-global-class.tsx
2343
- import * as React20 from "react";
2425
+ import * as React21 from "react";
2344
2426
  import { validateStyleLabel as validateStyleLabel2 } from "@elementor/editor-styles-repository";
2345
2427
  import { MenuListItem as MenuListItem2 } from "@elementor/editor-ui";
2346
2428
  import { Divider as Divider5 } from "@elementor/ui";
2347
- import { __ as __16 } from "@wordpress/i18n";
2429
+ import { __ as __17 } from "@wordpress/i18n";
2348
2430
  var ConvertLocalClassToGlobalClass = (props) => {
2349
2431
  const localStyleData = props.styleDef;
2350
2432
  const handleConversion = () => {
@@ -2363,7 +2445,7 @@ var ConvertLocalClassToGlobalClass = (props) => {
2363
2445
  });
2364
2446
  }
2365
2447
  };
2366
- return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
2448
+ return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
2367
2449
  MenuListItem2,
2368
2450
  {
2369
2451
  disabled: !props.canConvert,
@@ -2377,8 +2459,8 @@ var ConvertLocalClassToGlobalClass = (props) => {
2377
2459
  }
2378
2460
  }
2379
2461
  },
2380
- __16("Convert to global class", "elementor")
2381
- ), /* @__PURE__ */ React20.createElement(Divider5, null));
2462
+ __17("Convert to global class", "elementor")
2463
+ ), /* @__PURE__ */ React21.createElement(Divider5, null));
2382
2464
  };
2383
2465
  function createClassName(prefix) {
2384
2466
  let i = 1;