@onside/install-widget 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +13 -0
  2. package/dist-lib/{AndroidPlatformModal-B8lt-w-V.js → AndroidPlatformModal-2Ykjo2V7.js} +14 -13
  3. package/dist-lib/AndroidPlatformModal-DTglyxUG.cjs +1 -0
  4. package/dist-lib/{Dialog-DXOEeh8t.js → Dialog-yEP-7Deb.js} +1 -1
  5. package/dist-lib/{Dialog-D53Br-Xy.cjs → Dialog-yZ9bWtK1.cjs} +1 -1
  6. package/dist-lib/{GoToSafariModal-CLxmpCng.js → GoToSafariModal-C_KBizh8.js} +27 -26
  7. package/dist-lib/GoToSafariModal-Cgx0X0rg.cjs +1 -0
  8. package/dist-lib/{UpdateIOSModal-ms1UJmHc.js → UpdateIOSModal-BGWvssyd.js} +20 -19
  9. package/dist-lib/UpdateIOSModal-CE-d3YCr.cjs +1 -0
  10. package/dist-lib/hooks.cjs +1 -0
  11. package/dist-lib/hooks.d.ts +45 -0
  12. package/dist-lib/hooks.js +5 -0
  13. package/dist-lib/install-package-B17QfMPy.cjs +1 -0
  14. package/dist-lib/{install-package-CyWo-B7v.js → install-package-DowlG4hO.js} +600 -969
  15. package/dist-lib/install-package.cjs +1 -1
  16. package/dist-lib/install-package.d.ts +106 -1
  17. package/dist-lib/install-package.js +21 -6
  18. package/dist-lib/install-widget.css +1 -1
  19. package/dist-lib/installUrlService-AjG03i8i.cjs +1 -0
  20. package/dist-lib/installUrlService-CrJfYPwM.js +95 -0
  21. package/dist-lib/useInstallUrl-CjUspi0p.cjs +1 -0
  22. package/dist-lib/useInstallUrl-JIdkWpgj.js +87 -0
  23. package/dist-lib/utils.cjs +1 -0
  24. package/dist-lib/utils.d.ts +93 -0
  25. package/dist-lib/utils.js +279 -0
  26. package/package.json +22 -2
  27. package/dist-lib/AndroidPlatformModal-BNghy_S2.cjs +0 -1
  28. package/dist-lib/GoToSafariModal-DJDoZzSN.cjs +0 -1
  29. package/dist-lib/UpdateIOSModal-Cd2FI2Dl.cjs +0 -1
  30. package/dist-lib/install-package-q3ncGygt.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("./install-package-q3ncGygt.cjs");exports.AVERAGE_CHECK_TIME=E.AVERAGE_CHECK_TIME;exports.AVERAGE_INSTALL_TIME=E.AVERAGE_INSTALL_TIME;exports.AVERAGE_LOADING_TIME=E.AVERAGE_LOADING_TIME;exports.InstallAppButton=E.InstallAppButton;exports.InstallWidgetProvider=E.InstallWidgetProvider;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./install-package-B17QfMPy.cjs"),n=require("./useInstallUrl-CjUspi0p.cjs"),t=require("./installUrlService-AjG03i8i.cjs"),l=require("./utils.cjs");exports.AVERAGE_CHECK_TIME=e.AVERAGE_CHECK_TIME;exports.AVERAGE_INSTALL_TIME=e.AVERAGE_INSTALL_TIME;exports.AVERAGE_LOADING_TIME=e.AVERAGE_LOADING_TIME;exports.InstallAppButton=e.InstallAppButton;exports.InstallWidgetProvider=e.InstallWidgetProvider;exports.useInstallUrl=n.useInstallUrl;exports.useInstallUrlStore=n.useInstallUrlStore;exports.generateUUID=t.generateUUID;exports.getCookie=t.getCookie;exports.getInstallUrl=t.getInstallUrl;exports.getOnsideToken=t.getOnsideToken;exports.setCookie=t.setCookie;exports.compareVersions=l.compareVersions;exports.getDeviceInfo=l.getDeviceInfo;exports.resolveInstallConditions=l.resolveInstallConditions;exports.trackEvent=l.trackEvent;exports.trackModalEvent=l.trackModalEvent;
@@ -1,6 +1,10 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { JSX } from 'react/jsx-runtime';
3
3
  import { PropsWithChildren } from 'react';
4
+ import { StoreApi } from 'zustand';
5
+ import { UseBoundStore } from 'zustand';
6
+
7
+ export declare type AnalyticsEvent = Omit<TrackedAnalyticsEvent, "url">;
4
8
 
5
9
  export declare const AVERAGE_CHECK_TIME: number;
6
10
 
@@ -8,8 +12,49 @@ export declare const AVERAGE_INSTALL_TIME: number;
8
12
 
9
13
  export declare const AVERAGE_LOADING_TIME: number;
10
14
 
15
+ export declare type Browser = "safari" | "chrome" | "firefox" | "edge" | "opera" | "brave" | "duckduckgo" | "google" | "in-app" | "unknown";
16
+
17
+ export declare type BrowserEngine = "webkit" | "blink" | "gecko" | "unknown";
18
+
11
19
  declare type ButtonLocation = "hero" | "header" | "fixed_bottom" | "install_guide" | "get_approved" | "go_to_safari" | "update_ios" | "unavailable_outside_eu" | "debug";
12
20
 
21
+ export declare const compareVersions: (a: string, b: string) => -1 | 0 | 1;
22
+
23
+ export declare type DeviceInfo = {
24
+ platform: Platform;
25
+ browser: Browser;
26
+ browserEngine?: BrowserEngine;
27
+ isMobile: boolean;
28
+ isTablet: boolean;
29
+ isDesktop: boolean;
30
+ version: string | undefined;
31
+ version_major?: number;
32
+ version_minor?: number;
33
+ userAgent: string;
34
+ iosDeviceClass?: IOSDeviceClass;
35
+ isInAppBrowser?: boolean;
36
+ browserDetail?: string;
37
+ };
38
+
39
+ export declare const generateUUID: () => string;
40
+
41
+ /**
42
+ * Retrieves the value of a browser cookie by name.
43
+ */
44
+ export declare const getCookie: (name: string) => string | null;
45
+
46
+ export declare function getDeviceInfo(): DeviceInfo;
47
+
48
+ export declare const getInstallUrl: (options?: GetInstallUrlOptions) => Promise<InstallUrlServiceResponse>;
49
+
50
+ export declare type GetInstallUrlOptions = {
51
+ baseUrl?: string;
52
+ useMockResponse?: boolean;
53
+ appId?: string;
54
+ };
55
+
56
+ export declare const getOnsideToken: () => string;
57
+
13
58
  export declare interface InstallAnalyticsCallbacks {
14
59
  onEvent?: (payload: TrackedAnalyticsEvent) => void;
15
60
  }
@@ -31,6 +76,11 @@ export declare interface InstallAppButtonProps {
31
76
  showLoaderOnly?: boolean;
32
77
  }
33
78
 
