@eazo/sdk 0.14.0 → 0.15.0
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/internal/banner-ui/icons.d.ts.map +1 -1
- package/dist/internal/banner-ui/icons.js +6 -5
- package/dist/internal/banner-ui/icons.js.map +1 -1
- package/dist/internal/banner-ui/index.d.ts.map +1 -1
- package/dist/internal/banner-ui/index.js +45 -4
- package/dist/internal/banner-ui/index.js.map +1 -1
- package/dist/internal/banner-ui/styles.d.ts +1 -1
- package/dist/internal/banner-ui/styles.d.ts.map +1 -1
- package/dist/internal/banner-ui/styles.js +131 -0
- package/dist/internal/banner-ui/styles.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +27 -1
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,KAAK,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,oBAAoB,EAK9C,CAAC;AAEX,wBAAgB,OAAO,CAAC,EACtB,CAAC,EACD,IAAS,GACV,EAAE;IAAE,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+CjE;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAO3E;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,KAAK,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,oBAAoB,EAK9C,CAAC;AAEX,wBAAgB,OAAO,CAAC,EACtB,CAAC,EACD,IAAS,GACV,EAAE;IAAE,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+CjE;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAO3E;AAOD,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAWtE;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAOtE;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAQrE;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAQpE;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAmCnF"}
|
|
@@ -43,12 +43,13 @@ function CapIcon({ k, size = 14, }) {
|
|
|
43
43
|
function ArrowRightIcon({ size = 12 }) {
|
|
44
44
|
return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "round", strokeLinejoin: "round", children: (0, jsx_runtime_1.jsx)("path", { d: "M5 12h14M13 6l6 6-6 6" }) }));
|
|
45
45
|
}
|
|
46
|
-
/*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
46
|
+
/* Shuffle glyph for the bottom-banner Remix CTA — matches what the
|
|
47
|
+
* mobile shell renders for the same action (`systemImage: "shuffle"`
|
|
48
|
+
* on iOS, Ionicon `shuffle-outline` on Android in
|
|
49
|
+
* `eazo-mobile/src/features/agenticApp/viewer/components/AppViewerImmersive.tsx`
|
|
50
|
+
* and `AppAddressBarMoreSheet.tsx`). Path data is Lucide's `Shuffle`. */
|
|
50
51
|
function RemixIcon({ size = 16 }) {
|
|
51
|
-
return ((0, jsx_runtime_1.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("path", { d: "
|
|
52
|
+
return ((0, jsx_runtime_1.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, jsx_runtime_1.jsx)("path", { d: "M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22" }), (0, jsx_runtime_1.jsx)("path", { d: "m18 2 4 4-4 4" }), (0, jsx_runtime_1.jsx)("path", { d: "M2 6h1.9c1.5 0 2.9.9 3.6 2.2" }), (0, jsx_runtime_1.jsx)("path", { d: "M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8" }), (0, jsx_runtime_1.jsx)("path", { d: "m18 14 4 4-4 4" })] }));
|
|
52
53
|
}
|
|
53
54
|
function HeartIcon({ size = 14 }) {
|
|
54
55
|
return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "currentColor", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round", children: (0, jsx_runtime_1.jsx)("path", { d: "M12 20.5s-7-4.4-7-10A4.5 4.5 0 0 1 12 7a4.5 4.5 0 0 1 7 3.5c0 5.6-7 10-7 10Z" }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/icons.tsx"],"names":[],"mappings":";;;AAmBA,0BAkDC;AAED,wCAOC;
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgF/B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgF/B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAmL3D"}
|
|
@@ -181,26 +181,67 @@ function EazoBrandBanner() {
|
|
|
181
181
|
document.addEventListener("keydown", onKeyDown);
|
|
182
182
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
183
183
|
}, [mounted, modalDismissed, modalReady, dismissModal]);
|
|
184
|
-
//
|
|
185
|
-
//
|
|
184
|
+
// Three coupled responsibilities, all client-side, all keyed to the
|
|
185
|
+
// banner actually being visible (host === "web", post-mount):
|
|
186
|
+
//
|
|
187
|
+
// 1. Reserve top + bottom padding on `<html>` so the host page's
|
|
188
|
+
// flow-layout content doesn't tuck under the fixed banners.
|
|
189
|
+
//
|
|
190
|
+
// 2. Expose the reserved heights as `--eazo-handoff-top` / `bottom`
|
|
191
|
+
// CSS custom properties on `<html>`. The `.eazo-app-area`
|
|
192
|
+
// wrapper (rendered by `EazoProvider`) reads these for its inset
|
|
193
|
+
// box, and host code can read them too for tooltip / popover
|
|
194
|
+
// coordination (e.g. `bottom: calc(var(--eazo-handoff-bottom) + 12px)`).
|
|
195
|
+
//
|
|
196
|
+
// 3. Add the `eazo-host-web` class on `<html>`. This is the GATE for
|
|
197
|
+
// the `.eazo-app-area` wrapper's effective styling (position:
|
|
198
|
+
// fixed + overflow + containing block). The class is only added
|
|
199
|
+
// here, not in `react.tsx`, so it's coupled to banner visibility
|
|
200
|
+
// — in a mobile WebView or iframe the banner-ui mount-gate above
|
|
201
|
+
// bails out and the class is never set, leaving the wrapper as
|
|
202
|
+
// an inert pass-through `<div>` that doesn't disturb the host's
|
|
203
|
+
// scroll model or fixed-positioning containment.
|
|
204
|
+
//
|
|
205
|
+
// All three are restored on unmount so a Provider that comes and
|
|
206
|
+
// goes leaves no residue.
|
|
186
207
|
React.useEffect(() => {
|
|
187
208
|
if (!mounted)
|
|
188
209
|
return;
|
|
189
210
|
const html = document.documentElement;
|
|
190
211
|
const previousTop = html.style.paddingTop;
|
|
191
212
|
const previousBottom = html.style.paddingBottom;
|
|
213
|
+
const previousVarTop = html.style.getPropertyValue("--eazo-handoff-top");
|
|
214
|
+
const previousVarBottom = html.style.getPropertyValue("--eazo-handoff-bottom");
|
|
215
|
+
html.classList.add("eazo-host-web");
|
|
192
216
|
const apply = () => {
|
|
193
217
|
const m = isMobile();
|
|
194
218
|
setMobile(m);
|
|
195
|
-
|
|
196
|
-
|
|
219
|
+
const top = topBannerHeightPx(m);
|
|
220
|
+
const bottom = bottomBannerHeightPx(m);
|
|
221
|
+
html.style.paddingTop = `${top}px`;
|
|
222
|
+
html.style.paddingBottom = `${bottom}px`;
|
|
223
|
+
html.style.setProperty("--eazo-handoff-top", `${top}px`);
|
|
224
|
+
html.style.setProperty("--eazo-handoff-bottom", `${bottom}px`);
|
|
197
225
|
};
|
|
198
226
|
apply();
|
|
199
227
|
window.addEventListener("resize", apply);
|
|
200
228
|
return () => {
|
|
201
229
|
window.removeEventListener("resize", apply);
|
|
230
|
+
html.classList.remove("eazo-host-web");
|
|
202
231
|
html.style.paddingTop = previousTop;
|
|
203
232
|
html.style.paddingBottom = previousBottom;
|
|
233
|
+
if (previousVarTop) {
|
|
234
|
+
html.style.setProperty("--eazo-handoff-top", previousVarTop);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
html.style.removeProperty("--eazo-handoff-top");
|
|
238
|
+
}
|
|
239
|
+
if (previousVarBottom) {
|
|
240
|
+
html.style.setProperty("--eazo-handoff-bottom", previousVarBottom);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
html.style.removeProperty("--eazo-handoff-bottom");
|
|
244
|
+
}
|
|
204
245
|
};
|
|
205
246
|
}, [mounted]);
|
|
206
247
|
// Fetch public app info on the client when the host didn't prefetch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,6 @@ export declare const BANNER_HEIGHT_DESKTOP = 52;
|
|
|
2
2
|
export declare const BANNER_HEIGHT_MOBILE = 56;
|
|
3
3
|
export declare const BOTTOM_HEIGHT_DESKTOP = 72;
|
|
4
4
|
export declare const BOTTOM_HEIGHT_MOBILE = 78;
|
|
5
|
-
export declare const BANNER_UI_CSS = "\n/* The whole handoff UI lives inside ONE fixed-positioned container that\n * fills the viewport and flex-columns its three children: top banner +\n * overlay (which holds the modal) + bottom banner. This replaces the\n * earlier design where each piece was independently position:fixed\n * with hand-tuned top:52px / bottom:60px insets \u2014 that scheme broke\n * any time an ancestor of the SDK mount established a containing block\n * (transform / filter / backdrop-filter / contain on <body>, a wrapper,\n * etc.), at which point position:fixed becomes relative to that\n * ancestor and the math goes wrong. Flex layout makes the overlay\n * genuinely between the banners by structure, not by pixel math.\n *\n * The root is pointer-events:none so the user's page underneath stays\n * interactive in transparent regions (there shouldn't be any when the\n * overlay's modal is up, but it's the right default). Each visual child\n * (banners + overlay dim) opts back in with pointer-events:auto. */\n.eazo-handoff-root {\n \n --eazo-cream: #f1ebe0;\n --eazo-paper: #faf6ee;\n --eazo-ink: #11130f;\n --eazo-ink-soft: rgba(17,19,15,0.62);\n --eazo-ink-faint: rgba(17,19,15,0.32);\n --eazo-hair: rgba(17,19,15,0.10);\n --eazo-coral: #d4614a;\n --eazo-coral-gradient: linear-gradient(180deg, #F47A42 0%, #EE5C2A 100%);\n --eazo-glow: rgba(212,97,74,0.36);\n --eazo-sans: \"Inter\", \"Helvetica Neue\", system-ui, sans-serif;\n --eazo-serif: \"Source Serif 4\", \"GT Sectra\", \"Tiempos\", Georgia, serif;\n --eazo-mono: \"JetBrains Mono\", \"IBM Plex Mono\", ui-monospace, Menlo, monospace;\n\n position: fixed;\n inset: 0;\n z-index: 2147483540;\n display: flex;\n flex-direction: column;\n /* justify-content:space-between keeps the bottom banner pinned even\n * when the user dismisses the modal (the overlay child unmounts) \u2014\n * without it the flex-column would collapse the bottom banner up to\n * sit right under the top one. */\n justify-content: space-between;\n color: var(--eazo-ink);\n font-family: var(--eazo-sans);\n box-sizing: border-box;\n pointer-events: none;\n}\n.eazo-handoff-root *, .eazo-handoff-root *::before, .eazo-handoff-root *::after {\n box-sizing: border-box;\n}\n\n@keyframes eazo-handoff-slide-down {\n from { transform: translateY(-100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes eazo-handoff-slide-up {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes eazo-handoff-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n@keyframes eazo-handoff-orbit-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }\n@keyframes eazo-handoff-glow { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }\n@keyframes eazo-handoff-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes eazo-handoff-pop-in {\n from { opacity: 0; transform: translateY(12px) scale(0.97); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ============ TOP BANNER ============\n *\n * Slim three-piece strip: brand mark, single-line copy, CTA. The\n * underlying app's content sits below this. Non-dismissible.\n */\n.eazo-banner-root {\n /* Flex child of .eazo-handoff-root \u2014 naturally pinned to the top of\n * the viewport-filling container. No position:fixed needed. */\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n height: 52px;\n padding: 0 14px 0 18px;\n background: var(--eazo-cream);\n border-bottom: 1px solid var(--eazo-hair);\n pointer-events: auto;\n animation: eazo-handoff-slide-down 240ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n.eazo-banner-brand {\n display: inline-flex; align-items: center;\n flex-shrink: 0;\n color: var(--eazo-ink);\n}\n.eazo-banner-copy {\n flex: 1; min-width: 0;\n font-size: 14px; font-weight: 500;\n color: var(--eazo-ink-soft);\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.eazo-banner-cta {\n flex-shrink: 0;\n display: inline-flex; align-items: center; gap: 6px;\n height: 30px; padding: 0 14px; border-radius: 10px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-size: 12px; font-weight: 600; border: 0; cursor: pointer;\n text-decoration: none;\n box-shadow: 0 10px 22px var(--eazo-glow);\n transition: filter 160ms ease, box-shadow 160ms ease;\n}\n.eazo-banner-cta:hover { filter: brightness(1.06); }\n\n/* CTA wrapper anchors the hover/focus popover. position:relative is the\n * coordinate origin for the absolutely-positioned popover below. */\n.eazo-banner-cta-wrap {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n}\n\n/* Hover popover holding the page-URL QR. Matches the v5-stagelight\n * design (project/v5-stagelight.jsx:59-85). The CTA's right edge anchors\n * the right edge of the popover so it never spills off the viewport on\n * a banner where the CTA is hugged to the right padding. */\n.eazo-banner-cta-popover {\n position: absolute;\n top: calc(100% + 10px);\n right: 0;\n z-index: 2147483560;\n display: flex; flex-direction: column; align-items: center; gap: 8px;\n min-width: 168px;\n padding: 14px;\n background: #fff;\n border: 1px solid var(--eazo-hair);\n border-radius: 14px;\n box-shadow:\n 0 24px 50px -20px rgba(17,19,15,0.22),\n 0 0 0 1px rgba(17,19,15,0.03);\n animation: eazo-handoff-fade-in 140ms ease-out;\n}\n/* Triangular tail pointing back up at the CTA. Rotated square so it\n * inherits the card's border + background without an extra SVG. */\n.eazo-banner-cta-popover-arrow {\n position: absolute;\n top: -7px; right: 24px;\n width: 12px; height: 12px;\n background: #fff;\n border-top: 1px solid var(--eazo-hair);\n border-left: 1px solid var(--eazo-hair);\n transform: rotate(45deg);\n}\n.eazo-banner-cta-popover-qr {\n padding: 4px;\n background: #fff;\n line-height: 0;\n}\n.eazo-banner-cta-popover-caption {\n font-family: var(--eazo-mono);\n font-size: 11px;\n line-height: 1.4;\n letter-spacing: 0.04em;\n color: var(--eazo-ink-soft);\n text-align: center;\n}\n\n/* ============ OVERLAY (backdrop + spotlight + modal) ============\n *\n * The flex-middle of .eazo-handoff-root. Takes whatever vertical space\n * the top and bottom banners don't claim \u2014 i.e. it IS the inter-banner\n * area by structure, not by pixel math. overflow:hidden clips any\n * oversized modal at this seam; the modal's own max-height:100% plus\n * the overlay's flex centering keeps it inside.\n */\n.eazo-handoff-overlay {\n flex: 1;\n min-height: 0; /* allow the flex item to shrink below content size */\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n padding: 16px;\n pointer-events: auto;\n animation: eazo-handoff-fade-in 320ms ease-out;\n}\n.eazo-handoff-overlay-dim {\n position: absolute; inset: 0;\n background: rgba(241,235,224,0.78);\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n}\n.eazo-handoff-overlay-spot {\n position: absolute; inset: 0;\n background: radial-gradient(ellipse at 50% 50%, rgba(212,97,74,0.22) 0%, rgba(212,97,74,0.06) 30%, transparent 58%);\n pointer-events: none;\n}\n\n.eazo-modal {\n /* Natural flex centering by the overlay parent \u2014 no absolute\n * positioning. This keeps the modal inside the overlay's banner-\n * constrained box even when its content is tall, so it never bleeds\n * into the top or bottom banner area. If the modal is taller than the\n * overlay, the inner content scrolls. */\n position: relative;\n width: min(540px, 100%);\n max-height: 100%;\n overflow-y: auto;\n padding: 32px 32px 28px;\n background: rgba(255,255,255,0.92);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n border: 1px solid var(--eazo-hair);\n border-radius: 24px;\n color: var(--eazo-ink);\n box-shadow:\n 0 60px 100px -40px rgba(17,19,15,0.28),\n inset 0 1px 0 rgba(255,255,255,0.7),\n 0 0 60px var(--eazo-glow);\n display: flex; flex-direction: column; align-items: center; gap: 18px;\n animation: eazo-handoff-pop-in 360ms cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n/* Close button \u2014 sits in the modal's top-right corner. The top + bottom\n * Eazo banners stay visible after the user dismisses the modal; only\n * this center \"strong CTA\" goes away (per-tab via sessionStorage). */\n.eazo-modal-close {\n position: absolute;\n top: 12px; right: 12px;\n width: 30px; height: 30px;\n display: inline-flex; align-items: center; justify-content: center;\n border: 0; padding: 0;\n border-radius: 999px;\n background: rgba(17,19,15,0.04);\n color: var(--eazo-ink-soft);\n cursor: pointer;\n transition: background 140ms ease, color 140ms ease;\n}\n.eazo-modal-close:hover {\n background: rgba(17,19,15,0.08);\n color: var(--eazo-ink);\n}\n.eazo-modal-close:focus-visible {\n outline: 2px solid var(--eazo-coral);\n outline-offset: 2px;\n}\n\n/* ============ ORBITING CAPABILITIES + APP MONOLITH ============\n *\n * Geometry runs in a 280-unit coordinate space (matches the V5 design\n * canvas). The rings SVG uses a viewBox so its content scales to whatever\n * pixel size the .eazo-orbit container is in CSS (280 desktop, 220\n * mobile). The capability nodes position via percentage left/top on\n * the rotating track, then use negative margins to center on that point\n * \u2014 margins do not fight the track rotate animation the way a\n * transform: translate(-50%, -50%) would.\n */\n.eazo-orbit {\n position: relative;\n width: 280px; height: 280px;\n display: grid; place-items: center;\n}\n.eazo-orbit-rings {\n position: absolute; inset: 0;\n width: 100%; height: 100%;\n opacity: 0.95;\n}\n.eazo-orbit-track {\n position: absolute; inset: 0; width: 100%; height: 100%;\n animation: eazo-handoff-orbit 30s linear infinite;\n}\n.eazo-orbit-node {\n position: absolute;\n width: 36px; height: 36px;\n margin: -18px 0 0 -18px;\n border-radius: 10px;\n background: #fff; border: 1px solid var(--eazo-hair);\n display: grid; place-items: center;\n box-shadow: 0 10px 22px -10px rgba(17,19,15,0.15);\n animation: eazo-handoff-orbit-rev 30s linear infinite;\n color: var(--eazo-coral);\n}\n.eazo-monolith {\n width: 96px; height: 96px; border-radius: 22px;\n /* Default fallback background \u2014 visible behind emoji icons and the\n * typographic initials fallback. URL icons render as a child <img>\n * that covers this completely. Eazo coral gradient (same as primary\n * CTAs) so the empty state reads as a clear Eazo-brand placeholder. */\n background: var(--eazo-coral-gradient);\n display: grid; place-items: center;\n position: relative;\n color: #ffffff;\n font-family: var(--eazo-serif); font-weight: 500;\n font-size: 42px; letter-spacing: -0.02em;\n box-shadow:\n 0 30px 60px -20px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.30),\n 0 0 0 1px rgba(255,255,255,0.14);\n overflow: hidden;\n}\n.eazo-monolith img {\n width: 100%; height: 100%; object-fit: cover; display: block;\n}\n\n.eazo-modal-eyebrow {\n font-family: var(--eazo-mono); font-size: 10px;\n letter-spacing: 0.18em; text-transform: uppercase;\n color: var(--eazo-ink-faint);\n text-align: center;\n}\n.eazo-modal-title {\n margin: 0; font-family: var(--eazo-serif); font-weight: 500;\n font-size: 32px; line-height: 1.15; letter-spacing: -0.02em;\n text-align: center; max-width: 360px;\n /* Clamp at 2 lines so an unusually long app name doesn't blow up the\n * modal height. Ellipsis takes over for the overflow. */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n.eazo-modal-sub {\n margin: 0; font-size: 13px; line-height: 1.5;\n color: var(--eazo-ink-soft);\n text-align: center; max-width: 360px;\n /* Same idea \u2014 long taglines clamp to 3 lines to keep the QR + CTA\n * visible without scrolling. */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n\n/* Skeleton blocks shown while public app info is in flight. The modal\n * frame appears immediately so the user sees Eazo's commitment to the\n * handoff; the name / tagline swap in once the fetch resolves. */\n.eazo-skel {\n display: inline-block;\n vertical-align: middle;\n background: linear-gradient(90deg,\n rgba(17,19,15,0.05) 0%,\n rgba(17,19,15,0.12) 50%,\n rgba(17,19,15,0.05) 100%);\n background-size: 200% 100%;\n border-radius: 8px;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n}\n.eazo-skel-title { width: 60%; height: 36px; }\n.eazo-skel-sub-1 { width: 80%; height: 13px; margin-top: 8px; }\n.eazo-skel-sub-2 { width: 55%; height: 13px; margin-top: 6px; }\n.eazo-skel-stat { width: 28px; height: 11px; border-radius: 4px; }\n@keyframes eazo-skel-shimmer {\n from { background-position: 200% 0; }\n to { background-position: -200% 0; }\n}\n\n/* Monolith-tuned shimmer \u2014 sweeps a brighter band over the dark navy\n * gradient. Used while public app info is still loading, and as the\n * placeholder behind an <img> until it decodes. */\n.eazo-monolith-skel {\n position: absolute;\n inset: 0;\n background: linear-gradient(90deg,\n rgba(255,255,255,0.00) 0%,\n rgba(255,255,255,0.18) 50%,\n rgba(255,255,255,0.00) 100%);\n background-size: 200% 100%;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n pointer-events: none;\n}\n.eazo-monolith-img {\n width: 100%; height: 100%;\n object-fit: cover; display: block;\n opacity: 0;\n transition: opacity 220ms ease-out;\n}\n.eazo-monolith-img.is-loaded { opacity: 1; }\n\n/* ============ QR + CTA ROW ============ */\n.eazo-cta-row {\n width: 100%; display: flex; gap: 12px; align-items: stretch; margin-top: 6px;\n}\n.eazo-qr-tile {\n padding: 8px; border-radius: 10px;\n background: #fff; border: 1px solid var(--eazo-hair);\n display: grid; place-items: center;\n}\n.eazo-cta-body {\n flex: 1; min-width: 0;\n display: flex; flex-direction: column; justify-content: space-between; gap: 8px;\n}\n.eazo-cta-headline {\n font-size: 12px; font-weight: 600;\n}\n.eazo-cta-fine {\n font-size: 10px; color: var(--eazo-ink-faint); margin-top: 4px;\n font-family: var(--eazo-mono); letter-spacing: 0.04em; line-height: 1.5;\n}\n.eazo-cta-primary {\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n height: 40px; border-radius: 10px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-size: 13px; font-weight: 600; border: 0; cursor: pointer;\n text-decoration: none;\n box-shadow: 0 14px 26px var(--eazo-glow);\n transition: filter 160ms ease;\n}\n.eazo-cta-primary:hover { filter: brightness(1.06); }\n\n/* ============ BOTTOM BANNER ============\n *\n * Per V5 / M5 design: two prominent stats on the left (heart + chat,\n * each rendered as a tinted icon-tile with a stacked value-over-label\n * column) separated by a thin hair-divider, and a coral \"Remix\" pill\n * on the right that reuses the top-banner CTA handoff. A small\n * \"eazo.ai \u2197\" mark sits to the left of the pill on desktop only \u2014\n * on phone widths (\u2264480px) it drops out so the Remix pill keeps its\n * thumb-zone weight.\n */\n.eazo-bottom-root {\n /* Flex child of .eazo-handoff-root \u2014 naturally pinned to the bottom of\n * the viewport-filling container. No position:fixed needed. */\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: space-between;\n gap: 16px;\n height: 72px;\n padding: 0 22px 0 26px;\n background: #fff;\n border-top: 1px solid var(--eazo-hair);\n pointer-events: auto;\n animation: eazo-handoff-slide-up 240ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n.eazo-bottom-stats {\n display: inline-flex; align-items: center; gap: 22px;\n min-width: 0; color: var(--eazo-ink);\n}\n.eazo-bottom-stat {\n display: inline-flex; align-items: center; gap: 9px;\n font-family: var(--eazo-sans);\n flex-shrink: 0;\n}\n/* Tinted square tile that frames each stat icon \u2014 coral-on-cream for\n * filled glyphs (heart), neutral-on-cream for line glyphs (chat). */\n.eazo-bottom-stat-icon {\n display: inline-flex; align-items: center; justify-content: center;\n width: 30px; height: 30px; border-radius: 8px;\n background: rgba(212,97,74,0.10);\n color: var(--eazo-coral);\n flex-shrink: 0;\n}\n.eazo-bottom-stat-icon.is-line {\n background: rgba(17,19,15,0.05);\n color: var(--eazo-ink);\n}\n.eazo-bottom-stat-text {\n display: inline-flex; flex-direction: column; line-height: 1.05;\n}\n.eazo-bottom-stat-value {\n font-family: var(--eazo-sans);\n font-size: 16px; font-weight: 600; letter-spacing: -0.01em;\n}\n.eazo-bottom-stat-label {\n font-family: var(--eazo-sans);\n font-size: 11px; font-weight: 500;\n color: var(--eazo-ink-faint);\n margin-top: 1px;\n}\n.eazo-bottom-stat-divider {\n width: 1px; height: 28px;\n background: var(--eazo-hair);\n flex-shrink: 0;\n}\n.eazo-bottom-skel {\n display: inline-block; vertical-align: middle;\n width: 32px; height: 18px; border-radius: 4px;\n background: linear-gradient(90deg,\n rgba(17,19,15,0.05) 0%,\n rgba(17,19,15,0.12) 50%,\n rgba(17,19,15,0.05) 100%);\n background-size: 200% 100%;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n}\n\n.eazo-bottom-actions {\n display: inline-flex; align-items: center; gap: 14px;\n flex-shrink: 0;\n}\n.eazo-bottom-site {\n display: inline-flex; align-items: center; gap: 4px;\n color: var(--eazo-ink-soft);\n text-decoration: none;\n font-family: var(--eazo-sans); font-size: 12px; font-weight: 500;\n white-space: nowrap;\n transition: color 140ms ease;\n}\n.eazo-bottom-site:hover { color: var(--eazo-ink); }\n.eazo-bottom-site b { color: var(--eazo-ink); font-weight: 600; }\n\n/* Primary CTA on the bottom banner. Renders as <a> so it picks up the\n * same iOS-timeout fallback handler as the top-banner CTA via the\n * shared bindCtaClick \u2014 keeps the Remix tap on the same install /\n * deeplink path as the rest of the handoff UX. */\n.eazo-bottom-remix {\n display: inline-flex; align-items: center; justify-content: center; gap: 9px;\n height: 44px; padding: 0 20px 0 18px;\n border: 0; cursor: pointer;\n border-radius: 999px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-family: var(--eazo-sans);\n font-size: 14px; font-weight: 600; letter-spacing: -0.005em;\n white-space: nowrap;\n box-shadow:\n 0 12px 24px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.18);\n text-decoration: none;\n transition: transform 140ms ease, box-shadow 140ms ease;\n}\n.eazo-bottom-remix:hover {\n transform: translateY(-1px);\n box-shadow:\n 0 14px 28px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.22);\n}\n.eazo-bottom-remix:active { transform: translateY(0); }\n\n/* ============ MOBILE TWEAKS (\u2264480px) ============ */\n@media (max-width: 480px) {\n .eazo-banner-root {\n height: 56px;\n padding: 0 10px 0 14px;\n gap: 10px;\n }\n .eazo-banner-copy {\n font-size: 12px; line-height: 1.25; white-space: normal;\n display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;\n }\n .eazo-banner-cta { height: 28px; padding: 0 10px; font-size: 11px; border-radius: 8px; }\n /* Hover doesn't resolve reliably on touch \u2014 the CTA still works as a\n * plain link, no popover needed. Belt-and-suspenders to the JS check\n * (the popover render is also gated on the 'open' state, which never\n * flips without mouseenter / focus). */\n .eazo-banner-cta-popover { display: none; }\n\n .eazo-modal {\n width: calc(100vw - 32px);\n padding: 24px 20px 20px;\n border-radius: 20px;\n gap: 14px;\n }\n .eazo-orbit { width: 220px; height: 220px; }\n .eazo-monolith {\n width: 76px; height: 76px; border-radius: 18px;\n font-size: 32px;\n }\n .eazo-orbit-node {\n width: 28px; height: 28px; border-radius: 8px;\n margin: -14px 0 0 -14px;\n }\n .eazo-modal-title { font-size: 26px; }\n .eazo-modal-sub { font-size: 12px; }\n\n /* Mobile: the user is already on a phone \u2014 no point showing them a QR\n * to scan with their phone, and the \"Scan to open\" headline + fine\n * print only made sense paired with the QR. Collapse to the primary\n * CTA alone. */\n .eazo-qr-tile { display: none; }\n .eazo-cta-row { flex-direction: column; gap: 10px; }\n .eazo-cta-primary { height: 44px; width: 100%; font-size: 14px; border-radius: 12px; }\n .eazo-cta-headline { display: none; }\n .eazo-cta-fine { display: none; }\n\n .eazo-bottom-root {\n height: 78px;\n padding: 0 16px 0 20px;\n gap: 12px;\n }\n /* Tighter cells per the M5 (390px) spec: smaller icon tile, smaller\n * value, smaller divider. Labels stay \u2014 they're a key part of the\n * visual rhythm in M5. */\n .eazo-bottom-stats { gap: 12px; }\n .eazo-bottom-stat { gap: 7px; }\n .eazo-bottom-stat-icon { width: 26px; height: 26px; border-radius: 7px; }\n .eazo-bottom-stat-value { font-size: 14px; }\n .eazo-bottom-stat-label { font-size: 10px; }\n .eazo-bottom-stat-divider { height: 24px; }\n .eazo-bottom-skel { width: 28px; height: 15px; }\n /* M5 drops the secondary eazo.ai mark on phone widths so the Remix\n * pill keeps unambiguous thumb-zone weight. */\n .eazo-bottom-site { display: none; }\n .eazo-bottom-remix {\n height: 44px; padding: 0 18px 0 16px;\n gap: 8px; font-size: 13px;\n box-shadow:\n 0 10px 22px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.18);\n }\n /* Drop the trailing \"this app\" wording on phone widths \u2014 the icon\n * plus the verb is already unambiguous and the pill stays compact. */\n .eazo-bottom-remix-suffix { display: none; }\n}\n";
|
|
5
|
+
export declare const BANNER_UI_CSS = "\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n * Host content safe area \u2014 two-layer wrapper\n *\n * Two nested elements wrap the host's children at the EazoProvider level:\n *\n * <div class=\"eazo-app-area\"> \u2190 outer: containing block\n * <div class=\"eazo-app-area-scroller\"> \u2190 inner: scroll container\n * {host children}\n * </div>\n * </div>\n *\n * Both elements are ALWAYS rendered (SSR + CSR markup is static, no\n * hydration mismatch). The effective styles activate only when the host\n * is a plain web browser AND the handoff banners are mounted \u2014 gated on\n * the `eazo-host-web` class on `<html>`, set/cleared by the banner-ui\n * effect. In a mobile WebView or iframe both elements are inert `<div>`s.\n *\n * Why two layers (this is the whole point):\n *\n * A single-element wrapper that combines `transform: translateZ(0)` AND\n * `overflow: auto` LOOKS like it should keep host's `position: fixed;\n * bottom: 0` elements pinned above the SDK banner \u2014 the transform\n * reparents the containing block to the wrapper, after all. But under\n * that combination, browsers (per the CSS positioning + scrolling spec\n * interaction) demote the fixed descendant to absolute-like behavior\n * AND translate it by the wrapper's scroll offset. The \"sticky CTA\"\n * ends up scrolling with content rather than staying pinned.\n *\n * Splitting them fixes this:\n * - `.eazo-app-area` (outer): `position: fixed` between the banners\n * + `transform: translateZ(0)`. It establishes the containing block\n * but is NOT a scroll container \u2014 its own padding box never moves.\n * - `.eazo-app-area-scroller` (inner): `position: absolute; inset: 0`\n * to fill the outer + `overflow-y: auto` to scroll host content. It\n * is NOT a containing block for fixed descendants (no transform,\n * static position contexts don't qualify), so host's\n * `position: fixed; bottom: 0` still resolves all the way up to the\n * outer. The bar is painted in the outer's coordinate space, OUTSIDE\n * the inner's scroll layer, so scrolling host content does NOT\n * translate it. Result: bar stays visually pinned to the outer's\n * bottom edge \u2014 which sits exactly above the SDK banner.\n *\n * Why scope the styles to `html.eazo-host-web`:\n * The wrapper only exists to keep host content clear of the SDK's\n * handoff banners. In a mobile WebView or iframe the banners don't\n * render \u2014 the wrapper has no job, and activating the fixed-position\n * + overflow + containing-block semantics there would silently break\n * `window.scrollY`, `window` scroll listeners, body-overflow scroll\n * locks, and host modals at `position: fixed; inset: 0` for zero\n * product benefit. So both layers stay inert outside plain web.\n *\n * Known trade-offs on web (called out in CHANGELOG):\n * - Scrolling happens inside `.eazo-app-area-scroller`, not on\n * `window`. Code reading `window.scrollY` or attaching `scroll`\n * listeners to `window` must migrate to the scroller element.\n * - `document.body { overflow: hidden }` no longer locks scroll;\n * body-scroll-lock libraries must target the scroller.\n * - Host modals at `position: fixed; inset: 0` are contained to\n * the outer wrapper rather than covering the full viewport \u2014\n * visually equivalent (the wrapper IS the safe-area box) but\n * `inset: 0` no longer covers the banner area.\n */\n/* Default state for the two wrapper layers: `display: contents` makes\n * the wrapper boxes disappear from layout entirely. Their children\n * participate in the GRANDPARENT's layout context (i.e. directly in the\n * `<body>`'s flex column) as if the wrapper elements didn't exist.\n * With no generated box there's also no containing block for fixed\n * descendants \u2014 host's `position: fixed; bottom: 0` resolves all the\n * way up to the viewport, exactly as it would without the SDK present.\n *\n * This is the ONLY state the wrapper takes in mobile WebView / iframe\n * hosts: the banners aren't mounted, the wrapper has no job, so it\n * collapses to a layout no-op. `html.eazo-host-web` (added by banner-ui\n * on mount, only in plain web) overrides BOTH layers below to their\n * full active styles. */\n.eazo-app-area,\n.eazo-app-area-scroller {\n display: contents;\n}\n\nhtml.eazo-host-web .eazo-app-area {\n display: block;\n position: fixed;\n inset: var(--eazo-handoff-top, 0px) 0 var(--eazo-handoff-bottom, 0px) 0;\n /* Containing block for fixed-positioned descendants \u2014 this is what\n * lets host's `position: fixed; bottom: 0` anchor to the wrapper\n * (between the banners) instead of to the viewport (under our banner).\n *\n * IMPORTANT: do not move `overflow: auto` onto this element. The\n * combination of transform + overflow makes fixed descendants scroll\n * with content. The scroll lives on `.eazo-app-area-scroller` below. */\n transform: translateZ(0);\n}\nhtml.eazo-host-web .eazo-app-area-scroller {\n display: block;\n /* Fill the outer wrapper exactly. `position: absolute` is the\n * cheapest way to do this \u2014 `width/height: 100%` plus margin/padding\n * inheritance can leak; `inset: 0` against the outer's padding box\n * is unambiguous. */\n position: absolute;\n inset: 0;\n /* This is the actual scroll container for host content. Crucially,\n * it does NOT have `transform` \u2014 so it is NOT a containing block\n * for host's `position: fixed` descendants. Those still resolve up\n * to `.eazo-app-area` and stay pinned to its edges, ignoring scroll. */\n overflow-x: hidden;\n overflow-y: auto;\n /* Disable rubber-band overscroll. The wrapper sits between two fixed\n * banners on its own compositor layer (via the outer's translateZ);\n * during native overscroll bounce the scroller's content briefly\n * translates beyond its padding box and the compositor briefly\n * reveals adjacent layers \u2014 the cream top banner above, the white\n * bottom banner below, the body's UA-default background everywhere\n * else \u2014 as a flash of \"other colors\" at the top/bottom edges.\n * `overscroll-behavior: none` keeps the scroll fully contained and\n * eliminates that visual seam, at the cost of the native bounce\n * gesture inside the wrapper (acceptable trade for the SDK's promo\n * surface, which is already constrained by the banner sandwich). */\n overscroll-behavior: none;\n}\n\n/* The whole handoff UI lives inside ONE fixed-positioned container that\n * fills the viewport and flex-columns its three children: top banner +\n * overlay (which holds the modal) + bottom banner. This replaces the\n * earlier design where each piece was independently position:fixed\n * with hand-tuned top:52px / bottom:60px insets \u2014 that scheme broke\n * any time an ancestor of the SDK mount established a containing block\n * (transform / filter / backdrop-filter / contain on <body>, a wrapper,\n * etc.), at which point position:fixed becomes relative to that\n * ancestor and the math goes wrong. Flex layout makes the overlay\n * genuinely between the banners by structure, not by pixel math.\n *\n * The root is pointer-events:none so the user's page underneath stays\n * interactive in transparent regions (there shouldn't be any when the\n * overlay's modal is up, but it's the right default). Each visual child\n * (banners + overlay dim) opts back in with pointer-events:auto. */\n.eazo-handoff-root {\n \n --eazo-cream: #f1ebe0;\n --eazo-paper: #faf6ee;\n --eazo-ink: #11130f;\n --eazo-ink-soft: rgba(17,19,15,0.62);\n --eazo-ink-faint: rgba(17,19,15,0.32);\n --eazo-hair: rgba(17,19,15,0.10);\n --eazo-coral: #d4614a;\n --eazo-coral-gradient: linear-gradient(180deg, #F47A42 0%, #EE5C2A 100%);\n --eazo-glow: rgba(212,97,74,0.36);\n --eazo-sans: \"Inter\", \"Helvetica Neue\", system-ui, sans-serif;\n --eazo-serif: \"Source Serif 4\", \"GT Sectra\", \"Tiempos\", Georgia, serif;\n --eazo-mono: \"JetBrains Mono\", \"IBM Plex Mono\", ui-monospace, Menlo, monospace;\n\n position: fixed;\n inset: 0;\n z-index: 2147483540;\n display: flex;\n flex-direction: column;\n /* justify-content:space-between keeps the bottom banner pinned even\n * when the user dismisses the modal (the overlay child unmounts) \u2014\n * without it the flex-column would collapse the bottom banner up to\n * sit right under the top one. */\n justify-content: space-between;\n color: var(--eazo-ink);\n font-family: var(--eazo-sans);\n box-sizing: border-box;\n pointer-events: none;\n}\n.eazo-handoff-root *, .eazo-handoff-root *::before, .eazo-handoff-root *::after {\n box-sizing: border-box;\n}\n\n@keyframes eazo-handoff-slide-down {\n from { transform: translateY(-100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes eazo-handoff-slide-up {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n@keyframes eazo-handoff-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n@keyframes eazo-handoff-orbit-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }\n@keyframes eazo-handoff-glow { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }\n@keyframes eazo-handoff-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes eazo-handoff-pop-in {\n from { opacity: 0; transform: translateY(12px) scale(0.97); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n/* ============ TOP BANNER ============\n *\n * Slim three-piece strip: brand mark, single-line copy, CTA. The\n * underlying app's content sits below this. Non-dismissible.\n */\n.eazo-banner-root {\n /* Flex child of .eazo-handoff-root \u2014 naturally pinned to the top of\n * the viewport-filling container. No position:fixed needed. */\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n height: 52px;\n padding: 0 14px 0 18px;\n background: var(--eazo-cream);\n border-bottom: 1px solid var(--eazo-hair);\n pointer-events: auto;\n animation: eazo-handoff-slide-down 240ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n.eazo-banner-brand {\n display: inline-flex; align-items: center;\n flex-shrink: 0;\n color: var(--eazo-ink);\n}\n.eazo-banner-copy {\n flex: 1; min-width: 0;\n font-size: 14px; font-weight: 500;\n color: var(--eazo-ink-soft);\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.eazo-banner-cta {\n flex-shrink: 0;\n display: inline-flex; align-items: center; gap: 6px;\n height: 30px; padding: 0 14px; border-radius: 10px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-size: 12px; font-weight: 600; border: 0; cursor: pointer;\n text-decoration: none;\n box-shadow: 0 10px 22px var(--eazo-glow);\n transition: filter 160ms ease, box-shadow 160ms ease;\n}\n.eazo-banner-cta:hover { filter: brightness(1.06); }\n\n/* CTA wrapper anchors the hover/focus popover. position:relative is the\n * coordinate origin for the absolutely-positioned popover below. */\n.eazo-banner-cta-wrap {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n}\n\n/* Hover popover holding the page-URL QR. Matches the v5-stagelight\n * design (project/v5-stagelight.jsx:59-85). The CTA's right edge anchors\n * the right edge of the popover so it never spills off the viewport on\n * a banner where the CTA is hugged to the right padding. */\n.eazo-banner-cta-popover {\n position: absolute;\n top: calc(100% + 10px);\n right: 0;\n z-index: 2147483560;\n display: flex; flex-direction: column; align-items: center; gap: 8px;\n min-width: 168px;\n padding: 14px;\n background: #fff;\n border: 1px solid var(--eazo-hair);\n border-radius: 14px;\n box-shadow:\n 0 24px 50px -20px rgba(17,19,15,0.22),\n 0 0 0 1px rgba(17,19,15,0.03);\n animation: eazo-handoff-fade-in 140ms ease-out;\n}\n/* Triangular tail pointing back up at the CTA. Rotated square so it\n * inherits the card's border + background without an extra SVG. */\n.eazo-banner-cta-popover-arrow {\n position: absolute;\n top: -7px; right: 24px;\n width: 12px; height: 12px;\n background: #fff;\n border-top: 1px solid var(--eazo-hair);\n border-left: 1px solid var(--eazo-hair);\n transform: rotate(45deg);\n}\n.eazo-banner-cta-popover-qr {\n padding: 4px;\n background: #fff;\n line-height: 0;\n}\n.eazo-banner-cta-popover-caption {\n font-family: var(--eazo-mono);\n font-size: 11px;\n line-height: 1.4;\n letter-spacing: 0.04em;\n color: var(--eazo-ink-soft);\n text-align: center;\n}\n\n/* ============ OVERLAY (backdrop + spotlight + modal) ============\n *\n * The flex-middle of .eazo-handoff-root. Takes whatever vertical space\n * the top and bottom banners don't claim \u2014 i.e. it IS the inter-banner\n * area by structure, not by pixel math. overflow:hidden clips any\n * oversized modal at this seam; the modal's own max-height:100% plus\n * the overlay's flex centering keeps it inside.\n */\n.eazo-handoff-overlay {\n flex: 1;\n min-height: 0; /* allow the flex item to shrink below content size */\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n padding: 16px;\n pointer-events: auto;\n animation: eazo-handoff-fade-in 320ms ease-out;\n}\n.eazo-handoff-overlay-dim {\n position: absolute; inset: 0;\n background: rgba(241,235,224,0.78);\n backdrop-filter: blur(3px);\n -webkit-backdrop-filter: blur(3px);\n}\n.eazo-handoff-overlay-spot {\n position: absolute; inset: 0;\n background: radial-gradient(ellipse at 50% 50%, rgba(212,97,74,0.22) 0%, rgba(212,97,74,0.06) 30%, transparent 58%);\n pointer-events: none;\n}\n\n.eazo-modal {\n /* Natural flex centering by the overlay parent \u2014 no absolute\n * positioning. This keeps the modal inside the overlay's banner-\n * constrained box even when its content is tall, so it never bleeds\n * into the top or bottom banner area. If the modal is taller than the\n * overlay, the inner content scrolls. */\n position: relative;\n width: min(540px, 100%);\n max-height: 100%;\n overflow-y: auto;\n padding: 32px 32px 28px;\n background: rgba(255,255,255,0.92);\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n border: 1px solid var(--eazo-hair);\n border-radius: 24px;\n color: var(--eazo-ink);\n box-shadow:\n 0 60px 100px -40px rgba(17,19,15,0.28),\n inset 0 1px 0 rgba(255,255,255,0.7),\n 0 0 60px var(--eazo-glow);\n display: flex; flex-direction: column; align-items: center; gap: 18px;\n animation: eazo-handoff-pop-in 360ms cubic-bezier(0.16, 1, 0.3, 1) both;\n}\n/* Close button \u2014 sits in the modal's top-right corner. The top + bottom\n * Eazo banners stay visible after the user dismisses the modal; only\n * this center \"strong CTA\" goes away (per-tab via sessionStorage). */\n.eazo-modal-close {\n position: absolute;\n top: 12px; right: 12px;\n width: 30px; height: 30px;\n display: inline-flex; align-items: center; justify-content: center;\n border: 0; padding: 0;\n border-radius: 999px;\n background: rgba(17,19,15,0.04);\n color: var(--eazo-ink-soft);\n cursor: pointer;\n transition: background 140ms ease, color 140ms ease;\n}\n.eazo-modal-close:hover {\n background: rgba(17,19,15,0.08);\n color: var(--eazo-ink);\n}\n.eazo-modal-close:focus-visible {\n outline: 2px solid var(--eazo-coral);\n outline-offset: 2px;\n}\n\n/* ============ ORBITING CAPABILITIES + APP MONOLITH ============\n *\n * Geometry runs in a 280-unit coordinate space (matches the V5 design\n * canvas). The rings SVG uses a viewBox so its content scales to whatever\n * pixel size the .eazo-orbit container is in CSS (280 desktop, 220\n * mobile). The capability nodes position via percentage left/top on\n * the rotating track, then use negative margins to center on that point\n * \u2014 margins do not fight the track rotate animation the way a\n * transform: translate(-50%, -50%) would.\n */\n.eazo-orbit {\n position: relative;\n width: 280px; height: 280px;\n display: grid; place-items: center;\n}\n.eazo-orbit-rings {\n position: absolute; inset: 0;\n width: 100%; height: 100%;\n opacity: 0.95;\n}\n.eazo-orbit-track {\n position: absolute; inset: 0; width: 100%; height: 100%;\n animation: eazo-handoff-orbit 30s linear infinite;\n}\n.eazo-orbit-node {\n position: absolute;\n width: 36px; height: 36px;\n margin: -18px 0 0 -18px;\n border-radius: 10px;\n background: #fff; border: 1px solid var(--eazo-hair);\n display: grid; place-items: center;\n box-shadow: 0 10px 22px -10px rgba(17,19,15,0.15);\n animation: eazo-handoff-orbit-rev 30s linear infinite;\n color: var(--eazo-coral);\n}\n.eazo-monolith {\n width: 96px; height: 96px; border-radius: 22px;\n /* Default fallback background \u2014 visible behind emoji icons and the\n * typographic initials fallback. URL icons render as a child <img>\n * that covers this completely. Eazo coral gradient (same as primary\n * CTAs) so the empty state reads as a clear Eazo-brand placeholder. */\n background: var(--eazo-coral-gradient);\n display: grid; place-items: center;\n position: relative;\n color: #ffffff;\n font-family: var(--eazo-serif); font-weight: 500;\n font-size: 42px; letter-spacing: -0.02em;\n box-shadow:\n 0 30px 60px -20px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.30),\n 0 0 0 1px rgba(255,255,255,0.14);\n overflow: hidden;\n}\n.eazo-monolith img {\n width: 100%; height: 100%; object-fit: cover; display: block;\n}\n\n.eazo-modal-eyebrow {\n font-family: var(--eazo-mono); font-size: 10px;\n letter-spacing: 0.18em; text-transform: uppercase;\n color: var(--eazo-ink-faint);\n text-align: center;\n}\n.eazo-modal-title {\n margin: 0; font-family: var(--eazo-serif); font-weight: 500;\n font-size: 32px; line-height: 1.15; letter-spacing: -0.02em;\n text-align: center; max-width: 360px;\n /* Clamp at 2 lines so an unusually long app name doesn't blow up the\n * modal height. Ellipsis takes over for the overflow. */\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n.eazo-modal-sub {\n margin: 0; font-size: 13px; line-height: 1.5;\n color: var(--eazo-ink-soft);\n text-align: center; max-width: 360px;\n /* Same idea \u2014 long taglines clamp to 3 lines to keep the QR + CTA\n * visible without scrolling. */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n word-break: break-word;\n}\n\n/* Skeleton blocks shown while public app info is in flight. The modal\n * frame appears immediately so the user sees Eazo's commitment to the\n * handoff; the name / tagline swap in once the fetch resolves. */\n.eazo-skel {\n display: inline-block;\n vertical-align: middle;\n background: linear-gradient(90deg,\n rgba(17,19,15,0.05) 0%,\n rgba(17,19,15,0.12) 50%,\n rgba(17,19,15,0.05) 100%);\n background-size: 200% 100%;\n border-radius: 8px;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n}\n.eazo-skel-title { width: 60%; height: 36px; }\n.eazo-skel-sub-1 { width: 80%; height: 13px; margin-top: 8px; }\n.eazo-skel-sub-2 { width: 55%; height: 13px; margin-top: 6px; }\n.eazo-skel-stat { width: 28px; height: 11px; border-radius: 4px; }\n@keyframes eazo-skel-shimmer {\n from { background-position: 200% 0; }\n to { background-position: -200% 0; }\n}\n\n/* Monolith-tuned shimmer \u2014 sweeps a brighter band over the dark navy\n * gradient. Used while public app info is still loading, and as the\n * placeholder behind an <img> until it decodes. */\n.eazo-monolith-skel {\n position: absolute;\n inset: 0;\n background: linear-gradient(90deg,\n rgba(255,255,255,0.00) 0%,\n rgba(255,255,255,0.18) 50%,\n rgba(255,255,255,0.00) 100%);\n background-size: 200% 100%;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n pointer-events: none;\n}\n.eazo-monolith-img {\n width: 100%; height: 100%;\n object-fit: cover; display: block;\n opacity: 0;\n transition: opacity 220ms ease-out;\n}\n.eazo-monolith-img.is-loaded { opacity: 1; }\n\n/* ============ QR + CTA ROW ============ */\n.eazo-cta-row {\n width: 100%; display: flex; gap: 12px; align-items: stretch; margin-top: 6px;\n}\n.eazo-qr-tile {\n padding: 8px; border-radius: 10px;\n background: #fff; border: 1px solid var(--eazo-hair);\n display: grid; place-items: center;\n}\n.eazo-cta-body {\n flex: 1; min-width: 0;\n display: flex; flex-direction: column; justify-content: space-between; gap: 8px;\n}\n.eazo-cta-headline {\n font-size: 12px; font-weight: 600;\n}\n.eazo-cta-fine {\n font-size: 10px; color: var(--eazo-ink-faint); margin-top: 4px;\n font-family: var(--eazo-mono); letter-spacing: 0.04em; line-height: 1.5;\n}\n.eazo-cta-primary {\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n height: 40px; border-radius: 10px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-size: 13px; font-weight: 600; border: 0; cursor: pointer;\n text-decoration: none;\n box-shadow: 0 14px 26px var(--eazo-glow);\n transition: filter 160ms ease;\n}\n.eazo-cta-primary:hover { filter: brightness(1.06); }\n\n/* ============ BOTTOM BANNER ============\n *\n * Per V5 / M5 design: two prominent stats on the left (heart + chat,\n * each rendered as a tinted icon-tile with a stacked value-over-label\n * column) separated by a thin hair-divider, and a coral \"Remix\" pill\n * on the right that reuses the top-banner CTA handoff. A small\n * \"eazo.ai \u2197\" mark sits to the left of the pill on desktop only \u2014\n * on phone widths (\u2264480px) it drops out so the Remix pill keeps its\n * thumb-zone weight.\n */\n.eazo-bottom-root {\n /* Flex child of .eazo-handoff-root \u2014 naturally pinned to the bottom of\n * the viewport-filling container. No position:fixed needed. */\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: space-between;\n gap: 16px;\n height: 72px;\n padding: 0 22px 0 26px;\n background: #fff;\n border-top: 1px solid var(--eazo-hair);\n pointer-events: auto;\n animation: eazo-handoff-slide-up 240ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n.eazo-bottom-stats {\n display: inline-flex; align-items: center; gap: 22px;\n min-width: 0; color: var(--eazo-ink);\n}\n.eazo-bottom-stat {\n display: inline-flex; align-items: center; gap: 9px;\n font-family: var(--eazo-sans);\n flex-shrink: 0;\n}\n/* Tinted square tile that frames each stat icon \u2014 coral-on-cream for\n * filled glyphs (heart), neutral-on-cream for line glyphs (chat). */\n.eazo-bottom-stat-icon {\n display: inline-flex; align-items: center; justify-content: center;\n width: 30px; height: 30px; border-radius: 8px;\n background: rgba(212,97,74,0.10);\n color: var(--eazo-coral);\n flex-shrink: 0;\n}\n.eazo-bottom-stat-icon.is-line {\n background: rgba(17,19,15,0.05);\n color: var(--eazo-ink);\n}\n.eazo-bottom-stat-text {\n display: inline-flex; flex-direction: column; line-height: 1.05;\n}\n.eazo-bottom-stat-value {\n font-family: var(--eazo-sans);\n font-size: 16px; font-weight: 600; letter-spacing: -0.01em;\n}\n.eazo-bottom-stat-label {\n font-family: var(--eazo-sans);\n font-size: 11px; font-weight: 500;\n color: var(--eazo-ink-faint);\n margin-top: 1px;\n}\n.eazo-bottom-stat-divider {\n width: 1px; height: 28px;\n background: var(--eazo-hair);\n flex-shrink: 0;\n}\n.eazo-bottom-skel {\n display: inline-block; vertical-align: middle;\n width: 32px; height: 18px; border-radius: 4px;\n background: linear-gradient(90deg,\n rgba(17,19,15,0.05) 0%,\n rgba(17,19,15,0.12) 50%,\n rgba(17,19,15,0.05) 100%);\n background-size: 200% 100%;\n animation: eazo-skel-shimmer 1.4s linear infinite;\n}\n\n.eazo-bottom-actions {\n display: inline-flex; align-items: center; gap: 14px;\n flex-shrink: 0;\n}\n.eazo-bottom-site {\n display: inline-flex; align-items: center; gap: 4px;\n color: var(--eazo-ink-soft);\n text-decoration: none;\n font-family: var(--eazo-sans); font-size: 12px; font-weight: 500;\n white-space: nowrap;\n transition: color 140ms ease;\n}\n.eazo-bottom-site:hover { color: var(--eazo-ink); }\n.eazo-bottom-site b { color: var(--eazo-ink); font-weight: 600; }\n\n/* Primary CTA on the bottom banner. Renders as <a> so it picks up the\n * same iOS-timeout fallback handler as the top-banner CTA via the\n * shared bindCtaClick \u2014 keeps the Remix tap on the same install /\n * deeplink path as the rest of the handoff UX. */\n.eazo-bottom-remix {\n display: inline-flex; align-items: center; justify-content: center; gap: 9px;\n height: 44px; padding: 0 20px 0 18px;\n border: 0; cursor: pointer;\n border-radius: 999px;\n background: var(--eazo-coral-gradient); color: #fff;\n font-family: var(--eazo-sans);\n font-size: 14px; font-weight: 600; letter-spacing: -0.005em;\n white-space: nowrap;\n box-shadow:\n 0 12px 24px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.18);\n text-decoration: none;\n transition: transform 140ms ease, box-shadow 140ms ease;\n}\n.eazo-bottom-remix:hover {\n transform: translateY(-1px);\n box-shadow:\n 0 14px 28px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.22);\n}\n.eazo-bottom-remix:active { transform: translateY(0); }\n\n/* ============ MOBILE TWEAKS (\u2264480px) ============ */\n@media (max-width: 480px) {\n .eazo-banner-root {\n height: 56px;\n padding: 0 10px 0 14px;\n gap: 10px;\n }\n .eazo-banner-copy {\n font-size: 12px; line-height: 1.25; white-space: normal;\n display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;\n }\n .eazo-banner-cta { height: 28px; padding: 0 10px; font-size: 11px; border-radius: 8px; }\n /* Hover doesn't resolve reliably on touch \u2014 the CTA still works as a\n * plain link, no popover needed. Belt-and-suspenders to the JS check\n * (the popover render is also gated on the 'open' state, which never\n * flips without mouseenter / focus). */\n .eazo-banner-cta-popover { display: none; }\n\n .eazo-modal {\n width: calc(100vw - 32px);\n padding: 24px 20px 20px;\n border-radius: 20px;\n gap: 14px;\n }\n .eazo-orbit { width: 220px; height: 220px; }\n .eazo-monolith {\n width: 76px; height: 76px; border-radius: 18px;\n font-size: 32px;\n }\n .eazo-orbit-node {\n width: 28px; height: 28px; border-radius: 8px;\n margin: -14px 0 0 -14px;\n }\n .eazo-modal-title { font-size: 26px; }\n .eazo-modal-sub { font-size: 12px; }\n\n /* Mobile: the user is already on a phone \u2014 no point showing them a QR\n * to scan with their phone, and the \"Scan to open\" headline + fine\n * print only made sense paired with the QR. Collapse to the primary\n * CTA alone. */\n .eazo-qr-tile { display: none; }\n .eazo-cta-row { flex-direction: column; gap: 10px; }\n .eazo-cta-primary { height: 44px; width: 100%; font-size: 14px; border-radius: 12px; }\n .eazo-cta-headline { display: none; }\n .eazo-cta-fine { display: none; }\n\n .eazo-bottom-root {\n height: 78px;\n padding: 0 16px 0 20px;\n gap: 12px;\n }\n /* Tighter cells per the M5 (390px) spec: smaller icon tile, smaller\n * value, smaller divider. Labels stay \u2014 they're a key part of the\n * visual rhythm in M5. */\n .eazo-bottom-stats { gap: 12px; }\n .eazo-bottom-stat { gap: 7px; }\n .eazo-bottom-stat-icon { width: 26px; height: 26px; border-radius: 7px; }\n .eazo-bottom-stat-value { font-size: 14px; }\n .eazo-bottom-stat-label { font-size: 10px; }\n .eazo-bottom-stat-divider { height: 24px; }\n .eazo-bottom-skel { width: 28px; height: 15px; }\n /* M5 drops the secondary eazo.ai mark on phone widths so the Remix\n * pill keeps unambiguous thumb-zone weight. */\n .eazo-bottom-site { display: none; }\n .eazo-bottom-remix {\n height: 44px; padding: 0 18px 0 16px;\n gap: 8px; font-size: 13px;\n box-shadow:\n 0 10px 22px var(--eazo-glow),\n inset 0 1px 0 rgba(255,255,255,0.18);\n }\n /* Drop the trailing \"this app\" wording on phone widths \u2014 the icon\n * plus the verb is already unambiguous and the pill stays compact. */\n .eazo-bottom-remix-suffix { display: none; }\n}\n";
|
|
6
6
|
export declare function ensureBannerStylesInjected(): void;
|
|
7
7
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAKvC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAiBvC,eAAO,MAAM,aAAa,4m4BAisBzB,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,IAAI,CA0BjD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BANNER_UI_CSS = exports.BOTTOM_HEIGHT_MOBILE = exports.BOTTOM_HEIGHT_DESKTOP = exports.BANNER_HEIGHT_MOBILE = exports.BANNER_HEIGHT_DESKTOP = void 0;
|
|
4
4
|
exports.ensureBannerStylesInjected = ensureBannerStylesInjected;
|
|
5
|
+
const env_1 = require("../env");
|
|
5
6
|
const STYLE_ID = "eazo-sdk-banner-ui";
|
|
6
7
|
exports.BANNER_HEIGHT_DESKTOP = 52;
|
|
7
8
|
exports.BANNER_HEIGHT_MOBILE = 56;
|
|
@@ -26,6 +27,127 @@ const TOKENS = `
|
|
|
26
27
|
--eazo-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
27
28
|
`;
|
|
28
29
|
exports.BANNER_UI_CSS = `
|
|
30
|
+
/* ════════════════════════════════════════════════════════════════════════
|
|
31
|
+
* Host content safe area — two-layer wrapper
|
|
32
|
+
*
|
|
33
|
+
* Two nested elements wrap the host's children at the EazoProvider level:
|
|
34
|
+
*
|
|
35
|
+
* <div class="eazo-app-area"> ← outer: containing block
|
|
36
|
+
* <div class="eazo-app-area-scroller"> ← inner: scroll container
|
|
37
|
+
* {host children}
|
|
38
|
+
* </div>
|
|
39
|
+
* </div>
|
|
40
|
+
*
|
|
41
|
+
* Both elements are ALWAYS rendered (SSR + CSR markup is static, no
|
|
42
|
+
* hydration mismatch). The effective styles activate only when the host
|
|
43
|
+
* is a plain web browser AND the handoff banners are mounted — gated on
|
|
44
|
+
* the \`eazo-host-web\` class on \`<html>\`, set/cleared by the banner-ui
|
|
45
|
+
* effect. In a mobile WebView or iframe both elements are inert \`<div>\`s.
|
|
46
|
+
*
|
|
47
|
+
* Why two layers (this is the whole point):
|
|
48
|
+
*
|
|
49
|
+
* A single-element wrapper that combines \`transform: translateZ(0)\` AND
|
|
50
|
+
* \`overflow: auto\` LOOKS like it should keep host's \`position: fixed;
|
|
51
|
+
* bottom: 0\` elements pinned above the SDK banner — the transform
|
|
52
|
+
* reparents the containing block to the wrapper, after all. But under
|
|
53
|
+
* that combination, browsers (per the CSS positioning + scrolling spec
|
|
54
|
+
* interaction) demote the fixed descendant to absolute-like behavior
|
|
55
|
+
* AND translate it by the wrapper's scroll offset. The "sticky CTA"
|
|
56
|
+
* ends up scrolling with content rather than staying pinned.
|
|
57
|
+
*
|
|
58
|
+
* Splitting them fixes this:
|
|
59
|
+
* - \`.eazo-app-area\` (outer): \`position: fixed\` between the banners
|
|
60
|
+
* + \`transform: translateZ(0)\`. It establishes the containing block
|
|
61
|
+
* but is NOT a scroll container — its own padding box never moves.
|
|
62
|
+
* - \`.eazo-app-area-scroller\` (inner): \`position: absolute; inset: 0\`
|
|
63
|
+
* to fill the outer + \`overflow-y: auto\` to scroll host content. It
|
|
64
|
+
* is NOT a containing block for fixed descendants (no transform,
|
|
65
|
+
* static position contexts don't qualify), so host's
|
|
66
|
+
* \`position: fixed; bottom: 0\` still resolves all the way up to the
|
|
67
|
+
* outer. The bar is painted in the outer's coordinate space, OUTSIDE
|
|
68
|
+
* the inner's scroll layer, so scrolling host content does NOT
|
|
69
|
+
* translate it. Result: bar stays visually pinned to the outer's
|
|
70
|
+
* bottom edge — which sits exactly above the SDK banner.
|
|
71
|
+
*
|
|
72
|
+
* Why scope the styles to \`html.eazo-host-web\`:
|
|
73
|
+
* The wrapper only exists to keep host content clear of the SDK's
|
|
74
|
+
* handoff banners. In a mobile WebView or iframe the banners don't
|
|
75
|
+
* render — the wrapper has no job, and activating the fixed-position
|
|
76
|
+
* + overflow + containing-block semantics there would silently break
|
|
77
|
+
* \`window.scrollY\`, \`window\` scroll listeners, body-overflow scroll
|
|
78
|
+
* locks, and host modals at \`position: fixed; inset: 0\` for zero
|
|
79
|
+
* product benefit. So both layers stay inert outside plain web.
|
|
80
|
+
*
|
|
81
|
+
* Known trade-offs on web (called out in CHANGELOG):
|
|
82
|
+
* - Scrolling happens inside \`.eazo-app-area-scroller\`, not on
|
|
83
|
+
* \`window\`. Code reading \`window.scrollY\` or attaching \`scroll\`
|
|
84
|
+
* listeners to \`window\` must migrate to the scroller element.
|
|
85
|
+
* - \`document.body { overflow: hidden }\` no longer locks scroll;
|
|
86
|
+
* body-scroll-lock libraries must target the scroller.
|
|
87
|
+
* - Host modals at \`position: fixed; inset: 0\` are contained to
|
|
88
|
+
* the outer wrapper rather than covering the full viewport —
|
|
89
|
+
* visually equivalent (the wrapper IS the safe-area box) but
|
|
90
|
+
* \`inset: 0\` no longer covers the banner area.
|
|
91
|
+
*/
|
|
92
|
+
/* Default state for the two wrapper layers: \`display: contents\` makes
|
|
93
|
+
* the wrapper boxes disappear from layout entirely. Their children
|
|
94
|
+
* participate in the GRANDPARENT's layout context (i.e. directly in the
|
|
95
|
+
* \`<body>\`'s flex column) as if the wrapper elements didn't exist.
|
|
96
|
+
* With no generated box there's also no containing block for fixed
|
|
97
|
+
* descendants — host's \`position: fixed; bottom: 0\` resolves all the
|
|
98
|
+
* way up to the viewport, exactly as it would without the SDK present.
|
|
99
|
+
*
|
|
100
|
+
* This is the ONLY state the wrapper takes in mobile WebView / iframe
|
|
101
|
+
* hosts: the banners aren't mounted, the wrapper has no job, so it
|
|
102
|
+
* collapses to a layout no-op. \`html.eazo-host-web\` (added by banner-ui
|
|
103
|
+
* on mount, only in plain web) overrides BOTH layers below to their
|
|
104
|
+
* full active styles. */
|
|
105
|
+
.eazo-app-area,
|
|
106
|
+
.eazo-app-area-scroller {
|
|
107
|
+
display: contents;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
html.eazo-host-web .eazo-app-area {
|
|
111
|
+
display: block;
|
|
112
|
+
position: fixed;
|
|
113
|
+
inset: var(--eazo-handoff-top, 0px) 0 var(--eazo-handoff-bottom, 0px) 0;
|
|
114
|
+
/* Containing block for fixed-positioned descendants — this is what
|
|
115
|
+
* lets host's \`position: fixed; bottom: 0\` anchor to the wrapper
|
|
116
|
+
* (between the banners) instead of to the viewport (under our banner).
|
|
117
|
+
*
|
|
118
|
+
* IMPORTANT: do not move \`overflow: auto\` onto this element. The
|
|
119
|
+
* combination of transform + overflow makes fixed descendants scroll
|
|
120
|
+
* with content. The scroll lives on \`.eazo-app-area-scroller\` below. */
|
|
121
|
+
transform: translateZ(0);
|
|
122
|
+
}
|
|
123
|
+
html.eazo-host-web .eazo-app-area-scroller {
|
|
124
|
+
display: block;
|
|
125
|
+
/* Fill the outer wrapper exactly. \`position: absolute\` is the
|
|
126
|
+
* cheapest way to do this — \`width/height: 100%\` plus margin/padding
|
|
127
|
+
* inheritance can leak; \`inset: 0\` against the outer's padding box
|
|
128
|
+
* is unambiguous. */
|
|
129
|
+
position: absolute;
|
|
130
|
+
inset: 0;
|
|
131
|
+
/* This is the actual scroll container for host content. Crucially,
|
|
132
|
+
* it does NOT have \`transform\` — so it is NOT a containing block
|
|
133
|
+
* for host's \`position: fixed\` descendants. Those still resolve up
|
|
134
|
+
* to \`.eazo-app-area\` and stay pinned to its edges, ignoring scroll. */
|
|
135
|
+
overflow-x: hidden;
|
|
136
|
+
overflow-y: auto;
|
|
137
|
+
/* Disable rubber-band overscroll. The wrapper sits between two fixed
|
|
138
|
+
* banners on its own compositor layer (via the outer's translateZ);
|
|
139
|
+
* during native overscroll bounce the scroller's content briefly
|
|
140
|
+
* translates beyond its padding box and the compositor briefly
|
|
141
|
+
* reveals adjacent layers — the cream top banner above, the white
|
|
142
|
+
* bottom banner below, the body's UA-default background everywhere
|
|
143
|
+
* else — as a flash of "other colors" at the top/bottom edges.
|
|
144
|
+
* \`overscroll-behavior: none\` keeps the scroll fully contained and
|
|
145
|
+
* eliminates that visual seam, at the cost of the native bounce
|
|
146
|
+
* gesture inside the wrapper (acceptable trade for the SDK's promo
|
|
147
|
+
* surface, which is already constrained by the banner sandwich). */
|
|
148
|
+
overscroll-behavior: none;
|
|
149
|
+
}
|
|
150
|
+
|
|
29
151
|
/* The whole handoff UI lives inside ONE fixed-positioned container that
|
|
30
152
|
* fills the viewport and flex-columns its three children: top banner +
|
|
31
153
|
* overlay (which holds the modal) + bottom banner. This replaces the
|
|
@@ -613,6 +735,15 @@ exports.BANNER_UI_CSS = `
|
|
|
613
735
|
function ensureBannerStylesInjected() {
|
|
614
736
|
if (typeof document === "undefined")
|
|
615
737
|
return;
|
|
738
|
+
// Banner CSS only matters in plain-web hosts where the handoff banners
|
|
739
|
+
// actually render. In a mobile WebView or embedded iframe (where the
|
|
740
|
+
// banner-ui mount-gate bails before any rendering happens), this CSS
|
|
741
|
+
// would just sit inert in `document.head` — every selector either
|
|
742
|
+
// \`.eazo-*\` (matches nothing host-side) or \`html.eazo-host-web ...\`
|
|
743
|
+
// (banner-ui never adds that class outside web). Skip the inject so
|
|
744
|
+
// the SDK leaves no banner-related styles in mobile/iframe documents.
|
|
745
|
+
if ((0, env_1.getHost)() !== "web")
|
|
746
|
+
return;
|
|
616
747
|
// Always overwrite the textContent rather than early-return on
|
|
617
748
|
// existing tag presence. Next.js Fast Refresh re-imports this module
|
|
618
749
|
// with updated `BANNER_UI_CSS`, but the previously-injected <style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":";;;AA+tBA,gEA0BC;AAzvBD,gCAAiC;AAEjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAEzB,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAC3B,QAAA,oBAAoB,GAAG,EAAE,CAAC;AACvC;;;oDAGoD;AACvC,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAC3B,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAEvC,MAAM,MAAM,GAAG;;;;;;;;;;;;;CAad,CAAC;AAEW,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0IzB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDE,6BAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAuVrB,6BAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuGnB,4BAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4CpB,4BAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjC,CAAC;AAEF,SAAgB,0BAA0B;IACxC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,kEAAkE;IAClE,wEAAwE;IACxE,oEAAoE;IACpE,sEAAsE;IACtE,IAAI,IAAA,aAAO,GAAE,KAAK,KAAK;QAAE,OAAO;IAChC,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAA4B,CAAC;IAC9E,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,WAAW,KAAK,qBAAa;YAAE,QAAQ,CAAC,WAAW,GAAG,qBAAa,CAAC;QACjF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,KAAK,CAAC,WAAW,GAAG,qBAAa,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAWnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACvC,GAAG,KAAK,CAAC,YAAY,CAoGrB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAkB/D"}
|
package/dist/react.js
CHANGED
|
@@ -39,10 +39,12 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
39
39
|
const React = __importStar(require("react"));
|
|
40
40
|
const banner_ui_1 = require("./internal/banner-ui");
|
|
41
41
|
const initial_info_1 = require("./internal/banner-ui/initial-info");
|
|
42
|
+
const styles_1 = require("./internal/banner-ui/styles");
|
|
42
43
|
const bootstrap_1 = require("./internal/bootstrap");
|
|
43
44
|
const auth_1 = require("./internal/capabilities/auth");
|
|
44
45
|
const device_1 = require("./internal/capabilities/device");
|
|
45
46
|
const config_1 = require("./internal/config");
|
|
47
|
+
const env_1 = require("./internal/env");
|
|
46
48
|
const login_ui_1 = require("./internal/login-ui");
|
|
47
49
|
const share_ui_1 = require("./internal/share-ui");
|
|
48
50
|
const store_1 = require("./internal/store");
|
|
@@ -77,13 +79,37 @@ function EazoProvider(props) {
|
|
|
77
79
|
// "clear on Provider unmount with apiBase removed" semantics simple.
|
|
78
80
|
(0, config_1.setHostApiBase)(props.apiBase ?? null);
|
|
79
81
|
(0, initial_info_1.setInitialAppInfo)(props.initialAppInfo ?? null);
|
|
82
|
+
// Inject the banner-ui stylesheet eagerly (before EazoBrandBanner mounts)
|
|
83
|
+
// so the `.eazo-app-area` wrapper has its `display: contents`/active
|
|
84
|
+
// styles ready on first paint. Banner-ui re-injects the same sheet on
|
|
85
|
+
// its own mount; ensureBannerStylesInjected is idempotent via STYLE_ID.
|
|
86
|
+
// The function self-gates on `getHost() === "web"` internally, so in
|
|
87
|
+
// mobile WebView / iframe hosts this is a no-op — no banner CSS ever
|
|
88
|
+
// lands in `document.head`.
|
|
89
|
+
if (typeof document !== "undefined") {
|
|
90
|
+
(0, styles_1.ensureBannerStylesInjected)();
|
|
91
|
+
}
|
|
92
|
+
// Detect the runtime host so banner-related React components don't
|
|
93
|
+
// even mount in mobile WebView / iframe. `null` until the post-mount
|
|
94
|
+
// effect resolves it; treat null as "render the banner UI" so SSR
|
|
95
|
+
// and the first client render emit the same JSX (no hydration mismatch).
|
|
96
|
+
// After the effect resolves on the client:
|
|
97
|
+
// - web: `host === "web"` → banner UI stays mounted
|
|
98
|
+
// - other: `host === "eazoMobile" | "embeddedIframe"` → unmounts.
|
|
99
|
+
//
|
|
100
|
+
// Banner UI components are SIBLINGS of the .eazo-app-area wrapper, so
|
|
101
|
+
// unmounting them does NOT affect host children — children stay at the
|
|
102
|
+
// same JSX position throughout, no remount.
|
|
103
|
+
const [host, setHost] = React.useState(null);
|
|
80
104
|
React.useEffect(() => {
|
|
81
105
|
// Starting the bridge is idempotent; capability access may have already done so.
|
|
82
106
|
(0, bootstrap_1.getBridge)();
|
|
83
107
|
void (0, auth_1._bootstrapAuth)();
|
|
84
108
|
void (0, device_1._bootstrapDevice)();
|
|
109
|
+
setHost((0, env_1.getHost)());
|
|
85
110
|
}, []);
|
|
86
|
-
|
|
111
|
+
const showBannerUI = host === null || host === "web";
|
|
112
|
+
return ((0, jsx_runtime_1.jsxs)(MountedContext.Provider, { value: true, children: [(0, jsx_runtime_1.jsx)("div", { className: "eazo-app-area", children: (0, jsx_runtime_1.jsx)("div", { className: "eazo-app-area-scroller", children: props.children }) }), showBannerUI && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(banner_ui_1.EazoBrandBanner, {}), (0, jsx_runtime_1.jsx)(login_ui_1.LoginUI, {}), (0, jsx_runtime_1.jsx)(share_ui_1.ShareDownloadModal, {})] }))] }));
|
|
87
113
|
}
|
|
88
114
|
/**
|
|
89
115
|
* Subscribe to a slice of state. Re-renders only when the selector's
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED