@elementor/editor-app-bar 4.1.0-838 → 4.1.0-beta1
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.js +290 -176
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +272 -158
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -11
- package/src/components/locations/tools-menu-location.tsx +2 -0
- package/src/extensions/angie/angie-consts.ts +20 -0
- package/src/extensions/angie/components/angie-guide-card.tsx +52 -0
- package/src/extensions/angie/components/angie-guide-location.tsx +87 -0
- package/src/extensions/angie/hooks/use-action-props.ts +20 -15
package/dist/index.mjs
CHANGED
|
@@ -189,9 +189,9 @@ var documentOptionsMenu = createMenu2({
|
|
|
189
189
|
import { injectIntoTop as injectIntoTop2 } from "@elementor/editor";
|
|
190
190
|
|
|
191
191
|
// src/components/app-bar.tsx
|
|
192
|
-
import * as
|
|
192
|
+
import * as React22 from "react";
|
|
193
193
|
import { __useActiveDocument as useActiveDocument } from "@elementor/editor-documents";
|
|
194
|
-
import { AppBar as BaseAppBar, Box as Box3, Divider as Divider2, Grid, ThemeProvider as
|
|
194
|
+
import { AppBar as BaseAppBar, Box as Box3, Divider as Divider2, Grid, ThemeProvider as ThemeProvider3, Toolbar } from "@elementor/ui";
|
|
195
195
|
|
|
196
196
|
// src/components/locations/main-menu-location.tsx
|
|
197
197
|
import * as React10 from "react";
|
|
@@ -329,33 +329,145 @@ function ResponsiveLocation() {
|
|
|
329
329
|
}
|
|
330
330
|
|
|
331
331
|
// src/components/locations/tools-menu-location.tsx
|
|
332
|
-
import * as
|
|
332
|
+
import * as React20 from "react";
|
|
333
333
|
|
|
334
|
-
// src/components/
|
|
334
|
+
// src/extensions/angie/components/angie-guide-location.tsx
|
|
335
|
+
import * as React15 from "react";
|
|
336
|
+
import { useEffect, useState as useState2 } from "react";
|
|
337
|
+
import { ThemeProvider } from "@elementor/editor-ui";
|
|
338
|
+
import { useMixpanel } from "@elementor/events";
|
|
339
|
+
import { Infotip } from "@elementor/ui";
|
|
340
|
+
|
|
341
|
+
// src/extensions/angie/angie-consts.ts
|
|
342
|
+
import { __ as __2 } from "@wordpress/i18n";
|
|
343
|
+
var ANGIE_GUIDE_TOGGLE_EVENT = "elementor/editor/toggle-angie-guide";
|
|
344
|
+
var CREATE_WIDGET_EVENT = "elementor/editor/create-widget";
|
|
345
|
+
var ANGIE_BUTTON_ARIA_LABEL = __2("Angie", "elementor");
|
|
346
|
+
var ANGIE_LEARN_MORE_URL = "https://go.elementor.com/angie-learn-more";
|
|
347
|
+
var ANGIE_DESCRIPTION = __2(
|
|
348
|
+
"Angie lets you generate custom widgets, sections, and code using simple instructions.",
|
|
349
|
+
"elementor"
|
|
350
|
+
);
|
|
351
|
+
var AI_WIDGET_CTA_VIEWED_EVENT = "ai_widget_cta_viewed";
|
|
352
|
+
var ANGIE_TOP_BAR_PROMOTION_IMAGE_URL = "https://assets.elementor.com/packages/v1/images/angie-top-bar-promotion.svg";
|
|
353
|
+
var ANGIE_TOP_BAR_DESCRIPTION = __2("Build custom widgets using simple instructions.", "elementor");
|
|
354
|
+
|
|
355
|
+
// src/extensions/angie/components/angie-guide-card.tsx
|
|
335
356
|
import * as React14 from "react";
|
|
336
|
-
import { Stack as Stack2 } from "@elementor/ui";
|
|
357
|
+
import { Button, Chip, ClickAwayListener, CloseButton, Image, Stack as Stack2, Typography } from "@elementor/ui";
|
|
358
|
+
import { __ as __3 } from "@wordpress/i18n";
|
|
359
|
+
function AngieGuideCard({ imageUrl, description, learnMoreUrl, onInstall, onClose }) {
|
|
360
|
+
return /* @__PURE__ */ React14.createElement(ClickAwayListener, { onClickAway: onClose }, /* @__PURE__ */ React14.createElement(Stack2, { sx: { width: 296 }, "data-testid": "e-angie-guide-card" }, /* @__PURE__ */ React14.createElement(Stack2, { direction: "row", alignItems: "center", gap: 1, py: 1, px: 2 }, /* @__PURE__ */ React14.createElement(Typography, { variant: "subtitle2" }, __3("Meet Angie", "elementor")), /* @__PURE__ */ React14.createElement(Chip, { label: __3("New", "elementor"), size: "small", color: "info", variant: "standard" }), /* @__PURE__ */ React14.createElement(
|
|
361
|
+
CloseButton,
|
|
362
|
+
{
|
|
363
|
+
edge: "end",
|
|
364
|
+
sx: { ml: "auto" },
|
|
365
|
+
slotProps: { icon: { fontSize: "small" } },
|
|
366
|
+
onClick: onClose
|
|
367
|
+
}
|
|
368
|
+
)), /* @__PURE__ */ React14.createElement(Image, { src: imageUrl, alt: __3("Angie", "elementor"), sx: { height: 150, width: "100%" } }), /* @__PURE__ */ React14.createElement(Stack2, { px: 2, pt: 1.5, pb: 1 }, /* @__PURE__ */ React14.createElement(Typography, { variant: "body2", color: "secondary" }, description)), /* @__PURE__ */ React14.createElement(Stack2, { direction: "row", justifyContent: "flex-end", gap: 1, pt: 1, pb: 1.5, px: 2 }, /* @__PURE__ */ React14.createElement(
|
|
369
|
+
Button,
|
|
370
|
+
{
|
|
371
|
+
variant: "text",
|
|
372
|
+
size: "small",
|
|
373
|
+
color: "secondary",
|
|
374
|
+
onClick: () => {
|
|
375
|
+
window.open(learnMoreUrl, "_blank", "noopener,noreferrer");
|
|
376
|
+
onClose();
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
__3("Learn More", "elementor")
|
|
380
|
+
), /* @__PURE__ */ React14.createElement(Button, { variant: "contained", size: "small", color: "accent", onClick: onInstall }, __3("Try for free", "elementor")))));
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// src/extensions/angie/components/angie-guide-location.tsx
|
|
384
|
+
function AngieGuideLocation() {
|
|
385
|
+
const [anchorEl, setAnchorEl] = useState2(null);
|
|
386
|
+
const { dispatchEvent: dispatchEvent2 } = useMixpanel();
|
|
387
|
+
const isOpen = Boolean(anchorEl);
|
|
388
|
+
useEffect(() => {
|
|
389
|
+
const handleToggle = () => {
|
|
390
|
+
setAnchorEl((prev) => {
|
|
391
|
+
if (prev) {
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
return document.querySelector(`[aria-label="${ANGIE_BUTTON_ARIA_LABEL}"]`);
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
window.addEventListener(ANGIE_GUIDE_TOGGLE_EVENT, handleToggle);
|
|
398
|
+
return () => {
|
|
399
|
+
window.removeEventListener(ANGIE_GUIDE_TOGGLE_EVENT, handleToggle);
|
|
400
|
+
};
|
|
401
|
+
}, []);
|
|
402
|
+
const handleClose = () => setAnchorEl(null);
|
|
403
|
+
const handleInstall = async () => {
|
|
404
|
+
dispatchEvent2?.(AI_WIDGET_CTA_VIEWED_EVENT, {
|
|
405
|
+
entry_point: "top_bar_icon"
|
|
406
|
+
});
|
|
407
|
+
window.dispatchEvent(
|
|
408
|
+
new CustomEvent(CREATE_WIDGET_EVENT, {
|
|
409
|
+
detail: {
|
|
410
|
+
entry_point: "top_bar_icon"
|
|
411
|
+
}
|
|
412
|
+
})
|
|
413
|
+
);
|
|
414
|
+
handleClose();
|
|
415
|
+
};
|
|
416
|
+
return /* @__PURE__ */ React15.createElement(ThemeProvider, null, /* @__PURE__ */ React15.createElement(
|
|
417
|
+
Infotip,
|
|
418
|
+
{
|
|
419
|
+
content: /* @__PURE__ */ React15.createElement(
|
|
420
|
+
AngieGuideCard,
|
|
421
|
+
{
|
|
422
|
+
imageUrl: ANGIE_TOP_BAR_PROMOTION_IMAGE_URL,
|
|
423
|
+
description: ANGIE_TOP_BAR_DESCRIPTION,
|
|
424
|
+
learnMoreUrl: ANGIE_LEARN_MORE_URL,
|
|
425
|
+
onInstall: handleInstall,
|
|
426
|
+
onClose: handleClose
|
|
427
|
+
}
|
|
428
|
+
),
|
|
429
|
+
placement: "bottom-start",
|
|
430
|
+
open: isOpen,
|
|
431
|
+
disableHoverListener: true,
|
|
432
|
+
PopperProps: {
|
|
433
|
+
anchorEl,
|
|
434
|
+
modifiers: [
|
|
435
|
+
{
|
|
436
|
+
name: "offset",
|
|
437
|
+
options: { offset: [-4, -4] }
|
|
438
|
+
}
|
|
439
|
+
]
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
/* @__PURE__ */ React15.createElement("span", null)
|
|
443
|
+
));
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// src/components/ui/toolbar-menu.tsx
|
|
447
|
+
import * as React16 from "react";
|
|
448
|
+
import { Stack as Stack3 } from "@elementor/ui";
|
|
337
449
|
function ToolbarMenu({ children, ...props }) {
|
|
338
|
-
return /* @__PURE__ */
|
|
450
|
+
return /* @__PURE__ */ React16.createElement(MenuContextProvider, { type: "toolbar" }, /* @__PURE__ */ React16.createElement(Stack3, { sx: { px: 1.5 }, spacing: 1.5, direction: "row", alignItems: "center", ...props }, children));
|
|
339
451
|
}
|
|
340
452
|
|
|
341
453
|
// src/components/ui/toolbar-menu-more.tsx
|
|
342
|
-
import * as
|
|
454
|
+
import * as React17 from "react";
|
|
343
455
|
import { DotsVerticalIcon } from "@elementor/icons";
|
|
344
456
|
import { bindMenu as bindMenu2, bindTrigger as bindTrigger2, usePopupState as usePopupState2 } from "@elementor/ui";
|
|
345
|
-
import { __ as
|
|
457
|
+
import { __ as __4 } from "@wordpress/i18n";
|
|
346
458
|
function ToolbarMenuMore({ children, id }) {
|
|
347
459
|
const popupState = usePopupState2({
|
|
348
460
|
variant: "popover",
|
|
349
461
|
popupId: id
|
|
350
462
|
});
|
|
351
|
-
return /* @__PURE__ */
|
|
463
|
+
return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(ToolbarMenuItem, { ...bindTrigger2(popupState), title: __4("More", "elementor") }, /* @__PURE__ */ React17.createElement(DotsVerticalIcon, null)), /* @__PURE__ */ React17.createElement(PopoverMenu, { onClick: popupState.close, ...bindMenu2(popupState) }, children));
|
|
352
464
|
}
|
|
353
465
|
|
|
354
466
|
// src/components/locations/integrations-menu-location.tsx
|
|
355
|
-
import * as
|
|
467
|
+
import * as React18 from "react";
|
|
356
468
|
import { PlugIcon } from "@elementor/icons";
|
|
357
469
|
import { bindMenu as bindMenu3, bindTrigger as bindTrigger3, usePopupState as usePopupState3 } from "@elementor/ui";
|
|
358
|
-
import { __ as
|
|
470
|
+
import { __ as __5 } from "@wordpress/i18n";
|
|
359
471
|
var { useMenuItems: useMenuItems2 } = integrationsMenu;
|
|
360
472
|
function IntegrationsMenuLocation() {
|
|
361
473
|
const menuItems = useMenuItems2();
|
|
@@ -366,7 +478,7 @@ function IntegrationsMenuLocation() {
|
|
|
366
478
|
if (menuItems.default.length === 0) {
|
|
367
479
|
return null;
|
|
368
480
|
}
|
|
369
|
-
return /* @__PURE__ */
|
|
481
|
+
return /* @__PURE__ */ React18.createElement(React18.Fragment, null, /* @__PURE__ */ React18.createElement(ToolbarMenuItem, { ...bindTrigger3(popupState), title: __5("Integrations", "elementor") }, /* @__PURE__ */ React18.createElement(PlugIcon, null)), /* @__PURE__ */ React18.createElement(
|
|
370
482
|
PopoverMenu,
|
|
371
483
|
{
|
|
372
484
|
onClick: popupState.close,
|
|
@@ -374,32 +486,32 @@ function IntegrationsMenuLocation() {
|
|
|
374
486
|
marginThreshold: 8,
|
|
375
487
|
open: popupState.isOpen
|
|
376
488
|
},
|
|
377
|
-
menuItems.default.map(({ MenuItem: IntegrationsMenuItem, id }) => /* @__PURE__ */
|
|
489
|
+
menuItems.default.map(({ MenuItem: IntegrationsMenuItem, id }) => /* @__PURE__ */ React18.createElement(IntegrationsMenuItem, { key: id }))
|
|
378
490
|
));
|
|
379
491
|
}
|
|
380
492
|
|
|
381
493
|
// src/components/locations/send-feedback-popup-location.tsx
|
|
382
|
-
import * as
|
|
383
|
-
import { useEffect, useState as
|
|
384
|
-
import { ThemeProvider } from "@elementor/editor-ui";
|
|
494
|
+
import * as React19 from "react";
|
|
495
|
+
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
496
|
+
import { ThemeProvider as ThemeProvider2 } from "@elementor/editor-ui";
|
|
385
497
|
import { isExperimentActive } from "@elementor/editor-v1-adapters";
|
|
386
|
-
import { useMixpanel } from "@elementor/events";
|
|
498
|
+
import { useMixpanel as useMixpanel2 } from "@elementor/events";
|
|
387
499
|
import { httpService } from "@elementor/http-client";
|
|
388
500
|
import { AlertCircleIcon, CheckIcon } from "@elementor/icons";
|
|
389
501
|
import {
|
|
390
502
|
bindDialog,
|
|
391
|
-
Button,
|
|
392
|
-
CloseButton,
|
|
503
|
+
Button as Button2,
|
|
504
|
+
CloseButton as CloseButton2,
|
|
393
505
|
Dialog,
|
|
394
506
|
DialogContent,
|
|
395
507
|
DialogHeader,
|
|
396
508
|
DialogTitle,
|
|
397
509
|
Popover,
|
|
398
|
-
Stack as
|
|
510
|
+
Stack as Stack4,
|
|
399
511
|
TextField,
|
|
400
512
|
usePopupState as usePopupState4
|
|
401
513
|
} from "@elementor/ui";
|
|
402
|
-
import { __ as
|
|
514
|
+
import { __ as __6 } from "@wordpress/i18n";
|
|
403
515
|
|
|
404
516
|
// src/extensions/feedback/feedback-consts.ts
|
|
405
517
|
var EXPERIMENT_NAME = "in_editor_feedback";
|
|
@@ -413,23 +525,23 @@ var checkIfUserIsConnected = () => {
|
|
|
413
525
|
function SendFeedbackPopupLocation() {
|
|
414
526
|
const isActive = isExperimentActive(EXPERIMENT_NAME);
|
|
415
527
|
const extendedWindow = window;
|
|
416
|
-
const [isUserConnected, setIsUserConnected] =
|
|
528
|
+
const [isUserConnected, setIsUserConnected] = useState3(checkIfUserIsConnected());
|
|
417
529
|
const connectUrl = extendedWindow?.elementor?.config.user.top_bar.connect_url;
|
|
418
|
-
const [feedbackContent, setFeedbackContent] =
|
|
419
|
-
const [feedbackResult, setFeedbackResult] =
|
|
420
|
-
const [submitDisabled, setSubmitDisabled] =
|
|
421
|
-
const { dispatchEvent:
|
|
530
|
+
const [feedbackContent, setFeedbackContent] = useState3("");
|
|
531
|
+
const [feedbackResult, setFeedbackResult] = useState3(null);
|
|
532
|
+
const [submitDisabled, setSubmitDisabled] = useState3(true);
|
|
533
|
+
const { dispatchEvent: trackEvent2 = (...args) => void args } = useMixpanel2();
|
|
422
534
|
const popupState = usePopupState4({
|
|
423
535
|
variant: "dialog",
|
|
424
536
|
popupId: FEEDBACK_TOGGLE_EVENT
|
|
425
537
|
});
|
|
426
|
-
const [isFetching, setIsFetching] =
|
|
427
|
-
|
|
538
|
+
const [isFetching, setIsFetching] = useState3(false);
|
|
539
|
+
useEffect2(() => {
|
|
428
540
|
const handler = () => {
|
|
429
541
|
popupState.toggle();
|
|
430
542
|
setIsUserConnected(checkIfUserIsConnected());
|
|
431
543
|
setFeedbackResult(null);
|
|
432
|
-
|
|
544
|
+
trackEvent2("feedback_modal_opened", {
|
|
433
545
|
source: "top_bar",
|
|
434
546
|
context: "v4_beta"
|
|
435
547
|
});
|
|
@@ -438,13 +550,13 @@ function SendFeedbackPopupLocation() {
|
|
|
438
550
|
return () => {
|
|
439
551
|
window.removeEventListener(FEEDBACK_TOGGLE_EVENT, handler);
|
|
440
552
|
};
|
|
441
|
-
}, [popupState,
|
|
442
|
-
|
|
553
|
+
}, [popupState, trackEvent2]);
|
|
554
|
+
useEffect2(() => {
|
|
443
555
|
setSubmitDisabled(feedbackContent.trim().length < 10 || !isUserConnected || isFetching);
|
|
444
556
|
}, [feedbackContent, feedbackResult, isUserConnected, isFetching]);
|
|
445
557
|
const handleClose = () => {
|
|
446
558
|
popupState.close();
|
|
447
|
-
|
|
559
|
+
trackEvent2("feedback_modal_closed", {
|
|
448
560
|
feedback_text: feedbackContent
|
|
449
561
|
});
|
|
450
562
|
};
|
|
@@ -464,7 +576,7 @@ function SendFeedbackPopupLocation() {
|
|
|
464
576
|
if (!response.data.success && response.data.code.toString() === "401" || response.data.code.toString() === "403") {
|
|
465
577
|
setIsUserConnected(false);
|
|
466
578
|
}
|
|
467
|
-
|
|
579
|
+
trackEvent2(response.data.success ? "feedback_submitted" : "feedback_error", {
|
|
468
580
|
feedback_length: feedbackContent.length,
|
|
469
581
|
error_type: response.data.success ? void 0 : "server",
|
|
470
582
|
error_message: response.data.success ? void 0 : response.data.message
|
|
@@ -474,8 +586,8 @@ function SendFeedbackPopupLocation() {
|
|
|
474
586
|
if (!isActive) {
|
|
475
587
|
return null;
|
|
476
588
|
}
|
|
477
|
-
return /* @__PURE__ */
|
|
478
|
-
|
|
589
|
+
return /* @__PURE__ */ React19.createElement(ThemeProvider2, null, /* @__PURE__ */ React19.createElement(Popover, { ...bindDialog(popupState), onClose: () => handleClose() }, /* @__PURE__ */ React19.createElement(Dialog, { open: popupState.isOpen }, /* @__PURE__ */ React19.createElement(DialogHeader, { style: { width: "100%", minWidth: "35rem" } }, /* @__PURE__ */ React19.createElement(DialogTitle, { style: { width: "100%" } }, /* @__PURE__ */ React19.createElement(
|
|
590
|
+
Stack4,
|
|
479
591
|
{
|
|
480
592
|
display: "flex",
|
|
481
593
|
direction: "row",
|
|
@@ -483,18 +595,18 @@ function SendFeedbackPopupLocation() {
|
|
|
483
595
|
justifyContent: "space-between",
|
|
484
596
|
width: "100%"
|
|
485
597
|
},
|
|
486
|
-
|
|
487
|
-
/* @__PURE__ */
|
|
488
|
-
))), /* @__PURE__ */
|
|
598
|
+
__6("Submit Feedback", "elementor"),
|
|
599
|
+
/* @__PURE__ */ React19.createElement(CloseButton2, { onClick: popupState.close })
|
|
600
|
+
))), /* @__PURE__ */ React19.createElement(DialogContent, null, /* @__PURE__ */ React19.createElement(Stack4, { direction: "column", gap: 2 }, isUserConnected ? /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
|
|
489
601
|
TextField,
|
|
490
602
|
{
|
|
491
603
|
autofocus: true,
|
|
492
|
-
placeholder:
|
|
604
|
+
placeholder: __6(
|
|
493
605
|
"E.g. Can you add ABC features? I want to do ABC and it\u2019s important because \u2026",
|
|
494
606
|
"elementor"
|
|
495
607
|
),
|
|
496
608
|
fullwith: true,
|
|
497
|
-
label:
|
|
609
|
+
label: __6("Your Feedback", "elementor"),
|
|
498
610
|
multiline: true,
|
|
499
611
|
id: "elementor-feedback-usercontent",
|
|
500
612
|
rows: 6,
|
|
@@ -503,8 +615,8 @@ function SendFeedbackPopupLocation() {
|
|
|
503
615
|
onChange: (event) => setFeedbackContent(event.target.value),
|
|
504
616
|
value: feedbackContent
|
|
505
617
|
}
|
|
506
|
-
), /* @__PURE__ */
|
|
507
|
-
|
|
618
|
+
), /* @__PURE__ */ React19.createElement(Stack4, { direction: "row", justifyContent: "flex-end", alignItems: "center", gap: 2 }, feedbackResult && /* @__PURE__ */ React19.createElement(React19.Fragment, null, feedbackResult.success ? /* @__PURE__ */ React19.createElement(CheckIcon, { color: "success" }) : /* @__PURE__ */ React19.createElement(AlertCircleIcon, { color: "error" }), feedbackResult.message), feedbackResult?.success ? /* @__PURE__ */ React19.createElement(Button2, { variant: "text", onClick: () => handleStartAnother() }, __6("Submit Another Feedback", "elementor")) : /* @__PURE__ */ React19.createElement(
|
|
619
|
+
Button2,
|
|
508
620
|
{
|
|
509
621
|
disabled: submitDisabled,
|
|
510
622
|
onClick: submitFeedback,
|
|
@@ -512,9 +624,9 @@ function SendFeedbackPopupLocation() {
|
|
|
512
624
|
color: "primary",
|
|
513
625
|
size: "small"
|
|
514
626
|
},
|
|
515
|
-
|
|
516
|
-
))) : /* @__PURE__ */
|
|
517
|
-
|
|
627
|
+
__6("Submit", "elementor")
|
|
628
|
+
))) : /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
|
|
629
|
+
Button2,
|
|
518
630
|
{
|
|
519
631
|
variant: "contained",
|
|
520
632
|
color: "primary",
|
|
@@ -524,7 +636,7 @@ function SendFeedbackPopupLocation() {
|
|
|
524
636
|
rel: "noopener",
|
|
525
637
|
onClick: popupState.close
|
|
526
638
|
},
|
|
527
|
-
|
|
639
|
+
__6("Connect to Elementor", "elementor")
|
|
528
640
|
)))))));
|
|
529
641
|
}
|
|
530
642
|
|
|
@@ -535,11 +647,11 @@ function ToolsMenuLocation() {
|
|
|
535
647
|
const menuItems = useMenuItems3();
|
|
536
648
|
const toolbarMenuItems = menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS);
|
|
537
649
|
const popoverMenuItems = menuItems.default.slice(MAX_TOOLBAR_ACTIONS);
|
|
538
|
-
return /* @__PURE__ */
|
|
650
|
+
return /* @__PURE__ */ React20.createElement(ToolbarMenu, null, toolbarMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React20.createElement(MenuItem2, { key: id })), /* @__PURE__ */ React20.createElement(AngieGuideLocation, null), /* @__PURE__ */ React20.createElement(SendFeedbackPopupLocation, null), /* @__PURE__ */ React20.createElement(IntegrationsMenuLocation, null), popoverMenuItems.length > 0 && /* @__PURE__ */ React20.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-tools-more" }, popoverMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React20.createElement(MenuItem2, { key: id }))));
|
|
539
651
|
}
|
|
540
652
|
|
|
541
653
|
// src/components/locations/utilities-menu-location.tsx
|
|
542
|
-
import * as
|
|
654
|
+
import * as React21 from "react";
|
|
543
655
|
import { Fragment as Fragment4 } from "react";
|
|
544
656
|
var MAX_TOOLBAR_ACTIONS2 = 4;
|
|
545
657
|
var { useMenuItems: useMenuItems4 } = utilitiesMenu;
|
|
@@ -548,40 +660,42 @@ function UtilitiesMenuLocation() {
|
|
|
548
660
|
const shouldUsePopover = menuItems.default.length > MAX_TOOLBAR_ACTIONS2 + 1;
|
|
549
661
|
const toolbarMenuItems = shouldUsePopover ? menuItems.default.slice(0, MAX_TOOLBAR_ACTIONS2) : menuItems.default;
|
|
550
662
|
const popoverMenuItems = shouldUsePopover ? menuItems.default.slice(MAX_TOOLBAR_ACTIONS2) : [];
|
|
551
|
-
return /* @__PURE__ */
|
|
663
|
+
return /* @__PURE__ */ React21.createElement(ToolbarMenu, null, toolbarMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React21.createElement(Fragment4, { key: id }, /* @__PURE__ */ React21.createElement(MenuItem2, null))), popoverMenuItems.length > 0 && /* @__PURE__ */ React21.createElement(ToolbarMenuMore, { id: "elementor-editor-app-bar-utilities-more" }, popoverMenuItems.map(({ MenuItem: MenuItem2, id }) => /* @__PURE__ */ React21.createElement(MenuItem2, { key: id }))));
|
|
552
664
|
}
|
|
553
665
|
|
|
554
666
|
// src/components/app-bar.tsx
|
|
555
667
|
function AppBar() {
|
|
556
668
|
const document2 = useActiveDocument();
|
|
557
|
-
return /* @__PURE__ */
|
|
669
|
+
return /* @__PURE__ */ React22.createElement(ThemeProvider3, { colorScheme: "dark" }, /* @__PURE__ */ React22.createElement(BaseAppBar, { position: "sticky" }, /* @__PURE__ */ React22.createElement(Toolbar, { disableGutters: true, variant: "dense" }, /* @__PURE__ */ React22.createElement(Box3, { display: "grid", gridTemplateColumns: "repeat(3, 1fr)", flexGrow: 1 }, /* @__PURE__ */ React22.createElement(Grid, { container: true, flexWrap: "nowrap" }, /* @__PURE__ */ React22.createElement(MainMenuLocation, null), document2?.permissions?.allowAddingWidgets && /* @__PURE__ */ React22.createElement(ToolsMenuLocation, null)), /* @__PURE__ */ React22.createElement(Grid, { container: true, justifyContent: "center" }, /* @__PURE__ */ React22.createElement(ToolbarMenu, { spacing: 1.5 }, /* @__PURE__ */ React22.createElement(Divider2, { orientation: "vertical" }), /* @__PURE__ */ React22.createElement(PageIndicationLocation, null), /* @__PURE__ */ React22.createElement(Divider2, { orientation: "vertical" }), /* @__PURE__ */ React22.createElement(ResponsiveLocation, null), /* @__PURE__ */ React22.createElement(Divider2, { orientation: "vertical" }))), /* @__PURE__ */ React22.createElement(Grid, { container: true, justifyContent: "flex-end", flexWrap: "nowrap" }, /* @__PURE__ */ React22.createElement(UtilitiesMenuLocation, null), /* @__PURE__ */ React22.createElement(PrimaryActionLocation, null))))));
|
|
558
670
|
}
|
|
559
671
|
|
|
560
672
|
// src/extensions/angie/hooks/use-action-props.ts
|
|
673
|
+
import { useEffect as useEffect3 } from "react";
|
|
561
674
|
import { isAngieAvailable } from "@elementor/editor-mcp";
|
|
675
|
+
import { trackEvent } from "@elementor/events";
|
|
562
676
|
import { AngieIcon } from "@elementor/icons";
|
|
563
|
-
import { __ as
|
|
564
|
-
var CREATE_WIDGET_EVENT = "elementor/editor/create-widget";
|
|
565
|
-
var CREATE_WIDGET_PROMPT = `Create a widget for me.
|
|
566
|
-
Goal: [What should this widget help me accomplish?]
|
|
567
|
-
Placement: [Where will I see it in the editor/UI?]
|
|
568
|
-
How it should work: `;
|
|
677
|
+
import { __ as __7 } from "@wordpress/i18n";
|
|
569
678
|
function useActionProps() {
|
|
679
|
+
const hasAngieInstalled = isAngieAvailable();
|
|
680
|
+
const visible = !hasAngieInstalled;
|
|
681
|
+
useEffect3(() => {
|
|
682
|
+
if (!visible) {
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
trackEvent({
|
|
686
|
+
eventName: AI_WIDGET_CTA_VIEWED_EVENT,
|
|
687
|
+
entry_point: "top_bar_icon",
|
|
688
|
+
has_angie_installed: false
|
|
689
|
+
});
|
|
690
|
+
}, [visible]);
|
|
570
691
|
return {
|
|
571
|
-
title:
|
|
692
|
+
title: __7("Angie", "elementor"),
|
|
572
693
|
icon: AngieIcon,
|
|
573
694
|
onClick: () => {
|
|
574
|
-
window.dispatchEvent(
|
|
575
|
-
new CustomEvent(CREATE_WIDGET_EVENT, {
|
|
576
|
-
detail: {
|
|
577
|
-
prompt: CREATE_WIDGET_PROMPT,
|
|
578
|
-
entry_point: "top_bar"
|
|
579
|
-
}
|
|
580
|
-
})
|
|
581
|
-
);
|
|
695
|
+
window.dispatchEvent(new CustomEvent(ANGIE_GUIDE_TOGGLE_EVENT));
|
|
582
696
|
},
|
|
583
697
|
selected: false,
|
|
584
|
-
visible
|
|
698
|
+
visible
|
|
585
699
|
};
|
|
586
700
|
}
|
|
587
701
|
|
|
@@ -597,7 +711,7 @@ function init() {
|
|
|
597
711
|
// src/extensions/connect/hooks/use-connect-link-config.tsx
|
|
598
712
|
import { useCallback } from "react";
|
|
599
713
|
import { UserIcon } from "@elementor/icons";
|
|
600
|
-
import { __ as
|
|
714
|
+
import { __ as __8 } from "@wordpress/i18n";
|
|
601
715
|
var dispatchConnectClickEvent = (eventName) => {
|
|
602
716
|
try {
|
|
603
717
|
const extendedWindow = window;
|
|
@@ -650,12 +764,12 @@ function useConnectLinkConfig() {
|
|
|
650
764
|
[extendedWindow]
|
|
651
765
|
);
|
|
652
766
|
return isUserConnected ? {
|
|
653
|
-
title:
|
|
767
|
+
title: __8("My Elementor", "elementor"),
|
|
654
768
|
href: extendedWindow?.elementor?.config.user.top_bar.my_elementor_url,
|
|
655
769
|
icon: UserIcon,
|
|
656
770
|
target: "_blank"
|
|
657
771
|
} : {
|
|
658
|
-
title:
|
|
772
|
+
title: __8("Connect my account", "elementor"),
|
|
659
773
|
href: extendedWindow?.elementor?.config.user.top_bar.connect_url,
|
|
660
774
|
icon: UserIcon,
|
|
661
775
|
target,
|
|
@@ -677,12 +791,12 @@ function init2() {
|
|
|
677
791
|
import { __useActiveDocument as useActiveDocument2 } from "@elementor/editor-documents";
|
|
678
792
|
import { __privateRunCommand as runCommand } from "@elementor/editor-v1-adapters";
|
|
679
793
|
import { EyeIcon } from "@elementor/icons";
|
|
680
|
-
import { __ as
|
|
794
|
+
import { __ as __9 } from "@wordpress/i18n";
|
|
681
795
|
function useActionProps2() {
|
|
682
796
|
const document2 = useActiveDocument2();
|
|
683
797
|
return {
|
|
684
798
|
icon: EyeIcon,
|
|
685
|
-
title:
|
|
799
|
+
title: __9("Preview Changes", "elementor"),
|
|
686
800
|
onClick: () => {
|
|
687
801
|
const extendedWindow = window;
|
|
688
802
|
const config = extendedWindow?.elementorCommon?.eventsManager?.config;
|
|
@@ -714,7 +828,7 @@ function init3() {
|
|
|
714
828
|
}
|
|
715
829
|
|
|
716
830
|
// src/extensions/documents-save/components/primary-action.tsx
|
|
717
|
-
import * as
|
|
831
|
+
import * as React24 from "react";
|
|
718
832
|
import {
|
|
719
833
|
__useActiveDocument as useActiveDocument3,
|
|
720
834
|
__useActiveDocumentActions as useActiveDocumentActions
|
|
@@ -725,16 +839,16 @@ import {
|
|
|
725
839
|
bindMenu as bindMenu4,
|
|
726
840
|
bindTrigger as bindTrigger4,
|
|
727
841
|
Box as Box4,
|
|
728
|
-
Button as
|
|
842
|
+
Button as Button3,
|
|
729
843
|
ButtonGroup,
|
|
730
844
|
CircularProgress,
|
|
731
845
|
Tooltip as Tooltip3,
|
|
732
846
|
usePopupState as usePopupState5
|
|
733
847
|
} from "@elementor/ui";
|
|
734
|
-
import { __ as
|
|
848
|
+
import { __ as __10 } from "@wordpress/i18n";
|
|
735
849
|
|
|
736
850
|
// src/extensions/documents-save/components/primary-action-menu.tsx
|
|
737
|
-
import * as
|
|
851
|
+
import * as React23 from "react";
|
|
738
852
|
import { Divider as Divider3, styled as styled2 } from "@elementor/ui";
|
|
739
853
|
var { useMenuItems: useMenuItems5 } = documentOptionsMenu;
|
|
740
854
|
var StyledPopoverMenu = styled2(PopoverMenu)`
|
|
@@ -750,7 +864,7 @@ var StyledPopoverMenu = styled2(PopoverMenu)`
|
|
|
750
864
|
`;
|
|
751
865
|
function PrimaryActionMenu(props) {
|
|
752
866
|
const { save: saveActions, default: defaultActions } = useMenuItems5();
|
|
753
|
-
return /* @__PURE__ */
|
|
867
|
+
return /* @__PURE__ */ React23.createElement(
|
|
754
868
|
StyledPopoverMenu,
|
|
755
869
|
{
|
|
756
870
|
...props,
|
|
@@ -768,13 +882,13 @@ function PrimaryActionMenu(props) {
|
|
|
768
882
|
}
|
|
769
883
|
},
|
|
770
884
|
saveActions.map(({ MenuItem: MenuItem2, id }, index) => [
|
|
771
|
-
index > 0 && /* @__PURE__ */
|
|
772
|
-
/* @__PURE__ */
|
|
885
|
+
index > 0 && /* @__PURE__ */ React23.createElement(Divider3, { key: `${id}-divider` }),
|
|
886
|
+
/* @__PURE__ */ React23.createElement(MenuItem2, { key: id })
|
|
773
887
|
]),
|
|
774
|
-
saveActions.length > 0 && defaultActions.length > 0 && /* @__PURE__ */
|
|
888
|
+
saveActions.length > 0 && defaultActions.length > 0 && /* @__PURE__ */ React23.createElement(Divider3, null),
|
|
775
889
|
defaultActions.map(({ MenuItem: MenuItem2, id }, index) => [
|
|
776
|
-
index > 0 && /* @__PURE__ */
|
|
777
|
-
/* @__PURE__ */
|
|
890
|
+
index > 0 && /* @__PURE__ */ React23.createElement(Divider3, { key: `${id}-divider` }),
|
|
891
|
+
/* @__PURE__ */ React23.createElement(MenuItem2, { key: id })
|
|
778
892
|
])
|
|
779
893
|
);
|
|
780
894
|
}
|
|
@@ -795,8 +909,8 @@ function PrimaryAction() {
|
|
|
795
909
|
const isPublishDisabled = !isEditMode || !isPublishEnabled(document2);
|
|
796
910
|
const isSaveOptionsDisabled = !isEditMode || document2.type.value === "kit";
|
|
797
911
|
const shouldShowSpinner = document2.isSaving && !isPublishDisabled;
|
|
798
|
-
return /* @__PURE__ */
|
|
799
|
-
|
|
912
|
+
return /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(ButtonGroup, { size: "large", variant: "contained" }, /* @__PURE__ */ React24.createElement(
|
|
913
|
+
Button3,
|
|
800
914
|
{
|
|
801
915
|
onClick: () => {
|
|
802
916
|
const extendedWindow = window;
|
|
@@ -826,11 +940,11 @@ function PrimaryAction() {
|
|
|
826
940
|
},
|
|
827
941
|
disabled: isPublishDisabled
|
|
828
942
|
},
|
|
829
|
-
shouldShowSpinner ? /* @__PURE__ */
|
|
830
|
-
), /* @__PURE__ */
|
|
943
|
+
shouldShowSpinner ? /* @__PURE__ */ React24.createElement(CircularProgress, { color: "inherit", size: "1.5em" }) : getLabel(document2)
|
|
944
|
+
), /* @__PURE__ */ React24.createElement(
|
|
831
945
|
Tooltip3,
|
|
832
946
|
{
|
|
833
|
-
title:
|
|
947
|
+
title: __10("Save Options", "elementor"),
|
|
834
948
|
PopperProps: {
|
|
835
949
|
sx: {
|
|
836
950
|
"&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom": {
|
|
@@ -840,21 +954,21 @@ function PrimaryAction() {
|
|
|
840
954
|
}
|
|
841
955
|
}
|
|
842
956
|
},
|
|
843
|
-
/* @__PURE__ */
|
|
844
|
-
|
|
957
|
+
/* @__PURE__ */ React24.createElement(Box4, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ React24.createElement(
|
|
958
|
+
Button3,
|
|
845
959
|
{
|
|
846
960
|
size: "small",
|
|
847
961
|
...bindTrigger4(popupState),
|
|
848
962
|
sx: { px: 0, height: "100%", borderRadius: 0 },
|
|
849
963
|
disabled: isSaveOptionsDisabled,
|
|
850
|
-
"aria-label":
|
|
964
|
+
"aria-label": __10("Save Options", "elementor")
|
|
851
965
|
},
|
|
852
|
-
/* @__PURE__ */
|
|
966
|
+
/* @__PURE__ */ React24.createElement(ChevronDownIcon, null)
|
|
853
967
|
))
|
|
854
|
-
)), /* @__PURE__ */
|
|
968
|
+
)), /* @__PURE__ */ React24.createElement(PrimaryActionMenu, { ...bindMenu4(popupState), onClick: popupState.close }));
|
|
855
969
|
}
|
|
856
970
|
function getLabel(document2) {
|
|
857
|
-
return document2.userCan.publish ?
|
|
971
|
+
return document2.userCan.publish ? __10("Publish", "elementor") : __10("Submit", "elementor");
|
|
858
972
|
}
|
|
859
973
|
function isPublishEnabled(document2) {
|
|
860
974
|
if (document2.type.value === "kit") {
|
|
@@ -868,16 +982,16 @@ import {
|
|
|
868
982
|
__useActiveDocument as useActiveDocument4,
|
|
869
983
|
__useActiveDocumentActions as useActiveDocumentActions2
|
|
870
984
|
} from "@elementor/editor-documents";
|
|
871
|
-
import { useMixpanel as
|
|
985
|
+
import { useMixpanel as useMixpanel3 } from "@elementor/events";
|
|
872
986
|
import { LinkIcon } from "@elementor/icons";
|
|
873
|
-
import { __ as
|
|
987
|
+
import { __ as __11 } from "@wordpress/i18n";
|
|
874
988
|
function useDocumentCopyAndShareProps() {
|
|
875
989
|
const document2 = useActiveDocument4();
|
|
876
990
|
const { copyAndShare } = useActiveDocumentActions2();
|
|
877
|
-
const { dispatchEvent: dispatchEvent2, config } =
|
|
991
|
+
const { dispatchEvent: dispatchEvent2, config } = useMixpanel3();
|
|
878
992
|
return {
|
|
879
993
|
icon: LinkIcon,
|
|
880
|
-
title:
|
|
994
|
+
title: __11("Copy and Share", "elementor"),
|
|
881
995
|
onClick: () => {
|
|
882
996
|
const eventName = config?.names?.editorOne?.topBarPublishDropdown;
|
|
883
997
|
if (eventName) {
|
|
@@ -905,16 +1019,16 @@ import {
|
|
|
905
1019
|
__useActiveDocument as useActiveDocument5,
|
|
906
1020
|
__useActiveDocumentActions as useActiveDocumentActions3
|
|
907
1021
|
} from "@elementor/editor-documents";
|
|
908
|
-
import { useMixpanel as
|
|
1022
|
+
import { useMixpanel as useMixpanel4 } from "@elementor/events";
|
|
909
1023
|
import { FileReportIcon } from "@elementor/icons";
|
|
910
|
-
import { __ as
|
|
1024
|
+
import { __ as __12 } from "@wordpress/i18n";
|
|
911
1025
|
function useDocumentSaveDraftProps() {
|
|
912
1026
|
const document2 = useActiveDocument5();
|
|
913
1027
|
const { saveDraft } = useActiveDocumentActions3();
|
|
914
|
-
const { dispatchEvent: dispatchEvent2, config } =
|
|
1028
|
+
const { dispatchEvent: dispatchEvent2, config } = useMixpanel4();
|
|
915
1029
|
return {
|
|
916
1030
|
icon: FileReportIcon,
|
|
917
|
-
title:
|
|
1031
|
+
title: __12("Save Draft", "elementor"),
|
|
918
1032
|
onClick: () => {
|
|
919
1033
|
const eventName = config?.names?.editorOne?.topBarPublishDropdown;
|
|
920
1034
|
if (eventName) {
|
|
@@ -938,15 +1052,15 @@ function useDocumentSaveDraftProps() {
|
|
|
938
1052
|
|
|
939
1053
|
// src/extensions/documents-save/hooks/use-document-save-template-props.ts
|
|
940
1054
|
import { __useActiveDocumentActions as useActiveDocumentActions4 } from "@elementor/editor-documents";
|
|
941
|
-
import { useMixpanel as
|
|
1055
|
+
import { useMixpanel as useMixpanel5 } from "@elementor/events";
|
|
942
1056
|
import { FolderIcon } from "@elementor/icons";
|
|
943
|
-
import { __ as
|
|
1057
|
+
import { __ as __13 } from "@wordpress/i18n";
|
|
944
1058
|
function useDocumentSaveTemplateProps() {
|
|
945
1059
|
const { saveTemplate } = useActiveDocumentActions4();
|
|
946
|
-
const { dispatchEvent: dispatchEvent2, config } =
|
|
1060
|
+
const { dispatchEvent: dispatchEvent2, config } = useMixpanel5();
|
|
947
1061
|
return {
|
|
948
1062
|
icon: FolderIcon,
|
|
949
|
-
title:
|
|
1063
|
+
title: __13("Save as Template", "elementor"),
|
|
950
1064
|
onClick: () => {
|
|
951
1065
|
const eventName = config?.names?.editorOne?.topBarPublishDropdown;
|
|
952
1066
|
if (eventName) {
|
|
@@ -971,12 +1085,12 @@ function useDocumentSaveTemplateProps() {
|
|
|
971
1085
|
import { __useActiveDocument as useActiveDocument6 } from "@elementor/editor-documents";
|
|
972
1086
|
import { __privateRunCommand as runCommand2 } from "@elementor/editor-v1-adapters";
|
|
973
1087
|
import { EyeIcon as EyeIcon2 } from "@elementor/icons";
|
|
974
|
-
import { __ as
|
|
1088
|
+
import { __ as __14 } from "@wordpress/i18n";
|
|
975
1089
|
function useDocumentViewAsMarkdownProps() {
|
|
976
1090
|
const document2 = useActiveDocument6();
|
|
977
1091
|
return {
|
|
978
1092
|
icon: EyeIcon2,
|
|
979
|
-
title:
|
|
1093
|
+
title: __14("View as Markdown", "elementor"),
|
|
980
1094
|
onClick: async () => {
|
|
981
1095
|
const baseUrl = document2?.links?.wpPreview || document2?.links?.permalink;
|
|
982
1096
|
if (!baseUrl) {
|
|
@@ -995,15 +1109,15 @@ function useDocumentViewAsMarkdownProps() {
|
|
|
995
1109
|
// src/extensions/documents-save/hooks/use-document-view-page-props.ts
|
|
996
1110
|
import { __useActiveDocument as useActiveDocument7 } from "@elementor/editor-documents";
|
|
997
1111
|
import { __privateRunCommand as runCommand3 } from "@elementor/editor-v1-adapters";
|
|
998
|
-
import { useMixpanel as
|
|
1112
|
+
import { useMixpanel as useMixpanel6 } from "@elementor/events";
|
|
999
1113
|
import { EyeIcon as EyeIcon3 } from "@elementor/icons";
|
|
1000
|
-
import { __ as
|
|
1114
|
+
import { __ as __15 } from "@wordpress/i18n";
|
|
1001
1115
|
function useDocumentViewPageProps() {
|
|
1002
1116
|
const document2 = useActiveDocument7();
|
|
1003
|
-
const { dispatchEvent: dispatchEvent2, config } =
|
|
1117
|
+
const { dispatchEvent: dispatchEvent2, config } = useMixpanel6();
|
|
1004
1118
|
return {
|
|
1005
1119
|
icon: EyeIcon3,
|
|
1006
|
-
title:
|
|
1120
|
+
title: __15("View Page", "elementor"),
|
|
1007
1121
|
onClick: () => {
|
|
1008
1122
|
const eventName = config?.names?.editorOne?.topBarPublishDropdown;
|
|
1009
1123
|
if (eventName) {
|
|
@@ -1073,7 +1187,7 @@ import {
|
|
|
1073
1187
|
__privateUseRouteStatus as useRouteStatus
|
|
1074
1188
|
} from "@elementor/editor-v1-adapters";
|
|
1075
1189
|
import { FileSettingsIcon } from "@elementor/icons";
|
|
1076
|
-
import { __ as
|
|
1190
|
+
import { __ as __16 } from "@wordpress/i18n";
|
|
1077
1191
|
function useActionProps3() {
|
|
1078
1192
|
const activeDocument = useActiveDocument8();
|
|
1079
1193
|
const hostDocument = useHostDocument();
|
|
@@ -1081,8 +1195,8 @@ function useActionProps3() {
|
|
|
1081
1195
|
const document2 = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
|
|
1082
1196
|
const ButtonTitle = document2 ? (
|
|
1083
1197
|
/* translators: %s: Post type label. */
|
|
1084
|
-
|
|
1085
|
-
) :
|
|
1198
|
+
__16("%s Settings", "elementor").replace("%s", document2.type.label)
|
|
1199
|
+
) : __16("Document Settings", "elementor");
|
|
1086
1200
|
return {
|
|
1087
1201
|
title: ButtonTitle,
|
|
1088
1202
|
icon: FileSettingsIcon,
|
|
@@ -1122,11 +1236,11 @@ import {
|
|
|
1122
1236
|
__privateUseRouteStatus as useRouteStatus2
|
|
1123
1237
|
} from "@elementor/editor-v1-adapters";
|
|
1124
1238
|
import { PlusIcon } from "@elementor/icons";
|
|
1125
|
-
import { __ as
|
|
1239
|
+
import { __ as __17 } from "@wordpress/i18n";
|
|
1126
1240
|
function useActionProps4() {
|
|
1127
1241
|
const { isActive, isBlocked } = useRouteStatus2("panel/elements");
|
|
1128
1242
|
return {
|
|
1129
|
-
title:
|
|
1243
|
+
title: __17("Add Element", "elementor"),
|
|
1130
1244
|
icon: PlusIcon,
|
|
1131
1245
|
onClick: () => {
|
|
1132
1246
|
const extendedWindow = window;
|
|
@@ -1153,10 +1267,10 @@ import {
|
|
|
1153
1267
|
routeOpenEvent,
|
|
1154
1268
|
v1ReadyEvent
|
|
1155
1269
|
} from "@elementor/editor-v1-adapters";
|
|
1156
|
-
import { __ as
|
|
1270
|
+
import { __ as __18 } from "@wordpress/i18n";
|
|
1157
1271
|
function syncPanelTitle() {
|
|
1158
|
-
const panelTitle =
|
|
1159
|
-
const tabTitle =
|
|
1272
|
+
const panelTitle = __18("Elements", "elementor");
|
|
1273
|
+
const tabTitle = __18("Widgets", "elementor");
|
|
1160
1274
|
listenTo(routeOpenEvent("panel/elements"), () => {
|
|
1161
1275
|
setPanelTitle(panelTitle);
|
|
1162
1276
|
setTabTitle(tabTitle);
|
|
@@ -1191,7 +1305,7 @@ function init6() {
|
|
|
1191
1305
|
// src/extensions/feedback/index.ts
|
|
1192
1306
|
import { isExperimentActive as isExperimentActive2 } from "@elementor/editor-v1-adapters";
|
|
1193
1307
|
import { MessageLinesIcon } from "@elementor/icons";
|
|
1194
|
-
import { __ as
|
|
1308
|
+
import { __ as __19 } from "@wordpress/i18n";
|
|
1195
1309
|
function init7() {
|
|
1196
1310
|
const isActive = isExperimentActive2(EXPERIMENT_NAME);
|
|
1197
1311
|
if (!isActive) {
|
|
@@ -1204,7 +1318,7 @@ function init7() {
|
|
|
1204
1318
|
useProps: () => {
|
|
1205
1319
|
return {
|
|
1206
1320
|
icon: MessageLinesIcon,
|
|
1207
|
-
title:
|
|
1321
|
+
title: __19("Send Feedback", "elementor"),
|
|
1208
1322
|
onClick: () => {
|
|
1209
1323
|
dispatchEvent(new CustomEvent(FEEDBACK_TOGGLE_EVENT));
|
|
1210
1324
|
}
|
|
@@ -1216,10 +1330,10 @@ function init7() {
|
|
|
1216
1330
|
// src/extensions/finder/hooks/use-action-props.ts
|
|
1217
1331
|
import { __privateRunCommand as runCommand4 } from "@elementor/editor-v1-adapters";
|
|
1218
1332
|
import { SearchIcon } from "@elementor/icons";
|
|
1219
|
-
import { __ as
|
|
1333
|
+
import { __ as __20 } from "@wordpress/i18n";
|
|
1220
1334
|
function useActionProps5() {
|
|
1221
1335
|
return {
|
|
1222
|
-
title:
|
|
1336
|
+
title: __20("Finder", "elementor"),
|
|
1223
1337
|
icon: SearchIcon,
|
|
1224
1338
|
onClick: () => {
|
|
1225
1339
|
const extendedWindow = window;
|
|
@@ -1248,10 +1362,10 @@ function init8() {
|
|
|
1248
1362
|
|
|
1249
1363
|
// src/extensions/help/hooks/use-action-props.ts
|
|
1250
1364
|
import { HelpIcon } from "@elementor/icons";
|
|
1251
|
-
import { __ as
|
|
1365
|
+
import { __ as __21 } from "@wordpress/i18n";
|
|
1252
1366
|
function useActionProps6() {
|
|
1253
1367
|
return {
|
|
1254
|
-
title:
|
|
1368
|
+
title: __21("Help Center", "elementor"),
|
|
1255
1369
|
href: "https://go.elementor.com/editor-top-bar-learn/",
|
|
1256
1370
|
icon: HelpIcon,
|
|
1257
1371
|
target: "_blank",
|
|
@@ -1286,11 +1400,11 @@ import {
|
|
|
1286
1400
|
__privateUseRouteStatus as useRouteStatus3
|
|
1287
1401
|
} from "@elementor/editor-v1-adapters";
|
|
1288
1402
|
import { HistoryIcon } from "@elementor/icons";
|
|
1289
|
-
import { __ as
|
|
1403
|
+
import { __ as __22 } from "@wordpress/i18n";
|
|
1290
1404
|
function useActionProps7() {
|
|
1291
1405
|
const { isActive, isBlocked } = useRouteStatus3("panel/history");
|
|
1292
1406
|
return {
|
|
1293
|
-
title:
|
|
1407
|
+
title: __22("History", "elementor"),
|
|
1294
1408
|
icon: HistoryIcon,
|
|
1295
1409
|
onClick: () => {
|
|
1296
1410
|
const extendedWindow = window;
|
|
@@ -1322,11 +1436,11 @@ function init10() {
|
|
|
1322
1436
|
// src/extensions/keyboard-shortcuts/hooks/use-action-props.ts
|
|
1323
1437
|
import { __privateRunCommand as runCommand5 } from "@elementor/editor-v1-adapters";
|
|
1324
1438
|
import { KeyboardIcon } from "@elementor/icons";
|
|
1325
|
-
import { __ as
|
|
1439
|
+
import { __ as __23 } from "@wordpress/i18n";
|
|
1326
1440
|
function useActionProps8() {
|
|
1327
1441
|
return {
|
|
1328
1442
|
icon: KeyboardIcon,
|
|
1329
|
-
title:
|
|
1443
|
+
title: __23("Keyboard Shortcuts", "elementor"),
|
|
1330
1444
|
onClick: () => {
|
|
1331
1445
|
const extendedWindow = window;
|
|
1332
1446
|
const config = extendedWindow?.elementorCommon?.eventsManager?.config;
|
|
@@ -1354,7 +1468,7 @@ function init11() {
|
|
|
1354
1468
|
}
|
|
1355
1469
|
|
|
1356
1470
|
// src/extensions/responsive/components/breakpoints-switcher.tsx
|
|
1357
|
-
import * as
|
|
1471
|
+
import * as React25 from "react";
|
|
1358
1472
|
import {
|
|
1359
1473
|
useActivateBreakpoint,
|
|
1360
1474
|
useActiveBreakpoint,
|
|
@@ -1370,7 +1484,7 @@ import {
|
|
|
1370
1484
|
WidescreenIcon
|
|
1371
1485
|
} from "@elementor/icons";
|
|
1372
1486
|
import { Tab, Tabs, Tooltip as BaseTooltip2 } from "@elementor/ui";
|
|
1373
|
-
import { __ as
|
|
1487
|
+
import { __ as __24 } from "@wordpress/i18n";
|
|
1374
1488
|
function BreakpointsSwitcher() {
|
|
1375
1489
|
const breakpoints = useBreakpoints();
|
|
1376
1490
|
const activeBreakpoint = useActiveBreakpoint();
|
|
@@ -1392,14 +1506,14 @@ function BreakpointsSwitcher() {
|
|
|
1392
1506
|
}
|
|
1393
1507
|
activateBreakpoint(value);
|
|
1394
1508
|
};
|
|
1395
|
-
return /* @__PURE__ */
|
|
1509
|
+
return /* @__PURE__ */ React25.createElement(
|
|
1396
1510
|
Tabs,
|
|
1397
1511
|
{
|
|
1398
1512
|
textColor: "inherit",
|
|
1399
1513
|
indicatorColor: "secondary",
|
|
1400
1514
|
value: activeBreakpoint,
|
|
1401
1515
|
onChange,
|
|
1402
|
-
"aria-label":
|
|
1516
|
+
"aria-label": __24("Switch Device", "elementor"),
|
|
1403
1517
|
sx: {
|
|
1404
1518
|
"& .MuiTabs-indicator": {
|
|
1405
1519
|
backgroundColor: "text.primary"
|
|
@@ -1409,13 +1523,13 @@ function BreakpointsSwitcher() {
|
|
|
1409
1523
|
breakpoints.map(({ id, label, type, width }) => {
|
|
1410
1524
|
const Icon = iconsMap[id];
|
|
1411
1525
|
const title = labelsMap[type || "default"].replace("%s", label).replace("%d", width?.toString() || "");
|
|
1412
|
-
return /* @__PURE__ */
|
|
1526
|
+
return /* @__PURE__ */ React25.createElement(
|
|
1413
1527
|
Tab,
|
|
1414
1528
|
{
|
|
1415
1529
|
value: id,
|
|
1416
1530
|
key: id,
|
|
1417
1531
|
"aria-label": title,
|
|
1418
|
-
icon: /* @__PURE__ */
|
|
1532
|
+
icon: /* @__PURE__ */ React25.createElement(Tooltip4, { title }, /* @__PURE__ */ React25.createElement(Icon, null)),
|
|
1419
1533
|
sx: { minWidth: "auto" },
|
|
1420
1534
|
"data-testid": `switch-device-to-${id}`
|
|
1421
1535
|
}
|
|
@@ -1424,7 +1538,7 @@ function BreakpointsSwitcher() {
|
|
|
1424
1538
|
);
|
|
1425
1539
|
}
|
|
1426
1540
|
function Tooltip4(props) {
|
|
1427
|
-
return /* @__PURE__ */
|
|
1541
|
+
return /* @__PURE__ */ React25.createElement(
|
|
1428
1542
|
BaseTooltip2,
|
|
1429
1543
|
{
|
|
1430
1544
|
PopperProps: {
|
|
@@ -1450,9 +1564,9 @@ var iconsMap = {
|
|
|
1450
1564
|
var labelsMap = {
|
|
1451
1565
|
default: "%s",
|
|
1452
1566
|
// translators: %s: Breakpoint label, %d: Breakpoint size.
|
|
1453
|
-
"min-width":
|
|
1567
|
+
"min-width": __24("%s (%dpx and up)", "elementor"),
|
|
1454
1568
|
// translators: %s: Breakpoint label, %d: Breakpoint size.
|
|
1455
|
-
"max-width":
|
|
1569
|
+
"max-width": __24("%s (up to %dpx)", "elementor")
|
|
1456
1570
|
};
|
|
1457
1571
|
|
|
1458
1572
|
// src/extensions/responsive/index.ts
|
|
@@ -1471,10 +1585,10 @@ function init12() {
|
|
|
1471
1585
|
import { injectIntoTop } from "@elementor/editor";
|
|
1472
1586
|
|
|
1473
1587
|
// src/extensions/site-settings/components/portalled-primary-action.tsx
|
|
1474
|
-
import * as
|
|
1588
|
+
import * as React28 from "react";
|
|
1475
1589
|
|
|
1476
1590
|
// src/extensions/site-settings/components/portal.tsx
|
|
1477
|
-
import * as
|
|
1591
|
+
import * as React26 from "react";
|
|
1478
1592
|
import {
|
|
1479
1593
|
__privateIsRouteActive as isRouteActive2,
|
|
1480
1594
|
__privateUseListenTo as useListenTo,
|
|
@@ -1490,24 +1604,24 @@ function Portal(props) {
|
|
|
1490
1604
|
if (!containerRef.current) {
|
|
1491
1605
|
return null;
|
|
1492
1606
|
}
|
|
1493
|
-
return /* @__PURE__ */
|
|
1607
|
+
return /* @__PURE__ */ React26.createElement(BasePortal, { container: containerRef.current, ...props });
|
|
1494
1608
|
}
|
|
1495
1609
|
function getContainerRef() {
|
|
1496
1610
|
return isRouteActive2("panel/global") ? { current: document.querySelector("#elementor-panel-inner") } : { current: null };
|
|
1497
1611
|
}
|
|
1498
1612
|
|
|
1499
1613
|
// src/extensions/site-settings/components/primary-action.tsx
|
|
1500
|
-
import * as
|
|
1614
|
+
import * as React27 from "react";
|
|
1501
1615
|
import {
|
|
1502
1616
|
__useActiveDocument as useActiveDocument9,
|
|
1503
1617
|
__useActiveDocumentActions as useActiveDocumentActions5
|
|
1504
1618
|
} from "@elementor/editor-documents";
|
|
1505
|
-
import { Button as
|
|
1506
|
-
import { __ as
|
|
1619
|
+
import { Button as Button4, CircularProgress as CircularProgress2, Paper } from "@elementor/ui";
|
|
1620
|
+
import { __ as __25 } from "@wordpress/i18n";
|
|
1507
1621
|
function PrimaryAction2() {
|
|
1508
1622
|
const document2 = useActiveDocument9();
|
|
1509
1623
|
const { save } = useActiveDocumentActions5();
|
|
1510
|
-
return /* @__PURE__ */
|
|
1624
|
+
return /* @__PURE__ */ React27.createElement(
|
|
1511
1625
|
Paper,
|
|
1512
1626
|
{
|
|
1513
1627
|
sx: {
|
|
@@ -1517,8 +1631,8 @@ function PrimaryAction2() {
|
|
|
1517
1631
|
borderColor: "divider"
|
|
1518
1632
|
}
|
|
1519
1633
|
},
|
|
1520
|
-
/* @__PURE__ */
|
|
1521
|
-
|
|
1634
|
+
/* @__PURE__ */ React27.createElement(
|
|
1635
|
+
Button4,
|
|
1522
1636
|
{
|
|
1523
1637
|
variant: "contained",
|
|
1524
1638
|
disabled: !document2 || !document2.isDirty,
|
|
@@ -1526,14 +1640,14 @@ function PrimaryAction2() {
|
|
|
1526
1640
|
sx: { width: "100%" },
|
|
1527
1641
|
onClick: () => document2 && !document2.isSaving ? save() : null
|
|
1528
1642
|
},
|
|
1529
|
-
document2?.isSaving ? /* @__PURE__ */
|
|
1643
|
+
document2?.isSaving ? /* @__PURE__ */ React27.createElement(CircularProgress2, null) : __25("Save Changes", "elementor")
|
|
1530
1644
|
)
|
|
1531
1645
|
);
|
|
1532
1646
|
}
|
|
1533
1647
|
|
|
1534
1648
|
// src/extensions/site-settings/components/portalled-primary-action.tsx
|
|
1535
1649
|
function PortalledPrimaryAction() {
|
|
1536
|
-
return /* @__PURE__ */
|
|
1650
|
+
return /* @__PURE__ */ React28.createElement(Portal, null, /* @__PURE__ */ React28.createElement(PrimaryAction2, null));
|
|
1537
1651
|
}
|
|
1538
1652
|
|
|
1539
1653
|
// src/extensions/site-settings/hooks/use-action-props.ts
|
|
@@ -1542,13 +1656,13 @@ import {
|
|
|
1542
1656
|
__privateUseRouteStatus as useRouteStatus4
|
|
1543
1657
|
} from "@elementor/editor-v1-adapters";
|
|
1544
1658
|
import { SettingsIcon } from "@elementor/icons";
|
|
1545
|
-
import { __ as
|
|
1659
|
+
import { __ as __26 } from "@wordpress/i18n";
|
|
1546
1660
|
function useActionProps9() {
|
|
1547
1661
|
const { isActive, isBlocked } = useRouteStatus4("panel/global", {
|
|
1548
1662
|
blockOnKitRoutes: false
|
|
1549
1663
|
});
|
|
1550
1664
|
return {
|
|
1551
|
-
title:
|
|
1665
|
+
title: __26("Site Settings", "elementor"),
|
|
1552
1666
|
icon: SettingsIcon,
|
|
1553
1667
|
onClick: () => {
|
|
1554
1668
|
const extendedWindow = window;
|
|
@@ -1592,11 +1706,11 @@ import {
|
|
|
1592
1706
|
__privateUseRouteStatus as useRouteStatus5
|
|
1593
1707
|
} from "@elementor/editor-v1-adapters";
|
|
1594
1708
|
import { StructureIcon } from "@elementor/icons";
|
|
1595
|
-
import { __ as
|
|
1709
|
+
import { __ as __27 } from "@wordpress/i18n";
|
|
1596
1710
|
function useActionProps10() {
|
|
1597
1711
|
const { isActive, isBlocked } = useRouteStatus5("navigator");
|
|
1598
1712
|
return {
|
|
1599
|
-
title:
|
|
1713
|
+
title: __27("Structure", "elementor"),
|
|
1600
1714
|
icon: StructureIcon,
|
|
1601
1715
|
onClick: () => {
|
|
1602
1716
|
const extendedWindow = window;
|
|
@@ -1628,11 +1742,11 @@ function init14() {
|
|
|
1628
1742
|
// src/extensions/theme-builder/hooks/use-action-props.ts
|
|
1629
1743
|
import { __privateRunCommand as runCommand8 } from "@elementor/editor-v1-adapters";
|
|
1630
1744
|
import { ThemeBuilderIcon } from "@elementor/icons";
|
|
1631
|
-
import { __ as
|
|
1745
|
+
import { __ as __28 } from "@wordpress/i18n";
|
|
1632
1746
|
function useActionProps11() {
|
|
1633
1747
|
return {
|
|
1634
1748
|
icon: ThemeBuilderIcon,
|
|
1635
|
-
title:
|
|
1749
|
+
title: __28("Theme Builder", "elementor"),
|
|
1636
1750
|
onClick: () => {
|
|
1637
1751
|
const extendedWindow = window;
|
|
1638
1752
|
const config = extendedWindow?.elementorCommon?.eventsManager?.config;
|
|
@@ -1665,12 +1779,12 @@ import {
|
|
|
1665
1779
|
__privateUseRouteStatus as useRouteStatus6
|
|
1666
1780
|
} from "@elementor/editor-v1-adapters";
|
|
1667
1781
|
import { ToggleRightIcon } from "@elementor/icons";
|
|
1668
|
-
import { __ as
|
|
1782
|
+
import { __ as __29 } from "@wordpress/i18n";
|
|
1669
1783
|
function useActionProps12() {
|
|
1670
1784
|
const { isActive, isBlocked } = useRouteStatus6("panel/editor-preferences");
|
|
1671
1785
|
return {
|
|
1672
1786
|
icon: ToggleRightIcon,
|
|
1673
|
-
title:
|
|
1787
|
+
title: __29("User Preferences", "elementor"),
|
|
1674
1788
|
onClick: () => {
|
|
1675
1789
|
const extendedWindow = window;
|
|
1676
1790
|
const config = extendedWindow?.elementorCommon?.eventsManager?.config;
|
|
@@ -1702,7 +1816,7 @@ function init16() {
|
|
|
1702
1816
|
// src/extensions/wordpress/index.ts
|
|
1703
1817
|
import { __useActiveDocument as useActiveDocument10 } from "@elementor/editor-documents";
|
|
1704
1818
|
import { WordpressIcon } from "@elementor/icons";
|
|
1705
|
-
import { __ as
|
|
1819
|
+
import { __ as __30 } from "@wordpress/i18n";
|
|
1706
1820
|
function init17() {
|
|
1707
1821
|
mainMenu.registerLink({
|
|
1708
1822
|
id: "exit-to-wordpress",
|
|
@@ -1711,7 +1825,7 @@ function init17() {
|
|
|
1711
1825
|
useProps: () => {
|
|
1712
1826
|
const document2 = useActiveDocument10();
|
|
1713
1827
|
return {
|
|
1714
|
-
title:
|
|
1828
|
+
title: __30("Exit to WordPress", "elementor"),
|
|
1715
1829
|
href: document2?.links?.platformEdit,
|
|
1716
1830
|
icon: WordpressIcon,
|
|
1717
1831
|
onClick: () => {
|