79
+ export declare type InstallConditions = {
80
+ installState: "install_available" | "go_to_safari" | "update_ios" | "android" | "unsupported";
81
+ usesNewInstallFlow: boolean;
82
+ };
83
+
34
84
  /**
35
85
  * Optional CDN URLs for install modals media.
36
86
  * When not provided, modals render without video (text + buttons only).
@@ -47,6 +97,27 @@ export declare interface InstallModalBaseProps {
47
97
  onClose: () => void;
48
98
  }
49
99
 
100
+ export declare type InstallResponse = {
101
+ url: string;
102
+ attribution_token: string;
103
+ exp: number;
104
+ is_eligible: boolean;
105
+ };
106
+
107
+ export declare type InstallUrlServiceResponse = InstallResponse & {
108
+ onside_token: string;
109
+ };
110
+
111
+ declare type InstallUrlStatus = "idle" | "loading" | "success" | "error";
112
+
113
+ export declare type InstallUrlStoreData = {
114
+ status: InstallUrlStatus;
115
+ data: InstallUrlServiceResponse | null;
116
+ error: Error | null;
117
+ fetchInstallUrl: () => Promise<void>;
118
+ reset: () => void;
119
+ };
120
+
50
121
  export declare const InstallWidgetProvider: ({ children }: PropsWithChildren) => JSX.Element;
51
122
 
52
123
  declare type InstallWidgetStyleVars = CSSProperties & {
@@ -63,7 +134,28 @@ declare type InstallWidgetStyleVars = CSSProperties & {
63
134
  "--onside-caption-line-height"?: string;
64
135
  };
65
136
 
66
- declare interface TrackedAnalyticsEvent {
137
+ export declare type IOSDeviceClass = "iphone" | "ipad" | "ipod" | "unknown";
138
+
139
+ export declare type OnsideToken = {
140
+ token: string;
141
+ createdAt: number;
142
+ };
143
+
144
+ export declare type Platform = "ios" | "android" | "desktop" | "unknown";
145
+
146
+ export declare function resolveInstallConditions(deviceInfo: DeviceInfo, options?: ResolveInstallConditionsOptions): InstallConditions;
147
+
148
+ declare type ResolveInstallConditionsOptions = {
149
+ minIOSVersionForInstall?: string;
150
+ minIOSVersionForNewSystemUI?: string;
151
+ };
152
+
153
+ /**
154
+ * Sets a browser cookie with a specified expiration time (in seconds).
155
+ */
156
+ export declare const setCookie: (name: string, value: string, maxAgeSeconds: number) => void;
157
+
158
+ export declare interface TrackedAnalyticsEvent {
67
159
  event: "amplitude_event";
68
160
  event_name: string;
69
161
  event_properties: Record<string, unknown>;
@@ -71,4 +163,17 @@ declare interface TrackedAnalyticsEvent {
71
163
  url: string;
72
164
  }
73
165
 
166
+ export declare function trackEvent(event_name: string, event_properties?: Record<string, unknown>, user_properties?: Record<string, unknown>): TrackedAnalyticsEvent | null;
167
+
168
+ export declare function trackModalEvent(modalName: string, eventType: "click" | "opened", action?: string, additionalProps?: Record<string, unknown>): TrackedAnalyticsEvent | null;
169
+
170
+ export declare const useInstallUrl: (isAvailable?: boolean) => {
171
+ status: InstallUrlStatus;
172
+ data: InstallUrlServiceResponse | null;
173
+ error: Error | null;
174
+ fetchInstallUrl: () => Promise<void>;
175
+ };
176
+
177
+ export declare const useInstallUrlStore: UseBoundStore<StoreApi<InstallUrlStoreData>>;
178
+
74
179
  export { }
@@ -1,8 +1,23 @@
1
- import { d as I, e as a, A as s, I as t, b as _ } from "./install-package-CyWo-B7v.js";
1
+ import { d as a, e as t, A as o, I as r, b as l } from "./install-package-DowlG4hO.js";
2
+ import { u as I, a as E } from "./useInstallUrl-JIdkWpgj.js";
3
+ import { c as i, b as g, g as p, a as d, s as _ } from "./installUrlService-CrJfYPwM.js";
4
+ import { compareVersions as f, getDeviceInfo as k, resolveInstallConditions as m, trackEvent as v, trackModalEvent as C } from "./utils.js";
2
5
  export {
3
- I as AVERAGE_CHECK_TIME,
4
- a as AVERAGE_INSTALL_TIME,
5
- s as AVERAGE_LOADING_TIME,
6
- t as InstallAppButton,
7
- _ as InstallWidgetProvider
6
+ a as AVERAGE_CHECK_TIME,
7
+ t as AVERAGE_INSTALL_TIME,
8
+ o as AVERAGE_LOADING_TIME,
9
+ r as InstallAppButton,
10
+ l as InstallWidgetProvider,
11
+ f as compareVersions,
12
+ i as generateUUID,
13
+ g as getCookie,
14
+ k as getDeviceInfo,
15
+ p as getInstallUrl,
16
+ d as getOnsideToken,
17
+ m as resolveInstallConditions,
18
+ _ as setCookie,
19
+ v as trackEvent,
20
+ C as trackModalEvent,
21
+ I as useInstallUrl,
22
+ E as useInstallUrlStore
8
23
  };
@@ -1 +1 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where([data-provider-widget-host]) *{all:revert}:where([data-provider-widget-host]){font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:inherit;--text-2xs: .6875rem;--text-2xs--line-height: 1rem}:where([data-provider-widget-host]) *,:where([data-provider-widget-host]) *:before,:where([data-provider-widget-host]) *:after{box-sizing:border-box;border:0 solid transparent}:where([data-provider-widget-host]) :is(h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd){margin:0}:where([data-provider-widget-host]) :is(ul,ol){margin:0;padding:0;list-style:none}:where([data-provider-widget-host]) a{color:inherit;text-decoration:none}:where([data-provider-widget-host]) img,:where([data-provider-widget-host]) video,:where([data-provider-widget-host]) svg{display:block;max-width:100%;height:auto}:where([data-provider-widget-host]) table{border-collapse:collapse;border-spacing:0;width:100%}:where([data-provider-widget-host]) :is(input,textarea,select,button){font:inherit;color:inherit;background:transparent;border-radius:0;outline:none}:where([data-provider-widget-host]) :is(button,[type=button],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button;background:none;border:none;cursor:pointer}:where([data-provider-widget-host]) :focus-visible{outline:2px solid currentColor;outline-offset:2px}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.shadow-14-50-98{box-shadow:9.42px 14.8px 39.02px #0e326214,37.67px 59.2px 71.3px #0e326212,86.1px 134.54px 95.52px #0e32620a,152.03px 238.13px 113.01px #0e326203,238.13px 371.32px 123.77px #0e326200}[data-provider-widget-host] .pointer-events-auto{pointer-events:auto}[data-provider-widget-host] .visible{visibility:visible}[data-provider-widget-host] .static{position:static}[data-provider-widget-host] .fixed{position:fixed}[data-provider-widget-host] .relative{position:relative}[data-provider-widget-host] .inset-0{inset:0}[data-provider-widget-host] .left-1\/2{left:50%}[data-provider-widget-host] .top-1\/2{top:50%}[data-provider-widget-host] .\!z-\[2147483647\]{z-index:2147483647!important}[data-provider-widget-host] .m-auto{margin:auto}[data-provider-widget-host] .mb-8{margin-bottom:2rem}[data-provider-widget-host] .ml-1{margin-left:.25rem}[data-provider-widget-host] .ml-auto{margin-left:auto}[data-provider-widget-host] .mr-auto{margin-right:auto}[data-provider-widget-host] .mt-10{margin-top:2.5rem}[data-provider-widget-host] .mt-2{margin-top:.5rem}[data-provider-widget-host] .mt-3{margin-top:.75rem}[data-provider-widget-host] .mt-4{margin-top:1rem}[data-provider-widget-host] .mt-5{margin-top:1.25rem}[data-provider-widget-host] .mt-6{margin-top:1.5rem}[data-provider-widget-host] .mt-8{margin-top:2rem}[data-provider-widget-host] .flex{display:flex}[data-provider-widget-host] .inline-flex{display:inline-flex}[data-provider-widget-host] .hidden{display:none}[data-provider-widget-host] .size-16{width:4rem;height:4rem}[data-provider-widget-host] .size-4{width:1rem;height:1rem}[data-provider-widget-host] .size-5{width:1.25rem;height:1.25rem}[data-provider-widget-host] .h-dvh{height:100dvh}[data-provider-widget-host] .h-full{height:100%}[data-provider-widget-host] .max-h-\[calc\(100dvh-8px\)\]{max-height:calc(100dvh - 8px)}[data-provider-widget-host] .min-h-0{min-height:0px}[data-provider-widget-host] .w-11\/12{width:91.666667%}[data-provider-widget-host] .w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}[data-provider-widget-host] .w-full{width:100%}[data-provider-widget-host] .min-w-\[206px\]{min-width:206px}[data-provider-widget-host] .max-w-\[85\%\]{max-width:85%}[data-provider-widget-host] .max-w-\[calc\(100dvw-8px\)\]{max-width:calc(100dvw - 8px)}[data-provider-widget-host] .max-w-lg{max-width:32rem}[data-provider-widget-host] .flex-1{flex:1 1 0%}[data-provider-widget-host] .flex-shrink-0{flex-shrink:0}[data-provider-widget-host] .grow{flex-grow:1}[data-provider-widget-host] .-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .-translate-y-2{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}[data-provider-widget-host] .animate-spin{animation:spin 1s linear infinite}[data-provider-widget-host] .list-decimal{list-style-type:decimal}[data-provider-widget-host] .flex-row{flex-direction:row}[data-provider-widget-host] .flex-col{flex-direction:column}[data-provider-widget-host] .flex-wrap{flex-wrap:wrap}[data-provider-widget-host] .items-center{align-items:center}[data-provider-widget-host] .justify-center{justify-content:center}[data-provider-widget-host] .justify-between{justify-content:space-between}[data-provider-widget-host] .gap-1{gap:.25rem}[data-provider-widget-host] .gap-12{gap:3rem}[data-provider-widget-host] .gap-2{gap:.5rem}[data-provider-widget-host] .gap-2\.5{gap:.625rem}[data-provider-widget-host] .gap-3{gap:.75rem}[data-provider-widget-host] .gap-5{gap:1.25rem}[data-provider-widget-host] .gap-6{gap:1.5rem}[data-provider-widget-host] .gap-\[6px\]{gap:6px}[data-provider-widget-host] .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}[data-provider-widget-host] .gap-y-2{row-gap:.5rem}[data-provider-widget-host] .self-start{align-self:flex-start}[data-provider-widget-host] .overflow-hidden{overflow:hidden}[data-provider-widget-host] .overflow-y-auto{overflow-y:auto}[data-provider-widget-host] .overflow-x-scroll{overflow-x:scroll}[data-provider-widget-host] .whitespace-nowrap{white-space:nowrap}[data-provider-widget-host] .rounded-2xl{border-radius:1rem}[data-provider-widget-host] .rounded-3xl{border-radius:1.5rem}[data-provider-widget-host] .rounded-\[var\(--onside-btn-radius\,9999px\)\]{border-radius:var(--onside-btn-radius,9999px)}[data-provider-widget-host] .rounded-full{border-radius:9999px}[data-provider-widget-host] .rounded-xl{border-radius:.75rem}[data-provider-widget-host] .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}[data-provider-widget-host] .rounded-t-\[20px\]{border-top-left-radius:20px;border-top-right-radius:20px}[data-provider-widget-host] .border{border-width:1px}[data-provider-widget-host] .border-8{border-width:8px}[data-provider-widget-host] .border-b-0{border-bottom-width:0px}[data-provider-widget-host] .border-\[\#e2eaf8\]{--tw-border-opacity: 1;border-color:rgb(226 234 248 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .border-blue{--tw-border-opacity: 1;border-color:rgb(10 94 255 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .\!bg-lightGray{--tw-bg-opacity: 1 !important;background-color:rgb(245 246 247 / var(--tw-bg-opacity, 1))!important}[data-provider-widget-host] .bg-\[\#e2eaf8\]{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-\[var\(--onside-btn-bg\,\#0A5EFF\)\]{background-color:var(--onside-btn-bg,#0A5EFF)}[data-provider-widget-host] .bg-black{--tw-bg-opacity: 1;background-color:rgb(30 28 31 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-black\/50{background-color:#1e1c1f80}[data-provider-widget-host] .bg-lightGray{--tw-bg-opacity: 1;background-color:rgb(245 246 247 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .stroke-blue{stroke:#0a5eff}[data-provider-widget-host] .object-contain{-o-object-fit:contain;object-fit:contain}[data-provider-widget-host] .object-top{-o-object-position:top;object-position:top}[data-provider-widget-host] .\!p-\[10px\]{padding:10px!important}[data-provider-widget-host] .p-4{padding:1rem}[data-provider-widget-host] .p-6{padding:1.5rem}[data-provider-widget-host] .p-\[10px\]{padding:10px}[data-provider-widget-host] .\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}[data-provider-widget-host] .\!py-0{padding-top:0!important;padding-bottom:0!important}[data-provider-widget-host] .px-1\.5{padding-left:.375rem;padding-right:.375rem}[data-provider-widget-host] .px-10{padding-left:2.5rem;padding-right:2.5rem}[data-provider-widget-host] .px-2{padding-left:.5rem;padding-right:.5rem}[data-provider-widget-host] .px-4{padding-left:1rem;padding-right:1rem}[data-provider-widget-host] .px-7{padding-left:1.75rem;padding-right:1.75rem}[data-provider-widget-host] .px-8{padding-left:2rem;padding-right:2rem}[data-provider-widget-host] .px-\[var\(--onside-btn-px\,1\.25rem\)\]{padding-left:var(--onside-btn-px,1.25rem);padding-right:var(--onside-btn-px,1.25rem)}[data-provider-widget-host] .px-\[var\(--onside-btn-px\,2rem\)\]{padding-left:var(--onside-btn-px,2rem);padding-right:var(--onside-btn-px,2rem)}[data-provider-widget-host] .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}[data-provider-widget-host] .py-3{padding-top:.75rem;padding-bottom:.75rem}[data-provider-widget-host] .py-4{padding-top:1rem;padding-bottom:1rem}[data-provider-widget-host] .py-5{padding-top:1.25rem;padding-bottom:1.25rem}[data-provider-widget-host] .py-\[var\(--onside-btn-py\,0\.75rem\)\]{padding-top:var(--onside-btn-py,.75rem);padding-bottom:var(--onside-btn-py,.75rem)}[data-provider-widget-host] .py-\[var\(--onside-btn-py\,1rem\)\]{padding-top:var(--onside-btn-py,1rem);padding-bottom:var(--onside-btn-py,1rem)}[data-provider-widget-host] .ps-6{padding-inline-start:1.5rem}[data-provider-widget-host] .pt-7{padding-top:1.75rem}[data-provider-widget-host] .text-center{text-align:center}[data-provider-widget-host] .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}[data-provider-widget-host] .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}[data-provider-widget-host] .font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}[data-provider-widget-host] .text-2xl{font-size:1.5rem;line-height:2rem}[data-provider-widget-host] .text-3xl{font-size:1.875rem;line-height:2.25rem}[data-provider-widget-host] .text-5xl{font-size:3rem;line-height:1}[data-provider-widget-host] .text-\[length\:var\(--onside-btn-font-size\,1\.125rem\)\]{font-size:var(--onside-btn-font-size,1.125rem)}[data-provider-widget-host] .text-\[length\:var\(--onside-btn-font-size\,1rem\)\]{font-size:var(--onside-btn-font-size,1rem)}[data-provider-widget-host] .text-base{font-size:1rem;line-height:1.5rem}[data-provider-widget-host] .text-lg{font-size:1.125rem;line-height:1.75rem}[data-provider-widget-host] .text-sm{font-size:.875rem;line-height:1.25rem}[data-provider-widget-host] .text-xl{font-size:1.25rem;line-height:1.75rem}[data-provider-widget-host] .text-xs{font-size:.75rem;line-height:1rem}[data-provider-widget-host] .\!font-medium{font-weight:500!important}[data-provider-widget-host] .font-bold{font-weight:700}[data-provider-widget-host] .font-medium{font-weight:500}[data-provider-widget-host] .font-normal{font-weight:400}[data-provider-widget-host] .\!leading-10{line-height:2.5rem!important}[data-provider-widget-host] .leading-7{line-height:1.75rem}[data-provider-widget-host] .leading-none{line-height:1}[data-provider-widget-host] .text-\[\#FF465D\]{--tw-text-opacity: 1;color:rgb(255 70 93 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-\[\#e2eaf8\]{--tw-text-opacity: 1;color:rgb(226 234 248 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-\[color\:var\(--onside-btn-text\,\#FFFFFF\)\]{color:var(--onside-btn-text,#FFFFFF)}[data-provider-widget-host] .text-black{--tw-text-opacity: 1;color:rgb(30 28 31 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-black\/60{color:#1e1c1f99}[data-provider-widget-host] .text-blue{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-tertiary{color:#1e1c1f99}[data-provider-widget-host] .text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .opacity-0{opacity:0}[data-provider-widget-host] .opacity-100{opacity:1}[data-provider-widget-host] .opacity-60{opacity:.6}[data-provider-widget-host] .outline-none{outline:2px solid transparent;outline-offset:2px}[data-provider-widget-host] .blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}[data-provider-widget-host] .backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}[data-provider-widget-host] .transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}[data-provider-widget-host] .duration-300{animation-duration:.3s}[data-provider-widget-host] .paused{animation-play-state:paused}[data-provider-widget-host] :is([data-provider-widget-host] .text-2xs){font-size:var(--text-2xs);line-height:var(--text-2xs--line-height)}[data-provider-widget-host] .\[color\:var\(--onside-caption-color\,rgba\(30\,28\,31\,0\.6\)\)\]{color:var(--onside-caption-color,rgba(30,28,31,.6))}[data-provider-widget-host] .\[font-size\:var\(--onside-caption-size\,var\(--text-2xs\)\)\]{font-size:var(--onside-caption-size,var(--text-2xs))}[data-provider-widget-host] .\[line-height\:var\(--onside-caption-line-height\,var\(--text-2xs--line-height\)\)\]{line-height:var(--onside-caption-line-height,var(--text-2xs--line-height))}[data-provider-widget-host].scroll-lock:has(dialog[open]){overflow:hidden}[data-provider-widget-host] .before\:absolute:before{content:var(--tw-content);position:absolute}[data-provider-widget-host] .before\:-top-1:before{content:var(--tw-content);top:-.25rem}[data-provider-widget-host] .before\:left-1\/2:before{content:var(--tw-content);left:50%}[data-provider-widget-host] .before\:block:before{content:var(--tw-content);display:block}[data-provider-widget-host] .before\:size-2:before{content:var(--tw-content);width:.5rem;height:.5rem}[data-provider-widget-host] .before\:-translate-x-1\/2:before{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .before\:rotate-45:before{content:var(--tw-content);--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .before\:bg-black:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(30 28 31 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-\[\#e2eaf8\]:hover{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-\[var\(--onside-btn-bg-hover\,\#337AFF\)\]:hover{background-color:var(--onside-btn-bg-hover,#337AFF)}[data-provider-widget-host] .hover\:bg-blue:hover{--tw-bg-opacity: 1;background-color:rgb(10 94 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:text-blue:hover{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .hover\:underline:hover{text-decoration-line:underline}[data-provider-widget-host] .hover\:opacity-60:hover{opacity:.6}[data-provider-widget-host] .hover\:opacity-75:hover{opacity:.75}[data-provider-widget-host] .hover\:opacity-90:hover{opacity:.9}[data-provider-widget-host] .focus\:bg-\[\#e2eaf8\]:focus{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:bg-\[var\(--onside-btn-bg\,\#0A5EFF\)\]:focus{background-color:var(--onside-btn-bg,#0A5EFF)}[data-provider-widget-host] .focus\:bg-blue:focus{--tw-bg-opacity: 1;background-color:rgb(10 94 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:text-blue:focus{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .focus\:underline:focus{text-decoration-line:underline}[data-provider-widget-host] .focus\:opacity-100:focus{opacity:1}[data-provider-widget-host] .disabled\:bg-\[var\(--onside-btn-disabled-bg\,rgba\(10\,94\,255\,0\.2\)\)\]:disabled{background-color:var(--onside-btn-disabled-bg,rgba(10,94,255,.2))}[data-provider-widget-host] .disabled\:opacity-50:disabled{opacity:.5}[data-provider-widget-host] .data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}[data-provider-widget-host] .data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}[data-provider-widget-host] .data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}[data-provider-widget-host] .data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}[data-provider-widget-host] .data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}[data-provider-widget-host] .data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}[data-provider-widget-host] .data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}[data-provider-widget-host] .data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}[data-provider-widget-host] .data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}[data-provider-widget-host] .data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where([data-provider-widget-host]) *{all:revert}:where([data-provider-widget-host]){font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:inherit;--text-2xs: .6875rem;--text-2xs--line-height: 1rem}:where([data-provider-widget-host]) *,:where([data-provider-widget-host]) *:before,:where([data-provider-widget-host]) *:after{box-sizing:border-box;border:0 solid transparent}:where([data-provider-widget-host]) :is(h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd){margin:0}:where([data-provider-widget-host]) :is(ul,ol){margin:0;padding:0;list-style:none}:where([data-provider-widget-host]) a{color:inherit;text-decoration:none}:where([data-provider-widget-host]) img,:where([data-provider-widget-host]) video,:where([data-provider-widget-host]) svg{display:block;max-width:100%;height:auto}:where([data-provider-widget-host]) table{border-collapse:collapse;border-spacing:0;width:100%}:where([data-provider-widget-host]) :is(input,textarea,select,button){font:inherit;color:inherit;background:transparent;border-radius:0;outline:none}:where([data-provider-widget-host]) :is(button,[type=button],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button;background:none;border:none;cursor:pointer}:where([data-provider-widget-host]) :focus-visible{outline:2px solid currentColor;outline-offset:2px}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.shadow-14-50-98{box-shadow:9.42px 14.8px 39.02px #0e326214,37.67px 59.2px 71.3px #0e326212,86.1px 134.54px 95.52px #0e32620a,152.03px 238.13px 113.01px #0e326203,238.13px 371.32px 123.77px #0e326200}[data-provider-widget-host] .pointer-events-auto{pointer-events:auto}[data-provider-widget-host] .visible{visibility:visible}[data-provider-widget-host] .static{position:static}[data-provider-widget-host] .fixed{position:fixed}[data-provider-widget-host] .relative{position:relative}[data-provider-widget-host] .inset-0{inset:0}[data-provider-widget-host] .left-1\/2{left:50%}[data-provider-widget-host] .top-1\/2{top:50%}[data-provider-widget-host] .\!z-\[2147483647\]{z-index:2147483647!important}[data-provider-widget-host] .m-auto{margin:auto}[data-provider-widget-host] .mb-8{margin-bottom:2rem}[data-provider-widget-host] .ml-1{margin-left:.25rem}[data-provider-widget-host] .ml-auto{margin-left:auto}[data-provider-widget-host] .mr-auto{margin-right:auto}[data-provider-widget-host] .mt-10{margin-top:2.5rem}[data-provider-widget-host] .mt-2{margin-top:.5rem}[data-provider-widget-host] .mt-3{margin-top:.75rem}[data-provider-widget-host] .mt-4{margin-top:1rem}[data-provider-widget-host] .mt-5{margin-top:1.25rem}[data-provider-widget-host] .mt-6{margin-top:1.5rem}[data-provider-widget-host] .mt-8{margin-top:2rem}[data-provider-widget-host] .flex{display:flex}[data-provider-widget-host] .inline-flex{display:inline-flex}[data-provider-widget-host] .hidden{display:none}[data-provider-widget-host] .size-16{width:4rem;height:4rem}[data-provider-widget-host] .size-4{width:1rem;height:1rem}[data-provider-widget-host] .size-5{width:1.25rem;height:1.25rem}[data-provider-widget-host] .h-dvh{height:100dvh}[data-provider-widget-host] .h-full{height:100%}[data-provider-widget-host] .max-h-\[calc\(100dvh-8px\)\]{max-height:calc(100dvh - 8px)}[data-provider-widget-host] .min-h-0{min-height:0px}[data-provider-widget-host] .w-11\/12{width:91.666667%}[data-provider-widget-host] .w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}[data-provider-widget-host] .w-full{width:100%}[data-provider-widget-host] .min-w-\[206px\]{min-width:206px}[data-provider-widget-host] .max-w-\[85\%\]{max-width:85%}[data-provider-widget-host] .max-w-\[calc\(100dvw-8px\)\]{max-width:calc(100dvw - 8px)}[data-provider-widget-host] .max-w-lg{max-width:32rem}[data-provider-widget-host] .flex-1{flex:1 1 0%}[data-provider-widget-host] .flex-shrink-0{flex-shrink:0}[data-provider-widget-host] .grow{flex-grow:1}[data-provider-widget-host] .-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .-translate-y-2{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}[data-provider-widget-host] .animate-spin{animation:spin 1s linear infinite}[data-provider-widget-host] .list-decimal{list-style-type:decimal}[data-provider-widget-host] .flex-row{flex-direction:row}[data-provider-widget-host] .flex-col{flex-direction:column}[data-provider-widget-host] .flex-wrap{flex-wrap:wrap}[data-provider-widget-host] .items-center{align-items:center}[data-provider-widget-host] .justify-center{justify-content:center}[data-provider-widget-host] .justify-between{justify-content:space-between}[data-provider-widget-host] .gap-1{gap:.25rem}[data-provider-widget-host] .gap-12{gap:3rem}[data-provider-widget-host] .gap-2{gap:.5rem}[data-provider-widget-host] .gap-2\.5{gap:.625rem}[data-provider-widget-host] .gap-3{gap:.75rem}[data-provider-widget-host] .gap-5{gap:1.25rem}[data-provider-widget-host] .gap-6{gap:1.5rem}[data-provider-widget-host] .gap-\[6px\]{gap:6px}[data-provider-widget-host] .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}[data-provider-widget-host] .gap-y-2{row-gap:.5rem}[data-provider-widget-host] .self-start{align-self:flex-start}[data-provider-widget-host] .overflow-hidden{overflow:hidden}[data-provider-widget-host] .overflow-y-auto{overflow-y:auto}[data-provider-widget-host] .overflow-x-scroll{overflow-x:scroll}[data-provider-widget-host] .whitespace-nowrap{white-space:nowrap}[data-provider-widget-host] .rounded-2xl{border-radius:1rem}[data-provider-widget-host] .rounded-3xl{border-radius:1.5rem}[data-provider-widget-host] .rounded-\[var\(--onside-btn-radius\,9999px\)\]{border-radius:var(--onside-btn-radius,9999px)}[data-provider-widget-host] .rounded-full{border-radius:9999px}[data-provider-widget-host] .rounded-xl{border-radius:.75rem}[data-provider-widget-host] .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}[data-provider-widget-host] .rounded-t-\[20px\]{border-top-left-radius:20px;border-top-right-radius:20px}[data-provider-widget-host] .border{border-width:1px}[data-provider-widget-host] .border-8{border-width:8px}[data-provider-widget-host] .border-b-0{border-bottom-width:0px}[data-provider-widget-host] .border-\[\#e2eaf8\]{--tw-border-opacity: 1;border-color:rgb(226 234 248 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .border-blue{--tw-border-opacity: 1;border-color:rgb(10 94 255 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}[data-provider-widget-host] .\!bg-lightGray{--tw-bg-opacity: 1 !important;background-color:rgb(245 246 247 / var(--tw-bg-opacity, 1))!important}[data-provider-widget-host] .bg-\[\#e2eaf8\]{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-\[var\(--onside-btn-bg\,\#0A5EFF\)\]{background-color:var(--onside-btn-bg,#0A5EFF)}[data-provider-widget-host] .bg-black{--tw-bg-opacity: 1;background-color:rgb(30 28 31 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-black\/50{background-color:#1e1c1f80}[data-provider-widget-host] .bg-lightGray{--tw-bg-opacity: 1;background-color:rgb(245 246 247 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .stroke-blue{stroke:#0a5eff}[data-provider-widget-host] .object-contain{-o-object-fit:contain;object-fit:contain}[data-provider-widget-host] .object-top{-o-object-position:top;object-position:top}[data-provider-widget-host] .\!p-\[10px\]{padding:10px!important}[data-provider-widget-host] .p-4{padding:1rem}[data-provider-widget-host] .p-6{padding:1.5rem}[data-provider-widget-host] .p-\[10px\]{padding:10px}[data-provider-widget-host] .\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}[data-provider-widget-host] .\!py-0{padding-top:0!important;padding-bottom:0!important}[data-provider-widget-host] .px-1\.5{padding-left:.375rem;padding-right:.375rem}[data-provider-widget-host] .px-10{padding-left:2.5rem;padding-right:2.5rem}[data-provider-widget-host] .px-2{padding-left:.5rem;padding-right:.5rem}[data-provider-widget-host] .px-4{padding-left:1rem;padding-right:1rem}[data-provider-widget-host] .px-7{padding-left:1.75rem;padding-right:1.75rem}[data-provider-widget-host] .px-8{padding-left:2rem;padding-right:2rem}[data-provider-widget-host] .px-\[var\(--onside-btn-px\,1\.25rem\)\]{padding-left:var(--onside-btn-px,1.25rem);padding-right:var(--onside-btn-px,1.25rem)}[data-provider-widget-host] .px-\[var\(--onside-btn-px\,2rem\)\]{padding-left:var(--onside-btn-px,2rem);padding-right:var(--onside-btn-px,2rem)}[data-provider-widget-host] .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}[data-provider-widget-host] .py-3{padding-top:.75rem;padding-bottom:.75rem}[data-provider-widget-host] .py-4{padding-top:1rem;padding-bottom:1rem}[data-provider-widget-host] .py-5{padding-top:1.25rem;padding-bottom:1.25rem}[data-provider-widget-host] .py-\[var\(--onside-btn-py\,0\.75rem\)\]{padding-top:var(--onside-btn-py,.75rem);padding-bottom:var(--onside-btn-py,.75rem)}[data-provider-widget-host] .py-\[var\(--onside-btn-py\,1rem\)\]{padding-top:var(--onside-btn-py,1rem);padding-bottom:var(--onside-btn-py,1rem)}[data-provider-widget-host] .ps-6{padding-inline-start:1.5rem}[data-provider-widget-host] .pt-7{padding-top:1.75rem}[data-provider-widget-host] .text-center{text-align:center}[data-provider-widget-host] .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}[data-provider-widget-host] .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}[data-provider-widget-host] .font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}[data-provider-widget-host] .text-2xl{font-size:1.5rem;line-height:2rem}[data-provider-widget-host] .text-3xl{font-size:1.875rem;line-height:2.25rem}[data-provider-widget-host] .text-5xl{font-size:3rem;line-height:1}[data-provider-widget-host] .text-\[length\:var\(--onside-btn-font-size\,1\.125rem\)\]{font-size:var(--onside-btn-font-size,1.125rem)}[data-provider-widget-host] .text-\[length\:var\(--onside-btn-font-size\,1rem\)\]{font-size:var(--onside-btn-font-size,1rem)}[data-provider-widget-host] .text-base{font-size:1rem;line-height:1.5rem}[data-provider-widget-host] .text-lg{font-size:1.125rem;line-height:1.75rem}[data-provider-widget-host] .text-sm{font-size:.875rem;line-height:1.25rem}[data-provider-widget-host] .text-xl{font-size:1.25rem;line-height:1.75rem}[data-provider-widget-host] .text-xs{font-size:.75rem;line-height:1rem}[data-provider-widget-host] .\!font-medium{font-weight:500!important}[data-provider-widget-host] .font-bold{font-weight:700}[data-provider-widget-host] .font-medium{font-weight:500}[data-provider-widget-host] .font-normal{font-weight:400}[data-provider-widget-host] .\!leading-10{line-height:2.5rem!important}[data-provider-widget-host] .leading-7{line-height:1.75rem}[data-provider-widget-host] .leading-none{line-height:1}[data-provider-widget-host] .text-\[\#FF465D\]{--tw-text-opacity: 1;color:rgb(255 70 93 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-\[\#e2eaf8\]{--tw-text-opacity: 1;color:rgb(226 234 248 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-\[color\:var\(--onside-btn-text\,\#FFFFFF\)\]{color:var(--onside-btn-text,#FFFFFF)}[data-provider-widget-host] .text-black{--tw-text-opacity: 1;color:rgb(30 28 31 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-black\/60{color:#1e1c1f99}[data-provider-widget-host] .text-blue{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .text-tertiary{color:#1e1c1f99}[data-provider-widget-host] .text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .opacity-0{opacity:0}[data-provider-widget-host] .opacity-100{opacity:1}[data-provider-widget-host] .opacity-60{opacity:.6}[data-provider-widget-host] .outline-none{outline:2px solid transparent;outline-offset:2px}[data-provider-widget-host] .blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}[data-provider-widget-host] .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}[data-provider-widget-host] .backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}[data-provider-widget-host] .transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[data-provider-widget-host] .duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}[data-provider-widget-host] .duration-300{animation-duration:.3s}[data-provider-widget-host] .paused{animation-play-state:paused}[data-provider-widget-host] :is([data-provider-widget-host] .text-2xs){font-size:var(--text-2xs);line-height:var(--text-2xs--line-height)}[data-provider-widget-host] .\[color\:var\(--onside-caption-color\,rgba\(30\,28\,31\,0\.6\)\)\]{color:var(--onside-caption-color,rgba(30,28,31,.6))}[data-provider-widget-host] .\[font-size\:var\(--onside-caption-size\,var\(--text-2xs\)\)\]{font-size:var(--onside-caption-size,var(--text-2xs))}[data-provider-widget-host] .\[line-height\:var\(--onside-caption-line-height\,var\(--text-2xs--line-height\)\)\]{line-height:var(--onside-caption-line-height,var(--text-2xs--line-height))}[data-provider-widget-host].scroll-lock:has(dialog[open]){overflow:hidden}[data-provider-widget-host] .before\:absolute:before{content:var(--tw-content);position:absolute}[data-provider-widget-host] .before\:-top-1:before{content:var(--tw-content);top:-.25rem}[data-provider-widget-host] .before\:left-1\/2:before{content:var(--tw-content);left:50%}[data-provider-widget-host] .before\:block:before{content:var(--tw-content);display:block}[data-provider-widget-host] .before\:size-2:before{content:var(--tw-content);width:.5rem;height:.5rem}[data-provider-widget-host] .before\:-translate-x-1\/2:before{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .before\:rotate-45:before{content:var(--tw-content);--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-provider-widget-host] .before\:bg-black:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(30 28 31 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-\[\#e2eaf8\]:hover{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-\[var\(--onside-btn-bg-hover\,\#337AFF\)\]:hover{background-color:var(--onside-btn-bg-hover,#337AFF)}[data-provider-widget-host] .hover\:bg-blue:hover{--tw-bg-opacity: 1;background-color:rgb(10 94 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .hover\:text-blue:hover{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .hover\:underline:hover{text-decoration-line:underline}[data-provider-widget-host] .hover\:opacity-60:hover{opacity:.6}[data-provider-widget-host] .hover\:opacity-75:hover{opacity:.75}[data-provider-widget-host] .hover\:opacity-90:hover{opacity:.9}[data-provider-widget-host] .focus\:bg-\[\#e2eaf8\]:focus{--tw-bg-opacity: 1;background-color:rgb(226 234 248 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:bg-\[var\(--onside-btn-bg\,\#0A5EFF\)\]:focus{background-color:var(--onside-btn-bg,#0A5EFF)}[data-provider-widget-host] .focus\:bg-blue:focus{--tw-bg-opacity: 1;background-color:rgb(10 94 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}[data-provider-widget-host] .focus\:text-blue:focus{--tw-text-opacity: 1;color:rgb(10 94 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}[data-provider-widget-host] .focus\:underline:focus{text-decoration-line:underline}[data-provider-widget-host] .focus\:opacity-100:focus{opacity:1}[data-provider-widget-host] .disabled\:bg-\[var\(--onside-btn-disabled-bg\,rgba\(10\,94\,255\,0\.2\)\)\]:disabled{background-color:var(--onside-btn-disabled-bg,rgba(10,94,255,.2))}[data-provider-widget-host] .disabled\:opacity-50:disabled{opacity:.5}[data-provider-widget-host] .data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}[data-provider-widget-host] .data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}[data-provider-widget-host] .data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}[data-provider-widget-host] .data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}[data-provider-widget-host] .data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}[data-provider-widget-host] .data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}[data-provider-widget-host] .data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}[data-provider-widget-host] .data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}[data-provider-widget-host] .data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}[data-provider-widget-host] .data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}
@@ -0,0 +1 @@
1
+ "use strict";const c=t=>{if(typeof document>"u")return null;const e=document.cookie.split("; ").find(o=>o.startsWith(`${t}=`));if(!e)return null;const n=e.indexOf("=");return n!==-1?e.slice(n+1):null},l=(t,e,n)=>{if(typeof document>"u")return;const o=new Date(Date.now()+n*1e3),i=typeof window<"u"&&window.location?.protocol==="https:"?"; Secure":"";document.cookie=`${t}=${e}; expires=${o.toUTCString()}; path=/; SameSite=Lax${i}`},d=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("Secure random UUID generation is not available");const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;const e=Array.from(t,n=>n.toString(16).padStart(2,"0")).join("");return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`},u="onside_token_data";const p=t=>{const e={token:t,createdAt:Date.now()};l(u,encodeURIComponent(JSON.stringify(e)),15552e3)},a=()=>{const t=d();return p(t),t},k=t=>typeof t=="string"&&t.trim().length>0,f=()=>{const t=c(u);if(!t)return a();try{const e=JSON.parse(decodeURIComponent(t));return k(e.token)?(p(e.token),e.token):a()}catch{return a()}},_="https://onside.io",w="/web-api/v1/marketplace/install";const U=async({onsideToken:t,baseUrl:e,useMockResponse:n=!1,appId:o})=>{if(n)return await new Promise(S=>{S({url:"https://onside.dev/install",attribution_token:"test",exp:Date.now()+12e5,is_eligible:!0})});const i=T(e),r=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer_url:window.location.href,onside_token:t,...o?{app_id:o}:{}})});if(!r.ok)throw new Error(`HTTP ${r.status}: ${r.statusText}`);const s=await r.json();if(!s.url||!s.attribution_token||!s.exp)throw new Error("Invalid response format");return s},y=t=>t<1e12?t*1e3:t,T=t=>new URL(w,t??_).toString(),E=async(t={})=>{const e=f(),n=await U({onsideToken:e,...t});return{...n,exp:y(n.exp),onside_token:e}};exports.generateUUID=d;exports.getCookie=c;exports.getInstallUrl=E;exports.getOnsideToken=f;exports.setCookie=l;
@@ -0,0 +1,95 @@
1
+ const p = (t) => {
2
+ if (typeof document > "u") return null;
3
+ const e = document.cookie.split("; ").find((o) => o.startsWith(`${t}=`));
4
+ if (!e) return null;
5
+ const n = e.indexOf("=");
6
+ return n !== -1 ? e.slice(n + 1) : null;
7
+ }, u = (t, e, n) => {
8
+ if (typeof document > "u") return;
9
+ const o = new Date(Date.now() + n * 1e3), i = typeof window < "u" && window.location?.protocol === "https:" ? "; Secure" : "";
10
+ document.cookie = `${t}=${e}; expires=${o.toUTCString()}; path=/; SameSite=Lax${i}`;
11
+ }, f = () => {
12
+ if (typeof crypto < "u" && crypto.randomUUID)
13
+ return crypto.randomUUID();
14
+ if (typeof crypto > "u" || !crypto.getRandomValues)
15
+ throw new Error("Secure random UUID generation is not available");
16
+ const t = new Uint8Array(16);
17
+ crypto.getRandomValues(t), t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128;
18
+ const e = Array.from(t, (n) => n.toString(16).padStart(2, "0")).join("");
19
+ return `${e.slice(0, 8)}-${e.slice(8, 12)}-${e.slice(12, 16)}-${e.slice(16, 20)}-${e.slice(20)}`;
20
+ }, c = "onside_token_data";
21
+ const d = (t) => {
22
+ const e = {
23
+ token: t,
24
+ createdAt: Date.now()
25
+ };
26
+ u(
27
+ c,
28
+ encodeURIComponent(JSON.stringify(e)),
29
+ 15552e3
30
+ );
31
+ }, a = () => {
32
+ const t = f();
33
+ return d(t), t;
34
+ }, S = (t) => typeof t == "string" && t.trim().length > 0, _ = () => {
35
+ const t = p(c);
36
+ if (!t)
37
+ return a();
38
+ try {
39
+ const e = JSON.parse(decodeURIComponent(t));
40
+ return S(e.token) ? (d(e.token), e.token) : a();
41
+ } catch {
42
+ return a();
43
+ }
44
+ }, w = "https://onside.io", k = "/web-api/v1/marketplace/install";
45
+ const y = async ({
46
+ onsideToken: t,
47
+ baseUrl: e,
48
+ useMockResponse: n = !1,
49
+ appId: o
50
+ }) => {
51
+ if (n)
52
+ return await new Promise((l) => {
53
+ l({
54
+ url: "https://onside.dev/install",
55
+ attribution_token: "test",
56
+ exp: Date.now() + 12e5,
57
+ // 20 minutes
58
+ is_eligible: !0
59
+ });
60
+ });
61
+ const i = T(e), r = await fetch(i, {
62
+ method: "POST",
63
+ headers: {
64
+ "Content-Type": "application/json"
65
+ },
66
+ body: JSON.stringify({
67
+ referer_url: window.location.href,
68
+ onside_token: t,
69
+ ...o ? { app_id: o } : {}
70
+ })
71
+ });
72
+ if (!r.ok)
73
+ throw new Error(`HTTP ${r.status}: ${r.statusText}`);
74
+ const s = await r.json();
75
+ if (!s.url || !s.attribution_token || !s.exp)
76
+ throw new Error("Invalid response format");
77
+ return s;
78
+ }, E = (t) => t < 1e12 ? t * 1e3 : t, T = (t) => new URL(k, t ?? w).toString(), U = async (t = {}) => {
79
+ const e = _(), n = await y({
80
+ onsideToken: e,
81
+ ...t
82
+ });
83
+ return {
84
+ ...n,
85
+ exp: E(n.exp),
86
+ onside_token: e
87
+ };
88
+ };
89
+ export {
90
+ _ as a,
91
+ p as b,
92
+ f as c,
93
+ U as g,
94
+ u as s
95
+ };
@@ -0,0 +1 @@
1
+ "use strict";const l=require("react"),w=require("./installUrlService-AjG03i8i.cjs"),y=!0,h=1e3,d=t=>{let e;const s=new Set,r=(a,S)=>{const c=typeof a=="function"?a(e):a;if(!Object.is(c,e)){const g=e;e=S??(typeof c!="object"||c===null)?c:Object.assign({},e,c),s.forEach(U=>U(e,g))}},n=()=>e,i={setState:r,getState:n,getInitialState:()=>b,subscribe:a=>(s.add(a),()=>s.delete(a))},b=e=t(r,n,i);return i},m=(t=>t?d(t):d),M=t=>t;function p(t,e=M){const s=l.useSyncExternalStore(t.subscribe,l.useCallback(()=>e(t.getState()),[t,e]),l.useCallback(()=>e(t.getInitialState()),[t,e]));return l.useDebugValue(s),s}const f=t=>{const e=m(t),s=r=>p(e,r);return Object.assign(s,e),s},E=(t=>t?f(t):f),R=t=>new Promise(e=>setTimeout(e,t)),C=async(t,e)=>{let s=null;for(let r=0;r<e.attempts;r++)try{return await t()}catch(n){s=n,r<e.attempts-1&&await R(e.delayMs(r))}throw s??new Error("Unknown retry error")},_=t=>!!(t?.exp&&Date.now()<t.exp),j=3,k=t=>Math.min(1e3*2**t,3e4),I={status:"idle",data:null,error:null},x=t=>t instanceof Error?t:new Error(String(t)),u=E((t,e)=>({...I,fetchInstallUrl:async()=>{const s=e();if(!_(s.data)&&s.status!=="loading"){t({status:"loading",error:null});try{const r=await C(()=>w.getInstallUrl({useMockResponse:!y}),{attempts:j,delayMs:k});t({status:"success",data:r,error:null})}catch(r){t({status:"error",error:x(r)})}}},reset:()=>t(I)})),D=(t=!0)=>{const e=u(o=>o.status),s=u(o=>o.data),r=u(o=>o.error),n=u(o=>o.fetchInstallUrl);return l.useEffect(()=>{t&&n()},[t,n]),{status:e,data:s,error:r,fetchInstallUrl:n}};exports.SEC_MS=h;exports.create=E;exports.isProduction=y;exports.useInstallUrl=D;exports.useInstallUrlStore=u;
@@ -0,0 +1,87 @@
1
+ import l, { useEffect as E } from "react";
2
+ import { g as I } from "./installUrlService-CrJfYPwM.js";
3
+ const w = !0, Y = 1e3, f = (t) => {
4
+ let e;
5
+ const s = /* @__PURE__ */ new Set(), n = (a, S) => {
6
+ const c = typeof a == "function" ? a(e) : a;
7
+ if (!Object.is(c, e)) {
8
+ const y = e;
9
+ e = S ?? (typeof c != "object" || c === null) ? c : Object.assign({}, e, c), s.forEach((b) => b(e, y));
10
+ }
11
+ }, r = () => e, i = { setState: n, getState: r, getInitialState: () => m, subscribe: (a) => (s.add(a), () => s.delete(a)) }, m = e = t(n, r, i);
12
+ return i;
13
+ }, h = ((t) => t ? f(t) : f), p = (t) => t;
14
+ function U(t, e = p) {
15
+ const s = l.useSyncExternalStore(
16
+ t.subscribe,
17
+ l.useCallback(() => e(t.getState()), [t, e]),
18
+ l.useCallback(() => e(t.getInitialState()), [t, e])
19
+ );
20
+ return l.useDebugValue(s), s;
21
+ }
22
+ const d = (t) => {
23
+ const e = h(t), s = (n) => U(e, n);
24
+ return Object.assign(s, e), s;
25
+ }, M = ((t) => t ? d(t) : d), R = (t) => new Promise((e) => setTimeout(e, t)), _ = async (t, e) => {
26
+ let s = null;
27
+ for (let n = 0; n < e.attempts; n++)
28
+ try {
29
+ return await t();
30
+ } catch (r) {
31
+ s = r, n < e.attempts - 1 && await R(e.delayMs(n));
32
+ }
33
+ throw s ?? new Error("Unknown retry error");
34
+ }, x = (t) => !!(t?.exp && Date.now() < t.exp), j = 3, k = (t) => Math.min(1e3 * 2 ** t, 3e4), g = {
35
+ status: "idle",
36
+ data: null,
37
+ error: null
38
+ }, C = (t) => t instanceof Error ? t : new Error(String(t)), u = M((t, e) => ({
39
+ ...g,
40
+ fetchInstallUrl: async () => {
41
+ const s = e();
42
+ if (!x(s.data) && s.status !== "loading") {
43
+ t({ status: "loading", error: null });
44
+ try {
45
+ const n = await _(
46
+ () => I({
47
+ useMockResponse: !w
48
+ }),
49
+ {
50
+ attempts: j,
51
+ delayMs: k
52
+ }
53
+ );
54
+ t({
55
+ status: "success",
56
+ data: n,
57
+ error: null
58
+ });
59
+ } catch (n) {
60
+ t({
61
+ status: "error",
62
+ error: C(n)
63
+ });
64
+ }
65
+ }
66
+ },
67
+ reset: () => t(g)
68
+ })), B = (t = !0) => {
69
+ const e = u((o) => o.status), s = u((o) => o.data), n = u((o) => o.error), r = u(
70
+ (o) => o.fetchInstallUrl
71
+ );
72
+ return E(() => {
73
+ t && r();
74
+ }, [t, r]), {
75
+ status: e,
76
+ data: s,
77
+ error: n,
78
+ fetchInstallUrl: r
79
+ };
80
+ };
81
+ export {
82
+ Y as S,
83
+ u as a,
84
+ M as c,
85
+ w as i,
86
+ B as u
87
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./installUrlService-AjG03i8i.cjs"),I={IOS:/iPhone|iPad|iPod/i,IPAD:/iPad/i,ANDROID:/Android/i,INTEL_MAC:/Intel Mac/i},r={IOS_CHROME:/CriOS/i,IOS_FIREFOX:/FxiOS/i,IOS_EDGE:/EdgiOS/i,IOS_OPERA:/OPiOS/i,IOS_OPERA_NEW:/OPT\//i,IOS_BRAVE:/Brave\//i,IOS_DUCKDUCKGO:/Ddg\//i,IOS_DUCKDUCKGO_ALT:/DuckDuckGo\//i,IOS_GOOGLE_APP:/GSA/i,SAFARI:/Safari/i,CHROME:/Chrome|CriOS/i,FIREFOX:/Firefox|FxiOS/i,EDGE:/Edge|Edg/i,OPERA:/Opera|OPiOS|OPT\/|OPR\/|OPX\//i},f={WEBKIT:/AppleWebKit|WebKit/i,BLINK:/Chrome|Chromium|Edg|OPR\/|SamsungBrowser|YaBrowser/i,GECKO:/Gecko\/\d|Firefox/i},l={IOS_VERSION:/Version\/(\d+[_.\d]*)/,IOS_OS:/(?:iPhone|iPad|iPod).*?OS (\d+[_.\d]*)/i,IOS_APP:/(?:iOS|iPadOS)\/(\d+[_.\d]*)/i,ANDROID_VERSION:/Android\s+(\d+[.\d]*)/,MACOS_VERSION:/Mac OS X (\d+[_.\d]*)/i},A={MOBILE:/Mobile/i,ANDROID_TABLET_KEYWORDS:/Tablet|SM-T|SM-P|GT-P|SCH-I|SCH-T/i},a={IOS_INSTAGRAM:/\bInstagram\b/i,IOS_FACEBOOK:/\bFBAN\/FBIOS\b|\bFBAV\b/i,IOS_LINKEDIN:/LinkedInApp/i,IOS_LINKEDIN_ALT:/LinkedIn\/\d/i,IOS_DISCORD:/\bDiscord\b/i,IOS_TWITTER:/Twitter for iPhone/i,IOS_TIKTOK:/\bTikTok\b/i,IOS_TIKTOK_ALT:/zhiliaoapp\.musically|musically\/\d/i,IOS_TELEGRAM:/\bTelegram\b/i,IOS_WECHAT:/\bMicroMessenger\b/i,IOS_LINE:/\bLine\/\d/i},h=[{detail:"instagram",pattern:a.IOS_INSTAGRAM},{detail:"facebook",pattern:a.IOS_FACEBOOK},{detail:"linkedin",pattern:a.IOS_LINKEDIN},{detail:"linkedin",pattern:a.IOS_LINKEDIN_ALT},{detail:"discord",pattern:a.IOS_DISCORD},{detail:"twitter",pattern:a.IOS_TWITTER},{detail:"tiktok",pattern:a.IOS_TIKTOK},{detail:"tiktok",pattern:a.IOS_TIKTOK_ALT},{detail:"telegram",pattern:a.IOS_TELEGRAM},{detail:"wechat",pattern:a.IOS_WECHAT},{detail:"line",pattern:a.IOS_LINE}],v=768,M=()=>"ontouchstart"in window||window.navigator?.maxTouchPoints>0||window.navigator?.msMaxTouchPoints>0,C=()=>window.navigator.userAgent,L=e=>{if(I.IOS.test(e)){const i=I.IPAD.test(e);return{platform:"ios",isMobile:!i,isTablet:i,isDesktop:!1}}if(I.ANDROID.test(e)){const i=A.MOBILE.test(e),n=A.ANDROID_TABLET_KEYWORDS.test(e),o=window.innerWidth,t=n||!i&&o>=v;return{platform:"android",isMobile:!t,isTablet:t,isDesktop:!1}}return m(e)?{platform:"ios",isMobile:!1,isTablet:!0,isDesktop:!1}:r.IOS_GOOGLE_APP.test(e)?{platform:"ios",isMobile:!0,isTablet:!1,isDesktop:!1}:{platform:"desktop",isMobile:!1,isTablet:!1,isDesktop:!0}},m=e=>r.SAFARI.test(e)&&I.INTEL_MAC.test(e)&&!r.CHROME.test(e)&&!r.FIREFOX.test(e)&&!r.OPERA.test(e)?M():!1,u=()=>typeof window?.TelegramWebviewProxy<"u",P=e=>{for(const i of h)if(i.pattern.test(e))return i.detail},F=(e,i)=>{const n=(...o)=>o.some(t=>t.test(e));return n(r.IOS_EDGE,r.EDGE)?"edge":n(r.IOS_OPERA,r.IOS_OPERA_NEW,r.OPERA)?"opera":n(r.IOS_BRAVE)?"brave":n(r.IOS_DUCKDUCKGO)||n(r.IOS_DUCKDUCKGO_ALT)?"duckduckgo":n(r.IOS_CHROME,r.CHROME)?"chrome":n(r.IOS_GOOGLE_APP)?"google":n(r.IOS_FIREFOX,r.FIREFOX)?"firefox":i==="ios"&&(P(e)||u())?"in-app":r.SAFARI.test(e)&&!r.CHROME.test(e)&&!r.FIREFOX.test(e)&&!r.OPERA.test(e)&&!r.IOS_BRAVE.test(e)&&!r.IOS_DUCKDUCKGO.test(e)&&!r.IOS_DUCKDUCKGO_ALT.test(e)&&!r.IOS_GOOGLE_APP.test(e)&&!a.IOS_TELEGRAM.test(e)&&!a.IOS_WECHAT.test(e)&&!a.IOS_LINE.test(e)&&!u()?"safari":"unknown"},K=(e,i)=>{switch(i){case"chrome":return r.IOS_CHROME.test(e)?"crios":"chrome";case"firefox":return r.IOS_FIREFOX.test(e)?"fxios":"firefox";case"edge":return r.IOS_EDGE.test(e)?"edgios":"edge";case"opera":return r.IOS_OPERA_NEW.test(e)?"opt":r.IOS_OPERA.test(e)?"opios":"opera";case"duckduckgo":return"duckduckgo";case"google":return"gsa";case"safari":return"safari";case"in-app":return a.IOS_TELEGRAM.test(e)||u()?"telegram":P(e);default:return}},G=(e,i,n)=>i==="ios"?"webkit":n==="firefox"&&!r.IOS_FIREFOX.test(e)?"gecko":n==="chrome"||n==="edge"||n==="opera"||n==="brave"||n==="google"?"blink":n==="safari"?"webkit":f.GECKO.test(e)&&!/like Gecko/i.test(e)?"gecko":f.BLINK.test(e)?"blink":f.WEBKIT.test(e)?"webkit":"unknown",B=(e,i)=>{if(i.platform==="ios")return m(e)||I.IPAD.test(e)||/Apple\/iPad|iPad\d/i.test(e)?"ipad":/iPhone|Apple\/iPhone|iPhone\d/i.test(e)?"iphone":/iPod/i.test(e)?"ipod":"unknown"},U=(e,i,n)=>{const o=t=>t.replace(/_/g,".").split(".").filter(s=>s.length>0).join(".");switch(i){case"ios":{let t=n==="safari"?e.match(l.IOS_VERSION):null;return t||(t=e.match(l.IOS_OS)),t||(t=e.match(l.IOS_APP)),!t&&n==="safari"&&(t=e.match(l.IOS_VERSION)),t?o(t[1]):void 0}case"android":{const t=e.match(l.ANDROID_VERSION);return t?o(t[1]):void 0}case"desktop":{const t=e.match(l.MACOS_VERSION);return t?o(t[1]):void 0}}},V=e=>{if(!e)return{};const[i,n]=e.split("."),o=Number.parseInt(i,10),t=Number.parseInt(n??"0",10);return{version_major:o,version_minor:t}},W={platform:"unknown",browser:"unknown",browserEngine:"unknown",isMobile:!1,isTablet:!1,isDesktop:!1,version:void 0,userAgent:""};let p=null,T=null,R=null;function D(){if(typeof window>"u")return W;const e=C(),i=window.innerWidth;if(p&&T===e&&R===i)return p;const n=L(e),o=F(e,n.platform),t=G(e,n.platform,o),s=K(e,o),O=B(e,n),c=U(e,n.platform,o),E=V(c),d={...n,browser:o,browserEngine:t,browserDetail:s,iosDeviceClass:O,isInAppBrowser:o==="in-app",version:c,...E,userAgent:e};return p=d,T=e,R=i,d}const y=".",g=e=>e.split(y).map(i=>Number.parseInt(i,10)).filter(i=>Number.isFinite(i)&&i>=0),_=(e,i)=>{const n=g(e),o=g(i),t=Math.max(n.length,o.length);for(let s=0;s<t;s+=1){const O=n[s]??0,c=o[s]??0;if(O>c)return 1;if(O<c)return-1}return 0},x="17.6",H="18.6",X=["safari","chrome","edge","brave","duckduckgo"],j=({platform:e,isIOSDevice:i,shouldUpdateIOS:n,isIOSVersionSupported:o,browserSupportsInstall:t})=>e==="android"?"android":n?"update_ios":o&&t?"install_available":i?"go_to_safari":"unsupported";function Y(e,i={}){const{minIOSVersionForInstall:n=x,minIOSVersionForNewSystemUI:o=H}=i,t=e.version,s=e.platform==="ios"&&(e.isMobile||e.isTablet),O=typeof t=="string",c=!!(s&&O&&_(t,n)>=0),E=!!(s&&O&&_(t,n)<0),d=X.includes(e.browser),w=!!(s&&d&&!e.isInAppBrowser),k=j({platform:e.platform,isIOSDevice:s,shouldUpdateIOS:E,isIOSVersionSupported:c,browserSupportsInstall:w}),b=!!(s&&O&&_(t,o)>=0);return{installState:k,usesNewInstallFlow:b}}function q(){return typeof window>"u"?!1:localStorage.getItem("onside_analytics_logging")==="true"}function N(e,i={},n){try{if(typeof window>"u")return null;window.dataLayer||(window.dataLayer=[]);const o={...i,...D()},t={event:"amplitude_event",event_name:e,event_properties:{timestamp:Date.now(),...o},...n?{user_properties:n}:{},url:window.location.href};return window.dataLayer.push({event:t.event,event_name:t.event_name,event_properties:t.event_properties,...t.user_properties?{user_properties:t.user_properties}:{}}),q()&&console.log("🎯 Analytics Event:",{event_name:t.event_name,event_properties:t.event_properties,user_properties:t.user_properties,url:t.url}),t}catch(o){return console.error("Analytics error:",o),null}}function z(e,i,n,o={}){const t=`${e}.${i}`,s={modal_name:e,event_type:i,...o};return n&&(s.action=n),N(t,s)}exports.generateUUID=S.generateUUID;exports.getCookie=S.getCookie;exports.getInstallUrl=S.getInstallUrl;exports.getOnsideToken=S.getOnsideToken;exports.setCookie=S.setCookie;exports.compareVersions=_;exports.getDeviceInfo=D;exports.resolveInstallConditions=Y;exports.trackEvent=N;exports.trackModalEvent=z;
@@ -0,0 +1,93 @@
1
+ export declare type AnalyticsEvent = Omit<TrackedAnalyticsEvent, "url">;
2
+
3
+ export declare type Browser = "safari" | "chrome" | "firefox" | "edge" | "opera" | "brave" | "duckduckgo" | "google" | "in-app" | "unknown";
4
+
5
+ export declare type BrowserEngine = "webkit" | "blink" | "gecko" | "unknown";
6
+
7
+ export declare const compareVersions: (a: string, b: string) => -1 | 0 | 1;
8
+
9
+ export declare type DeviceInfo = {
10
+ platform: Platform;
11
+ browser: Browser;
12
+ browserEngine?: BrowserEngine;
13
+ isMobile: boolean;
14
+ isTablet: boolean;
15
+ isDesktop: boolean;
16
+ version: string | undefined;
17
+ version_major?: number;
18
+ version_minor?: number;
19
+ userAgent: string;
20
+ iosDeviceClass?: IOSDeviceClass;
21
+ isInAppBrowser?: boolean;
22
+ browserDetail?: string;
23
+ };
24
+
25
+ export declare const generateUUID: () => string;
26
+
27
+ /**
28
+ * Retrieves the value of a browser cookie by name.
29
+ */
30
+ export declare const getCookie: (name: string) => string | null;
31
+
32
+ export declare function getDeviceInfo(): DeviceInfo;
33
+
34
+ export declare const getInstallUrl: (options?: GetInstallUrlOptions) => Promise<InstallUrlServiceResponse>;
35
+
36
+ export declare type GetInstallUrlOptions = {
37
+ baseUrl?: string;
38
+ useMockResponse?: boolean;
39
+ appId?: string;
40
+ };
41
+
42
+ export declare const getOnsideToken: () => string;
43
+
44
+ export declare type InstallConditions = {
45
+ installState: "install_available" | "go_to_safari" | "update_ios" | "android" | "unsupported";
46
+ usesNewInstallFlow: boolean;
47
+ };
48
+
49
+ export declare type InstallResponse = {
50
+ url: string;
51
+ attribution_token: string;
52
+ exp: number;
53
+ is_eligible: boolean;
54
+ };
55
+
56
+ export declare type InstallUrlServiceResponse = InstallResponse & {
57
+ onside_token: string;
58
+ };
59
+
60
+ export declare type IOSDeviceClass = "iphone" | "ipad" | "ipod" | "unknown";
61
+
62
+ export declare type OnsideToken = {
63
+ token: string;
64
+ createdAt: number;
65
+ };
66
+
67
+ export declare type Platform = "ios" | "android" | "desktop" | "unknown";
68
+
69
+ export declare function resolveInstallConditions(deviceInfo: DeviceInfo, options?: ResolveInstallConditionsOptions): InstallConditions;
70
+
71
+ declare type ResolveInstallConditionsOptions = {
72
+ minIOSVersionForInstall?: string;
73
+ minIOSVersionForNewSystemUI?: string;
74
+ };
75
+
76
+ /**
77
+ * Sets a browser cookie with a specified expiration time (in seconds).
78
+ */
79
+ export declare const setCookie: (name: string, value: string, maxAgeSeconds: number) => void;
80
+
81
+ export declare interface TrackedAnalyticsEvent {
82
+ event: "amplitude_event";
83
+ event_name: string;
84
+ event_properties: Record<string, unknown>;
85
+ user_properties?: Record<string, unknown>;
86
+ url: string;
87
+ }
88
+
89
+ export declare function trackEvent(event_name: string, event_properties?: Record<string, unknown>, user_properties?: Record<string, unknown>): TrackedAnalyticsEvent | null;
90
+
91
+ export declare function trackModalEvent(modalName: string, eventType: "click" | "opened", action?: string, additionalProps?: Record<string, unknown>): TrackedAnalyticsEvent | null;
92
+
93
+ export { }