@eazo/sdk 0.10.0 → 0.13.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.
Files changed (72) hide show
  1. package/PROTOCOL.md +8 -1
  2. package/README.md +78 -7
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +3 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/internal/auth-primitive/EazoAuthClient.js +1 -1
  8. package/dist/internal/auth-primitive/EazoAuthClient.js.map +1 -1
  9. package/dist/internal/banner-ui/icons.d.ts +12 -0
  10. package/dist/internal/banner-ui/icons.d.ts.map +1 -0
  11. package/dist/internal/banner-ui/icons.js +12 -0
  12. package/dist/internal/banner-ui/icons.js.map +1 -0
  13. package/dist/internal/banner-ui/index.d.ts +8 -0
  14. package/dist/internal/banner-ui/index.d.ts.map +1 -0
  15. package/dist/internal/banner-ui/index.js +111 -0
  16. package/dist/internal/banner-ui/index.js.map +1 -0
  17. package/dist/internal/banner-ui/store-links.d.ts +5 -0
  18. package/dist/internal/banner-ui/store-links.d.ts.map +1 -0
  19. package/dist/internal/banner-ui/store-links.js +28 -0
  20. package/dist/internal/banner-ui/store-links.js.map +1 -0
  21. package/dist/internal/banner-ui/styles.d.ts +5 -0
  22. package/dist/internal/banner-ui/styles.d.ts.map +1 -0
  23. package/dist/internal/banner-ui/styles.js +122 -0
  24. package/dist/internal/banner-ui/styles.js.map +1 -0
  25. package/dist/internal/bridge/protocol.d.ts +7 -0
  26. package/dist/internal/bridge/protocol.d.ts.map +1 -1
  27. package/dist/internal/bridge/protocol.js +6 -1
  28. package/dist/internal/bridge/protocol.js.map +1 -1
  29. package/dist/internal/capabilities/ai.js +1 -1
  30. package/dist/internal/capabilities/ai.js.map +1 -1
  31. package/dist/internal/capabilities/auth.d.ts +10 -5
  32. package/dist/internal/capabilities/auth.d.ts.map +1 -1
  33. package/dist/internal/capabilities/auth.js +29 -13
  34. package/dist/internal/capabilities/auth.js.map +1 -1
  35. package/dist/internal/capabilities/device.d.ts +0 -1
  36. package/dist/internal/capabilities/device.d.ts.map +1 -1
  37. package/dist/internal/capabilities/device.js +2 -6
  38. package/dist/internal/capabilities/device.js.map +1 -1
  39. package/dist/internal/capabilities/memory.d.ts +10 -15
  40. package/dist/internal/capabilities/memory.d.ts.map +1 -1
  41. package/dist/internal/capabilities/memory.js +30 -21
  42. package/dist/internal/capabilities/memory.js.map +1 -1
  43. package/dist/internal/capabilities/notifications.d.ts +41 -0
  44. package/dist/internal/capabilities/notifications.d.ts.map +1 -0
  45. package/dist/internal/capabilities/notifications.js +61 -0
  46. package/dist/internal/capabilities/notifications.js.map +1 -0
  47. package/dist/internal/capabilities/share.d.ts +4 -2
  48. package/dist/internal/capabilities/share.d.ts.map +1 -1
  49. package/dist/internal/capabilities/share.js +13 -9
  50. package/dist/internal/capabilities/share.js.map +1 -1
  51. package/dist/internal/capabilities/storage.d.ts +7 -11
  52. package/dist/internal/capabilities/storage.d.ts.map +1 -1
  53. package/dist/internal/capabilities/storage.js +5 -13
  54. package/dist/internal/capabilities/storage.js.map +1 -1
  55. package/dist/internal/config.d.ts +9 -12
  56. package/dist/internal/config.d.ts.map +1 -1
  57. package/dist/internal/config.js +53 -22
  58. package/dist/internal/config.js.map +1 -1
  59. package/dist/internal/store.d.ts.map +1 -1
  60. package/dist/internal/store.js +0 -1
  61. package/dist/internal/store.js.map +1 -1
  62. package/dist/react.d.ts +9 -5
  63. package/dist/react.d.ts.map +1 -1
  64. package/dist/react.js +14 -6
  65. package/dist/react.js.map +1 -1
  66. package/dist/server.d.ts +27 -0
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +146 -0
  69. package/dist/server.js.map +1 -1
  70. package/dist/types.d.ts +0 -1
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +1 -1
package/PROTOCOL.md CHANGED
@@ -29,6 +29,7 @@ interface Hello {
29
29
  session: { authenticated: boolean; user: User | null; token: string | null };
30
30
  device: DeviceContext;
31
31
  capabilities: string[]; // e.g. ["auth.*", "device.getContext", "storage.get"]
32
+ apiBase?: string; // Eazo platform URL the host is wired to; SDK-internal
32
33
  }
33
34
 
34
35
  interface Request { ch: "eazo-sdk"; v: 1; t: "req"; id: string; fn: string; args?: unknown; }
@@ -94,8 +95,13 @@ The app checks this list before sending a request; unsupported methods fail imme
94
95
  | `auth.getToken` | — | `{ token: string \| null }` | Current session token |
95
96
  | `auth.getSession` | — | `{ session: SessionToken \| null }` | Raw encrypted session (`x-eazo-session` payload) |
