@embedreach/components 0.3.2 → 0.3.3
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/chunks/index.js +164 -34
- package/dist/index.umd.js +119 -119
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/chunks/index.js
CHANGED
|
@@ -28865,6 +28865,17 @@ const MessageSquare = createLucideIcon("MessageSquare", [
|
|
|
28865
28865
|
* See the LICENSE file in the root directory of this source tree.
|
|
28866
28866
|
*/
|
|
28867
28867
|
const Minus = createLucideIcon("Minus", [["path", { d: "M5 12h14", key: "1ays0h" }]]);
|
|
28868
|
+
/**
|
|
28869
|
+
* @license lucide-react v0.464.0 - ISC
|
|
28870
|
+
*
|
|
28871
|
+
* This source code is licensed under the ISC license.
|
|
28872
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
28873
|
+
*/
|
|
28874
|
+
const Monitor = createLucideIcon("Monitor", [
|
|
28875
|
+
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
28876
|
+
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
28877
|
+
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
28878
|
+
]);
|
|
28868
28879
|
/**
|
|
28869
28880
|
* @license lucide-react v0.464.0 - ISC
|
|
28870
28881
|
*
|
|
@@ -29078,6 +29089,16 @@ const ShoppingBag = createLucideIcon("ShoppingBag", [
|
|
|
29078
29089
|
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
29079
29090
|
["path", { d: "M16 10a4 4 0 0 1-8 0", key: "1ltviw" }]
|
|
29080
29091
|
]);
|
|
29092
|
+
/**
|
|
29093
|
+
* @license lucide-react v0.464.0 - ISC
|
|
29094
|
+
*
|
|
29095
|
+
* This source code is licensed under the ISC license.
|
|
29096
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
29097
|
+
*/
|
|
29098
|
+
const Smartphone = createLucideIcon("Smartphone", [
|
|
29099
|
+
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
29100
|
+
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
29101
|
+
]);
|
|
29081
29102
|
/**
|
|
29082
29103
|
* @license lucide-react v0.464.0 - ISC
|
|
29083
29104
|
*
|
|
@@ -52031,6 +52052,11 @@ const IconDefinitions = {
|
|
|
52031
52052
|
SmsIcon: Phone,
|
|
52032
52053
|
ExpandIcon: Maximize2,
|
|
52033
52054
|
PreviewButton: Play,
|
|
52055
|
+
/**
|
|
52056
|
+
* Device toggle icons
|
|
52057
|
+
*/
|
|
52058
|
+
DesktopIcon: Monitor,
|
|
52059
|
+
MobileIcon: Smartphone,
|
|
52034
52060
|
/**
|
|
52035
52061
|
* Statistics icons
|
|
52036
52062
|
*/
|
|
@@ -89713,6 +89739,72 @@ const RichTextInputWithMergeFields = ({
|
|
|
89713
89739
|
] })
|
|
89714
89740
|
] }) });
|
|
89715
89741
|
};
|
|
89742
|
+
const ToggleDesktopMobileButton = () => {
|
|
89743
|
+
const [mode, setMode] = useState("desktop");
|
|
89744
|
+
const desktopRef = useRef(null);
|
|
89745
|
+
const mobileRef = useRef(null);
|
|
89746
|
+
useEffect(() => {
|
|
89747
|
+
const handleDesktopClick = () => setMode("desktop");
|
|
89748
|
+
const handleMobileClick = () => setMode("mobile");
|
|
89749
|
+
const desktopBtn = desktopRef.current;
|
|
89750
|
+
const mobileBtn = mobileRef.current;
|
|
89751
|
+
if (desktopBtn) desktopBtn.addEventListener("click", handleDesktopClick);
|
|
89752
|
+
if (mobileBtn) mobileBtn.addEventListener("click", handleMobileClick);
|
|
89753
|
+
return () => {
|
|
89754
|
+
if (desktopBtn)
|
|
89755
|
+
desktopBtn.removeEventListener("click", handleDesktopClick);
|
|
89756
|
+
if (mobileBtn) mobileBtn.removeEventListener("click", handleMobileClick);
|
|
89757
|
+
};
|
|
89758
|
+
}, []);
|
|
89759
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 bg-muted rounded-md p-0.5 shadow-inner border w-fit", children: [
|
|
89760
|
+
/* @__PURE__ */ jsxs(
|
|
89761
|
+
Button$1,
|
|
89762
|
+
{
|
|
89763
|
+
ref: desktopRef,
|
|
89764
|
+
type: "button",
|
|
89765
|
+
"aria-pressed": mode === "desktop",
|
|
89766
|
+
"aria-label": "Show desktop preview",
|
|
89767
|
+
className: "desktop-view-button toggle-desktop-button relative flex items-center justify-center px-2 py-0 rounded-md transition-colors duration-200" + (mode === "desktop" ? " bg-background shadow text-primary" : " bg-transparent text-muted-foreground hover:bg-accent"),
|
|
89768
|
+
variant: "ghost",
|
|
89769
|
+
style: { minWidth: 32, minHeight: 32 },
|
|
89770
|
+
children: [
|
|
89771
|
+
mode === "desktop" && /* @__PURE__ */ jsx(
|
|
89772
|
+
motion.span,
|
|
89773
|
+
{
|
|
89774
|
+
layoutId: "toggle-indicator",
|
|
89775
|
+
className: "absolute inset-0 rounded-md border-2 bg-background/80 z-0 border-[color:var(--reach-primary)]",
|
|
89776
|
+
transition: { type: "spring", stiffness: 400, damping: 30 }
|
|
89777
|
+
}
|
|
89778
|
+
),
|
|
89779
|
+
/* @__PURE__ */ jsx("span", { className: "relative z-10 flex items-center justify-center", children: /* @__PURE__ */ jsx(IconDefinitions.DesktopIcon, { className: "w-4 h-4" }) })
|
|
89780
|
+
]
|
|
89781
|
+
}
|
|
89782
|
+
),
|
|
89783
|
+
/* @__PURE__ */ jsxs(
|
|
89784
|
+
Button$1,
|
|
89785
|
+
{
|
|
89786
|
+
ref: mobileRef,
|
|
89787
|
+
type: "button",
|
|
89788
|
+
"aria-pressed": mode === "mobile",
|
|
89789
|
+
"aria-label": "Show mobile preview",
|
|
89790
|
+
className: "mobile-view-button toggle-mobile-button relative flex items-center justify-center px-2 py-0 rounded-md transition-colors duration-200" + (mode === "mobile" ? " bg-background shadow text-primary" : " bg-transparent text-muted-foreground hover:bg-accent"),
|
|
89791
|
+
variant: "ghost",
|
|
89792
|
+
style: { minWidth: 32, minHeight: 32 },
|
|
89793
|
+
children: [
|
|
89794
|
+
mode === "mobile" && /* @__PURE__ */ jsx(
|
|
89795
|
+
motion.span,
|
|
89796
|
+
{
|
|
89797
|
+
layoutId: "toggle-indicator",
|
|
89798
|
+
className: "absolute inset-0 rounded-md border-2 bg-background/80 z-0 border-[color:var(--reach-primary)]",
|
|
89799
|
+
transition: { type: "spring", stiffness: 400, damping: 30 }
|
|
89800
|
+
}
|
|
89801
|
+
),
|
|
89802
|
+
/* @__PURE__ */ jsx("span", { className: "relative z-10 flex items-center justify-center", children: /* @__PURE__ */ jsx(IconDefinitions.MobileIcon, { className: "w-4 h-4" }) })
|
|
89803
|
+
]
|
|
89804
|
+
}
|
|
89805
|
+
)
|
|
89806
|
+
] });
|
|
89807
|
+
};
|
|
89716
89808
|
function setRef$3(ref, value) {
|
|
89717
89809
|
if (typeof ref === "function") {
|
|
89718
89810
|
return ref(value);
|
|
@@ -92707,9 +92799,35 @@ const EmailPreviewHtmlRenderer = ({
|
|
|
92707
92799
|
}
|
|
92708
92800
|
) : /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx(MissingDataForPreview, { type: "email" }) }) });
|
|
92709
92801
|
};
|
|
92802
|
+
const HELP_TOPICS = [
|
|
92803
|
+
{
|
|
92804
|
+
id: "dynamic-content",
|
|
92805
|
+
title: "Dynamic Content",
|
|
92806
|
+
image: "https://cdn.embedreach.com/assets/engage/merge-tags-demo.gif",
|
|
92807
|
+
imageAlt: "Merge Tags Demo",
|
|
92808
|
+
imageDesc: "Demonstration: Adding merge tags to personalize your emails",
|
|
92809
|
+
selectorTitle: "Dynamic Content",
|
|
92810
|
+
selectorSubtitle: "Dynamic content is a way to insert dynamic content into your email like name, email, or other details.",
|
|
92811
|
+
selectorIcon: /* @__PURE__ */ jsx(Merge, {})
|
|
92812
|
+
},
|
|
92813
|
+
{
|
|
92814
|
+
id: "responsive-design",
|
|
92815
|
+
title: "Responsive Design",
|
|
92816
|
+
image: "https://cdn.embedreach.com/assets/engage/layout-mobile-desktop.gif",
|
|
92817
|
+
imageAlt: "Mobile Desktop Switch Demo",
|
|
92818
|
+
imageDesc: "Demonstration: Switching between mobile and desktop preview modes",
|
|
92819
|
+
selectorTitle: "Responsive Design",
|
|
92820
|
+
selectorSubtitle: "Switch between mobile and desktop preview modes to ensure your emails look great on all devices.",
|
|
92821
|
+
selectorIcon: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
92822
|
+
/* @__PURE__ */ jsx(Smartphone, { className: "w-4 h-4" }),
|
|
92823
|
+
/* @__PURE__ */ jsx(Monitor, { className: "w-4 h-4" })
|
|
92824
|
+
] })
|
|
92825
|
+
}
|
|
92826
|
+
];
|
|
92710
92827
|
const EmailPreviewHelpDialog = () => {
|
|
92711
92828
|
const { toggleEmailHelpDialog: toggleEmailHelpDialog2, data: business } = useBusiness();
|
|
92712
92829
|
const { toast: toast2 } = useToast();
|
|
92830
|
+
const [selectedTopic, setSelectedTopic] = useState("dynamic-content");
|
|
92713
92831
|
const handleDontShowAgain = () => {
|
|
92714
92832
|
toggleEmailHelpDialog2(false);
|
|
92715
92833
|
toast2({
|
|
@@ -92717,37 +92835,48 @@ const EmailPreviewHelpDialog = () => {
|
|
|
92717
92835
|
});
|
|
92718
92836
|
};
|
|
92719
92837
|
const shouldShowDontShowAgainButton = business?.uiDefaults?.emailHelpDialogShow !== false;
|
|
92838
|
+
const topic = HELP_TOPICS.find((t3) => t3.id === selectedTopic) ?? HELP_TOPICS[0];
|
|
92720
92839
|
return /* @__PURE__ */ jsxs("div", { className: "p-6 overflow-y-auto", children: [
|
|
92721
92840
|
/* @__PURE__ */ jsxs("div", { className: "mb-8 text-center", children: [
|
|
92722
92841
|
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold mb-2", children: "Email Editor Help Center" }),
|
|
92723
92842
|
/* @__PURE__ */ jsx("p", { className: "text-gray-500", children: "Learn how to use our email editor's powerful features" })
|
|
92724
92843
|
] }),
|
|
92725
|
-
/* @__PURE__ */
|
|
92726
|
-
|
|
92727
|
-
|
|
92728
|
-
|
|
92729
|
-
|
|
92730
|
-
|
|
92731
|
-
|
|
92732
|
-
|
|
92733
|
-
|
|
92734
|
-
}
|
|
92735
|
-
|
|
92736
|
-
|
|
92737
|
-
|
|
92738
|
-
|
|
92739
|
-
|
|
92740
|
-
|
|
92741
|
-
|
|
92742
|
-
|
|
92743
|
-
|
|
92744
|
-
|
|
92745
|
-
|
|
92746
|
-
|
|
92747
|
-
|
|
92748
|
-
|
|
92749
|
-
|
|
92750
|
-
|
|
92844
|
+
/* @__PURE__ */ jsx("div", { className: "mb-8 flex flex-col items-center min-h-[340px]", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
|
|
92845
|
+
motion.div,
|
|
92846
|
+
{
|
|
92847
|
+
initial: { opacity: 0, y: 24 },
|
|
92848
|
+
animate: { opacity: 1, y: 0 },
|
|
92849
|
+
exit: { opacity: 0, y: -24 },
|
|
92850
|
+
transition: { duration: 0.3 },
|
|
92851
|
+
className: "w-full flex flex-col items-center",
|
|
92852
|
+
children: [
|
|
92853
|
+
/* @__PURE__ */ jsx("h3", { className: "text-lg font-medium mb-2", children: topic.title }),
|
|
92854
|
+
/* @__PURE__ */ jsxs("div", { className: "relative rounded-lg overflow-hidden bg-gray-50 w-full max-w-2xl", children: [
|
|
92855
|
+
/* @__PURE__ */ jsx(
|
|
92856
|
+
"img",
|
|
92857
|
+
{
|
|
92858
|
+
src: topic.image,
|
|
92859
|
+
alt: topic.imageAlt,
|
|
92860
|
+
className: "w-full shadow-lg max-w-md mx-auto"
|
|
92861
|
+
}
|
|
92862
|
+
),
|
|
92863
|
+
/* @__PURE__ */ jsx("div", { className: "absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/50 to-transparent p-4", children: /* @__PURE__ */ jsx("p", { className: "text-white text-sm", children: topic.imageDesc }) })
|
|
92864
|
+
] })
|
|
92865
|
+
]
|
|
92866
|
+
},
|
|
92867
|
+
topic.id
|
|
92868
|
+
) }) }),
|
|
92869
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 sm:flex-row sm:gap-6 max-w-xl mx-auto", children: HELP_TOPICS.map((t3) => /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
92870
|
+
BigSelector,
|
|
92871
|
+
{
|
|
92872
|
+
onClick: () => setSelectedTopic(t3.id),
|
|
92873
|
+
title: t3.selectorTitle,
|
|
92874
|
+
subtitle: t3.selectorSubtitle,
|
|
92875
|
+
icon: t3.selectorIcon,
|
|
92876
|
+
selected: selectedTopic === t3.id
|
|
92877
|
+
}
|
|
92878
|
+
) }, t3.id)) }),
|
|
92879
|
+
shouldShowDontShowAgainButton && /* @__PURE__ */ jsx("div", { className: "flex justify-center pt-4", children: /* @__PURE__ */ jsx(Button$1, { size: "sm", onClick: handleDontShowAgain, children: "Don't show me again" }) })
|
|
92751
92880
|
] });
|
|
92752
92881
|
};
|
|
92753
92882
|
const MissingSenderForPreview = ({
|
|
@@ -93018,7 +93147,9 @@ const initStripo = (options) => {
|
|
|
93018
93147
|
warn: console.warn,
|
|
93019
93148
|
success: console.log
|
|
93020
93149
|
},
|
|
93021
|
-
mergeTags: options.mergeFields
|
|
93150
|
+
mergeTags: options.mergeFields,
|
|
93151
|
+
mobileViewButtonSelector: ".toggle-mobile-button",
|
|
93152
|
+
desktopViewButtonSelector: ".toggle-desktop-button"
|
|
93022
93153
|
});
|
|
93023
93154
|
resolve(void 0);
|
|
93024
93155
|
}
|
|
@@ -93400,6 +93531,7 @@ const EmailPreview = ({
|
|
|
93400
93531
|
/* @__PURE__ */ jsx(IconDefinitions.InfoIcon, { className: "w-4 h-4" })
|
|
93401
93532
|
] }) })
|
|
93402
93533
|
] }),
|
|
93534
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx(ToggleDesktopMobileButton, {}) }),
|
|
93403
93535
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
93404
93536
|
/* @__PURE__ */ jsx(
|
|
93405
93537
|
Button$1,
|
|
@@ -101889,13 +102021,11 @@ const AutomationEditorEmailPreview = ({
|
|
|
101889
102021
|
] }),
|
|
101890
102022
|
/* @__PURE__ */ jsxs("div", { className: "w-full h-full", children: [
|
|
101891
102023
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center p-1 border-b", children: [
|
|
101892
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
101893
|
-
/* @__PURE__ */ jsx("
|
|
101894
|
-
/* @__PURE__ */ jsx(
|
|
101895
|
-
|
|
101896
|
-
|
|
101897
|
-
] }) })
|
|
101898
|
-
] }),
|
|
102024
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx(Button$1, { size: "sm", onClick: () => setShowHelpDialog(true), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
102025
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-sm", children: "Help" }),
|
|
102026
|
+
/* @__PURE__ */ jsx(IconDefinitions.InfoIcon, { className: "w-4 h-4" })
|
|
102027
|
+
] }) }) }),
|
|
102028
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx(ToggleDesktopMobileButton, {}) }),
|
|
101899
102029
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
101900
102030
|
/* @__PURE__ */ jsx(
|
|
101901
102031
|
Button$1,
|