@ohhwells/bridge 0.1.126-next.347 → 0.1.127
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.cjs +65 -105
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +65 -105
- package/dist/index.js.map +1 -1
- package/dist/pages.cjs +1 -1
- package/dist/pages.cjs.map +1 -1
- package/dist/pages.js +1 -1
- package/dist/pages.js.map +1 -1
- package/dist/styles.css +0 -43
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1709,22 +1709,6 @@ function pricingCardEmphasis(featured, ctx, hasBg) {
|
|
|
1709
1709
|
function textAttrs(ctx, path) {
|
|
1710
1710
|
return ctx.keyFor ? { "data-ohw-key": ctx.keyFor(path), "data-ohw-editable": "text" } : {};
|
|
1711
1711
|
}
|
|
1712
|
-
var AI_RESPONSIVE_CSS = [
|
|
1713
|
-
"@media (max-width: 960px) {",
|
|
1714
|
-
" [data-ai-responsive] [data-ai-grid] { grid-template-columns: repeat(2, 1fr) !important; }",
|
|
1715
|
-
' [data-ai-responsive] [data-ai-grid="1"] { grid-template-columns: 1fr !important; }',
|
|
1716
|
-
"}",
|
|
1717
|
-
"@media (max-width: 640px) {",
|
|
1718
|
-
" [data-ai-responsive] [data-ai-grid] { grid-template-columns: 1fr !important; }",
|
|
1719
|
-
" [data-ai-responsive] [data-ai-columns] > * { grid-column: 1 / -1 !important; }",
|
|
1720
|
-
// Group containers flatten to a column on phones; span placements come along for free.
|
|
1721
|
-
" [data-ai-responsive] [data-ai-group] { display: flex !important; flex-direction: column !important; }",
|
|
1722
|
-
" [data-ai-responsive] [data-ai-group] > * { grid-column: auto !important; }",
|
|
1723
|
-
" [data-ai-responsive] [data-ai-section-inner] { padding-left: 20px !important; padding-right: 20px !important; }",
|
|
1724
|
-
" [data-ai-responsive] { overflow-x: hidden; }",
|
|
1725
|
-
" [data-ai-responsive] img { max-width: 100%; }",
|
|
1726
|
-
"}"
|
|
1727
|
-
].join("\n");
|
|
1728
1712
|
var TRANSPARENT_PX = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
|
|
1729
1713
|
function MediaBox({
|
|
1730
1714
|
refValue,
|
|
@@ -1742,9 +1726,9 @@ function MediaBox({
|
|
|
1742
1726
|
const url = refValue ? ctx.resolveMedia(refValue) : null;
|
|
1743
1727
|
const isIcon = /^(lucide|simple):/.test(refValue);
|
|
1744
1728
|
const aspectRatio = aspect && /^\d+:\d+$/.test(aspect) ? aspect.replace(":", " / ") : void 0;
|
|
1745
|
-
const editAttrs = ctx.keyFor && editPath ? {
|
|
1729
|
+
const editAttrs = ctx.keyFor && editPath && !isIcon ? {
|
|
1746
1730
|
"data-ohw-key": ctx.keyFor(editPath),
|
|
1747
|
-
...
|
|
1731
|
+
...genericImageEdit ? { "data-ohw-editable": "image" } : {}
|
|
1748
1732
|
} : {};
|
|
1749
1733
|
if (isIcon) {
|
|
1750
1734
|
const Icon = refValue.startsWith("lucide:") ? lucideByName(refValue.slice(7)) : null;
|
|
@@ -1752,7 +1736,6 @@ function MediaBox({
|
|
|
1752
1736
|
"span",
|
|
1753
1737
|
{
|
|
1754
1738
|
"data-ai-icon": refValue,
|
|
1755
|
-
...editAttrs,
|
|
1756
1739
|
style: {
|
|
1757
1740
|
display: "inline-flex",
|
|
1758
1741
|
width: 48,
|
|
@@ -2922,7 +2905,7 @@ function CollectionBlock({ node, ctx, path }) {
|
|
|
2922
2905
|
return /* @__PURE__ */ jsx(
|
|
2923
2906
|
"div",
|
|
2924
2907
|
{
|
|
2925
|
-
"data-ai-grid":
|
|
2908
|
+
"data-ai-grid": "",
|
|
2926
2909
|
"data-ohw-pricing-collection": isPricing ? "" : void 0,
|
|
2927
2910
|
style: {
|
|
2928
2911
|
display: "grid",
|
|
@@ -3283,7 +3266,6 @@ function AiTreeRenderer({
|
|
|
3283
3266
|
{
|
|
3284
3267
|
"data-ai-section": tree.tag ?? "",
|
|
3285
3268
|
...bgAttrs,
|
|
3286
|
-
"data-ai-responsive": "",
|
|
3287
3269
|
style: {
|
|
3288
3270
|
position: "relative",
|
|
3289
3271
|
padding: `${pad}px 0`,
|
|
@@ -3294,13 +3276,12 @@ function AiTreeRenderer({
|
|
|
3294
3276
|
color: settings.sectionBackground === "accent" ? blockBrand.palette.dark : void 0
|
|
3295
3277
|
},
|
|
3296
3278
|
children: [
|
|
3297
|
-
/* @__PURE__ */ jsx("style", { children: AI_RESPONSIVE_CSS }),
|
|
3298
|
-
/* @__PURE__ */ jsx("style", { children: AI_MOBILE_CSS }),
|
|
3299
3279
|
isOverlay && backgroundUrl && /* @__PURE__ */ jsx("div", { style: { position: "absolute", inset: 0, background: `rgba(255,255,255,${overlayAlpha})` } }),
|
|
3280
|
+
/* @__PURE__ */ jsx("style", { children: AI_MOBILE_CSS }),
|
|
3300
3281
|
/* @__PURE__ */ jsx(
|
|
3301
3282
|
"div",
|
|
3302
3283
|
{
|
|
3303
|
-
"data-ai-
|
|
3284
|
+
"data-ai-container": "",
|
|
3304
3285
|
style: {
|
|
3305
3286
|
position: "relative",
|
|
3306
3287
|
maxWidth: AI_TREE_TOKENS.sectionMaxWidth,
|
|
@@ -3311,7 +3292,7 @@ function AiTreeRenderer({
|
|
|
3311
3292
|
children: tree.rows.map((row, r2) => /* @__PURE__ */ jsx(
|
|
3312
3293
|
"div",
|
|
3313
3294
|
{
|
|
3314
|
-
"data-ai-
|
|
3295
|
+
"data-ai-row": "",
|
|
3315
3296
|
style: {
|
|
3316
3297
|
display: "grid",
|
|
3317
3298
|
gridTemplateColumns: "repeat(12, 1fr)",
|
|
@@ -3715,10 +3696,9 @@ function applyAiSectionsToDom(state, options) {
|
|
|
3715
3696
|
if (existing && existing.serialized === serialized && existing.container.isConnected) {
|
|
3716
3697
|
continue;
|
|
3717
3698
|
}
|
|
3699
|
+
const isNewMount = !existing || !existing.container.isConnected;
|
|
3718
3700
|
let container = existing?.container;
|
|
3719
|
-
let isNewMount = false;
|
|
3720
3701
|
if (!container || !container.isConnected) {
|
|
3721
|
-
isNewMount = true;
|
|
3722
3702
|
existing?.root.unmount();
|
|
3723
3703
|
container?.remove();
|
|
3724
3704
|
container = document.createElement("div");
|
|
@@ -9613,7 +9593,6 @@ function MediaOverlay({
|
|
|
9613
9593
|
(prev) => prev && prev.fullWidth === width && prev.height === height ? prev : { fullWidth: width, height }
|
|
9614
9594
|
);
|
|
9615
9595
|
}, [isVideo]);
|
|
9616
|
-
const replaceLabel = isVideo ? "Replace video" : hover.elementType === "bg-image" ? "Replace background" : "Replace image";
|
|
9617
9596
|
const replaceMode = buttonSize ? replaceButtonMode({ width: rect.width, height: rect.height }, buttonSize) : "none";
|
|
9618
9597
|
const box = {
|
|
9619
9598
|
position: "fixed",
|
|
@@ -9712,10 +9691,11 @@ function MediaOverlay({
|
|
|
9712
9691
|
className: "flex items-center justify-center cursor-pointer",
|
|
9713
9692
|
style: {
|
|
9714
9693
|
...box,
|
|
9715
|
-
//
|
|
9716
|
-
//
|
|
9717
|
-
//
|
|
9718
|
-
|
|
9694
|
+
// When text overlays this media, let clicks fall THROUGH to the text underneath. In the
|
|
9695
|
+
// parent this needed a whole `ow:click-at` round-trip to re-hit-test inside the iframe;
|
|
9696
|
+
// in-document, pointer-events does it natively. The button below opts back in, so
|
|
9697
|
+
// Replace still works.
|
|
9698
|
+
pointerEvents: hover.hasTextOverlap || cueOnly ? "none" : "auto",
|
|
9719
9699
|
// Selected: a firm component ring with no wash, so the image reads as chosen rather
|
|
9720
9700
|
// than hovered. Hover keeps the existing tinted preview.
|
|
9721
9701
|
boxShadow: selected ? "inset 0 0 0 2px var(--color-bridge-primary)" : "inset 0 0 0 1.5px var(--color-bridge-primary)",
|
|
@@ -9742,17 +9722,17 @@ function MediaOverlay({
|
|
|
9742
9722
|
},
|
|
9743
9723
|
children: [
|
|
9744
9724
|
isVideo ? /* @__PURE__ */ jsx15(Film, { size: 14 }) : /* @__PURE__ */ jsx15(ImageIcon, { size: 14 }),
|
|
9745
|
-
|
|
9725
|
+
isVideo ? "Replace video" : "Replace image"
|
|
9746
9726
|
]
|
|
9747
9727
|
}
|
|
9748
9728
|
),
|
|
9749
|
-
|
|
9729
|
+
replaceMode === "none" || cueOnly ? null : /* @__PURE__ */ jsxs7(
|
|
9750
9730
|
Button,
|
|
9751
9731
|
{
|
|
9752
9732
|
"data-ohw-media-overlay": "",
|
|
9753
9733
|
variant: "outline",
|
|
9754
9734
|
size: "sm",
|
|
9755
|
-
"aria-label":
|
|
9735
|
+
"aria-label": isVideo ? "Replace video" : "Replace image",
|
|
9756
9736
|
className: "gap-1.5 cursor-pointer hover:bg-background",
|
|
9757
9737
|
style: {
|
|
9758
9738
|
...OVERLAY_BUTTON_STYLE,
|
|
@@ -9775,7 +9755,7 @@ function MediaOverlay({
|
|
|
9775
9755
|
},
|
|
9776
9756
|
children: [
|
|
9777
9757
|
isVideo ? /* @__PURE__ */ jsx15(Film, { size: 14 }) : /* @__PURE__ */ jsx15(ImageIcon, { size: 14 }),
|
|
9778
|
-
replaceMode === "full" ?
|
|
9758
|
+
replaceMode === "full" ? isVideo ? "Replace video" : hover.elementType === "bg-image" ? "Replace background" : "Replace image" : null
|
|
9779
9759
|
]
|
|
9780
9760
|
}
|
|
9781
9761
|
)
|
|
@@ -16589,7 +16569,6 @@ function readLogoSizeState(content, placement) {
|
|
|
16589
16569
|
function getLogoElement(el) {
|
|
16590
16570
|
const marked = el.closest('[data-ohw-role="logo"], [data-ohw-logo]');
|
|
16591
16571
|
if (marked) return marked;
|
|
16592
|
-
if (el.closest('[data-ohw-editable="icon"]')) return null;
|
|
16593
16572
|
const root = el.closest("nav, [data-ohw-nav-root], footer");
|
|
16594
16573
|
if (!root) return null;
|
|
16595
16574
|
const anchor = el.closest("a");
|
|
@@ -20789,7 +20768,7 @@ function getNavigationSelectionParent(el) {
|
|
|
20789
20768
|
if (!isFooterLinksContainer(el) && (el.hasAttribute("data-ohw-footer-col") || el.hasAttribute("data-ohw-footer-column") || isInferredFooterGroup2(el))) {
|
|
20790
20769
|
return getFooterLinksContainer();
|
|
20791
20770
|
}
|
|
20792
|
-
if (el.hasAttribute("data-ohw-nav-container") || el.hasAttribute("data-ohw-nav-drawer") ||
|
|
20771
|
+
if (el.hasAttribute("data-ohw-nav-container") || el.hasAttribute("data-ohw-nav-drawer") || isFooterLinksContainer(el)) {
|
|
20793
20772
|
return getNavigationRoot(el);
|
|
20794
20773
|
}
|
|
20795
20774
|
return null;
|
|
@@ -21011,6 +20990,7 @@ var ICONS = {
|
|
|
21011
20990
|
insertUnorderedList: '<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>',
|
|
21012
20991
|
insertOrderedList: '<line x1="10" y1="6" x2="21" y2="6"/><line x1="10" y1="12" x2="21" y2="12"/><line x1="10" y1="18" x2="21" y2="18"/><path d="M4 6h1v4"/><path d="M4 10h2"/><path d="M6 18H4c0-1 2-2 2-3s-1-1.5-2-1"/>'
|
|
21013
20992
|
};
|
|
20993
|
+
var HEIGHT_SETTLE_DELAYS = [150, 400, 800];
|
|
21014
20994
|
var SELECTION_CHROME_GAP2 = 4;
|
|
21015
20995
|
var TOOLBAR_STROKE_GAP2 = 4;
|
|
21016
20996
|
var TOOLBAR_OFFSET_FROM_ELEMENT = SELECTION_CHROME_GAP2 + TOOLBAR_STROKE_GAP2;
|
|
@@ -21989,6 +21969,21 @@ function OhhwellsBridge() {
|
|
|
21989
21969
|
const [isItemDragging, setIsItemDragging] = useState17(false);
|
|
21990
21970
|
const [isFooterFrameSelection, setIsFooterFrameSelection] = useState17(false);
|
|
21991
21971
|
isFooterFrameSelectionRef.current = isFooterFrameSelection;
|
|
21972
|
+
const [floatingPanel, setFloatingPanel] = useState17(null);
|
|
21973
|
+
const floatingPanelOpenRef = useRef13(false);
|
|
21974
|
+
floatingPanelOpenRef.current = floatingPanel !== null;
|
|
21975
|
+
const floatingPanelRef = useRef13(null);
|
|
21976
|
+
floatingPanelRef.current = floatingPanel;
|
|
21977
|
+
const [floatingPanelPos, setFloatingPanelPos] = useState17(null);
|
|
21978
|
+
const buttonCollectionDragRef = useRef13(null);
|
|
21979
|
+
const buttonDropInsertIndexRef = useRef13(null);
|
|
21980
|
+
const [buttonDropSlots, setButtonDropSlots] = useState17([]);
|
|
21981
|
+
const [activeButtonDropIndex, setActiveButtonDropIndex] = useState17(null);
|
|
21982
|
+
const buttonPointerDragRef = useRef13(null);
|
|
21983
|
+
const [buttonStyleTick, setButtonStyleTick] = useState17(0);
|
|
21984
|
+
const [logoSizeDraft, setLogoSizeDraft] = useState17(null);
|
|
21985
|
+
const [editorViewport, setEditorViewport] = useState17("desktop");
|
|
21986
|
+
const [parentScrollSnap, setParentScrollSnap] = useState17(null);
|
|
21992
21987
|
const [navDropdownPreviewOpen, setNavDropdownPreviewOpen] = useState17(null);
|
|
21993
21988
|
const [footerHeadingVisible, setFooterHeadingVisible] = useState17(null);
|
|
21994
21989
|
const footerDragRef = useRef13(null);
|
|
@@ -22012,21 +22007,6 @@ function OhhwellsBridge() {
|
|
|
22012
22007
|
const stylesRef = useRef13("");
|
|
22013
22008
|
const appliedDrawerRef = useRef13(null);
|
|
22014
22009
|
const pendingDeleteUndoRef = useRef13(null);
|
|
22015
|
-
const [floatingPanel, setFloatingPanel] = useState17(null);
|
|
22016
|
-
const floatingPanelOpenRef = useRef13(false);
|
|
22017
|
-
const floatingPanelRef = useRef13(null);
|
|
22018
|
-
floatingPanelRef.current = floatingPanel;
|
|
22019
|
-
const setFloatingPanelRef = useRef13(setFloatingPanel);
|
|
22020
|
-
const [floatingPanelPos, setFloatingPanelPos] = useState17(null);
|
|
22021
|
-
const buttonCollectionDragRef = useRef13(null);
|
|
22022
|
-
const buttonDropInsertIndexRef = useRef13(null);
|
|
22023
|
-
const [buttonDropSlots, setButtonDropSlots] = useState17([]);
|
|
22024
|
-
const [activeButtonDropIndex, setActiveButtonDropIndex] = useState17(null);
|
|
22025
|
-
const buttonPointerDragRef = useRef13(null);
|
|
22026
|
-
const [buttonStyleTick, setButtonStyleTick] = useState17(0);
|
|
22027
|
-
const [logoSizeDraft, setLogoSizeDraft] = useState17(null);
|
|
22028
|
-
const [editorViewport, setEditorViewport] = useState17("desktop");
|
|
22029
|
-
const [parentScrollSnap, setParentScrollSnap] = useState17(null);
|
|
22030
22010
|
const [sitePages, setSitePages] = useState17([]);
|
|
22031
22011
|
const [sectionsByPath, setSectionsByPath] = useState17({});
|
|
22032
22012
|
const sectionsPrefetchGenRef = useRef13(0);
|
|
@@ -22035,18 +22015,7 @@ function OhhwellsBridge() {
|
|
|
22035
22015
|
const linkPopoverOpenRef = useRef13(false);
|
|
22036
22016
|
const linkPopoverGraceUntilRef = useRef13(0);
|
|
22037
22017
|
setLinkPopoverRef.current = setLinkPopover;
|
|
22038
|
-
setFloatingPanelRef.current = setFloatingPanel;
|
|
22039
22018
|
linkPopoverSessionRef.current = linkPopover;
|
|
22040
|
-
floatingPanelOpenRef.current = Boolean(floatingPanel);
|
|
22041
|
-
useEffect16(() => {
|
|
22042
|
-
const syncViewport = () => {
|
|
22043
|
-
const next = window.innerWidth <= 480 ? "mobile" : "desktop";
|
|
22044
|
-
setEditorViewport((prev) => prev === next ? prev : next);
|
|
22045
|
-
};
|
|
22046
|
-
syncViewport();
|
|
22047
|
-
window.addEventListener("resize", syncViewport);
|
|
22048
|
-
return () => window.removeEventListener("resize", syncViewport);
|
|
22049
|
-
}, []);
|
|
22050
22019
|
useEffect16(() => {
|
|
22051
22020
|
setSectionOrderPersistHandler((entries) => {
|
|
22052
22021
|
const currentPath = window.location.pathname;
|
|
@@ -23564,7 +23533,6 @@ function OhhwellsBridge() {
|
|
|
23564
23533
|
}
|
|
23565
23534
|
if (typeof content[STYLE_STORE_KEY] === "string") {
|
|
23566
23535
|
stylesRef.current = content[STYLE_STORE_KEY];
|
|
23567
|
-
document.querySelectorAll('[data-ohw-editable="form"]').forEach((f) => markFormFields(f));
|
|
23568
23536
|
applyStylesToDom(parseStyleStore(content[STYLE_STORE_KEY]));
|
|
23569
23537
|
}
|
|
23570
23538
|
applyBrandChrome(content);
|
|
@@ -23573,12 +23541,12 @@ function OhhwellsBridge() {
|
|
|
23573
23541
|
for (const [key, val] of Object.entries(content)) {
|
|
23574
23542
|
if (key === "__ohw_sections") continue;
|
|
23575
23543
|
if (key === AI_SECTIONS_KEY) continue;
|
|
23576
|
-
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
23577
|
-
if (LOGO_IMAGE_KEYS.includes(key)) continue;
|
|
23578
23544
|
if (key === BRAND_KIT_KEY) continue;
|
|
23579
23545
|
if (key === STYLE_STORE_KEY) continue;
|
|
23580
23546
|
if (BRAND_CHROME_KEYS.has(key)) continue;
|
|
23547
|
+
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
23581
23548
|
if (key === CUSTOM_CODE_AFTER_HEAD_KEY || key === CUSTOM_CODE_BEFORE_HEAD_KEY) continue;
|
|
23549
|
+
if (LOGO_IMAGE_KEYS.includes(key)) continue;
|
|
23582
23550
|
if (applyVideoSettingNode(key, val)) continue;
|
|
23583
23551
|
if (applyCarouselNode(key, val)) continue;
|
|
23584
23552
|
document.querySelectorAll(`[data-ohw-key="${key}"]`).forEach((el) => {
|
|
@@ -23788,17 +23756,16 @@ function OhhwellsBridge() {
|
|
|
23788
23756
|
applyAiSectionsToDom(parseAiSectionsState(content[AI_SECTIONS_KEY]));
|
|
23789
23757
|
}
|
|
23790
23758
|
if (typeof content[STYLE_STORE_KEY] === "string") {
|
|
23791
|
-
document.querySelectorAll('[data-ohw-editable="form"]').forEach((f) => markFormFields(f));
|
|
23792
23759
|
applyStylesToDom(parseStyleStore(content[STYLE_STORE_KEY]));
|
|
23793
23760
|
}
|
|
23794
23761
|
for (const [key, val] of Object.entries(content)) {
|
|
23795
23762
|
if (key === "__ohw_sections") continue;
|
|
23796
23763
|
if (key === AI_SECTIONS_KEY) continue;
|
|
23797
|
-
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
23798
|
-
if (LOGO_IMAGE_KEYS.includes(key)) continue;
|
|
23799
23764
|
if (key === BRAND_KIT_KEY) continue;
|
|
23800
23765
|
if (key === STYLE_STORE_KEY) continue;
|
|
23801
23766
|
if (BRAND_CHROME_KEYS.has(key)) continue;
|
|
23767
|
+
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
23768
|
+
if (LOGO_IMAGE_KEYS.includes(key)) continue;
|
|
23802
23769
|
if (applyVideoSettingNode(key, val)) continue;
|
|
23803
23770
|
if (applyCarouselNode(key, val)) continue;
|
|
23804
23771
|
document.querySelectorAll(`[data-ohw-key="${key}"]`).forEach((el) => {
|
|
@@ -24049,11 +24016,26 @@ function OhhwellsBridge() {
|
|
|
24049
24016
|
const t2 = setTimeout(measure, 500);
|
|
24050
24017
|
const ro = new ResizeObserver(schedule);
|
|
24051
24018
|
ro.observe(document.body);
|
|
24019
|
+
let lastWidth = window.innerWidth;
|
|
24020
|
+
let resizeTimers = [];
|
|
24021
|
+
const clearResizeTimers = () => {
|
|
24022
|
+
resizeTimers.forEach(clearTimeout);
|
|
24023
|
+
resizeTimers = [];
|
|
24024
|
+
};
|
|
24025
|
+
const handleResize = () => {
|
|
24026
|
+
if (window.innerWidth === lastWidth) return;
|
|
24027
|
+
lastWidth = window.innerWidth;
|
|
24028
|
+
clearResizeTimers();
|
|
24029
|
+
resizeTimers = HEIGHT_SETTLE_DELAYS.map((delay) => setTimeout(measure, delay));
|
|
24030
|
+
};
|
|
24031
|
+
window.addEventListener("resize", handleResize);
|
|
24052
24032
|
return () => {
|
|
24053
24033
|
clearTimeout(t1);
|
|
24054
24034
|
clearTimeout(t2);
|
|
24055
24035
|
if (raf != null) cancelAnimationFrame(raf);
|
|
24056
24036
|
ro.disconnect();
|
|
24037
|
+
clearResizeTimers();
|
|
24038
|
+
window.removeEventListener("resize", handleResize);
|
|
24057
24039
|
};
|
|
24058
24040
|
}, [pathname, isEditMode, postToParent2]);
|
|
24059
24041
|
useEffect16(() => {
|
|
@@ -24348,13 +24330,6 @@ function OhhwellsBridge() {
|
|
|
24348
24330
|
if (target.closest("[data-ohw-state-toggle]")) return;
|
|
24349
24331
|
if (target.closest("[data-ohw-max-badge]")) return;
|
|
24350
24332
|
if (isInsideLinkEditor(target)) return;
|
|
24351
|
-
if (isInsideFloatingPanel(target)) return;
|
|
24352
|
-
if (target.closest("[data-ohw-form-toolbar]")) return;
|
|
24353
|
-
if (target.closest(
|
|
24354
|
-
'[data-ohw-field-toolbar], [data-ohw-field-type-picker], [data-radix-popper-content-wrapper], [role="menu"], [data-slot="dropdown-menu-content"]'
|
|
24355
|
-
)) {
|
|
24356
|
-
return;
|
|
24357
|
-
}
|
|
24358
24333
|
if (selectedMediaElRef.current && !selectedMediaElRef.current.contains(target) && !target.closest("[data-ohw-media-overlay], [data-ohw-edit-chrome], [data-ohw-item-interaction]")) {
|
|
24359
24334
|
clearMediaSelectionRef.current();
|
|
24360
24335
|
}
|
|
@@ -24375,6 +24350,13 @@ function OhhwellsBridge() {
|
|
|
24375
24350
|
return;
|
|
24376
24351
|
}
|
|
24377
24352
|
}
|
|
24353
|
+
if (isInsideFloatingPanel(target)) return;
|
|
24354
|
+
if (target.closest("[data-ohw-form-toolbar]")) return;
|
|
24355
|
+
if (target.closest(
|
|
24356
|
+
'[data-ohw-field-toolbar], [data-ohw-field-type-picker], [data-radix-popper-content-wrapper], [role="menu"], [data-slot="dropdown-menu-content"]'
|
|
24357
|
+
)) {
|
|
24358
|
+
return;
|
|
24359
|
+
}
|
|
24378
24360
|
{
|
|
24379
24361
|
const formEl = getFormElement(target);
|
|
24380
24362
|
const onSuccessText = target.closest(`[${SUCCESS_TEXT_ATTR}]`);
|
|
@@ -24754,9 +24736,6 @@ function OhhwellsBridge() {
|
|
|
24754
24736
|
setHoveredItemRect(null);
|
|
24755
24737
|
hoveredNavContainerRef.current = null;
|
|
24756
24738
|
setHoveredNavContainerRect(null);
|
|
24757
|
-
siblingHintElRef.current = null;
|
|
24758
|
-
setSiblingHintRect(null);
|
|
24759
|
-
setSiblingHintRects([]);
|
|
24760
24739
|
return;
|
|
24761
24740
|
}
|
|
24762
24741
|
{
|
|
@@ -24877,6 +24856,7 @@ function OhhwellsBridge() {
|
|
|
24877
24856
|
hoveredNavContainerRef.current = null;
|
|
24878
24857
|
setHoveredNavContainerRect(null);
|
|
24879
24858
|
hoveredItemElRef.current = editable;
|
|
24859
|
+
setHoveredItemRect(isSelectedForHoverRef.current(editable) ? null : editable.getBoundingClientRect());
|
|
24880
24860
|
}
|
|
24881
24861
|
}
|
|
24882
24862
|
}
|
|
@@ -25586,11 +25566,7 @@ function OhhwellsBridge() {
|
|
|
25586
25566
|
};
|
|
25587
25567
|
const handleMouseMove = (e) => {
|
|
25588
25568
|
const { clientX, clientY } = e;
|
|
25589
|
-
if (pointOwnedByFloatingPanel(clientX, clientY))
|
|
25590
|
-
dismissImageHover();
|
|
25591
|
-
clearImageHover();
|
|
25592
|
-
return;
|
|
25593
|
-
}
|
|
25569
|
+
if (pointOwnedByFloatingPanel(clientX, clientY)) return;
|
|
25594
25570
|
if (isNavDrawerOpen() && isPointOutsideOpenDrawer(clientX, clientY)) {
|
|
25595
25571
|
document.querySelectorAll("[data-ohw-hovered]").forEach((el) => el.removeAttribute("data-ohw-hovered"));
|
|
25596
25572
|
formHoverElRef.current = null;
|
|
@@ -25619,12 +25595,7 @@ function OhhwellsBridge() {
|
|
|
25619
25595
|
setHoveredItemRect(null);
|
|
25620
25596
|
hoveredNavContainerRef.current = null;
|
|
25621
25597
|
setHoveredNavContainerRect(null);
|
|
25622
|
-
siblingHintElRef.current = null;
|
|
25623
|
-
setSiblingHintRect(null);
|
|
25624
|
-
setSiblingHintRects([]);
|
|
25625
25598
|
dismissImageHover();
|
|
25626
|
-
clearImageHover();
|
|
25627
|
-
setSectionGap(null);
|
|
25628
25599
|
return;
|
|
25629
25600
|
}
|
|
25630
25601
|
if (probeSocialsRowAt(clientX, clientY)) return;
|
|
@@ -25636,11 +25607,7 @@ function OhhwellsBridge() {
|
|
|
25636
25607
|
if (e.data?.type !== "ow:pointer-sync") return;
|
|
25637
25608
|
const { clientX, clientY } = e.data;
|
|
25638
25609
|
if (typeof clientX !== "number" || typeof clientY !== "number") return;
|
|
25639
|
-
if (pointOwnedByFloatingPanel(clientX, clientY))
|
|
25640
|
-
dismissImageHover();
|
|
25641
|
-
clearImageHover();
|
|
25642
|
-
return;
|
|
25643
|
-
}
|
|
25610
|
+
if (pointOwnedByFloatingPanel(clientX, clientY)) return;
|
|
25644
25611
|
if (isNavDrawerOpen() && isPointOutsideOpenDrawer(clientX, clientY)) return;
|
|
25645
25612
|
if (probeSocialsRowAt(clientX, clientY)) return;
|
|
25646
25613
|
probeSectionGapAt(clientX, clientY);
|
|
@@ -25986,7 +25953,6 @@ function OhhwellsBridge() {
|
|
|
25986
25953
|
}
|
|
25987
25954
|
if (typeof content[STYLE_STORE_KEY] === "string") {
|
|
25988
25955
|
stylesRef.current = content[STYLE_STORE_KEY];
|
|
25989
|
-
document.querySelectorAll('[data-ohw-editable="form"]').forEach((f) => markFormFields(f));
|
|
25990
25956
|
applyStylesToDom(parseStyleStore(content[STYLE_STORE_KEY]));
|
|
25991
25957
|
}
|
|
25992
25958
|
applyBrandChrome(content);
|
|
@@ -25999,12 +25965,12 @@ function OhhwellsBridge() {
|
|
|
25999
25965
|
continue;
|
|
26000
25966
|
}
|
|
26001
25967
|
if (key === AI_SECTIONS_KEY) continue;
|
|
26002
|
-
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
26003
|
-
if (LOGO_IMAGE_KEYS.includes(key) && !String(val ?? "").trim()) continue;
|
|
26004
25968
|
if (key === BRAND_KIT_KEY) continue;
|
|
26005
25969
|
if (key === STYLE_STORE_KEY) continue;
|
|
26006
25970
|
if (BRAND_CHROME_KEYS.has(key)) continue;
|
|
25971
|
+
if (key === LOGO_PLACEHOLDER_KEY) continue;
|
|
26007
25972
|
if (key === CUSTOM_CODE_AFTER_HEAD_KEY || key === CUSTOM_CODE_BEFORE_HEAD_KEY) continue;
|
|
25973
|
+
if (LOGO_IMAGE_KEYS.includes(key) && !String(val ?? "").trim()) continue;
|
|
26008
25974
|
if (applyVideoSettingNode(key, val)) continue;
|
|
26009
25975
|
if (applyCarouselNode(key, val)) continue;
|
|
26010
25976
|
document.querySelectorAll(`[data-ohw-key="${key}"]`).forEach((el) => {
|
|
@@ -26450,12 +26416,6 @@ function OhhwellsBridge() {
|
|
|
26450
26416
|
closeLinkPopoverRef.current();
|
|
26451
26417
|
return;
|
|
26452
26418
|
}
|
|
26453
|
-
if (floatingPanelOpenRef.current) {
|
|
26454
|
-
setFloatingPanelRef.current(null);
|
|
26455
|
-
deselectRef.current();
|
|
26456
|
-
deactivateRef.current();
|
|
26457
|
-
return;
|
|
26458
|
-
}
|
|
26459
26419
|
deselectRef.current();
|
|
26460
26420
|
deactivateRef.current();
|
|
26461
26421
|
clearMediaSelectionRef.current();
|
|
@@ -27203,10 +27163,10 @@ function OhhwellsBridge() {
|
|
|
27203
27163
|
window.removeEventListener("message", handleDeleteSection);
|
|
27204
27164
|
window.removeEventListener("message", handleDuplicateSection);
|
|
27205
27165
|
window.removeEventListener("message", handleDeactivate);
|
|
27166
|
+
document.documentElement.removeAttribute("data-ohw-panel-dragging");
|
|
27206
27167
|
window.removeEventListener("message", handleToastAction);
|
|
27207
27168
|
window.removeEventListener("message", handleFormCount);
|
|
27208
27169
|
window.removeEventListener("message", handleUiEscape);
|
|
27209
|
-
document.documentElement.removeAttribute("data-ohw-panel-dragging");
|
|
27210
27170
|
autoSaveTimers.current.forEach(clearTimeout);
|
|
27211
27171
|
autoSaveTimers.current.clear();
|
|
27212
27172
|
if (imageUnhoverTimerRef.current) clearTimeout(imageUnhoverTimerRef.current);
|