96
97
  | `auth.requestLogin` | `{ preferredProvider?: string }` (optional) | `{ started: boolean }` | Host should display its native login UI and return promptly (don't block on user). The SDK then waits for `auth.changed` (success) or `auth.loginCancelled` (dismiss). If the host can't show native UI, respond `NOT_SUPPORTED` — SDK falls back to the web login UI inside the WebView. |
98
+ | `auth.requestLogout` | — | — (any data is ignored) | App requests a sign-out. Identity is host-managed: the host decides what (if anything) to do — surface a "not supported" message, run its own logout flow, etc. — and resolves the RPC. The SDK does NOT clear local state on the mobile path; if a real logout occurs, the host pushes `auth.changed` with `authenticated: false`. Respond `NOT_SUPPORTED` only if the host can't display anything in response — the SDK then falls back to web-style local clear. |
97
99
  | `device.getContext` | — | `DeviceContext` | Usually unused — hello already contains this |
98
100
  | `share.compose` | `{ text?: string; images?: string[]; sourceAppId?: string }` | `{ accepted: boolean }` | App hands raw share materials (text + up to 4 images, each `https://...` or `data:image/...;base64,...`) to the host. Host opens its compose surface, AI-drafts a post from the inputs, and lets the user edit and publish. Respond promptly after navigation begins — the SDK times out at 10 s. If the host can't accept the share, respond `NOT_SUPPORTED`; the SDK falls back to a "Continue in the Eazo app" download CTA in the web. Reject with `DENIED` when the host requires a logged-in user and none is signed in. |
101
+ | `memory.reportAction` | `MemoryActionParams` (see `memory.ts`) — same payload posted to `/api/open/gum/action` | — (any data is ignored) | Fire-and-forget side-channel: when the SDK reports a user action, it forwards the same payload to the mobile host so the host can react locally (analytics, on-device memory, UI hints). The HTTP POST to Gum still happens in parallel and is the source of truth. Hosts that don't care about side-channel actions should respond `NOT_SUPPORTED` — the SDK swallows it silently and the HTTP path is unaffected. Hosts MUST NOT block on this request; respond promptly. Sent only when `getHost() === "eazoMobile"`. |
102
+ | `notifications.subscribe` | — | `{ subscribed: boolean }` | Opt the current user into push notifications from the embedded app. Host flips the per-(user, app) subscription bit and echoes the resulting state. Idempotent — re-subscribing returns `{ subscribed: true }`. The host is responsible for whether the user has granted system-level push permission (the SDK does not prompt). Respond `NOT_SUPPORTED` when the host cannot maintain per-app subscriptions; the SDK then resolves `{ subscribed: false }` without throwing. |
103
+ | `notifications.unsubscribe` | — | `{ subscribed: boolean }` | Opt the current user out. Idempotent. Same fall-back semantics as `subscribe`. |
104
+ | `notifications.isSubscribed` | — | `{ subscribed: boolean }` | Read the current subscription state without side effects. Same fall-back semantics — `NOT_SUPPORTED` resolves `{ subscribed: false }`. |
99
105
 
100
106
  ### Events
101
107
 
@@ -121,8 +127,9 @@ window.addEventListener("message", (e) => {
121
127
  send({
122
128
  ch: "eazo-sdk", v: 1, t: "hello",
123
129
  session: { authenticated: true, user, token },
124
- device: { platform: "mobile", locale: "zh-CN", backendUrl: "https://api.eazo.ai" },
130
+ device: { platform: "mobile", locale: "zh-CN" },
125
131
  capabilities: ["auth.*"],
132
+ apiBase: "https://api.eazo.ai",
126
133
  });
127
134
  }
128
135
 
package/README.md CHANGED
@@ -59,10 +59,9 @@ await auth.sendEmailCode(email)
59
59
  await auth.logout()
60
60
 
61
61
  auth.fetchSocialConnections() // SocialConnection[]
62
- auth.configure({ appId: "..." }) // set Eazo app id
63
62
  ```
64
63
 
65
- By default the SDK reads `NEXT_PUBLIC_EAZO_APP_ID` from the environment. Call `auth.configure({ appId })` if you need to set it explicitly.
64
+ The SDK reads its app id from the environment (`NEXT_PUBLIC_EAZO_APP_ID`, `EAZO_APP_ID`, `EXPO_PUBLIC_EAZO_APP_ID`). If you need to inject it programmatically — for example in a Next.js layout that resolves the value at SSR — pass it to `<EazoProvider appId={...}>`.
66
65
 
67
66
  #### `auth.login()` — unified login flow
68
67
 
@@ -90,7 +89,6 @@ import { device } from "@eazo/sdk";
90
89
 
91
90
  device.platform // 'web' | 'mobile'
92
91
  device.locale // 'zh-CN' | ...
93
- device.backendUrl // '' when running web-only
94
92
  device.getContext() // full DeviceContext
95
93
  ```
96
94
 
@@ -112,6 +110,23 @@ await share.compose({
112
110
 
113
111
  `share.compose` throws `INVALID_ARGS` synchronously if neither `text` nor `images` is provided, or if more than 4 images are passed.
114
112
 
113
+ ### `notifications`
114
+
115
+ Per-app push-notification subscription, mediated by the host. Calls flow through the postMessage bridge to the mobile shell which writes the per-(user, app) bit; the embedded app never talks to the platform directly here.
116
+
117
+ ```ts
118
+ import { notifications } from "@eazo/sdk";
119
+
120
+ const { subscribed } = await notifications.isSubscribed();
121
+ if (!subscribed) await notifications.subscribe(); // opt the user in
122
+ // later…
123
+ await notifications.unsubscribe(); // opt the user out
124
+ ```
125
+
126
+ In a plain browser (no host) every method resolves `{ subscribed: false }` — no throws — so apps can render the right UI during local web development without special-casing.
127
+
128
+ **Publishing** is a separate, server-side surface — see [`@eazo/sdk/server` notifications](#server-notifications-publish).
129
+
115
130
  ### React integration
116
131
 
117
132
  ```ts
@@ -139,6 +154,63 @@ export function GET(req: NextRequest) {
139
154
 
140
155
  Requires `EAZO_PRIVATE_KEY` in the server environment.
141
156
 
157
+ <a id="server-notifications-publish"></a>
158
+ #### `notifications.publish`
159
+
160
+ Send a system push to every user subscribed to your app. Authenticates by signing an ES256K JWT with `EAZO_PRIVATE_KEY` — there is no user JWT in scope, so this is the right path for cron-driven digests, event-driven alerts, or any backend-originated notification.
161
+
162
+ ```ts
163
+ import { notifications } from "@eazo/sdk/server";
164
+
165
+ export async function POST() {
166
+ const { delivered, publishId } = await notifications.publish({
167
+ title: "Slow-cooker timer",
168
+ body: "Your stew is ready.",
169
+ data: { recipeId: "stew-42" }, // optional, surfaces in the device tap handler
170
+ });
171
+ return Response.json({ delivered, publishId });
172
+ }
173
+ ```
174
+
175
+ The appId is a deployment-time constant, not a per-call argument. **Convention: set `EAZO_APP_ID`** (one name, no framework prefix). The recommended way to thread it into the SDK on the client side is through the `<EazoProvider appId={...}>` prop, populated from a Server Component:
176
+
177
+ ```tsx
178
+ // app/layout.tsx (Server Component — Next.js App Router)
179
+ import { EazoProvider } from "@eazo/sdk/react";
180
+
181
+ export default function RootLayout({ children }) {
182
+ return (
183
+ <html>
184
+ <body>
185
+ <EazoProvider appId={process.env.EAZO_APP_ID}>
186
+ {children}
187
+ </EazoProvider>
188
+ </body>
189
+ </html>
190
+ );
191
+ }
192
+ ```
193
+
194
+ ```sh
195
+ # .env
196
+ EAZO_APP_ID=iVW3asOFoOvYr9sl
197
+ ```
198
+
199
+ That's it — one canonical name, no `NEXT_PUBLIC_` alias required.
200
+
201
+ For frameworks without a Server Component layer (Vite, plain Webpack apps, etc.) call `setAppId(...)` at app startup with whatever value you've sourced (env, runtime config endpoint, etc.):
202
+
203
+ ```ts
204
+ import { setAppId } from "@eazo/sdk";
205
+ setAppId(import.meta.env.VITE_EAZO_APP_ID);
206
+ ```
207
+
208
+ If neither path is convenient, the SDK also reads any of these env vars as a fallback (priority top-down): `EAZO_APP_ID`, `NEXT_PUBLIC_EAZO_APP_ID`, `EXPO_PUBLIC_EAZO_APP_ID`, `VITE_EAZO_APP_ID`, `PUBLIC_EAZO_APP_ID`, `REACT_APP_EAZO_APP_ID`. The framework prefixes are kept for backward compatibility — new projects should prefer the prop or `setAppId()`.
209
+
210
+ `audience` defaults to `"subscribers"` (v1's only value).
211
+
212
+ Throws `EazoNotificationPublishError` on platform-level errors (`code` 401 = bad JWT, 403 = appId doesn't belong to your key, 413 = >5,000 subscribers, etc.).
213
+
142
214
  ### Testing
143
215
 
144
216
  ```ts
@@ -160,7 +232,6 @@ interface User {
160
232
  interface DeviceContext {
161
233
  platform: "web" | "mobile";
162
234
  locale: string;
163
- backendUrl: string;
164
235
  }
165
236
  ```
166
237
 
@@ -174,6 +245,6 @@ App code never branches on environment — the capability API is the same on bot
174
245
 
175
246
  | Variable | Required | Used by |
176
247
  |---|---|---|
177
- | `NEXT_PUBLIC_EAZO_APP_ID` | web login | `auth.loginWith*` |
178
- | `NEXT_PUBLIC_EAZO_API_URL` | optional | default `backendUrl` when web-only |
179
- | `EAZO_PRIVATE_KEY` | server | `requireAuth` |
248
+ | `EAZO_APP_ID` | yes | server-side; set framework-prefixed alias (`NEXT_PUBLIC_*`, `EXPO_PUBLIC_*` …) too if your bundler needs it for the browser, or pass via `<EazoProvider appId={...}>` |
249
+ | `EAZO_API_BASE` | optional | platform URL fallback when no host injects one (mobile WebView always injects via `hello.apiBase`) |
250
+ | `EAZO_PRIVATE_KEY` | server | `requireAuth`, `notifications.publish` |
package/dist/index.d.ts CHANGED
@@ -4,10 +4,12 @@ export { storage } from "./internal/capabilities/storage";
4
4
  export { ai } from "./internal/capabilities/ai";
5
5
  export { memory } from "./internal/capabilities/memory";
6
6
  export { share } from "./internal/capabilities/share";
7
+ export { notifications } from "./internal/capabilities/notifications";
7
8
  export type { LoginOptions } from "./internal/capabilities/auth";
8
9
  export type { StorageCredentials, UploadResult } from "./internal/capabilities/storage";
9
10
  export type { MemoryActionParams } from "./internal/capabilities/memory";
10
11
  export type { ChatCompletion, ChatCompletionChunk, ChatCompletionCreateParamsNonStreaming, ChatCompletionCreateParamsStreaming, } from "./internal/capabilities/ai";
11
12
  export type { ShareComposeInput, ShareComposeResult, } from "./internal/capabilities/share";
13
+ export type { NotificationsSubscriptionResult } from "./internal/capabilities/notifications";
12
14
  export type { User, DeviceContext, AuthState, EazoState } from "./types";
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEtD,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AAC7F,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.share = exports.memory = exports.ai = exports.storage = exports.device = exports.auth = void 0;
3
+ exports.notifications = exports.share = exports.memory = exports.ai = exports.storage = exports.device = exports.auth = void 0;
4
4
  var auth_1 = require("./internal/capabilities/auth");
5
5
  Object.defineProperty(exports, "auth", { enumerable: true, get: function () { return auth_1.auth; } });
6
6
  var device_1 = require("./internal/capabilities/device");
@@ -13,4 +13,6 @@ var memory_1 = require("./internal/capabilities/memory");
13
13
  Object.defineProperty(exports, "memory", { enumerable: true, get: function () { return memory_1.memory; } });
14
14
  var share_1 = require("./internal/capabilities/share");
15
15
  Object.defineProperty(exports, "share", { enumerable: true, get: function () { return share_1.share; } });
16
+ var notifications_1 = require("./internal/capabilities/notifications");
17
+ Object.defineProperty(exports, "notifications", { enumerable: true, get: function () { return notifications_1.notifications; } });
16
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,4FAAA,IAAI,OAAA;AACb,yDAAwD;AAA/C,gGAAA,MAAM,OAAA;AACf,2DAA0D;AAAjD,kGAAA,OAAO,OAAA;AAChB,iDAAgD;AAAvC,wFAAA,EAAE,OAAA;AACX,yDAAwD;AAA/C,gGAAA,MAAM,OAAA;AACf,uDAAsD;AAA7C,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,4FAAA,IAAI,OAAA;AACb,yDAAwD;AAA/C,gGAAA,MAAM,OAAA;AACf,2DAA0D;AAAjD,kGAAA,OAAO,OAAA;AAChB,iDAAgD;AAAvC,wFAAA,EAAE,OAAA;AACX,yDAAwD;AAA/C,gGAAA,MAAM,OAAA;AACf,uDAAsD;AAA7C,8FAAA,KAAK,OAAA;AACd,uEAAsE;AAA7D,8GAAA,aAAa,OAAA"}
@@ -21,7 +21,7 @@ class EazoAuthClient {
21
21
  this.appId = config.appId;
22
22
  this.authAppId = config.authAppId ?? DEFAULT_AUTH_APP_ID;
23
23
  this.authAppDomain = config.authAppDomain ?? DEFAULT_AUTH_APP_DOMAIN;
24
- this.apiBase = (0, config_1.getApiBase)(config.apiBase);
24
+ this.apiBase = (0, config_1.getPlatformApiBase)(config.apiBase);
25
25
  }
26
26
  /**
27
27
  * Exchanges a GenAuth JWT for an encrypted session token.
@@ -1 +1 @@
1
- {"version":3,"file":"EazoAuthClient.js","sourceRoot":"","sources":["../../../src/internal/auth-primitive/EazoAuthClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EazoAuthClient.js","sourceRoot":"","sources":["../../../src/internal/auth-primitive/EazoAuthClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ type IconProps = {
3
+ size?: number;
4
+ };
5
+ type LogoProps = {
6
+ width?: number;
7
+ height?: number;
8
+ };
9
+ export declare function EazoLogo({ width, height }: LogoProps): React.ReactElement;
10
+ export declare function CloseIcon({ size }: IconProps): React.ReactElement;
11
+ export {};
12
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +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,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,wBAAgB,QAAQ,CAAC,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAmCnF;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAS,EAAE,EAAE,SAAS,GAAG,KAAK,CAAC,YAAY,CAgBtE"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EazoLogo = EazoLogo;
4
+ exports.CloseIcon = CloseIcon;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ function EazoLogo({ width = 80, height = 22 }) {
7
+ return ((0, jsx_runtime_1.jsx)("svg", { fill: "none", width: width, height: height, viewBox: "0 0 102 28", xmlns: "http://www.w3.org/2000/svg", "aria-label": "Eazo", role: "img", children: (0, jsx_runtime_1.jsxs)("g", { children: [(0, jsx_runtime_1.jsx)("path", { fill: "#d4614a", d: "M14 0C20.3203 0 23.4804 0.000304997 25.547 1.83089C25.7666 2.02539 25.9746 2.23342 26.1691 2.45296C27.9997 4.51954 28 7.67968 28 14C28 20.3203 27.9997 23.4804 26.1691 25.547C25.9746 25.7666 25.7666 25.9746 25.547 26.1691C23.4805 27.9998 20.3204 28 14 28C7.67962 28 4.51955 27.9997 2.45296 26.1691C2.23342 25.9746 2.02539 25.7666 1.83089 25.547C0.00030903 23.4804 0 20.3203 0 14C0 7.67964 0.000219325 4.51954 1.83089 2.45296C2.02539 2.23342 2.23342 2.02539 2.45296 1.83089C4.51956 0.000342965 7.67972 0 14 0ZM15.8013 3.55924C15.2979 3.42895 14.7602 3.5169 14.3281 3.7985C13.8963 4.08425 13.6117 4.534 13.5477 5.03809C13.3632 6.49627 13.1268 8.35808 13.0179 9.19889C12.9846 9.46368 12.8013 9.68257 12.5451 9.77083C12.4734 9.79604 12.402 9.82575 12.332 9.85514C12.0798 9.95587 11.7895 9.91005 11.5835 9.73779L8.32731 6.98405C7.93412 6.65208 7.41148 6.50551 6.89518 6.57275C6.37955 6.64433 5.92116 6.93006 5.63737 7.35433L4.35107 9.2832C4.06722 9.70766 3.98665 10.229 4.13005 10.7165C4.27347 11.2039 4.62677 11.6072 5.09847 11.8216C6.46683 12.4436 8.21457 13.2386 9.00407 13.6001C9.25066 13.7093 9.41171 13.9484 9.41878 14.2131C9.42094 14.2887 9.42468 14.3607 9.43245 14.4364C9.45399 14.7009 9.31988 14.9527 9.0861 15.0915L5.39128 17.2528C4.94474 17.5176 4.63617 17.9544 4.5459 18.4502C4.45564 18.9503 4.59324 19.4634 4.92074 19.8584L6.40641 21.6449C6.73437 22.0356 7.22223 22.271 7.74284 22.292C8.26327 22.3087 8.76631 22.1067 9.12142 21.7371L12.1315 18.6017C12.2789 18.4463 12.5035 18.3872 12.7091 18.4502C12.7738 18.4712 12.8399 18.4927 12.9062 18.5094C12.9445 18.5178 12.9831 18.5261 13.0213 18.5345C13.2852 18.5976 13.4898 18.8034 13.5511 19.0597L14.5229 23.1453C14.6405 23.6368 14.9723 24.0565 15.4321 24.2961C15.8921 24.5313 16.436 24.5654 16.9224 24.3849L19.1281 23.5612C19.6144 23.3763 19.9955 23.0021 20.174 22.5233C20.3524 22.0485 20.3099 21.5187 20.0578 21.0775C19.3262 19.7914 18.3921 18.1516 17.9717 17.4077C17.8396 17.1767 17.8537 16.8913 18.0081 16.6729C18.0513 16.6099 18.0939 16.5467 18.1323 16.4837C18.2749 16.2568 18.5369 16.13 18.8091 16.151L23.1032 16.5122C23.6221 16.5584 24.1356 16.3822 24.5103 16.0291C24.8849 15.6761 25.0861 15.1845 25.0571 14.6802L24.9329 12.3856C24.9057 11.877 24.6553 11.4057 24.2448 11.0947C23.8343 10.7837 23.3044 10.662 22.7933 10.7586C21.3099 11.036 19.4153 11.393 18.5584 11.5527C18.2912 11.603 18.0175 11.5028 17.8521 11.293C17.8054 11.2341 17.7568 11.1744 17.7062 11.1198C17.5294 10.9181 17.4849 10.6365 17.5911 10.3929L19.2739 6.5306C19.4774 6.06407 19.4626 5.53381 19.234 5.07568C19.0054 4.62203 18.5854 4.28653 18.0822 4.15625L15.8013 3.55924Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M51.1045 22.4374C51.1045 22.7812 50.9227 22.9555 50.5585 22.9555H37.8749C37.5158 22.9555 37.3336 22.7812 37.3336 22.4374V5.18962C37.3336 4.84098 37.5158 4.66663 37.8749 4.66663H50.3714C50.7304 4.66663 50.9124 4.84098 50.9124 5.18962V7.38799C50.9124 7.73662 50.7304 7.91086 50.3714 7.91086H41.0053V11.867H48.2472C48.6063 11.867 48.7885 12.0412 48.7885 12.385V14.443C48.7885 14.7916 48.6063 14.9659 48.2472 14.9659H41.0053V19.7016H50.5585C50.9227 19.7016 51.1045 19.876 51.1045 20.2246V22.4374Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M65.1894 7.75115C65.2602 7.45094 65.4523 7.29602 65.7709 7.29602H67.6674C68.0265 7.29602 68.2087 7.47026 68.2087 7.81889V22.4374C68.2087 22.7812 68.0265 22.9555 67.6674 22.9555H65.7307C65.4121 22.9555 65.2197 22.8055 65.1489 22.5004L64.9568 21.0671C64.3803 21.7547 63.6824 22.297 62.8581 22.6892C62.0388 23.0863 61.1032 23.2799 60.0563 23.2799C58.5493 23.2799 57.1787 22.9216 55.9498 22.1953C54.7158 21.469 53.7448 20.4861 53.0317 19.2465C52.3187 18.0069 51.9598 16.6366 51.9598 15.1452C51.9598 13.6635 52.3187 12.2979 53.0317 11.0583C53.7448 9.81868 54.721 8.83581 55.955 8.11916C57.194 7.39768 58.5594 7.03937 60.0563 7.03937C61.1234 7.03937 62.0641 7.23304 62.8884 7.62525C63.7077 8.01263 64.4056 8.55488 64.9872 9.25216L65.1894 7.75115ZM60.1119 20.0793C61.0222 20.0793 61.8467 19.8711 62.58 19.4498C63.3184 19.0285 63.8947 18.4475 64.3145 17.7067C64.7342 16.961 64.9467 16.1281 64.9467 15.1984C64.9467 14.2687 64.7344 13.4261 64.3197 12.6708C63.905 11.9202 63.3333 11.3247 62.6 10.8889C61.8718 10.4579 61.0476 10.24 60.1373 10.24C59.2371 10.24 58.4279 10.4531 57.7149 10.884C57.0018 11.315 56.4454 11.9057 56.0458 12.6611C55.6413 13.4164 55.4391 14.259 55.4391 15.1984C55.4391 16.1377 55.6363 16.9754 56.0308 17.7114C56.4202 18.4474 56.9764 19.0285 57.6894 19.4498C58.4025 19.8711 59.2066 20.0793 60.1119 20.0793Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M83.6077 22.4373C83.6077 22.7811 83.4257 22.9555 83.0667 22.9555H70.9495C70.5904 22.9555 70.4084 22.7811 70.4084 22.4373V20.9798C70.4084 20.7426 70.4842 20.5247 70.6359 20.3262L78.6112 10.3416H71.0962C70.7371 10.3416 70.5551 10.1674 70.5551 9.82356V7.81883C70.5551 7.4702 70.7371 7.29596 71.0962 7.29596H82.8089C83.1679 7.29596 83.3499 7.4702 83.3499 7.81883V9.16013C83.3499 9.39255 83.2741 9.61049 83.1173 9.80902L75.0257 19.9097H83.0667C83.4257 19.9097 83.6077 20.0841 83.6077 20.4327V22.4373Z" }), (0, jsx_runtime_1.jsx)("path", { fill: "currentColor", d: "M92.8323 23.3332C91.305 23.3332 89.8992 22.9701 88.6045 22.2486C87.3048 21.5223 86.278 20.5393 85.5245 19.29C84.7659 18.0455 84.3866 16.6849 84.3866 15.2129C84.3866 13.7167 84.766 12.3463 85.5297 11.0971C86.2933 9.84777 87.3251 8.86003 88.6248 8.12886C89.9194 7.40253 91.3353 7.03937 92.8575 7.03937C94.3949 7.03937 95.811 7.40253 97.1107 8.12886C98.4104 8.86003 99.4421 9.84777 100.201 11.0971C100.964 12.3463 101.349 13.7167 101.349 15.2129C101.349 16.6849 100.964 18.0455 100.196 19.29C99.427 20.5393 98.3953 21.5223 97.0905 22.2486C95.7857 22.9701 94.3647 23.3332 92.8323 23.3332ZM92.8728 20.1325C93.7679 20.1325 94.5972 19.9147 95.3659 19.4789C96.1295 19.0479 96.7416 18.4524 97.1917 17.7067C97.6418 16.9513 97.8693 16.1184 97.8693 15.1984C97.8693 14.2783 97.6418 13.4407 97.1917 12.6805C96.7416 11.9202 96.1295 11.3247 95.3659 10.8889C94.5972 10.4579 93.7679 10.24 92.8728 10.24C91.9726 10.24 91.1381 10.4579 90.3694 10.8889C89.6007 11.3247 88.9937 11.9202 88.5386 12.6805C88.0885 13.4407 87.8662 14.2783 87.8662 15.1984C87.8662 16.1184 88.0885 16.9513 88.5386 17.7067C88.9937 18.4524 89.6007 19.0479 90.3694 19.4789C91.1381 19.9147 91.9726 20.1325 92.8728 20.1325Z" })] }) }));
8
+ }
9
+ function CloseIcon({ size = 16 }) {
10
+ return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) }));
11
+ }
12
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/icons.tsx"],"names":[],"mappings":";;AAMA,4BAmCC;AAED,8BAgBC;;AArDD,SAAgB,QAAQ,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAa;IAC7D,OAAO,CACL,gCACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,YAAY,EACpB,KAAK,EAAC,4BAA4B,gBACvB,MAAM,EACjB,IAAI,EAAC,KAAK,YAEV,0CACE,iCACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,qiFAAqiF,GACviF,EACF,iCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,8eAA8e,GAChf,EACF,iCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,uyCAAuyC,GACzyC,EACF,iCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,ifAAif,GACnf,EACF,iCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,qpCAAqpC,GACvpC,IACA,GACA,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,EAAE,IAAI,GAAG,EAAE,EAAa;IAChD,OAAO,CACL,gCACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,YAElB,iCAAM,CAAC,EAAC,sBAAsB,GAAG,GAC7B,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Top-of-page promo banner that points users to the Eazo mobile app.
4
+ * Mounted by `<EazoProvider>` and rendered only in pure-web environments
5
+ * (not the eazoMobile WebView, not embedded iframes). Dismissal is per-tab.
6
+ */
7
+ export declare function EazoBrandBanner(): React.ReactElement | null;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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;AAuC/B;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CA+D3D"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ "use client";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.EazoBrandBanner = EazoBrandBanner;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const React = __importStar(require("react"));
40
+ const env_1 = require("../env");
41
+ const icons_1 = require("./icons");
42
+ const store_links_1 = require("./store-links");
43
+ const styles_1 = require("./styles");
44
+ const DISMISS_KEY = "eazo:banner:dismissed";
45
+ const MOBILE_BREAKPOINT_PX = 480;
46
+ function readDismissed() {
47
+ try {
48
+ return window.sessionStorage.getItem(DISMISS_KEY) === "1";
49
+ }
50
+ catch {
51
+ // Private mode / disabled storage — treat as not dismissed; the close
52
+ // button will still hide it for the lifetime of the page.
53
+ return false;
54
+ }
55
+ }
56
+ function writeDismissed() {
57
+ try {
58
+ window.sessionStorage.setItem(DISMISS_KEY, "1");
59
+ }
60
+ catch {
61
+ // Ignore: dismissal still works in-memory via React state.
62
+ }
63
+ }
64
+ function currentBannerHeight() {
65
+ if (typeof window === "undefined")
66
+ return styles_1.BANNER_HEIGHT_DESKTOP;
67
+ return window.innerWidth <= MOBILE_BREAKPOINT_PX
68
+ ? styles_1.BANNER_HEIGHT_MOBILE
69
+ : styles_1.BANNER_HEIGHT_DESKTOP;
70
+ }
71
+ /**
72
+ * Top-of-page promo banner that points users to the Eazo mobile app.
73
+ * Mounted by `<EazoProvider>` and rendered only in pure-web environments
74
+ * (not the eazoMobile WebView, not embedded iframes). Dismissal is per-tab.
75
+ */
76
+ function EazoBrandBanner() {
77
+ const [visible, setVisible] = React.useState(false);
78
+ const [storeUrl, setStoreUrl] = React.useState("");
79
+ React.useEffect(() => {
80
+ if ((0, env_1.getHost)() !== "web")
81
+ return;
82
+ if (readDismissed())
83
+ return;
84
+ (0, styles_1.ensureBannerStylesInjected)();
85
+ setStoreUrl((0, store_links_1.resolveStoreUrl)());
86
+ setVisible(true);
87
+ }, []);
88
+ React.useEffect(() => {
89
+ if (!visible)
90
+ return;
91
+ const html = document.documentElement;
92
+ const previousPaddingTop = html.style.paddingTop;
93
+ const apply = () => {
94
+ html.style.paddingTop = `${currentBannerHeight()}px`;
95
+ };
96
+ apply();
97
+ window.addEventListener("resize", apply);
98
+ return () => {
99
+ window.removeEventListener("resize", apply);
100
+ html.style.paddingTop = previousPaddingTop;
101
+ };
102
+ }, [visible]);
103
+ if (!visible)
104
+ return null;
105
+ const dismiss = () => {
106
+ writeDismissed();
107
+ setVisible(false);
108
+ };
109
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "eazo-banner-root", role: "region", "aria-label": "Eazo app promotion", children: [(0, jsx_runtime_1.jsx)("span", { className: "eazo-banner-brand", children: (0, jsx_runtime_1.jsx)(icons_1.EazoLogo, { width: 72, height: 20 }) }), (0, jsx_runtime_1.jsx)("span", { className: "eazo-banner-copy", children: "Get the full Eazo experience in our mobile app." }), (0, jsx_runtime_1.jsx)("a", { className: "eazo-banner-cta", href: storeUrl, target: "_blank", rel: "noreferrer noopener", children: "Get the app" }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "eazo-banner-close", "aria-label": "Dismiss banner", onClick: dismiss, children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 16 }) })] }));
110
+ }
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const APP_STORE_URL = "https://eazo.ai/";
2
+ export declare const PLAY_STORE_URL = "https://eazo.ai/";
3
+ export declare const MARKETING_URL = "https://eazo.ai/";
4
+ export declare function resolveStoreUrl(): string;
5
+ //# sourceMappingURL=store-links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-links.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/store-links.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAChD,eAAO,MAAM,cAAc,qBAAqB,CAAC;AACjD,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAUhD,wBAAgB,eAAe,IAAI,MAAM,CAMxC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MARKETING_URL = exports.PLAY_STORE_URL = exports.APP_STORE_URL = void 0;
4
+ exports.resolveStoreUrl = resolveStoreUrl;
5
+ // TODO(banner): replace placeholders once the iOS App Store ID and Android
6
+ // package name are confirmed by the mobile team. Until then, all platforms
7
+ // fall back to the marketing site so users never hit a 404.
8
+ exports.APP_STORE_URL = "https://eazo.ai/";
9
+ exports.PLAY_STORE_URL = "https://eazo.ai/";
10
+ exports.MARKETING_URL = "https://eazo.ai/";
11
+ function detectPlatform(ua) {
12
+ if (/iPhone|iPad|iPod/i.test(ua))
13
+ return "ios";
14
+ if (/Android/i.test(ua))
15
+ return "android";
16
+ return "desktop";
17
+ }
18
+ function resolveStoreUrl() {
19
+ if (typeof navigator === "undefined")
20
+ return exports.MARKETING_URL;
21
+ const platform = detectPlatform(navigator.userAgent);
22
+ if (platform === "ios")
23
+ return exports.APP_STORE_URL;
24
+ if (platform === "android")
25
+ return exports.PLAY_STORE_URL;
26
+ return exports.MARKETING_URL;
27
+ }
28
+ //# sourceMappingURL=store-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-links.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/store-links.ts"],"names":[],"mappings":";;;AAeA,0CAMC;AArBD,2EAA2E;AAC3E,2EAA2E;AAC3E,4DAA4D;AAC/C,QAAA,aAAa,GAAG,kBAAkB,CAAC;AACnC,QAAA,cAAc,GAAG,kBAAkB,CAAC;AACpC,QAAA,aAAa,GAAG,kBAAkB,CAAC;AAIhD,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,qBAAa,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,qBAAa,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,sBAAc,CAAC;IAClD,OAAO,qBAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const BANNER_HEIGHT_DESKTOP = 52;
2
+ export declare const BANNER_HEIGHT_MOBILE = 64;
3
+ export declare const BANNER_UI_CSS = "\n.eazo-banner-root {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 2147483550;\n display: flex;\n align-items: center;\n gap: 12px;\n height: 52px;\n padding: 0 14px 0 18px;\n background: #f1ebe0;\n color: #11130f;\n font-family: inherit;\n box-sizing: border-box;\n animation: eazo-banner-slide-down 220ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n@keyframes eazo-banner-slide-down {\n from { transform: translateY(-100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n\n.eazo-banner-brand {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: #11130f;\n}\n\n.eazo-banner-copy {\n flex: 1;\n min-width: 0;\n font-size: 14px;\n font-weight: 500;\n color: rgba(17, 19, 15, 0.62);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.eazo-banner-cta {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n height: 34px;\n padding: 0 14px;\n border-radius: 12px;\n background: #d4614a;\n color: #ffffff;\n font-size: 13px;\n font-weight: 600;\n text-decoration: none;\n cursor: pointer;\n transition: filter 160ms ease, box-shadow 160ms ease;\n}\n.eazo-banner-cta:hover {\n filter: brightness(1.06);\n box-shadow: 0 8px 18px rgba(212, 97, 74, 0.36);\n}\n\n.eazo-banner-close {\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 999px;\n background: transparent;\n color: rgba(17, 19, 15, 0.52);\n cursor: pointer;\n padding: 0;\n transition: color 120ms ease, background 120ms ease;\n}\n.eazo-banner-close:hover {\n color: #11130f;\n background: rgba(17, 19, 15, 0.06);\n}\n\n@media (max-width: 480px) {\n .eazo-banner-root {\n height: 64px;\n padding: 0 10px 0 14px;\n gap: 10px;\n }\n .eazo-banner-copy {\n font-size: 12px;\n line-height: 1.25;\n white-space: normal;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n .eazo-banner-cta {\n height: 32px;\n padding: 0 12px;\n font-size: 12px;\n }\n}\n";
4
+ export declare function ensureBannerStylesInjected(): void;
5
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,aAAa,slEAsGzB,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,IAAI,CAQjD"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BANNER_UI_CSS = exports.BANNER_HEIGHT_MOBILE = exports.BANNER_HEIGHT_DESKTOP = void 0;
4
+ exports.ensureBannerStylesInjected = ensureBannerStylesInjected;
5
+ const STYLE_ID = "eazo-sdk-banner-ui";
6
+ exports.BANNER_HEIGHT_DESKTOP = 52;
7
+ exports.BANNER_HEIGHT_MOBILE = 64;
8
+ exports.BANNER_UI_CSS = `
9
+ .eazo-banner-root {
10
+ position: fixed;
11
+ top: 0;
12
+ left: 0;
13
+ right: 0;
14
+ z-index: 2147483550;
15
+ display: flex;
16
+ align-items: center;
17
+ gap: 12px;
18
+ height: ${exports.BANNER_HEIGHT_DESKTOP}px;
19
+ padding: 0 14px 0 18px;
20
+ background: #f1ebe0;
21
+ color: #11130f;
22
+ font-family: inherit;
23
+ box-sizing: border-box;
24
+ animation: eazo-banner-slide-down 220ms cubic-bezier(0.16, 1, 0.3, 1);
25
+ }
26
+
27
+ @keyframes eazo-banner-slide-down {
28
+ from { transform: translateY(-100%); opacity: 0; }
29
+ to { transform: translateY(0); opacity: 1; }
30
+ }
31
+
32
+ .eazo-banner-brand {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ flex-shrink: 0;
36
+ color: #11130f;
37
+ }
38
+
39
+ .eazo-banner-copy {
40
+ flex: 1;
41
+ min-width: 0;
42
+ font-size: 14px;
43
+ font-weight: 500;
44
+ color: rgba(17, 19, 15, 0.62);
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ }
49
+
50
+ .eazo-banner-cta {
51
+ flex-shrink: 0;
52
+ display: inline-flex;
53
+ align-items: center;
54
+ height: 34px;
55
+ padding: 0 14px;
56
+ border-radius: 12px;
57
+ background: #d4614a;
58
+ color: #ffffff;
59
+ font-size: 13px;
60
+ font-weight: 600;
61
+ text-decoration: none;
62
+ cursor: pointer;
63
+ transition: filter 160ms ease, box-shadow 160ms ease;
64
+ }
65
+ .eazo-banner-cta:hover {
66
+ filter: brightness(1.06);
67
+ box-shadow: 0 8px 18px rgba(212, 97, 74, 0.36);
68
+ }
69
+
70
+ .eazo-banner-close {
71
+ flex-shrink: 0;
72
+ width: 28px;
73
+ height: 28px;
74
+ display: inline-flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ border: 0;
78
+ border-radius: 999px;
79
+ background: transparent;
80
+ color: rgba(17, 19, 15, 0.52);
81
+ cursor: pointer;
82
+ padding: 0;
83
+ transition: color 120ms ease, background 120ms ease;
84
+ }
85
+ .eazo-banner-close:hover {
86
+ color: #11130f;
87
+ background: rgba(17, 19, 15, 0.06);
88
+ }
89
+
90
+ @media (max-width: 480px) {
91
+ .eazo-banner-root {
92
+ height: ${exports.BANNER_HEIGHT_MOBILE}px;
93
+ padding: 0 10px 0 14px;
94
+ gap: 10px;
95
+ }
96
+ .eazo-banner-copy {
97
+ font-size: 12px;
98
+ line-height: 1.25;
99
+ white-space: normal;
100
+ display: -webkit-box;
101
+ -webkit-line-clamp: 2;
102
+ -webkit-box-orient: vertical;
103
+ }
104
+ .eazo-banner-cta {
105
+ height: 32px;
106
+ padding: 0 12px;
107
+ font-size: 12px;
108
+ }
109
+ }
110
+ `;
111
+ function ensureBannerStylesInjected() {
112
+ if (typeof document === "undefined")
113
+ return;
114
+ if (document.getElementById(STYLE_ID))
115
+ return;
116
+ const style = document.createElement("style");
117
+ style.id = STYLE_ID;
118
+ style.setAttribute("data-eazo-sdk", "banner-ui");
119
+ style.textContent = exports.BANNER_UI_CSS;
120
+ document.head.appendChild(style);
121
+ }
122
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/internal/banner-ui/styles.ts"],"names":[],"mappings":";;;AA6GA,gEAQC;AArHD,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAEzB,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAC3B,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAE1B,QAAA,aAAa,GAAG;;;;;;;;;;YAUjB,6BAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0EnB,4BAAoB;;;;;;;;;;;;;;;;;;CAkBjC,CAAC;AAEF,SAAgB,0BAA0B;IACxC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,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"}
@@ -4,9 +4,14 @@ export declare const VERSION: 1;
4
4
  export declare const HELLO_TIMEOUT_MS = 1500;
5
5
  export declare const REQUEST_TIMEOUT_MS = 10000;
6
6
  export declare const AUTH_REQUEST_LOGIN = "auth.requestLogin";
7
+ export declare const AUTH_REQUEST_LOGOUT = "auth.requestLogout";
7
8
  export declare const AUTH_CHANGED_EVENT = "auth.changed";
8
9
  export declare const AUTH_LOGIN_CANCELLED_EVENT = "auth.loginCancelled";
9
10
  export declare const SHARE_COMPOSE = "share.compose";
11
+ export declare const MEMORY_REPORT_ACTION = "memory.reportAction";
12
+ export declare const NOTIFICATIONS_SUBSCRIBE = "notifications.subscribe";
13
+ export declare const NOTIFICATIONS_UNSUBSCRIBE = "notifications.unsubscribe";
14
+ export declare const NOTIFICATIONS_IS_SUBSCRIBED = "notifications.isSubscribed";
10
15
  export type ErrorCode = "NOT_SUPPORTED" | "TIMEOUT" | "DENIED" | "INVALID_ARGS" | "INTERNAL";
11
16
  export interface BridgeError {
12
17
  code: ErrorCode;
@@ -33,6 +38,8 @@ export interface HelloEnvelope extends EnvelopeBase<"hello"> {
33
38
  };
34
39
  device: DeviceContext;
35
40
  capabilities: string[];
41
+ /** Eazo platform URL the host targets. SDK-internal; not exposed to apps. */
42
+ apiBase?: string;
36
43
  }
37
44
  export interface RequestEnvelope extends EnvelopeBase<"req"> {
38
45
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/internal/bridge/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAG,UAAmB,CAAC;AAC3C,eAAO,MAAM,OAAO,EAAG,CAAU,CAAC;AAElC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAGzC,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAChE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,SAAS,GACT,QAAQ,GACR,cAAc,GACd,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM;IACrC,EAAE,EAAE,OAAO,OAAO,CAAC;IACnB,CAAC,EAAE,OAAO,OAAO,CAAC;IAClB,CAAC,EAAE,CAAC,CAAC;CACN;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC1D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC1D,OAAO,EAAE;QACP,aAAa,EAAE,OAAO,CAAC;QACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,KAAK,CAAC;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GACxB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAChE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,KAAK,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEhE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAIrE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIjF;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAM,YAAW,WAAW;IACjE,IAAI,EAAE,SAAS,CAAC;gBACJ,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAK7C"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/internal/bridge/protocol.ts"],"names":[],"mappings":"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"}